Skip to content
Rob edited this page Oct 31, 2017 · 87 revisions

Welcome to the machinex wiki! Really just a space for older changelogs. Current Version: Version mentioned below + 1.

/*see my xda page for most recent changelog http://forum.xda-developers.com/galaxy-s4/i9505-develop/kernel-t3455219 */

Older Updates:

UPDATES - Mark99-Next - September 16, 2017 CHANGELOG:

  • Patched the kernel-side vulnerability to the blueborne security issue.
  • Added a nifty fix in ramdisk to clear the cache which, for some reason, was intermittently preventing the device from sleeping after boot without clearing memory first.

UPDATES - Mark99 - September 16, 2017 CHANGELOG:

  • Updated memory management, zswap, and filesystems to linux 3.18.
  • Updated Cpufreq, workqueues, smp, cpu hotplug, cpuidle, rcu, and power management to linux 4.14.
  • Various bugfixes and stability patches.
  • Updates to Prometheus (powersuspend), as well as Intelliplug.
  • updates to sdcardfs, logspam cleanups, ramdisk updates.
  • Built using my own toolchain, 6.3.0 hardfloat, cortex-A15 optimized (it is similiar enough to krait to give us an edge)
  • I imagine some more...

UPDATES - Mark98 - August 22, 2017 CHANGELOG:

  • Fixed a one off issue that would cause a strange effect if mdnie was initialized before the framebuffer itself, resulting in a strange glowing splash screen.
  • Fixed Hardplug not sticking.
  • Some nifty updates to how intelli plug and cpuboost receive notification of touch input. Instead of connecting to the generic handler service, I put hooks in the actual drivers for our specific needs (this means we will be able to expand our usecases for cpu/hotplug boosting as time goes on).
  • More updates from mainline as they come in.
  • Did some work on the synaptics touchscreen driver.
  • Did some modem work.
  • Fixed a MAJOR stall issue in the lowmemorykiller, and basically just took the S7's LMK for the most part.
  • Memory updates.
  • Built using my OWN toolchain.

UPDATES - Mark97 - August 5, 2017 CHANGELOG:

  • Merged in the updates from QG1 sources, and updated the ramdisk to QG1 as well!
  • Removed Interactive. Schedutil does the same job but better, and Interactive is still too buggy to be useful. I WILL work on improving it in order to bring it back in the future.
  • Synced CPUFREQ, CPU, POWER ALL up to date with the latest 4.13 sources.
  • Introducing Sweep2Sleep! If i get Sweep2Wake working, you'll be the first to know.
  • Updated the Fauxsound/Soundengine! I've wanted to do this for years, but the driver now does all of the calculations on its own, so you can simply write the value you want to the sysfs interface without having to make any fancy calculations.
  • Upstreamed cgroup/fs to 3.18 (ish), and finally got idr_alloc working for our id calculations!
  • All installations are now done within the recovery. First boot is no longer as timely or resource taxing!
  • Brought back power efficient workqueues.
  • Added some vibration control interfaces to regular functions, see Synapse for details.
  • Wrote a NEW driver called CPU Hardplug. Hardplug is a system-wide, core control driver that allows you to choose which cores are usable during both screen on and screen off.
  • Personally updated the entire power framework, so that EVERYTHING is suspended in reverse order of how it was registered, and resumed in regular init order. This way, the ordering of all bringup/teardown matches boot/shutdown. Everything suspend related is WAY smoother.
  • Overall Stability updates.
  • So much more, I will update this if i remember other important stuff.

UPDATES - Mark96 - July 5, 2017 CHANGELOG:

  • 10000 patches later and...
  • FULLY BACKPORTED cpufreq core from mainline 4.12 kernel. Got rid of old custom governors as now none of them are designed to interact with our base. So we have the basics, and the new SCHEDUTIL governor from mainline. Also, ALL CORES are tunable INDEPENDANTLY from one another.
  • Fixed any and all panics.
  • backported pretty much our entire core api from 4.12.
  • Upstreamed our block management to linux 3.18, including io schedulers and the new multiqueue block management api.
  • A bunch of cool new tweaks and tunables in Synapse. Synapse itself has been OPTIMIZED to reduce memory footprint and system load.
  • Brought back power efficient workqueues.
  • Removed scsi-wait-scan module which does nothing.
  • FIXED WIFI HOTSPOT
  • Rebuilt MDNIE which now has hijack capability AND a "lock" which is fully stable.
  • MANY under the hood updates, fixes, and tweaks.
  • Updated Intelliplug to make it faster and cleaner. Removed some of the more problematic hotplug drivers that became outdated once I updated the cpu core code.
  • Updated POWERSUSPEND entirely, now named PROMETHEOUS. It is now a part of the power core and will call suspend suspend directly, unless music is playing, the device is charging, or you disable the setting in Synapse.
  • HBM high brightness mode is now DETACHED from autobrightness, so the two are independant from one another and screen fixes shouldn't be as relevant.
  • The kernel now removes/changes some problematic build.prop "tweaks" upon install.
  • So much more, I will update this if i remember other important stuff.

UPDATES - Mark95 - May 4, 2017 CHANGELOG:

  • Fixed the scheduling panic by bring back WALT (window-assisted load tracking).
  • Continued backporting the core from 4.x mainline.
  • Made this one snappy :)

UPDATES - Mark94 - May 1, 2017 CHANGELOG:

  • Refactored cpu-boost driver, it is basically the Galaxy S8 driver.
  • Included the Sec Touchkey flip mode function in the Flip Cover Bypass, theoretically it should do the trick now.
  • Disabled WALT (window assisted load tracking) in favour of regular CPU utilization scheduling. Thus far it seems to be better for cpu scaling, scheduling and battery. We can monitor this and see if we like it. Personally, I think the UI is a fair bit snappier now.

UPDATES - Mark93 - April 29, 2017 CHANGELOG:

  • I'm back!
  • Rewrote Intelliplug.
  • Added some code optimization to sound control driver.
  • Backported workqueues directly from 4.11 mainline kernel.
  • Got rid of partial suspend/resume in lieu of the more superior mainline method.
  • Updated cgroups and driver core to roughly linux 3.16ish.
  • Updated scheduling, rcu, locking, timekeeping, and more directly to 3.18.
  • Made CPU BOOST a simple, single boost driver.
  • Updated power drivers/suspend/sleep core to 4.xxxxxxxx....ish? (if life gives you lemons, back port wakeup-irqs from linux 4.3)
  • Built a semi-custom/frankenstein of a new gpio_key input driver, including a (not-tested!) shutoff bypass for hall detection (flip cover).
  • Added a bypass for aicl (samsung's method of lowering the charging steps).
  • Cleaned up/fixed up some synapse work.
  • Added a master switch to franciscofranco's neat wakeup source blocker.
  • Ported MDNIE HIJACK from the Note 3!!!!!!!!!!!!!!!!!!!!!!!! thanks again upintheair/yank555!
  • Updated toolchain to GCC 6.3.1 hardfloat.
  • Added my own fun little governor, Whiskyactive.
  • More that I probably forget, and more to come.
  • Wifi hotspot disconnect issue still persists, but i'd like to think that one day it will be solved.... also battery life isn't...great out of the box, but that's what thinks like max screen off hard limit are for...

UPDATES - Mark92 - March 17, 2017 CHANGELOG:

  • Simplified and streamlined the Alucard Hotplug driver.
  • SMP/boot updates, including some logic pulled straight from the latest mainline 4.11 RC build.
  • Battery driver improvements.
  • Made a couple of manual adjustments to the partial_resume/suspend_again code that includes platform_suspend_again, which has helped quell callback issues and restored idle to a battery saving masterpiece.
  • More scheduling/timekeeping updates.
  • Updates to our bitmap/vsprintf libs that have significantly improved runtime performance.
  • Bettery heat consumption. Changed the thermal driver to use the boot cpu in order to manage heat when the phone is in idle and the secondary cores are sleeping.
  • Smooth and stable baby.
  • Can be found in MachineX Rom by the awesome @Andycar found here: https://forum.xda-developers.com/gal...-apps-t3573009

UPDATES - Mark91 - March 14, 2017 CHANGELOG:

  • Better sequencing, half-hacked by me in order to allow the sched clock to use non-locking, 64 bit, high-resolution timers.
  • Better initialization order of cpu drivers to allow for proper hotplugging.
  • A half hacked fast-charge driver update that is a work-in-progress and not quite ready. It is in Synapse but I labelled it "DO NOT USE" for good reason...
  • Converted the compiler config option "MSM_RQ_STATS_BE_CONSERVATIVE" to a runtime option available via sysfs, adjustable under "HOTPLUGS" in Synapse.
  • CPU IDLE driver updated to linux 3.10.
  • the usual core updates
  • a few cleanups and handy features in Synapse.

UPDATES - Mark90 - March 8, 2017 CHANGELOG:

  • Personally hacked/fixed the screen dimming driver to ensure that we have full control over its operation. If you want a dimmer screen than what my kernel offers, I encourage you to just use the KCAL/fb-colour options to reduce overall brightness. Just reduce all three of the values by them same amount and voila!
  • Returned the battery driver to *mostly stock.
  • Created a better, more effective method of managing workqueue worker_id creation. EDIT: Power Efficient workqueues are still not cool.
  • Personally created a freezer/pm solution to ensure that almost nothing can interrupt the freezing/pm sleep process, and when it does it is correctable.
  • IMPLEMENTED PARTIALRESUME, and updated driver created by google to handle quickwakeups and their return to sleeping.
  • COMPLETE update of module-loading mechanism to beyond linux 3.8, and I will continue working in that area.
  • Built a semi-custom solution for the modem/subsystem restart driver.
  • msm/cpuidle updates
  • scheduling/rcu/fs/irq updates
  • added a commandline entry for contigious memory allocation for the modem firmware in the ramdisk.
  • Complete overhaul of platform smp driver (TODO: update main cpufreq driver to reflect some of the changes)
  • removed some annoying/memory consuming logging in the rpm resources framework.
  • 20974: that is the number of commits I have made to this project.
  • Made it a beast again.
  • ONLY BUG LEFT that i know of is a kernel panic after shutting off mobile hotspot. I'm finding it. There is a scheduling routine somewhere between locks in the wifi driver that shouldn't be that way. I will find it and eliminate it. Till then, it works, just be prepared for the reboot afterwards.
  • Enjoy.

UPDATES - Mark89 - February 19, 2017 CHANGELOG:

  • Updated ramdisk binaries to QA1
  • Some more ridiculously huge updates to filesystems, memory management, workqueues, rcu, scheduling, etc. I have now caught up and am preparing to unleash full, tickless, scheduling properly.
  • I aimed to go for SUPER STABLE with this one. My phone has been on for the last 40 hours without a hiccup, and its performing better than the stock configuration on my note3.
  • ONLY BUG LEFT that i know of is a kernel panic after shutting off mobile hotspot. I'm finding it. There is a scheduling routine somewhere between locks in the wifi driver that shouldn't be that way. I will find it and eliminate it. Till then, it works, just be prepared for the reboot afterwards.

UPDATES - Mark88 - February 12, 2017 CHANGELOG:

  • Fixed wireless charging causing unneccessary wakelocks by using newer sammy kernels as reference, and applying some of the knowledge I've gained from this project/studying in order to make a few custom changes for the better. Tested and confirmed working by @Corduroysack
  • Pretty sure I have fixed the MMC sleep of death that was causing the SystemUI failures for real...I hope so at least. But I think so.
  • Wireless and Wifi are FASTER now, and I am still working on hotspot and the initial install of the module files. Keep your fingers crossed and get at me if you are familiiar with broadcom/dhd firmware loading!
  • For the first time I witnessed the "PM - some devices failed to suspend or early wake event detected," log that usually signals doom for us, but followed by CONTINUING TO OPERATE NORMALLY AND GO TO SLEEP AFTER THAT!!! WHOO!
  • Various ext4, fs, mm, slub updates.
  • Ported in and am using the msm-i2c V2 driver.
  • Updated the Permissive Supolicy function in Synapse to be able to be loaded at boot, added the ability to toggle hdcp (hdmi content protection) if you require it.
  • Ramdisk updates.

UPDATES - Mark87 - February 8, 2017 CHANGELOG:

  • Updated swap space to use a separate swapspace per partition, included having to manually adjust zswap and the low memory killer accordingly. The majority of our LMK is from the note4 3.10 kernel.
  • FINALLY completed a patchset I've been working on in MM. A VERY stupid reason was holding me back for like two weeks and then last night I solved it in under a minute. Programming is funny that way.
  • More fs updates, and performance is smooth so far. You'll also notice it eats less ram.
  • This version is FINALLY something I'm pleased with.

UPDATES - Mark86 - February 7, 2017 CHANGELOG:

  • So the dreaded mmcqueue/sdcc sleep of death issue that was causing apps to stop upon waking has been attacked with heavy fire. I couldn't find any reasonable upstream code that solved the problem so i compared ours to the S7's 3.18 base and found a working solution that I imported and haven't seen any issues yet!
  • Tons more MM/FS/etc updates.
  • I might be forced to implement zcache/zram soon because our mm has no where else to go.
  • KSM updates
  • Kernel now boots with Performance Governor as default, and then switches to Interactive on boot.
  • Synapse adjustments - fixed profiles, and added a few other little tweaks. You can now set your entire SELinux policy to allow everything at the click of a button. Not really necessary as our kernel is permissive, but I like to stick it to samsung in any way possible.
  • Running nicely.

UPDATES - Mark85 - February 3, 2017 CHANGELOG:

  • Updated workqueues to linux 3.8, also memory management and fs handling.
  • Many bugfixes, though I am still working on an annoying one with WiFi not creating the proper files on boot, as well as some tethering issues that have cropped up due to the same core issue. I am working hard at it!
  • Implemented some of my own fixes to the mdm/usb infrastructure to prevent stalls and sleep issues.
  • More PM fixes and updates, getting there at least.
  • Removed the useless "Force Load WiFi module" Synapse buttons because they never worked properly.
  • Updated WiFi to PK2 sources because it actually fixed some of the issues.
  • ARM/MSM specific DMA/IOMMU/CPU updates.
  • Speaking of CPU, I have the framework in place to update all of the demand-based to the 3.10 versions , now "all" I have to do is go through EVERY SINGLE BLOODY GOVERNOR and rework them. It's just time consuming and tedious so I'll probably have it ready next version.
  • A couple of small video driver updates that fixed a couple of small bugs.
  • GIC/HARDWARE interrupts are now updated to be called directly instead of going through a stupid wrapper that slows stuff down. Also FASTPATH updates.
  • CPUTIMER updates.
  • Reduced the dreaded "alarmtimer" bug potential by making our window of when it can ruin our day account for anything less than ONE millisecond, and I will reduce it further if need be. Just watch me.
  • She's a beaut, this one.

UPDATES - Mark84 - January 29, 2017 CHANGELOG:

  • About 600 patches worth of memory, rcu, filesystem, and general core updates.
  • BIG timer updates, including some that I had to personally port to our source.
  • Synapse - Now has options to force load wifi module if you have issues. DON'T USE OFTEN, it is not stable.
  • Synapse - added LED low power mode, and made my backend way more consistent.
  • SIMPLE GPU GOVERNOR REMOVED -> it was causing pagefault issues.
  • ADDED a whole new Policy Governor that works as a trustzone replacement. Based on msm dcvs, tommygreenexus' conservative, and devfreq governors I drew from. It is called Machinactive, not to be confused with the CPU governor of the same name.
  • It's going well, more to come.

UPDATES - Mark83 - January 27, 2017 CHANGELOG:

  • ALSO HUGE - alarmtimer - looks like i was at 50 ms, brought the window down to 5 ms and am considering going even shorter. Problem is, we have a VERY brief window in which alarmtimer can wake the device while PM suspend routines are taking place, and this can lead to some major problems that will be updated in sequence (so after another 8000 patches or so.
  • A LOT of backend/fs/mm/scheduling patches that are getting us closer to the promised land of power-aware scheduling!
  • SMP updates, CMA updates, RCU updates...the list goes on!
  • Turned off a ton of debugging, and made a lot of tracing functions safe (funny how the very tools we use to find issues can be the cause)
  • Faster networking, faster fiie management...just better everything man.
  • Synapse bug fixes and tweaks, also included a VERY rudimentary "night mode" that is just me setting the brightness low manually. By special request. I will make it better though eventually.
  • Ramdisk improvements.
  • Code base is getting close to 3.8 now. I actually went even further this evening but without testing odds are you all would have gotten unexplained page-faults, so this is the "safe" verison.
  • More probably, as per usual, supply me with logs if you have issues. If not, your issues mean nothing to me.

UPDATES - Mark82 - January 25, 2017 CHANGELOG:

  • HUGE
  • Repaired all of the HW IRQ's (hardware interrupts) that required an IRQF_ONESHOT flag because they weren't being handled properly. Upon doing this, I witnessed my first dmesg without any significant error messages. It was monumental.
  • MAX77693 - this is a central hub that is completely responsible for vibration, charging, etc, and has seen a major overhaul. It no longer fails upon request of a registration if the registration needs to be deferred. Also, imported MUCH BETTER logic into the sec fuelgauge driver from the Note4 sources. We now have a much more stable battery/charging mechanism.
  • Fixed wifi issues for most people. I was experimenting allowing the rom's updated firmware to be used for wifi instead of the stock internal, but this makes wifi bug out for those whose models (mainly the i9505z ones) aren't compatible with the updated firmware present in the rom they are using. Personally the change made my wifi work way better, but I would rather have this be universally compatible than working exceptionally for some and poorly for others. This way we all get kind of "meh" average.
  • Cut down the chance of an alarmtimer bug causing the system not to suspend properly, so the window in which the alarmtimer can be woken up again during the suspend process is miniscule (5 milliseconds).
  • RPM - LOW POWER - Switched our Low Power mode for CPU suspend to HSFS over GDHS, which has the added benefit of reduced voltage drain and it flushes the L2 cache upon suspend.
  • Interactive based govs - went through and fixed ALL of them to ensure that they are computing the load average from CURRENT frequency, not the target frequency. I had updated some of my govs for this but not all, so now they are all up to scratch.
  • Updated Machinactive to be even more zippy.
  • For hsic, here is a commit message that I made: "msm hsic - sleep is being called with spinlocks held. That is how scheduling while atomic happens. Changed instances of usleep range and msleep to mdelay"
  • CGROUP, SMP, CFQ, and ASIC updates.
  • Hacked our PANEL driver to allow HIGH BRIGHTNESS MODE to persist between screen off/on events, also hacked it to actually print its value in its sysfs interface to allow for a proper Synapse implementation. You can now enable/disable it via a checkbox, which includes the ability to have it set by default if you so choose (dangerous to an extent guys, so be careful of course.)
  • HACKED a SIGNIFICANTLY STRONGER HAPTIC feedback strength into our motor's duty cycle, and removed conditions based on Vibetonz' testing commands. So now you have a truly unlocked, powerful haptic device. I separated it into its own Synapse section that will be updated if I choose add sweep2wake stuff or what have you. Also included is the ability to set your capacitative button lights directly with the hardware, as opposed to relying on Sammy settings.
  • More probably, as per usual, supply me with logs if you have issues. If not, your issues mean nothing to me.

UPDATES - Mark81 - January 22, 2017 CHANGELOG:

  • Reverted a "hack" that some of tried to make wifi sleep better. It doesn't work for us so I dropped it. Instead I borrowed wifi sleep logic from an updated version of the bcmdhd 4335 driver and it's napping like a baby.
  • Implemented a little google services wakelock fix for a friend of mine, but I figure anyone having issues there will find useful.
  • Turned OFF protected hardlinks and symlinks by default, it was a patch known to have adverse affects on some userspace programs.
  • freezer and percpu semaphore updates
  • switched to a freezable workqueue for secbattery so it wakes the device less often while sleeping.
  • Added Synapse toggles in the Memory section to fine tune some of the new VM Pressure tunable I've added. Explanations for them can be found in Synapse.
  • Some kgsl/mdp updates that make the screen colours look beautiful.
  • This bad boy is FAST.

UPDATES - Mark80 - January 21, 2017 CHANGELOG:

  • Updated bluetooth to use my Note3's bluesleep driver. So far I am seeing less errors.
  • Backported Android's alarm driver and the kernel/time/alarmtimer core from linux 3.14.
  • NEW POWERSUSPEND Version 2.2. Driver now handles fast screen on/off events properly by ensuring that the previous workqueues acquired for a state change are cancelled upon changing to a new state. Applied the same logic to STATE NOTIFIER.
  • Also incorporated sysfs options to sync the filesystem on powersuspend and autosleep. Both are available in Synapse. If you are worried about filesystem corruption upon suspending, choosing one of these options might be a good idea. HOWEVER, note that syncing is an expensive operation so it will take longer to enter into suspend.
  • A TON of sequential PM updates (I am simply going through all of the patches from 3.4-3.14, so we are getting updates all the way through my endeavors. Our base as of last night is 3.7)
  • Wifi now utilizes the installed SYSTEM's firmware instead of relying on older kernel configurations, so this should improve compatibility with newer firmwares (fingers crossed, though, I mean I can't really test that).
  • GUTTED a ton of config options that brought the kernel size down to like 9.8 MB's or so. If anyone misses having cifs let me know, but for now I prefer not using it.
  • General backend updates as per usual. I am updating everything found in the /kernel, /lib, /mm, /block, /fs and /drivers (drivers can be tricky, I use my discernment in this area) sections that are built for our device in my attempt to get us to 3.10ish, so those backend updates are ALWAYS a part of these updates. Again, if you're interested, feel free to check out my (heavily curse-word-laden/NSFW) commit history to see where we stand. Apologies for my foul mouth but, to my defense, it's not as bad as Linus'...lol.
  • Have fun! UPDATES - Mark79 - January 17, 2017 CHANGELOG:
  • BIG bluetooth updates. I basically used as much logic from Sammy sources from more recent devices (note 4 mainly for this one), and fixed all of the sleeping while atomic BUGS. That said, I've done what I can for now with the driver with the limited time that I have for it, so I also integrated the option to turn off the wake lock for it in Synapse under the POWER menu. There are also some new settings in there for you to check out.
  • FS updates, I am this close to the overhaul of the scheduling code I can taste it! But until then our filesystem logic is getting better and better.
  • Changed the "battery full" logic back to Euro sources from I337m sources, battery life seems better.
  • Bumped out some of our gpu bandwidth values as per hardware reference design specs.
  • Like just a TON of low level updates that explaining here wouldn't do justice. I definetely recommend having a look at my recent commit history if you're interested. -Enjoy!

UPDATES - Mark78 - January 15, 2017 CHANGELOG:

  • FIXED BLUETOOTH - I personally had a look at the driver, compared it to better versions of the driver, and hacked in a working solution for now. Might have glitches but for now at least it works (and sleeps) without panicing.
  • Faster KGSL pmqos levels.
  • Added the LPM test framework and updated the lpm resources a bit
  • Continued transferring UAPI related headers to their own folder within include
  • Things are going well.

UPDATES - Mark77 - January 14, 2017 CHANGELOG:

  • FIXED the dpm run callback/mmc suspend resume issue utilizing some hacking and fixing missing alarmtimer suspend resume code. (knock on wood)
  • Thanks to the above, utilizing async suspend by default.
  • INTELLITHERMAL - exported the number of frequency steps to lower during frequency mitigation to sysfs, and included it as a setting in Synapse. Faster frequency mitigation could mean lower heat and faster return to regular operating freqs.
  • Added some neat upstreamed backend code.
  • Changed Intelli_plug defaults to be WAY more aggressive, so you should see a lot less lag. You may want to adjust according to your preferences (especially if you're a battery person).
  • Workqueue updates (they are awesome ps)
  • Things are rocking. BLUETOOTH IS BUGGERED!!! WORKING ON IT!!!!

UPDATES - Mark76 - January 13, 2017 CHANGELOG:

  • Upstreamed a lot of timekeeping code with more to come.
  • Major work on the msm_sdcc controller which was the source of the panics (the systemui crash, etc)
  • Some block/mmc updates related to the above
  • Added a button in the Memory section to do a FULL cache drop, which does the regular cache drop plus removes app caches (takes longer but frees up lotsa stuff).
  • MSM LPM patches, BAM patches, a ton of odds and ends here and there. I added in upstreamed pm runtime force suspend/resume functions that I might use if I see further callback errors that could use a little weight, we'll see.
  • Faster, better, more reliable. SEND ME LOGS INSTEAD OF JUST POSTING.

UPDATES - Mark75 - January 12, 2017 CHANGELOG:

  • NEW UNINSTALLER - I moved the Synapse apk into its own folder in priv-app, so the new uninstaller is a must.
  • Upstream patches for linked lists, smp (now it is PER CPU), and timekeeping code
  • Working on any restart bugs from alarmtimer sleeping by updating the driver as well, not entirely finished but got a good head start and am seeing good results.
  • Added Synapse settings to control MMC Dynamic Clock tunables.
  • Fun stuff, lots of maintenence patches.

UPDATES - Mark74 - January 11, 2017 CHANGELOG:

  • A few more updates to mmc and timer logic to help with our stubborn mmc driver.
  • Stabilized mdm a little more (to the best of my ability thus far, at least). I will keep working on it.
  • Grabbed an important patch from the mailing list --> http://www.spinics.net/lists/stable/msg01396.html that should fix some of the URB unlinking errors we have seen when radio issues comes up.
  • More updates, here and there, to the blk_issue_rq functionality that I think solves a MAJOR issue we were seeing. When your device wakes up and the apps are force-closing, etc, this was a patch that was directly linked to the backtracing I did.
  • Got rid of the unused adsp ion heap that we don't use and takes up memory that can be used for our needs instead of wasted!

UPDATES - Mark73 - January 11, 2017 CHANGELOG:

  • MAJOR UPDATE!!!!! I have caught up on the FS commits I had been missing previously, including a very tricky to implement BINDER commit that makes our device run like a billion percent faster!!!!!!!! I HAVE BEEN TRYING TO DO THIS FOR MONTHS!!!!!!!
  • So far I believe I have done some good work in the Wifi/mmc/alarmtimer suspend/resume code. For instance, I am using an older (legacy style) suspend/resume method for mmc that seems to be more agreeable to our wifi drivers (which are somehow linked because everything on our board is wtf). Also, I personally hacked in pm_ops for our sec_fuelguage driver and took some updates from Note3/GS5 sec_battery code to make it poll less often, which saves us battery and is safer for suspend. MMC is still a PITA and a WIP, but I have some leads on it that may help...so far i have bandaided it'
  • Synced our IDR lib with 3.6
  • a ton of ext4 updates
  • a MODEM fix that may or may not be useful for those of you having issues. I'm lucky I guess, I don't have issues with or without the "soft reset" function that was taking place on boot, but I disabled it for now in hopes that avoiding it means those of you folks with unlucky hardware catch a break. The logic is sound anyhow, as the modem driver ENSURES that the soft reset happens on shutdown/reboot anyway, so doing again on boot is probably overkill for some people's radios.
  • For those of you on ported roms having gaming issues, perhaps the game manufacturer is expecting a higher version of binder that uses an upstreamed, low-level fd_install syscall...either way I've implemented it along with the fs updates mentioned above, so fingers crossed it helps.
  • Enjoy folks, this one is a big deal. (pretty much my personal best thus far)
  • Except for the need I have to update mmc...

UPDATES - Mark72 - January 8, 2017 CHANGELOG:

  • Fixed a stupid mmc suspend/resume bug
  • Personally added a check for first boot in State Notifier so that it's call is skipped when the screen first comes on. I know judging from the logic of the driver that it's partially overkill, but rather safe than sorry and it has been bugging me to no end.
  • Fixed a LONG standing Workqueue bug from a doubled patch that was probably added months ago. THIS FIXES MOST THINGS.
  • Added and updated Qualcomm's hardware JPEG 1.0 driver, as well as updated the hardware crypto driver a great deal.
  • It's lookin good so far. Enjoy.

UPDATES - Mark71 - January 8, 2017 CHANGELOG:

  • HSIC backend bringup
  • GPU/KGSL bringup
  • Synapse - fixed up the presets functionality, especially switching from Rollo's Battery Saver to the others.
  • SOUND - extended the min/max dB range to -30 and 30. BE CAREFUL, IT GETS LOUD and WILL break your speaker.
  • I'm working on some other fixes as I write this, but it's working pretty well thus far with this configuration.

UPDATES - Mark70 - January 6, 2017 CHANGELOG:

  • I worked hard to make this one a stable one for you guys
  • FS bring up is finished up to the point where binder becomes involved, there is a small patch set that I will need to do some custom hacking through in order to maintain compatibility with our HAL, so wish us all luck in that area because any continued development of this kernel sort of hinges on that area.
  • Fixed an issue with Synapse displaying the annoying message every time it opened.
  • Fixed a kgsl suspend issue that was caused by an "optimization" patch for our 3d gfx driver. Learned my lesson there.
  • Added an extra battery savings preset made by one of my friends/testers Rollo. It's a bit of a drastic profile if you ask me, but he swears by it.
  • Enjoy

UPDATES - Mark69 - January 4, 2017 CHANGELOG:

  • More backend bringup, primarlily within the vfs/fs/block subsystems in order to catch up with our mm/scheduling code. I'm close! Soon I will be able to get back to scheduler/mm/general upstreaming.
  • Against my better judgement, but due to constant harrassment from my lovable testers, I have implemented very very rudimentary pre-made presets in Synapse. Don't get too excited, as I am not a very adventurous tunable tweaker.
  • As always, more to come.

UPDATES - Mark68 - January 2, 2017 CHANGELOG:

  • Fixed an issue with mdm/bam_dmux that was resulting in a crash
  • Fixed a couple short-lived bugs that Mark67 introduced but were fixed almost immediately in a beta release.
  • More of the massive fs backend updates, as well as updates to the namespace backend that have started a mass-transformation to the current kuid kgid setup over uid gid (with a wrapper for compatibility, of course).
  • Added a tcp congestion algo driver called sociopath, basically a standalone reno with some maxxed out tunables. It's...well it's reno...
  • Work work work, it's all i do, enjoy.

UPDATES - Mark67 - December 30, 2016 CHANGELOG:

  • FIXED a RANDOM REBOOT issue occuring rarely when switching on airplane mode that was caused by bluetooth (even when it wasn't on), involving some well placed config changes, as well as a couple hacks, and topped off with some choice picks from @dorimanx (thanks man)
  • One BIG dma/cma update that rocks for gpu/ion-related memory mapping, essentially makes over-mapping memory a stable process as opposed to the method being used before.
  • MAJOR FS updates that are making this badboy FLY and the battery life pretty great too.
  • Due to the filesystem changes, I now perform fstrim only on FIRST BOOT upon installing this kernel, as it really helps with some of the clutter that comes with changes to how the filesystem is handled.
  • We are inching closer and closer to some of the biggest changes our kernel/device will ever see.

UPDATES - Mark66 - December 29, 2016 CHANGELOG:

  • More dma/cma/memory updates
  • This is another stability update, one that will make your phone feel far more...solid I would say.
  • Warning, I can only test on firmwares up to PA1, as anything above that requires a bootloader/modem combo that won't be released for my variant. It is a limitation, yes, so if anyone has an extra i9505...
  • it's pretty rock solid man, got a lot of fs bringup to do in the near future.

UPDATES - Mark65 - December 26, 2016 CHANGELOG:

  • Pretty much just a maintainence release with tons of the usual core updates (over 400 commits worth).
  • Way faster though, and very stable. (finally)
  • Also added a zip binary in sbin, and updated the "All Logs" feature in Synapse to zip up the logs instead of the frustrating gzip we were using before. That said, now you have a zip binary that you can use for anything.
  • Updated Synapse to show current random Entropy available.

UPDATES - Mark64 - December 22, 2016 CHANGELOG:

  • more core upstreaming (eventual goal is to get cool stuff like zcache, etc working)
  • FIXED voice call bugs
  • FIXED slimbus issues/anything else related to slimbus/audio/etc.
  • MAJOR work done on BLUETOOTH SLEEP --> PLEASE try it out and send me logs if you have problems still.
  • Kernel base is now pretty much somewhere between 3.5-3.6, however I will keep the versioning at 3.4 for certain functions that depend on kernel_version conditionals.

UPDATES - Mark63 - December 20, 2016 CHANGELOG:

  • another HUGE update
  • a great deal of updating to mmap, domain and memory management
  • some fuse/ext4/fat updates
  • MSM IPA DRIVER --> this is more of a framework than a single driver, which will eventually take over msm subsystem communication.
  • VREG updates for reading/writing voltage directly to pmic instead of acting on cached values, meaning everything is calculated in real time
  • included rmnet_bam driver, and it is working, and radio/wifi are as stable as ever.
  • many more under the hood updates.
  • i guarantee you your device will have never felt so responsive/fast. Enjoy!

UPDATES - Mark62 - December 19, 2016 CHANGELOG:

  • HUGE update
  • Completed a patchset in MM (memory management) that I have been working on for a couple months now! AND finally got it all compatible and smoooooth. Seriously, it will feel like a new phone.
  • Synaptics touch driver - turns out the driver was using fb_notifier by stock defaults as its sleep/resume mechanism, I changed it to power suspend and now sleep seems even better.
  • Updated some ipc_mqueue parts, for greater compatibility with what is now pretty much a Linux 3.5 base.
  • nfs updates
  • Went on a logspam hunt.
  • Removed Power Efficient workqueue option from Synapse again. This time because, upon reviewing the code, I am entirely convinced that they are dangerous and unstable unless starting from a much higher kernel base. Their hooks have been removed from all of my code and now only their dormant skelaton remains should I should to implement them again in the future. Don't argue this one, you won't win.
  • started working on a couple little projects that won't see the light of day for a while, but future planning is an important part of any big project.

UPDATES - Mark61 - December 18, 2016 CHANGELOG:

  • Removed HIGHUSER Binder flag, as it doesn't seem to be helpful for Lollipop.

UPDATES - Mark61 - December 18, 2016 CHANGELOG:

  • Updated RAMDISK to PK2 binaries, and already have samsung working on releasing the sources to us to see if there is anything there that is more useful than bloody PI1 was.
  • RCU timing mechanism --> updated it to use a much simpler, short-interval friendly timer over the hrtimer that was being used before, which wasn't optimized for such usage.
  • mdm2ap [modem to APPS] gpio - increased the pull mA value in the board to match the gpiomux value, which is 8mA as opposed to the (better for battery, but worse for a stable connection) 2mA it was before.
  • lowered preemption latency in smp processing, exported qup_i2c so that drivers that rely on it earlier in the boot cycle can call it, applied some awesome upstream patches to our panel driver framework...man that's just the beginning
  • major updates to vfs, ext4, mmc core (set the voltage only at power up, not at every scan)
  • tty/serial updates - including some manual edits from yours truly to fix up the locking and occasional sleeping while atomic BUG i would see in some of the logs. Bluetooth, radio, and wifi should sleep better now. (hopefully, but you still may want to turn BT off while sleeping)
  • mdm9215 (our modem) now has mechanical headset detection alongside the mainboard.
  • MASSIVE upgrade to our generic clock framework
  • removed a 1ms delay from emmc card reading process as it was required years ago for older sandisk cards but not anymore
  • trimmed some fat, upstreamed here and there
  • Added device props to the ALL-LOGS function, so I can see if there are any build properties giving you trouble while debugging your logs.
  • Changed BINDER flags to HIGHUSER. If anyone has binder issues, I will revert this. But so far it is working well :)
  • More I'm sure, you'll notice this is the FASTEST build I've made yet.

UPDATES - Mark60 - December 16, 2016 CHANGELOG:

  • Reverted the "mmc wakelock fix," as it DID end up causing random reboots when switching airplane mode on (how? qualcomm.)
  • UPDATED BUSYBOX version to 1.25.1, as well as my toolchain to Linaro optimized a15 cortex, hardfloat, graphite build, version 5.3.1. It is amazing in itself! Graphite offers an optimized memory algorithm called polyhydron. It makes this thing a hundred times better!
  • RADIO fixes, I no longer have data drops with some of the changes I've implemented.
  • Changed certain delayed workqueues BACK to queueing instead of modding as they needed to be originally set, not changed (my bad).
  • kgsl (gpu, graphics) memory optimizations, this thing is FAST
  • removed a power efficient workqueue in the network phy driver, too dangerous for such a core function.
  • crypto algorithm updates
  • time overflow check, making sure that the timer cannot overflow
  • PANEL - FINALLY got FAUXS COLOR PANEL TWEAKS WORKING!!! They are still in the same place as always, and unfortunately have two restrictions, 1) they only work once you lower the brightness by like 20%, because of my hacked higher brightness, 2) you have to change brightness to see a change. I am able to workaround that, but it utilizes a built in function that is fundamentally unsafe so I would rather not. It's a unique, interesting look though so feel free to try it out.
  • PANEL - Made the default panel color far more vibrant and "real" looking. Perhaps "saturated" is the way it looks. Either way, if you don't like it, it's not like you don't have a million options in Synapse to change color to your liking :)
  • This one is running pretty darn stable for me. Have fun.

UPDATES - Mark59 (Next2) - December 14, 2016 CHANGELOG:

  • this is one of my "in between" builds that has some interesting features.
  • ACTUALLY fixed sound artifact.
  • release mmc wakelock on system suspend. This could either be great for battery life or cause random reboots. let's find out!
  • attempted to extend the range of brightness, needs further work.

UPDATES - Mark59 - December 14, 2016 CHANGELOG:

  • Audio timer tweaking, as well as a variable fixup in the power amp driver. Either way there are NO artifacts.
  • New ALL LOGS button in Synapse. I used a script to pull ALL of the logs and device properties, and zip them up using gzip so you have one file to send me instead of a million.
  • implemented per-thread vma caching, essentially a far more efficient way of caching work that so far has made the device far speedier, will check it for bugs, of course.
  • Far more robust and thorough folder creation process upon first boot.
  • General kernel, synapse, and ramdisk code improvements.

UPDATES - Mark58 - December 13, 2016 CHANGELOG:

  • audio artifacts were broken and fixed again (?) --> again, comes with the territory of me trying to max it out
  • A TON of GPU/ION/IOMMU updates
  • Optimized video buffers for speed
  • Fixed runtime clock control for the MIPI (panel framework) interface. Samsung had hidden a bunch of functionality by intentionally mispelling RUNTIME as RUMTIME. Anyhow, now we have full hardware panel 60 fps support.
  • Hacked a little around the panel driver, we should see a little more diversity throughout the brightness levels. Also, reduced some logspam in that area.
  • Audio is crisper.
  • A TON of backend modem/usb/bluetooth driver updates that have now kept both radio and bluetooth pretty darn rock solid for a few days it seems. Note that I had one RR (kernel panic is the real term, a normal linux occurance when testing new code ;) ) when i left the phone to sleep with Location (gps) on. So... you know, turn off your gps if you're going to sleep.
  • SYNAPSE: updated READAHEAD to allow for 64kb MIN and 8192kb MAX for BOTH sdcards.
  • SYNAPSE: added a toggle under ADVANCED to enable or disable ADAPTIVE TIMER in the BAM DMUX driver. The BAM driver is responsible for a ton of information transfer between things like radio, usb, sound, etc, and has a FIXED timer by default. If you enable the ADAPTIVE timer, it will time out based on information load instead of its default fixed values.
  • I am currently experimenting with an IN rom method of dealing with radio hanging. If i determine it to be successful, I will pass it along via Synapse with the next release.

UPDATES - Mark57 - December 11, 2016 CHANGELOG:

  • shit i accidentally deleted the changelog before saving it. oh well. it was almost stable, but not really until my third test release after this version. So...just look through my commits for this one, folks.

UPDATES - Mark56 - December 10, 2016 CHANGELOG:

  • REVERTED ALL PI1 CRAPPY UPDATES. Sorry guys, but samsung replaced a bunch of potential network leaks with memory leaks, and bluetooth sleeping failures, leading to modem failures, and kernel panics, and the list goes on. If you want security updates, don't root your phone, and definitely don't use custom kernels.
  • Reverted a couple of touch input patches which sucked, including enabling expanded abs.
  • fixed up a couple issues of cohesion between the 3 bloody different board files we use.
  • Added the ability to enable and disable Heads Up Notifications in Synapse, under Extras.
  • Probably more, but this bad boy runs well again. (finally)
  • Disabled pm async again.
  • I hate PI1.

UPDATES - Mark55 - December 10, 2016 CHANGELOG:

  • Same as below, but with the added benefit of --> no kernel panics from a couple of stupid camera/media-video patches I tried.
  • Back to regular pm suspend, no async for now my friends.
  • So TLDR fixed the RR.
  • Moved PM ASYNC from "extras" to "advanced" in Synapse.

UPDATES - Mark54 - December 10, 2016 CHANGELOG:

  • Lots of changes on this one.
  • Broke and fixed the sound artifact again. Realistically, it is going to come and go as I update both backend and platform-specific code. I appreciate your patience and will use this moment to remind you that I'm doing this for free ;)
  • REMOVED the NVIDIA "power efficient" patchset that our scheduling had come to rely on, so things are zippier from that. Also had to go through and fix some of the scheduling fallout we had from relying on that, a BIG THANKS to my TESTING TEAM (ya'll know who you are, you lovable hoodlums) for dealing with a ton of unpredictable test-builds and helping me refine that section.
  • UPDATED MSM ION to where it should have been for a while, the changeset was entirely complete except for the ion driver itself. Expect faster memory management.
  • Another recent (hopefully not in vain) attempt at modem standardization. It would appear that different devices and network providers are contributing factors to modem issues, but I know I can get to the bottom of this eventually (and will continue working my rear-end off!).
  • IOMMU was apparently ready for the next stage of updates, which helps us further update the backend now that it is actually working well with kgsl/gpu stuff. Actually, the vfe code was still configured to use *token passing despite my having reverted the rest of the system, so I'm surprised at the lack of failures (and not surprised at the failures I saw). Moreso, I'm disappointed in the GCC compiler :P
  • Oh man lotsa stuff. Customised our Wifi driver to be less restrictive with packet length, and less frustratingly "secure" via the Samsung PI1 code (which seemed all fancy but I really think had a lot of broken stuff in it). Also I updated and optimized the heck out of that area.
  • more BAM driver bring up, I'll letcha know when the cool stuff with BAM starts happening. I've imported the IPA driver which is a step in the right direction at least.
  • my build scripts are more convenient for me...so increased my efficiency, one could say? That kind of affects you.
  • removed a ton of unneccessary tracing in kgsl, dcvs, and similiar drivers that don't need it.
  • enabled pm async again by default, hopefully we don't regret this.
  • bluetooth fixes and such to try and fix our weirdo suspend aborts leading to shutdowns. Though I know it has to be rmnet related and trust me, and working on it. Anyone here familiar with URB XFER messaging api's? If so, please drop me a line.
  • Overall...I'm gonna say this is a more experimental build than I've been releasing for a while, and a significant reason for that is some of the in-between codebase we have going on. I will work on it some more, and again reiterate that this is for free ;) Help me test please!
  • Enabled Expanded ABS just to try it out. Lemme know how touchscreen stuff goes... -TMO firmware seems to work fine for all devices, so I switched over to it as default for now until I determine that to be a problem...

UPDATES - Mark53 - December 8, 2016 CHANGELOG:

  • Fixed an SSR callback notifier that was causing a kernel panic. Some subsystems on our phone just aren't meant to be restarted here and there. But luckily my testers' logs led me right to the offending driver (and even the commit that turned it evil).
  • Semi-Modernized the slimbus driver, at the very least separated out the driver in accordance with newer versions of it.
  • Updated my firmware building process, and now the sensor firmware even builds better! Doing things like auto-rotation during youtube playback will actually work now!
  • Speaking of firmware, I'm trying a little experiment with this release, and releasing a "TMO" version of the kernel. Apparently the TMO audience firmware alllows for wb-amr audio. I can't tell you if it will work on a EURO device, but it works on any I337(m) based device, but it may be worth a shot. If it ends up working for everyone, I will probably just switch to using that firmware.
  • Thanks to @Andycar , we now have the SCREEN FLICKER and ADAPTIVE CHARGE fixes available via SYNAPSE!
  • That's it I think, she is running well.

UPDATES - Mark52 - December 6, 2016 CHANGELOG:

  • Fixed Camera. WARNING: when you open your camera app you MAY get a message saying UPDATING CAMERA FIRMWARE. This is normal and it's not actually doing anything other than reading the appropriate camera binary info (hence the bug on the previous version.)
  • Fixed the mdnie sysfs "show" values so the system doesn't struggle with reading and changing them when it needs to. As a result, got better at scripting the backend. FYI the difference between [ $variable ] and $variable is intense! Double brackets for the win...
  • I am pretty sure the sound artifacts are gone, I've tried to make them happen but they refuse to bug out :D
  • Fixed an audio slimbus "wakelock" (sort of wake lock, it was a clock that wasn't sleeping properly, now it is)
  • A few networking updates here or there.
  • Returned a couple of clocks to their stock values.
  • This one runs pretty hot at first and then cools down, but remember you have thermal control options at your fingertips in Synapse! And you can always turn down screen brightness...

UPDATES - Mark51 - December 4, 2016 CHANGELOG:

  • Synchronized the three board files' gpio pull values for MODEM startup, as one of my users reported an issue. Also I am reattempting an old hack that gives us the same modem reset capability as generic 8x60 devices...so...you know how the modem is. Fingers crossed!
  • Updated some of our driver framework to 3.5, so be warned that bugs could arise from this. However, based on my last few hours of testing, the device seems to be running even faster.
  • boosting updates to Machinactive
  • SYNAPSE - created an alternative configuration for users who aren't using an external SD card, so Synapse looks pretty again.
  • maybe more. been a long night. can't sleep.

UPDATES - Mark50 - December 3, 2016 CHANGELOG:

  • NEW Interactive Governor. It is a billion times faster and more stable than the last one, which was causing panicky issues.
  • NEW Governor by yours truly, Machinactive. I needed to replace electroactive because it was far too buggy, so machinactive is my solution for a performance-based interactive governor. It is based on hellsactive with a few additions/changes by yours truly, with more to come!
  • CPU-BOOST - Added back the ability to enable/disable input boost independantly from the the frequency selection, so you can have any of the boost functions running without dependancy on any of the others being enabled or disabled. (i still don't recommend disabling it though) It is controllable in Synapse.
  • Also I ensured that CPU BOOST respect CPU HARDLIMITS now.
  • State Notifier - changed the workqueue to a shared, system scheduled work function like powersuspend and binder, because anything controlling sleep shouldn't be rescheduled by the system.
  • more memory, scheduling, etc. updates as per usual.
  • WIFI - hacked a little trick to keep wakelocks down when device is idle.
  • Modem - I have been hacking away at the modem and subsystem restart code as per usual, and it isn't dropping for me at least.
  • MDNIE - Though I eventually want to implement full fledged mdnie hijack (which isn't too far off, btw), in the mean time I am sick of apps like CAMERA taking control of mdnie and changing the Scenario Mode behind our back. So I built in a little mdnie_lock that is similiar to Sound Control, in that NOTHING can be changed or altered when the lock is enabled. Controllable via Synapse.
  • Better slimbus adjustments for sound...
  • KNOWN BUGS: I am still working on that bloody sound artifact when the device is muted. HOWEVER, the issue is most likely the msm drivers attempting to apply digital mute but being overridden by the sound control locks. SO. I will continue working on it, but if it comes down to artifacts vs. NO Sound Control, I'm afraid the call would be to keep the artifacts because I flat-out REFUSE to give up sound control. If anyone familiar with the codecs can pitch in, I would be grateful!
  • Have fun kids.

UPDATES - Mark50 - December 3, 2016 CHANGELOG:

  • NEW Interactive Governor. It is a billion times faster and more stable than the last one, which was causing panicky issues.
  • NEW Governor by yours truly, Machinactive. I needed to replace electroactive because it was far too buggy, so machinactive is my solution for a performance-based interactive governor. It is based on hellsactive with a few additions/changes by yours truly, with more to come!
  • CPU-BOOST - Added back the ability to enable/disable input boost independantly from the the frequency selection, so you can have any of the boost functions running without dependancy on any of the others being enabled or disabled. (i still don't recommend disabling it though) It is controllable in Synapse.
  • Also I ensured that CPU BOOST respect CPU HARDLIMITS now.
  • State Notifier - changed the workqueue to a shared, system scheduled work function like powersuspend and binder, because anything controlling sleep shouldn't be rescheduled by the system.
  • more memory, scheduling, etc. updates as per usual.
  • WIFI - hacked a little trick to keep wakelocks down when device is idle.
  • Modem - I have been hacking away at the modem and subsystem restart code as per usual, and it isn't dropping for me at least.
  • MDNIE - Though I eventually want to implement full fledged mdnie hijack (which isn't too far off, btw), in the mean time I am sick of apps like CAMERA taking control of mdnie and changing the Scenario Mode behind our back. So I built in a little mdnie_lock that is similiar to Sound Control, in that NOTHING can be changed or altered when the lock is enabled. Controllable via Synapse.
  • Better slimbus adjustments for sound...
  • KNOWN BUGS: I am still working on that bloody sound artifact when the device is muted. HOWEVER, the issue is most likely the msm drivers attempting to apply digital mute but being overridden by the sound control locks. SO. I will continue working on it, but if it comes down to artifacts vs. NO Sound Control, I'm afraid the call would be to keep the artifacts because I flat-out REFUSE to give up sound control. If anyone familiar with the codecs can pitch in, I would be grateful!
  • Have fun kids.

UPDATES - Mark49 - November 29, 2016 CHANGELOG:

  • Powersuspend 1.8.1 --> I had another look at the driver and made the following changes: a) dropped the autosleep, hybrid, and userspace modes in lieu of simply using the panel hooks, as panel mode is the only one that works consistently. b) removed the capability to write anything to the sysfs, so that the powersuspend driver is now simply a background driver that takes care of business without the need/ability to adjust from userspace. c) cleaned up the initialization code, and d) updated the workqueue to the more consistent sched_work instead of the deprecated queue_work using create_singlethread_workqueue. The Suspend/Resume function is WAY more consistent now, and is no longer queued using an interuptible method. I'm proud of this one!
  • Binder --> made the same workqueue change for Android Binder. It's actually where I got the idea for the powersuspend update.
  • WAY more backend bring up, getting us ever closer to (at least) linux 3.5, if not 3.6...
  • Re-enabled the RTB config option, as well as re-added the commandline entry for it. Turns out some parts of the msm-cpufreq driver rely on it for notifying state changes (very relevant for idling).
  • Re-enabled pre-allocated wifi, and I find that the connection is much more stable now. Especially because I also added some more dependency code for our codel net-queue (bql).
  • Disabled strict memory rwx. Though it may sound unsafe, it is actually a major cause of lots of the sluggishness for our device, so I think I made the right call. Besides, if you are rooted and using a custom kernel, you are opting for more control over your system anyhow ;) actually, this makes everything run more effortlessly.
  • Interactive and Alucard governor fixes, gonna do a governor fixing overhaul one of these nights and squash any silly timer bugs or doubled lines of code. I might actually make the default governor interactive for the next release, as it is BLAZING fast (eats battery with the tunables I set because I like speed, but that's what Synapse is for).
  • little bug fixes here and there, everywhere. I now have a separate repo that I am using as an external upstreaming branch, so this one will receive only stable/helpful patches from here on in....until I decide to experiment more and break everything ;) Enjoy!

UPDATES - Mark48 - November 28, 2016 CHANGELOG:

  • Busybox is FINALLY being installed to my liking. It is ONLY in xbin and is working just fine. NOTE: after setting up all of your Synapse settings, a reboot will fix any Synapse-related bugs (mainly constantly showing that stupid "synapse couldn't apply your settings" message.
  • The rest, honestly, is comprised of just filling in the blanks between what I have already upstreamed, and what needs to be upstreamed for compatibility, etc. I have been working my tush off to try and get this thing officially to at least 3.5, and am a couple hundred patches away from doing so. Only issue is a need to synchronize the codebase between mm/swap/zcache/lmk which are all closely linked and MAJORILY fragmented in regards to their upstream journies. If you know me by now, though, you'll know that what I lack in talent, I make up for in persistence :)
  • Fixed the sound artifacts again.
  • Made some neato updates to our modem's backend that seem to be helping with stability, for those still having issues (mainly lower binned devices).
  • Try it out, it may have some bugs but that is the way it goes!

UPDATES - Mark47 - November 24, 2016 CHANGELOG:

  • Further updates to our modem initialization, mainly GPIO pull related.
  • Massive update to our memory management, page_allocation that had been missing some crucial functions being called by a lot of our drivers/etc. This should make memory consumption way better and improve any FC issues, etc.
  • cleaned up a couple little "sync" calls that didn't belong.
  • BIG RTC fixes that help with suspend, as well as a new flag/hook for mm/pm_runtime/etc that helps discern when it is safe to sleep.
  • rmnet_usb (modem backend driver) corrected for proper ARM endianness (little endian, least significant bit).
  • perhaps more...

UPDATES - Mark46 - November 22, 2016 CHANGELOG:

  • URGENT - Fixed MAJOR flaw in my busybox installation. I have checked and double checked and all is set up properly now.
  • UPDATE - Enabled MSM IPC Router, allowing the APPS and MODEM processors to communicate directly, bypassing Samsung's mechanism when necessary to pass messages regarding power/sleep/suspend and system state changes.
  • DISABLED unneccessary tracing functions by default in order to save TONS of CPU processing, Memory, and ultimately battery life.
  • FSTAB now mounts SYSTEM partition as NOATIME, resulting in much faster system operation as it no longer writes an updated time value each time a file is accessed.
  • ENABLED qrngd, short for Qualcomm Random Number Generation Daemon. This is a (not actually) hidden binary in our system that manages the HARDWARE entropy generator that we may as well be utilizing, and now we are, and it's awesome.
  • Updated some of our TCP defaults in the ramdisk with higher buffering values, as well as delack enabled by default for a little performance boost.
  • disabled knox in ramdisk again, as we really shouldn't be starting the useless service in the first place.
  • EVERYTHING is more stable now. The only DOWNSIDE is that the device seems a little hotter on first boot...but it calms down after a while.

UPDATES - Mark45 - November 21, 2016 CHANGELOG:

  • Updated remaining drivers to support cpuidleV2 (half of my code was already there, but due to a mixup the other half was missing the update)
  • REVERTED an RCU patch that was causing headaches and scheduling errors, turns out in my upstreaming process there will be lots of good and bad patches along the way. shrug
  • HACKED the crap out of the modem Subsystem Restart driver, so it no longer rejects the process without a restart reason.
  • HACKED the crap out of Electroactive and Elementalx, so they should no longer cause a panic on suspend. However, this is a bandaid solution that will eventually be unneccessary after another 8000 patches to get our scheduling code up to scratch.
  • Brought back a fix for a GPU memory leak that I had reverted last release. Not sure why I did, but I suppose I was testing something out. Either way, no more ridiculous memory leak.
  • FIXED BUSYBOX INSTALL. It works fine now, though you can always just install busybox on rails if you have issues.
  • A few more RCU/MEMORY updates
  • This bad boy feels stable. Though, admittedly, I have only tested it for a couple hours. Enjoy!

UPDATES - Mark44 - November 20, 2016 CHANGELOG:

  • A ton of backend updates to scheduling, memory, atomic activity, pagefaulting, etc. The rock-solid stability that I aim for is slowly coming into frame.
  • Fixed an RTC/timer race between wakeup and suspend that was causing us trouble, as well as more updated timer code including timer-skew functionality.
  • A LOT of gpu/dma/kgsl bringup that has resulted in a much smoother UI (in my opinion), and faster/better video performance.
  • Backported the "Codel" net scheduling algorithm from linux 3.8. Net seems to be fast and reliable, I have no complaints.
  • Memory allocation optimizations.
  • Backported in the "new" (for our device anyway) pwm framework api that will allow us to slowly update our drivers to run off of one pwm subsystem instead of having them implemented individually. This will mean less system resource allocation and less work for our processor. Future updates to this will come over time.
  • A great deal of filesystem and vfs updates, which will help us in the long run when it comes to io performance, as well as stability.
  • A few scheduler patches that fix a LOT of issues.
  • This may mean very little to the average user, but I FINALLY imported a fully functioning wakeup reason sysfs interface (hasn't been working till now) that can be found at /sys/kernel/wakeup_reasons/last_resume_reason. It is a place to keep track of the irq's that wake the system up (pretty much power or home button) instead of constant logspam.
  • removed Wireless Charging Toggle from Synapse, as I'm pretty sure that disabling it hurts more than it helps.
  • Added a MODEM/RADIO section in Synapse that is OFF LIMITS unless you are having issues. If you are one of the unlucky folks having radio drops/mobile network stability issues, please read the information in the section carefully and mix-n-match your settings until you find a workable solution. No guarantees, but it is the best I can do at the moment until I find a stable fix for the rmnet usb driver in the background that is causing us grief.
  • Generally I would suggest that this is a pretty darn smooth feeling update, and am personally happy with it.

UPDATES - Mark43 - November 16, 2016 CHANGELOG:

  • More reliable UCI service startup function at boot for Synapse. Although it was fine before, it is now rock solid.
  • removed some tracing functions causing unneccessary overhead in sections which no longer require debugging.
  • updated cpidle driver, and overhauled cpuidle functionality in the qualcomm power management driver, resulting in much more effective cpu idling. The Live idle stats in Synapse now reflect the time each cpu spends offline, as opposed to the the C states which have poor tracking mechanisms for our device.
  • squashed a lot of bugs of bugs and panic-causing code thanks to the combined effort of my testing team. You guys are the best :)
  • Fixed remaining missing powersuspend hooks throughout the code. Due to my scripting replacing CONFIG_EARLYSUSPEND with CONFIG_POWERSUSPEND, unfortunately a handful of drivers were left with the macro CONFIG_HAS_POWERSUSPEND and thus were not including the powersuspend hooks. Now everything covered by earlysuspend in the past is being handled by powersuspend.
  • Stole some more code from my Note3 kernel. Nothing more to report as of now.

UPDATES - Mark42 - November 12, 2016 CHANGELOG:

  • Went through the code with a fine-toothed comb and nipped any bugs I could find. Also ensured that the scheduling/workqueue/and file-descriptor code are all in sync.
  • Sound driver is completely fixed. We are talking no more of those sound artifacts that were heard on camera snapshots, etc.
  • I upgraded the sound control engine (fauxsound) in a major way. Cleaned up the signedness of the master switch, as well as the internal locking mechanisms. This has resulted in values that are set to 0 by default, directly in the driver!!! No more boot scripts necessary!
  • FULLY INTEGRATED BUSYBOX thanks to osm0sis and his genius skills. Version is 1.25.1. This is installed automatically when the zip is flashed and takes care of itself. The only thing that needs to be taken into consideration is roms that restore their own busybox. In that case, you will probably still have to use busybox on rails or replace the rom's busybox with the one in my installer.
  • LMK code ported in from my Note3 kernel sources, working great now that I have adjusted the minfree levels to reflect the new mechanisms for determining when to kill apps.
  • Added LMK preset profiles to Synapse in the memory tab, and fine-tuned Torch Brightness control in the extras tab.
  • Worked on my custom solution for modem some more and it is working very well! (so far)
  • Fixed any potential wifi issues by reverting some of the changes from the sammy update.
  • many other little performance/stability enhancements.

UPDATES - Mark41 - November 6, 2016 CHANGELOG:

  • Actually Fixed Suspend, as well as any reboot issues that were taking place.
  • Boot Scripts now have a 3 option conditional that should fix sounds issues for most usecases. One is for my personal preference, one is for normal stock users, and one is for those with VIPER installed.
  • Boot Scripts now detect potential init.d scripts that might interfere with proper booting, and save them in a backup in /sdcard/machinex/initbackups. I have UPDATED the UNINSTALLER so that those scripts are restored if you are flashing a different kernel. You're welcome ;)

UPDATES - Mark40v2 - November 6, 2016 CHANGELOG:

  • Hotfix for a scheduling patch that was preventing the phone from deep sleeping, and some safeguards in synapse as well (re-added async pm option in case it helps, and added an option for Intelliplug Suspend.).

UPDATES - Mark40 - November 6, 2016 CHANGELOG:

  • F2FS support. Backported in from 3.14. I don't have much experience with the filesystem, and as such can't really offer any real support. To be honest, reports have shown very little to gain from it after Android moved to the ART Runtime, but it's there if you know what to do with it and want to prove me wrong! If anyone wants to unpack/repack my ramdisk in order to add proper support, I can easily offer my services there. :)
  • This really doesn't mean too much, but I started using a hack that's not really a hack in order to prevent the little warning that "this kernel is not seandroid enforcing" on the splash screen. I always thought it was some big secret figured out by reverse engineering, but it turns out it's in the stock kernel build script for the 8794pro and it works on our device too. It makes me wonder what else we could change regarding the bootloader by writing something other than just echo -n "SEANDROIDENFORCE" >> $(pwd)/machinex-new/boot.img; (that's literally all it is).
  • Found a better place for PowerSuspend's Panel Hooks, as it's part of the core code and thus everything userspace is routed through it. That said, I think I have an even better location in mind. So we will see about that.
  • Powersuspend..again: It is updated to 1.7.1 from 1.6. It only changes state when a state is requested, so that allows the panel hook to be on by default without fear of "init" being treated as a "wakeup," and there is a handly little log message that proves it (fist pump). I tried out the autosleep and hybrid hooks again, but I would have to overhaul the workqueue structure of the driver in order to make it viable. From what I can see, it's not necessary, so I made some slight improvements to the workqueue allocation, leaving it bounded to the primary core, helping ward of atomicity errors in scheduling. Lastly, I changed the userspace controls to read only. You cannot change PowerSuspend from within Android, no matter how hard you try. This is for the best, as none of the other methods are fully functional or as perfect as the panel hook.
  • Modem hacking. As we all know, the modem seems to be the foremost peripheral on this "legacy" hardware to complain when anything in the kernel core is updated past linux 3.4. That said, I have been working tirelessly (that's a lie, I'm very tired) to improve it's consistency, and have been working on my own custom implementation of a poor-man's "subsystem restart," which newer devices (or just better ones from the same year) have no problem with. Basically we have a modem that will not give up if there is even a thought of it shutting off involuntarily. The code is a WIP but it is much stronger than even that of the previous release (which had some of my initial hacking but not nearly as comprehensive as this release's).
  • SDCC FRANKENDRIVER. So the FC's after sleeping for a while all had one driver that kept hogging the logs when it happened (i used adb to pull it when everything was crashing). Some flags in the sdcc driver were preventing the suspend code from suspending, and the conditions to resume from suspend weren't working because they relied on the device having been in suspend, so the device would just loop forever. This would allocate a ton of system memory and eventually cause the entire system to just start force closing like it was going out of style. I hacked together new and old code (necessary for our Frankenstein of a device), and have come up with a solution that allows the host core to sleep. FINALLY. And I reimplemented samsung's secure discard because we aren't using crc control by default, and I'd like to preserve your MMC hardware even though I've royally beaten the crap out of mine. Anyway, the issue shouldn't happen anymore. If something similiar does, odds are it was an issue that wasn't being reported because this sdcc crap was masking it. So you know...one bug at a time, that's the kernel hacker's mantra.
  • I removed the "Highmem" flags from binder, because using the normal zone seems to keep everything much more balanced. That said, you can tell that the on screen experience is like a split second less smooth , yet at the same time way faster? It's hard to explain. So if the experience seems *slightly choppier than usual, trust me I know about it and will work on a fix once I get some sleep. I've been up for 20 hours and I'm not a young man anymore, so I'll probably sleep for a day.
  • My usual small but significant updating of everything I can get my hands on to continue making this a full project instead of a garbage pile of hacks.
  • Overall, from my 5 minutes of having used it, this release seems to be much more stable than the previous few.
  • Tried a new method of enabling stock settings for sound and then disabling faux sound by default. Let me know how it works out for you people with sounds mods who i SHOULDN'T BE CATERING TO BUT YOU'RE LUCKY I LOVE YOU.
  • Oh yeah, if it seems to hang at the android is upgrading screen just toggle your power button or something a little. I dunno I'll work on that too.

UPDATES - Mark39 - November 3, 2016 CHANGELOG:

  • I can't sleep, so I tinker. Seriously, though I'm not Tony Stark, his lines often resonate with me.
  • MASSIVE update to the driver core code, including fixes for mmc, pm runtime, pm qos, and driver entry/exit/handling code. This bad boy fixes a lot of issues we have seen, though it remains to be seen what it might have broken. ;)

UPDATES - Mark38 - November 2, 2016 CHANGELOG:

  • Hotfix for WIFI related kernel panic on reboot -> this is a bandaid solution, as I've simply disabled asynchronous power management by default, made a couple other reboot fixes and switched to a more reliable toolchain. Also a couple other stability patches and ramdisk improvements. Beyond that, it's pretty much the same kernel. More work to come in the next few days but a family emergency has come up so I appreciate your understanding if I'm less involved than usual.

UPDATES - Mark37 - November 2, 2016 CHANGELOG:

  • REMOVED Overclock, it's not really necessary and was preventing devices with the lowest PVS value from using the kernel.
  • To answer your question, NO i'm NOT bringing Overclock back. If you want it, fork my repo on github and add it back yourself. Better yet, fork a better organized repo with less experimental code :P
  • FIXED - installer not removing STweaks, tested and working. FIXED MACHINEX FOR ALL DEVICES NOW!!!!!!!111!!!1!11!!11one1!!!!
  • Reverted powersuspend back to 1.6, 1.7 doesn't play nice with our SoC.
  • Fixed sound pops/crackling noises on boot. Beyond that, see the fix for it below.
  • Welcome to Mark37, EVERYONE!!!!!!!!!! WHOOOOOOOOOOO!

UPDATES - Mark36 - November 2, 2016 CHANGELOG:

  • Fixed the voltage range for devices with PVS values that the previous range didn't cover. My bad!!!!
  • Device is hotter now...I might just get rid of overclock freqs altogether. We will see.
  • Fixed a suspend/resume bug in sdcc that was causing the "bunch of apps force closing" issue once in a while (it might come back and need more work, but the patch says it fixes it)

UPDATES - Mark35 - November 1, 2016 CHANGELOG:

  • Reverted ALL hotplugs back to using a minimum of 1 cpu by default, as the minimum of 2 drastically decreases the amount of time spent in powercollapse for most of the hotplug drivers and I just won't have it. It can always be changed to whatever you want in Synapse.
  • Fixed a "bug" in Synapse...sort of. See, almost every pvs/speed-binning variant for our devices uses the krait 25000 uV boost by default, but the very lowest one does not. Therefore, the Synapse "default" setting would have been incorrectly setting the value to "Y" (yes) for a value that isn't universally valid. I wrote a quick script that reads the default from the sysfs interface so that potential issue is solved. It's part of my quest to find why the recent versions of this kernel don't work for 3 of my users so far.
  • MASSIVE MASSIVE MASSIVE UPDATE of the slub/slab/slob section, which I have been neglecting for too long but have finally updated to match the rest of the memory updates, and HOLY SH*T is the battery life/performance/stability improved!!!!!!! LIKE HOLY CRAP DOWNLOAD THIS KERNEL!!!!!!!!!! Seriously, I've been putting it off for ages because it involved a lot of manual bringup work, but IT IS FINISHED AND AMAZING!!!! MEMORY ALLOCATION IS 10000% more efficient!!!
  • Little bit of ramdisk updating/optimizing/the usual.

UPDATES - Mark34 - October 31, 2016 CHANGELOG:

  • More bug fixing, I've been pouring over my source and identifying issues like doubled code/patches, etc.
  • I think the radio is now 100 percent stable (again knock on wood, but this configuration seems very happy).
  • I'm using a different compiler that seems to be working quite well. It is the same version, GCC 5.3 with hardfloat, but seems a lot more stable. Heck, could be placebo, but I calls em like I sees em.
  • Changed default hotplug back to IntelliPlug, and the default min_cpus_online to 2. So far, battery life and performance seem to have a way better balance with this configuration so I'm confident with making it stock. In future updates, I may make interactive or stockdemand the default governor. We will see.
  • Raised default touchboost frequency to 1242 MHz, though keep in mind individual governors and hotplugs can override this value and usually do.
  • Disabled 'PM_SYNC_BEFORE_SUSPEND' by default just to test it out. We will see how that one goes. So far it's lookin good.
  • Got rid of adaptive vmpressure, because stock (still upstreamed like crazy) seems to be more consistent.
  • moved faux's voltage message to a much saner place, it will now alert ONLY on voltage change, not at device init.
  • Did some more work on my startup scripts and they are doing way better. One important change is the initial creation of all of the necessary folders on boot, so you don't have to clear Synapse Data or reboot to get profiles and backups working at first boot.
  • fixed the MPM driver by adding IRQF_NO_SUSPEND to its interrupt, as it is responsible for kicking cpu0 (our primary cpu) out of suspend and it's working a LOT better.
  • Moved Panel Hooks for Powersuspend and State Notifier to a better location in the screen-on process. (like a split second earlier, but that counts big time when dealing in nanoseconds)
  • Discarded some BS "inlines" in the kgsl driver that are treated improperly by GCC 5.0 and up, video playback seems smoother than ever (and yes, I am able to watch stuff in 1080 no problemo).
  • Overall, a MUCH smoother experience. The boot-time leds are tuned to an appropriately festive colour combo ;) Happy Halloween!

UPDATES - Mark33 - October 31, 2016 CHANGELOG:

  • Bug Fixes that I found while combing over stuff. This fixes radio (again) for the short term. If you have any radio drops, let me know and I'll release a quick "Next" version.
  • Working well.

UPDATES - Mark32 - October 31, 2016 CHANGELOG:

  • Fixed the cause of my own random reboot, which turned out to be the log toggles in Synapse. They are now both removed as, upon research, I found out that they are a well known cause of instability.
  • Integrated some stability fixes from an older branch of mine that were removed while bugfixing, and never returned until now. (radio is dead stable, knock on wood).
  • Improved memory management, including some cma (contigious memory allocation) fixes.
  • Adjusted certain elements of the 3.4.113 to our upstreamed sections for better compatibility.
  • Did some manual colour adjustments, and the screen looks AMAZING.
  • Introduced individual Hardlimits for all three LED colours in Synapse.
  • Remove unneccesary power options in Synapse, and moved the PM ASYNC toggle to the Extras Section.
  • Some ramdisk adjustments, just further trimming and optimizing.

UPDATES - Mark31 - October 30, 2016 CHANGELOG:

  • Updated to 3.4.113! >> This includes the security patch for the "Dirty COW" vulnerability.
  • Fixed the sound artifacts a couple of users were having...according to them at least!
  • LED - Realtime Colour Control in Synapse -> LEDS
  • Extras - Torch button in Synapse -> Extras
  • Added some updates from my Note 3 kernel, addressing scheduling-while-atomic bugs (a cause of occasional rr's) and other sammy stability patches.
  • Slim80's Kernel Cleaning Script NO LONGER REQUIRED as I have built a cleaning solution directly into Machinex's installer.
  • Enjoy!

UPDATES - Mark30 - October 28, 2016 CHANGELOG:

  • Further stability enhancements to modem/radio. Please test this out and provide logs if you experience any drops!
  • Ramdisk issues should be resolved again. In fixing dual boot configurations, it looks like normal boot users were having issues. I think I've made it universal enough to serve both use cases.
  • LED slope control added to Synapse
  • Sound updates to bring back some of that sweet sweet quality sound. Also I think I fixed the issue of sound artifacts when in vibrate or silent mode. THAT SAID, I MAY have broken VOIP, so PLEASE TEST and get back to me if I did.
  • Added another step of OC, 2106mHz.

UPDATES - Mark29 - October 27, 2016 CHANGELOG:

  • Fixed radio again (it was just a test patch gone horribly, horribly wrong).
  • Further Ramdisk adjustments that should fix Synapse Compatibility with the Dual Boot Patcher, yours to test @Andycar
  • Revamped the LED control driver, reverted our Ktoonsez implementation in lieu of Lord Boeffla/Yank555's (except kept Ktoonsez's really neat pre-boot pattern). Ktoonsez's is great, but the new implentation has some new features I really wanted: Toggle between blinking and fading behaviour, Speed, Brightness (Intensity), and slope adjustment. All of the settings are configurable in Synapse.
  • More general optimization, also disabled any knox apps that might be lingering on people's devices during startup.
  • Probably more. Dunno, feels smooth.

UPDATES - Mark28 - October 26, 2016 CHANGELOG:

  • More memory management updates.
  • Sound and video tuning, I'm hoping this fixes those voip crashes but I don't use voip so I need your logs peoples!
  • Very early adjustments to the ramdisk to allow for the Dual Boot Patcher to do its thing. Please test this for me @Andycar and anyone else who uses the Dual Boot Patcher.
  • went bug hunting and fixing for some of the bugs in logs I've received in the last few days. I think I got em.
  • Maybe more??

UPDATES - Mark27 - October 25, 2016 CHANGELOG:

  • Further updates to the camera, it is now much more responsive and stable.
  • Further updates to ion/iommu frameworks. You will notice, again, a userspace experience that is much more responsive and stable.
  • Haptic feedback is sharper and more pronounced for some reason
  • Built wcd9304 (sitar) drivers back in, I bet you dropping those was part of the reason for audio issues during network calling. Again, please give me LOGS if you have video calling issues. B*tching without logs is pointless and just makes you a jerk.
  • Set the initial CPU BOOST value to 1134000 and Wakeup Boost to ON. The device runs better this way I've found (you can adjust the settings in Synapse). Actually a note on that, if you disable the input boost (by sliding the frequency slider to the far left), make sure you disable the wakeup and hotplug boosts as well! Otherwise they will still try to boost but at a 0Mhz level and your system will freeze. You've been warned.
  • Everything is smoother and better. Enjoy.

UPDATES - Mark26 - October 23, 2016 CHANGELOG:

  • Added back "uaccess with memcpy" and it seems to make the modem more stable.
  • Got rid of useless power efficient workqueues because they are buggy and frustrating.
  • This seems to run much better than the previous version. Camera still works ;)

UPDATES - Mark25 - October 23, 2016 CHANGELOG:

  • VIDEO RECORDING IS FIXED!!!!
  • I don't do any video calling, etc, but try it out, let me know, and send me logs related to internet calling please.
  • Added a separate button in Synapse to allow you to apply the colour changes if you'd like. Be warned though, it's been well established over the years that this method is far from stable in the driver code.
  • A little touch up work here, there and everywhere.

UPDATES - Mark24 - October 22, 2016 CHANGELOG:

  • This is the same as the previous version, but with hotfixes for video and camera issues that have been reported.
  • Synapse -> changed KCAL back to requiring the screen being turned off and on again. The driver code is buggy so using the method I was would increase an unchecked counter to overflow. Until I fix the driver, all you have to do after setting the values is turn the screen off and on.

UPDATES - Mark23 - October 21, 2016 CHANGELOG:

  • MASSIVE UPDATE
  • No new fancy features yet, but I FINALLY fixed the RR (kernel panic) that came with hsic. Turns out it was in the power management core, and 3 lines of code fixed the whole bloody thing. No more "hsic failed to suspend" panics in the logs. No more instability there.
  • Graphics Update - Made 1080p way smoother, and I'm guessing this, combined with the memory management and scheduling updates will have fixed gaming for the most part. If not, we will figure it out soon as I'm overhauling the scheduling core.
  • Some touch/input updates that make the screen super responsive.
  • A little more refactoring in the ramdisk to make it faster and less cluttered.
  • KCAL in Synapse now updates the screen immediately, you no longer have to turn the screen on and off to apply it.
  • Using High Res timers for audio makes it super smooth and nice.
  • That's pretty much it. This has all the features from before but should be a step closer to fixing any and all video problems that people have had.
  • Next release might take a while as I have a lot of bring up to do in order to add some cool surprise features I've been planning.

UPDATES - Mark22 - October 19, 2016 CHANGELOG:

  • Well it's been a week of my banging my head against the wall, adding and subtracting features, and a few hundred commits of bringup work, but Mark22 is here.
  • NO GPU OC. I'm afraid every single clock speed, and every single bandwidth speed, no matter how in sync I made it, still resulted in some artifacts on the screen. However, I DID add a GPU Touchboost receiver, and updated our CPU BOOST driver to a much more enhanced version made by Neobuddy89. So the touchscreen interaction remains snappy and frankly doesn't need the overclocked gpu values.
  • Due to the updated CPU Boost driver, I have removed the touchboost and wakeup kick functions in CPU HARDLIMIT. The dedicated CPU BOOST seems to perform these tasks much more efficiently, so let's leave it at that. There is a whole section in Synapse available for you to play with.
  • Updated a TON of backend Power Management and HSIC/EHCI code, which puts us in a better position we've ever been as far as the literally one significant cause of sporadic RR's (kernel panics). That is an ongoing bringup project that I'm sure will continue until the day we turn this into a DT COMPAT-based 3.10 kernel.
  • Added FPS control to Synapse
  • Added Blu Plug and Mako Hotplug drivers. Blu Plug is speedy, Mako is Conservative.
  • Added Outdoor Mode buttons in Synapse. Essentially a mix of autobrightness and HBM. It kinda works.
  • WAKEUP is now pretty much instantaneous because a)CPU BOOST's wakeup boost actually works well and more importantly b) I added hardware wakeup event indication to the hardware keys. So now they send out a literal hardware interrupt that says "WAKEUP" when they are pushed and you won't have to worry about sleeps that are too deep anymore.
  • CPU affinity updates, BLUETOOTH Blusleep driver added (suspends better), a lot of back end bringup as per usual.
  • Try it out, see how it goes, enjoy!

UPDATES - Mark21 - October 12, 2016 CHANGELOG:

  • I badgered Samsung to release the sources for PI1 and they did (they're pretty good for that I've found), so I've integrated their updates into this release.
  • Sammy updates include buffer over run checks, new wifi driver, new mobicore driver, updated qseecom driver, small updates in sound, new sensorhub firmware (actually it's older, but more stable), updated kgsl driver (gpu), and probably more. Have a look at my commit history to see exactly what I applied.
  • I updated the IRQ (interrupt request code) to make it do what it's supposed to regarding handling interrupts. Actually the big issue was that this was prerequisite bringup that I should have done a long time ago and probably meant to and then forgot. A.D.D. you know...you try and tell yourself you'll finish a subsystem tomorrow and then tommorow comes and "look! shiny new things!'
  • added a few governors that i'm on the fence about...governors can make or break a kernel even when not active. So we can test these out (i did briefly and ruled out a couple already), and let me know if you have issues with any of the new ones. I believe it's Smartmax_EPS, Impulse, Ondemand_X, Darkness, Nightmare, blu_active, bioshock, and Lionheart. I wanted a decent mix of battery, balance, and performance focussed govs...so here they are I guess.
  • further fixes to the msm_hsic_driver. don't mention in the bloody comments that it should sleep for 500 milliseconds then have it sleep for one microsecond, you lazy qualcomm/samsung people.
  • General fixit updates all over the place, and non-blocking security code which slows the device down SO FREAKING MUCH if not applied.
  • more rcu synchronization, and general stability patches. I can't report any data drops, rr's, or that sort of thing so far (except for when i was testing out some of the new govs and a hotplug driver that looked promising but was doing the same thing intelliminmax did).
  • again, this is a beast. Wakeup is speedier, the whole deal. I think I've earned myself some tinkering time with the new note 3.
  • Rob's taking a break...for as long as possible which is probably enough time to sleep and then continue to be obsessed with programming.

UPDATES - Mark20 - October 11, 2016 CHANGELOG:

  • I couldn't find any patches that addressed the hsic_pm_runtime_suspend dereference, so I wrote the code myself. [CODE] @@ -2016,9 +2019,14 @@ static int msm_hsic_runtime_resume(struct device *dev) #ifdef CONFIG_PM static const struct dev_pm_ops msm_hsic_dev_pm_ops = { SET_SYSTEM_SLEEP_PM_OPS(msm_hsic_pm_suspend, msm_hsic_pm_resume)
  • .suspend_noirq = msm_hsic_pm_suspend_noirq,
  • .suspend_noirq = msm_hsic_pm_suspend_noirq, \
  • .suspend = msm_hsic_pm_suspend, \
  • .resume = msm_hsic_pm_resume, SET_RUNTIME_PM_OPS(msm_hsic_runtime_suspend, msm_hsic_runtime_resume, msm_hsic_runtime_idle)
  • .runtime_suspend = msm_hsic_runtime_suspend, \
  • .runtime_resume = msm_hsic_runtime_resume, \
  • .runtime_idle = msm_hsic_runtime_idle, }; #endif [/CODE]- Updated some power stuff too, guess the wakeup_reason code was causing some kernel panics (rr's) for Dorimanx too, so I took his code's advice and reverted it to the older school style and now it doesn't bother us.
  • Got rid of the PMEM allocation wherever I could, as it does nothing, which has resulted in a pretty sweet performance boost (pretty darn snappy I'd say).
  • Removed RTB cpu tracing code. That combined with adding in fancy timer stuff has started causing warnings in my hellsactive gov logs but I don't care because a) it doesn't panic, b) I can just fix it next release and franky I'm exhausted, but most importantly c) I WROTE THE FREAKING CODE TO FIX OUR MAIN SOURCE OF RR!!!!! I don't even get warning messages or anything about the bloody driver in the logs anymore!!!!!!!!!!!!!!!!!! LIKE A GLOVE!!!!!!!!!!!!!!!!!!!!!!!!!!!
  • So yeah...didn't get around to adding stuff that I wanted to...again...HOWEVER, my next goal is neobuddy's all-in-one hotplugging driver called State_Helper. It builds off of his state_notifier driver that is so helpful for suspend and resume functions, that I'm interested in checking it out. Apparently it's pretty all-encompassing.
  • I raised the physical drive strength of the vibration driver, did some generic bug fixing and threw in some audio patches to continue my goal of perfect sound.
  • Stole some code from Cyanogen for restart, subsystem and modem, and you'll see the difference.
  • Changed the versioning scheme to actual numbers instead of written ones going forward. It's just easier for organization purposes, and I was dreading having to write everything out for the 20's...
  • Just enjoy this one guys, I'll add new fancy stuff next round now that I can finally breathe with the hsic thing taken care of (knock on wood...but still, I DID IT!!!!)
  • .... !!!!!!!!!!!!!!!!!!!!!!!!!!

UPDATES - MarkNineteen - October 8, 2016 CHANGELOG:

  • Replaced a great deal more of the buggy 'while each thread' methods with 'for each thread.' This has resulted in a considerable speedup.
  • Worked on hsic some more (it's never ending, it seems), including returning subsystem restart, mdm (modem), and smd (shared memory) to further work on some stability improvements. I'm doing a s*** ton of research on the subject and promise to have a 100 % consistent fix for any of the issues arising from the oops/kernel-panics coming from a page-address error in the msm_hsic_pm_suspend sequence. My goal is to have it by MarkTwenty
  • Poweroff charging...well I fixed poweroff charging, it wasn't working very quickly due to a)a battery extending experiment in the kernel code and b) a ramdisk change to test the aforementioned experiment. Neither worked, reverted back to stock behaviour.
  • EXPERIMENT - removed the setup for knox in the ramdisk. We will see if any issues arise from it.
  • fixed up a bunch of debug code, as well as a lot of mismatched type warnings (int's that were supposed to be returning void)
  • q6: adjusted playback speed buffer to be a mathematical multiple of the playback rates, sound continues to improve.
  • I promise to bring more cool stuff soon, as it stands I'm a man obsessed with the hsic runtime issue.
  • NOTE: on first boot you'll probably get one involuntary reboot due to some major ramdisk/battery configuration changes. It's normal.

UPDATES - MarkEighteen - October 7, 2016 CHANGELOG:

  • Featurewise, this is exactly like the previous version.
  • Stability-wise, I went the extra step and PERFECTED the stability issues from the past, so now not only is this stable, but you have never seen your phone operate as quickly.
  • Ramdisk Streamlining, tried to shave a few seconds off of boot thanks to the bs workaround i had to make for the custom power drivers.
  • Made sure that data/.machinex gets made (though it's always worked for me...shrug)
  • Oh yeah, sound quality is better. I was getting sick of the distortion. More sound experiments to come in the future.

UPDATES - MarkSeventeen - October 5, 2016 CHANGELOG:

  • FIXED HSIC PMRUNTIME SUSPEND FAILURE!
  • Also radio is FAR MORE reliable.
  • Added a "Power" section in Synapse, so you can toggle "asynchronous power management," which essentially is a way to allow things to go to sleep or wake up without confirmation. It is useful for certain things and not so much for others. Have a look in Synapse for a brief outline of the pros and cons I've noticed thus far.
  • Updated State Notifier driver, has an enable/disable toggle and is way more efficient (multicore, Neobuddy89 is a genius). I only added one little condition in the driver so that both resume and suspend functions are controlled by the on/off toggle. Remind me to push that to Neobuddy.
  • Speaking of which, I set powerSuspend and State Notifier as disabled on boot, and then I switch them on after the initial screen setup takes place. This way, we don't have the resource counter issue of everything dependant on those two drivers being called to resume when the system is actually booting, not coming out of sleep. There are settings for the two drivers in Synapse. DO NOT CHANGE THEM if you want your device to operate properly. Pretty much all of the hotplugs, cpugovs, and various other drivers depend on one or the other.
  • Really it's a small release that packs a big punch. Next version is where I'm gonna start working on some fun features that I had to shelve while getting this pm runtime issue sorted out for the hsic driver.
  • Figured out what the boosted voltage is for the Krait acpuclock boost toggle in Synapse (apparently taking a minute to read the code helps). For PVS versions 2 and up, our device ships with an overvolt of 25000 uV for the CPU. Meaning, disabling that as opposed to undervolting with drop you down two "levels" of voltage reduction in Synapse. The two settings aren't in any way linked (although I should work on that eh?), so the "boost" setting won't visually impact the manual voltage settings, and vice versa. However, know that this is happening in the system, and please account for it when calculating your voltage levels until I come up with a notifier between the two functions.
  • Should be good to go, folks!

UPDATES - MarkSixteen - October 3, 2016 CHANGELOG:

  • This build was the result of a witchhunt for an hsic runtime power management problem causing rr's.
  • Added a toggle in Synapse for the GPU's "powernap" function. The powernap allows the gpu to "rest" between frames as opposed to running all the time. Turning it off could improve performance at the risk of stability and battery life.
  • Updated Ramdisk binaries and whatnot to the latest PI1 build (I also put in a request with sammy for the updated source. so far ive have positive experiences with their development team releasing the code).
  • Modem issues are pretty-well fixed. I don't even have the little symbol for radio-disconnected after turning off airplane mode anymore.
  • Further improved subsystem restart, powermanager, some under the hood stuff.
  • Poured through the code and changed anything by hand that was out of wack, including some previous "hacks" I tried out in the past that turned out to be failures.
  • Hsic pm runtime issues are %80 fixed, but working better than MarkFifteen's. Also reverted the modem voltages, etc to stock.
  • Bluetooth updates that I am unable to test at the moment because I really don't have any useful bluetooth devices around. I'll try to hunt some things down but in the meantime I'll need y'all to be my testers and report stuff to me. In the case of BLUETOOTH errors, I definitely need the log trifecta, dmesg, last kmesg (the one immediately after a random reboot, but hopefully there aren't any fingers crossed) AND logcat.
  • More probably. This is definately a maintenance/stability release. Enjoy!

UPDATES - MarkFifteen - October 1, 2016 CHANGELOG:

  • MAJOR BUGFIX/STABILITY BUILD
  • Reverted the GPU nominal frequency back to 325 from 320 mhz. Too many media clocks rely on consistent GPU frequencies across the board.
  • Set the GPU init(boot) default frequency to 450mhz, makes for faster performance.
  • Further improved subsystem restart, powermanager, cpu suspend, etc.
  • Pretty sure I fixed the power suspend and state notifier hooks from throwing off the suspend/resume count. I moved the hooks to a later point in the panel turning on, and I wrote in a little conditional that only runs them if the device is in a resume state. Also, I changed them from core to late start drivers, so that should help them not having effect during the initial boot sequence.
  • Added an independant dmesg/kmesg sysfs toggle and a corresponding toggle in the logs and profiles section of Synapse. (just like android logger but actually for kernel level messaging, as opposed to what the descriptions said before)
  • Caught up to some missing prerequisite patches from my kthread upgrades, helping stability.
  • BAM Dmux reset functionality, so far helping with subsystem restarts.
  • TONS of under the hood fixup. It's stable for me so far.

UPDATES - MarkFourteen - SEPTEMBER 30, 2016 CHANGELOG:

  • Raised the GPU nominal frequency from 320 mhz to 325 mhz. Small increase, but the device spends so much time at that level it may as well be snappier.
  • Increased GPU thermal polling to 65000 ms from 60000, should help out performance.
  • Set the subsystem_restart level to 3 (restart_independant). APQ8064 code was coded as a legacy device that didn't let drivers soft-reset themselves, instead requiring the whole SoC to restart on routine error code. This should allow all of the drivers (most importantly modem) to restart whenever their is something wrong with their suspend mechanism. Longterm TODO is integrate wakeup sources and pm_notifiers into all of the drivers. Some I can simply patch, others will have to be manually coded by me.
  • Set tracing to be extra configurable for battery savings
  • Added an independant dmesg/kmesg sysfs toggle and a corresponding toggle in the logs and profiles section of Synapse. (just like android logger but actually for kernel level messaging, as opposed to what the descriptions said before)
  • Added a toggle in the CPU VOLTAGE settings which controls a stock feature (it's in the stock sources) allowing you to turn a qcom-designed CPU VOLTAGE BOOST on and off. Interestingly enough, for higher PVS valued devices, qcom enables this by default. For example I am at PVS level 3, and it is enabled by default on my phone. Turning this off can serve as a stand in for the manual undervolting in that section, and is far more stable of an undervolt than the pre-existing method.
  • more msm-sdcc suspend-resume updates
  • disabled asynchronous suspend by default, far more reliable
  • Removed PMEM memory allocation, as it hasn't been used since like 2011 and is replaced by ion. So really it's just wasted memory. Only a little, but every bit counts.
  • This update may not be feature heavy, but it's definately functionality and bugfix heavy.
  • More ramdisk improvements.
  • Have fun

UPDATES - MarkThirteen - SEPTEMBER 29, 2016 CHANGELOG:

  • One single step OVERCLOCK frequency of 1998 mhz that I have been running for the last few days. It seems to be stable so I'm comfortable with its release. Hardlimit is set to 1890000 by default, so keep in mind that to overclock you have to first raise your hard limit, then your max scaling frequency on the previous screen.
  • Updated the mmc clocking during suspend and resume in order to bring it closer in line with the current clock-voting regulator framework. This should solve the issue where everything locks up once in a while after a long deep sleep. Let's see what happens.
  • One single step OVERCLOCK frequency of 1998 mhz that I have been running for the last few days. It seems to be stable so I'm comfortable with its release. Hardlimit is set to 1890000 by default, so keep in mind that to overclock you have to first raise your hard limit, then your max scaling frequency on the previous screen.
  • A couple of minor sound updates, mainly for bug killing but every little bit counts!
  • highmem flushing, which is great because stale memory gets flushed more often.
  • automatic memory compaction. It will run when you shut the screen off, and in intervals while the screen is on. (they say compression is faster than traditional swap, let's find out)
  • Better RCU locking protection around ipv6 (mis)usage.
  • mm: vmpressure: account allocstalls only on higher pressures. Added a minimum threshold for accounting vmpressure.
  • Overall it's running pretty stable. This is definitely an experimental build, but no pain no gain!
  • Slight Synapse tweaking, ramdisk cleaning, etc. Also I added a new 'extras' tab in Synapse that I will fill with useful little tweaks I come up with. So far there is a button to clear your youtube sdcard cache (SUPER helpful).
  • Enjoy :)

UPDATES - MarkTwelve - SEPTEMBER 26, 2016 CHANGELOG:

  • Major updates to cpu, scheduling, mmc (io), power, networking and timer backend.
  • Colour, sound (especially clarity), touch drivers all updated and made more efficient.
  • The phone now boots with all cores online, and then initializes the hotplug driver while booting.This way, all of the cores are initialized in the correct sequence
  • ADB is now insecure by default (like for real insecure, no need to patch it)
  • Removed Ondemandplus, it has buggy code in its task-priority function and, until I have a look at it to fix it up, it will remain out. Used to be one of my favourites, but it was designed for older cpu framework apis.
  • BIG ONE - I remembered to do this finally. I successfully updated the mdm/modem driver to send a reset to the modem processor whenever coming out of sleep or booting, so all modem issues should be gone.
  • Some more preparatory updates in the backend for conversion to device-tree-compat tree building, meaning even more features from newer kernel sources.
  • Battery charging fixes, battery life fixes, etc. Performance and battery are in your hands once again, kiddo.
  • Seriously just about everything is better. Try it out!

UPDATES - MarkEleven - SEPTEMBER 25, 2016 CHANGELOG:

  • Bug fixes galore, including an issue that broke sleep counting.
  • Colour is vivid again.
  • Changed some default settings to help wake up when coming out of deep sleep.
  • Moved some sections around in Synapse, consolidated some, moved some functions to more appropriate sections, and removed some functions that shouldn't be randomly played with.
  • Some more intermediary updates from my travels down the 3.4-3.8-3.10 road.
  • You'll see a significant improvement in perforfance, but not so much battery life, I encourage you to use power-efficient workqueues in Synapse if power saving is a priority for you.
  • More probably but my brain is fried from working all last night.
  • "Fixed" network indicator arrows...though the mechanism is not battery-friendly (its the stock qtaguid driver, nothing i hacked in). So if you guys want to take a vote on whether you need it, we could easily free up resources without. Regardless, thanks for bringing it to my attention @Superperry96

UPDATES - MarkTen - SEPTEMBER 22, 2016 CHANGELOG:

  • OUT OF BETA!!! NOW IN RELEASE!!!
  • Fixed HSIC-related RR for good.
  • Removed IntelliMM as it causes extra cpu load even when disabled.
  • HSIC side-effect, battery life is AMAZING, just make sure to RESET FUELGUAGE.
  • New settings to play with in Synapse, including sleep states and time spent in each.
  • Figured out screen related stuff, see below. Enjoy. UPDATES - MarkNine - SEPTEMBER 19, 2016 MarkNine CHANGELOG:
  • Implemented CPU HARDLIMIT control. I put a little write up in the main post above. It's working flawlessly in Synapse. This means that, realistically, you could see some VERY LIGHT overclocking in the near/distant future. MAAAAAYBE.
  • Speaking of Synapse, I added Wireless Charge Amp Control in the Battery section. I just noticed it wasn't in there tonight. I don't know if anyone uses it for this device, but what hell, right?
  • Synapse: the "quick cache drop" button now drops caches the regular way, and samsung's reserved way as well, so it's that much more effective.
  • Added Cyanogen's mdp4 PCC colour control as well. Controls are in Synapse, and though it may seem like overkill on top of KCAL, this gives you fine-grained control over your screen display colour from values 1000-32768. Have fun ;)
  • Disabled HSIC's constant search for a suspend state it will never find, hopefully putting the modem related kernel panics (random reboots) to rest for good. Pun intended.
  • Cleaned up the mid and post-init scripts a fair deal. Boot time should be faster because there is less time wasted searching for devices and properties we don't [bleeping] have.
  • Personal Update: my swearing problem persists.

UPDATES - MarkEight - SEPTEMBER 15, 2016 MarkEight CHANGELOG:

  • fixed deep idle powercollapse for cpus.
  • better Krait cpu power regulation (updated driver). UPDATES - MarkSeven - SEPTEMBER 15, 2016 MarkSeven CHANGELOG:
  • This release fixes a bug in the cpufreq driver code that was introduced in the last version, making it perfectly okay to switch governors on the fly without worry of a kernel panic. I won't get into the technical details, but let's just say that I have to be far more cautious regarding cpu/scheduling updates from here on in. What you may lose in "smooth" performance, you will gain stability, dependability, and battery life gains from this release.
  • cpuidle, sleeping has faster response time
  • msm BAM driver resets asyncronously, hopefully helping with mdm modem airplane mode issue (modem sleeping is my goal for next release) -dma/cma/memmap stability fixes.
  • DISABLED kernel mode neon, it was a difficult decision to make given that you've all gotten used to its snappiness by now, i'm sure, but the stability is impossible to ignore. It has always been an experimental feature and I gotta make this thing more consistent. -Disabled Google "Snappy" compression, I had tested it last version and am not impressed with it compared to other compression types.
  • The install script makes a cool arc reactor graphic because fun.
  • new led colors
  • more features to come next release, this was another bring-up build UPDATES - MarkSix - SEPTEMBER 12, 2016 MarkSix CHANGELOG:
  • This release focusses mainly on stability and default settings that are balanced, so that all users can benefit from it. I don't care if you think it takes too long to boot, because that is better than a full-throttle boot sequence that some devices' binnings/hardware cannot handle.
  • Removed CM gamma control, it literally stopped doing anything after KCAL went live.
  • Reverted Alucard Hotplug to its original settings, they are far more stable. Also reverted default governor to ondemand.
  • Thanks to those who provided logs, as I have pinpointed and eradicated the random reboot. It was due to a qualcomm modem patch that was resulting in a kernel panic. Problem is solved.
  • Modem sleeping issue is closer to being fixed, but involves me having to build a custom frankenstein of a solution for suspend which will take some time. It's on my list.
  • Qtaguid has been fixed. It was denying network-related userspace processes of the permissions they needed to function properly. It was a security patch, which I try to keep up with because security is important. That said, functionality is more important and with custom kernels something has to give.
  • Reduced execve restrictions to avoid init failures on ported roms.
  • All battery and charging code is up to scratch now.
  • More scheduling, cpu and kgsl fixes so that all governors (including the ones with graphics boost hooks, elementalx and electroactive) work properly once more.
  • Sound: Re-doubled the slimbus overclock value, and sound is much cripser. THIS will be the default from here on in.
  • timer function improvements
  • cleaned up some display code, the display looks amazing again.
  • Selinux code has been combed for bugs. Despite it being permissive, it still takes up a significant amount of resources. So it' s still important to mitigate its impact on fs, memory, and cpu usage.
  • Sound Volume steps now have 0 delay when changing volume.
  • improved some of the log in the Synapse backend, so the app will be less buggy.
  • machinex is a good kernel again.

UPDATES - MarkFive - SEPTEMBER 10, 2016 MarkFive CHANGELOG:

  • returned the Saw-Regulator (responsible for regulation of like everything) to stock values, as the change that was made previously resulted in instability. That means no more stuttery boots. -speaking of stuttery boots, the system now boots using the "Performance" governor, and then midway (once initialization is mostly finished) switches to the default "Hellsactive." Hellsactive tunables have been tweaked for performance from the start as well. -Regardless, this is a significant update, and your first boot will take longer than usual. Subsystem code has been repaired and thus modem operation will much better. -The line directly above means MODEM issues are like 99.99% fixed. -Battery - I fixed some functions in the pm8921-charger driver that will improve battery efficiency and SoC recognition of battery-life remaining. As a result, for this update I would RESET FUEL GUAGE in Synapse' Battery section. You'll see a massive drop in initial battery life, but your battery stats will be much more accurate from here on in. Also, after resetting, I charged my phone for like 15 mins and (thanks to fast-charge) it went from 50% to like 90%. But now battery life is improved so it's a trade off I recommend accepting. -Speaking of Synapse...I literally changed the "max cpus online" and "max cpus online during suspsend" variable names in all of the Hotplug drivers that use those tunables. Now EVERY Hotplug with those tunables (listed in Synapse) can be operated from the same controls, eliminating clutter and making Synapse more simplistic/effective. -Other Synapse improvements, including the addition of a CPU Voltage section, GPU Voltage added to the GPU section, LIVE cpu-temperature (avg of cores for now) display in thermal, and some more I think but I forget. -Thermal! Brought back stock thermal settings so y'all can get off my back ;) . But the live temp display is at the top of the section to act as a warning, like the ones on cigarette packs. (in my country we have gross, graphic warnings of the worst kind on our cigarette packs)
  • CPU will stop panicking on governors with incompatible stats collection. (two lines of code to avoid a panic, like 5 words, ain't C an amazing language?) https://github.com/robcore/machinex/commit/fb7e4a9b8d12cc151bd709d0183ee6c35cabc248 -dma mapping: if an error occurs on boot, it now flushes the allocated memory for the mapped area that failed, as opposed to keeping it stored in memory. -added the cm gamma control settings in Synapse. It was always in the kernel, just not Synapse. TBH I don't think it does anything anymore now that KCAL is live, so I'll probably replace it with a different colour mod that faux123 made. It hooks the same code so with KCAL it might actually do something interesting.
  • I SUPPORT NOTHING IF YOU FIDDLE WITH VOLTAGE!!!!! IT IS USED AT YOUR OWN RISK AND WILL PROBABLY TURN YOUR DEVICE INTO A NOTE 7!!!! that will scare them off, right? UPDATES - MarkFour - SEPTEMBER 10, 2016 MarkFour CHANGELOG: -ACTUALLY removed zen decision for good -more under-the-hood cpu and scheduling improvements. This bad boy is amazing for battery and performance. -default governor is now hellsactive, and it will actually stick because this update hijacks qualcomm's post_boot script. The important stuff is left in, the garbage they use to override our preferences is out. -updated the uninstaller script to reflect the change mentioned above. -reduced slimbus overclock from twice the "golden-ratio" values to the "golden-ratio" values. Now audio/video is perfect. -minor Synapse updates, but this update has such better performance that I'm rushing to get it out in lieu of adding too much fancy stuff. -random entropy generation is even faster, as it is now contributed by individual cores going online/offline. -probably more

UPDATES - MarkThree - SEPTEMBER 8, 2016 MarkThree CHANGELOG: -Added new governors, some for performance, some for battery life, and some for balance. As a reference, check out the link in my performance and battery life post. -More low-level scheduling/cpu code to bring those areas up to scratch -Slimbus enhancements, for stability as well as something experimental. All of us S4 kernel devs have tried out the "slimbus overclock" patch here and there, which makes audio communication in the hardware faster, but this is something different. Both ROOT and CLOCK gears are tuned to levels that are optimized using "golden-ratio" logic in order to correspond to each audio frequency step. Also, 44100hz & 48000hz freqs are added to the default playback adjust frequences, given that they are the most used frequencies in audio playback for most mediums. We will try it out together and see if its performance outweighs potential battery drain.

  • Alucard Hotplug is now the default. -Use MTP while fastcharging is now set by default. I turn it off when not using it because my battery seems to charge faster with a wall charger when mtp is disabled. Use at your discretion. -added FSUTILS section in Synapse, with options to trim your data/cache/system folders at the click of the button, and also with handy buttons to remount your system/rootfs as rw or ro. -added samsung samp_spcm enable/disable capability, merely as an option. Frankly, i've not done extensive enough research either way and don't plan to, but I welcome "y'all" to test the results if it's something you care about. -removed Synapse options that literally did nothing -System is even faster -modem issues don't seem to be there, but i'm sure they'll pop up on a deepsleep now and then, still haven't fixed autosleeps RAW POWER for it yet. But you're looking at like, once every 50 sleeps so whatever for now... -Installer should account for Imperium Kernel's symlink, thus be more smooth when coming from his rig. -Removed Zen_Decision. It's a genius idea when having to battle with msm mp_decision, but we don't have it running in kernel or userspace so... -RETYPED ALMOST THE WHOLE BLOODY OP BECAUSE THE INTERNET SCREWED ME. Thank goodness for google's cached webpages. I'll bring the op back to looking presentable again soon. -more maybe? I'll letcha know if i think of anything else.

UPDATES - MarkTwo - SEPTEMBER 6, 2016 MarkTwo CHANGELOG: -Interactive-based governors not only work, but they work fast -A TON of low-level scheduling/cpu code to bring those areas up to scratch -Added Alucard Hotplug, and it's working in Synapse NOTE: The seek bar will not show up at first for Alucard Tunables. To get it working, select Alucard_Hotplug, then use the CLEAR SYNAPSE DATA button in the REBOOT tab(or delete Synapse's data in settings.) Have fun kids! -MODEM is much more stable -The battery/charging code is also much more stable UPDATE:Sep 6 part 2

  • purely cosmetic. Updated hotplug descriptions in Synapse to include Lazy and Alucard hotplugs, and made sure that all kernel version info clearly states MarkTwo.

BUGS: A great deal of time (pretty much a year, maybe a year and a half?) went into ironing out some of the major bugs that came with upgrading so many crucial subsystems for a barely supported SoC such as ours. (ironically, it has like full 4.6 device-tree support so...cool) A good hunk of this kernel's infrastructure is 3.10-3.18-even a little 4.0+ based, and as such, there are certain drivers that I have hacked my way into preserving functionality, all while maintaining compatibility with android/touchwiz userspace. It's a delicate tightrope act to say the least. -Synapse has a built in log collection feature that will be of much use if you'd like to help to debug this bad boy. -Synapse governor tunables have issues sticking (sometimes). In the meantime, do it manually, go with stock values (I tuned each one myself in the source), or grab Flar2's Ex Manager/Faux's Fauxclock apps or a free one (make sure to delete Synapse from priv-app if you do go down that road though, or at least disable it).

  • Again, drop caches once in a while. Persistent ram and dcache code need some more work, but I will get to it. Right now I'm busy making a fancy shmancy kernel thread.:This is probably not necessary anymore, but it's useful info in case you ever are in a jam.
  • IMPORTANT: Reset your fuel-guage (also made a button for it in Synapse) if you find your battery/system getting laggy or weird anywhere below 50%. I still have some power-driver updating to do and the fuelguage gets wonky. [UPDATE]: it's a little better now.
  • Nothing else off the top of my head, but I'm sure I'll be editing this page tons when something pops up.
Clone this wiki locally