Skip to content
Rob edited this page Nov 6, 2016 · 87 revisions

Welcome to the machinex wiki! Really just a space for older changelogs. Older Updates:

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