-
Notifications
You must be signed in to change notification settings - Fork 0
Home
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 - 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.