Thank you for your interest in Plasma kernel, I hope you enjoy it. I've poured hundreds upon hundreds of hours of work into putting together a kernel that best showcases our hardware. Plasma kernel would not be possible without super-smart people like AndreiLux, DerTeufel, temasek, googyanas, faux123, and the regular contributors to the official cm kernel repositories. Please donate to them to support their hard work!.
- CPU frequency range: 100MHz to 2.16GHz
- ZZMoove, PegasusQ, performance (with support for multiple cores), and LulzactiveQ CPU governors
- Zen, noop, deadline, row, cfq, sio, vr schedulers
- Experimental Wolfson AND Voodoo Sound support (choose one or the other on the Audio tab of STweaks, then REBOOT!)
- CPU voltage control
- Linux 3.0.101
- AndreiLux: Screen color calibration with mdnie-control
- GPU over/underclock and over/undervolt
- Control the frequency and voltage of all 5 GPU steps
- Support for GPU clocks from 54MHz to beyond 800MHz
- Control GPU governor sampling rate
- Built with 4.8 toolchain
- Built with -O3 and other optimizations
- Extra panel brightness (<299)
- Faux123: Dynamic fsync control (v1.2)
- AndreiLux: Charging control
- Support for STweaks
- Control screen refresh rate (can be reduced to save battery)
- AndreiLux: Memory/internal voltage control interface
- AndreiLux: Adaptive Body Bias (ABB) control
- AndreiLux: Digital brightness control/reduction (better than ScreenFilter)
- LED control (with some color mixing adjustments by me)
- Touchwake support, including touchkeys (enable in Screen tab of STweaks)
- Multi-touch kernel-based gesture engine
- Proportional Rate Reduction for TCP
- Joe's RCU
- Temasek: Frandom module (enable on the Memory/Internal tab of STweaks and REBOOT!)
- S-Pen settings on the S-PEN tab of STweaks
- Support for 4x parallel "Turbo ZRAM" (settings are on the "I/O / RAM" tab of STweaks)
- Enhanced Touchwake/Slide2Wake functionality
- Arc-swipes to turn your phone on with one hand (Screen tab of STweaks)
- Long-tap-off to turn your device off with one hand (Screen tab of STweaks)
- Power off gesture: tap the top of the screen and a touchkey at the same time to trigger suspend
- Change your power manager (PM) CPU lock frequency
- Press the home button 4 times to toggle the screen negative
- Press the home buttom 3 times as fast as you can to toggle the screen into nightmode (red)
- exFAT support
- For more, take a look at the commits
III. What's New
- [ZRAM Total Disk Size]: By default ZRAM is setup as four (4x) swaps operating in parallel at equal priorities. Set this to the TOTAL amount of RAM you wish to dedicate to ZRAM, and STweaks will automatically divide it evenly by four.
- [UKSM Enable]: Enable the UKSM daemon that will continuously scan memory for duplicate data.
- [UKSM Daemon Sampling Rate]: How often the daemon checks for duplicate data.
- [UKSM CPU Usage Limit]: How much system load (CPU usage) the daemon will use.
- [Long-tap-off Always On]: Found in its own section under the Touchwake section. When enabled Longtapoff will always work, regardless of how you woke your device. Takes effect immediately.
- [Many ZZMoove settings]: Many ZZMoove settings on the newly created "ZZMoove Scaling" and "ZZMoove Hotplug" tabs. Descriptions coming soon.
IV. Download / Donate
v2.02 (November 2nd, 2013)
- Tracked audio/media skipping bug to disabled loggers (thanks pappschlumpf!) By default logging is now enabled. While you can still disable it, it will always be reset upon reboot.
- Changes to write-back caching (thanks temasek)
- Support for switching touchkey backlight driver from ROM/kernel (bottom of Screen tab in STweaks) (thanks Yank555-lu)
- Some bug fixes for Slide2Wake
VI. Archived Changelogs
2013-10-29 | v2.00
- Linux 3.0.101 (thanks temasek)
- Hopeful bugfixes for untouchable screen, and taps on top triggering suspend
- Should you encounter a problem like that, cycling on and off (power button) should now reset any state variables
- Fix FC issues. Works with more ROMs, including the latest AOSP nightlies
- Allow pm_idx_freq to be set as high as 1600 MHz, theoretically could slightly speed up waking from deep sleep. Set on "Plasma Tuneables" tab of STweaks
- Added several new tuneable ideas to zzmoove
- Added "ZZMoove Scaling" and "ZZMoove Hotplug" tabs to STweaks. The descriptions are still a work in progress
- Moved mDNIe controls to their own "Color" tab
- Greatly enhanced the longpressoff feature's reliability and ease of use (by upgrading to scheduled_work)
- Slide2Wake and arc swipes now trigger CPU and memory frequency locks to speed up waking
- Slide2Wake and arc swipes no longer accidentally send input in the milliseconds after the screen comes on, but before you finished your gesture
- Added option to Screen tab of STweaks to enable Longtapoff always, regardless of how the device woken
- Expanded the trigger areas for slide2wake and arc swipes
- ZRAM/swap is working and compatible with "Turbo ZRAM" (4x parallel ZRAM swaps for quad core devices) (thanks googyanas)
- ZRAM settings in STweaks now allows you to set one total size of RAM that will be divided into 4x ZRAM swaps. Setting to 0 disables all swaps. Changes are applied instantly. No need for any other ZRAM/swap apps or init.d scripts.
- UKSM (Ultra KSM (Kernel Samepage Merging)) enabled, with settings on the "I/O / RAM" tab of STweaks. Mostly just a novelty, but what it does is continuously checks RAM for duplicate pages to save space
- zCache enabled and always running
- Cleancache enabled
- Frontswap enabled
- Enabled LOWMEM_CHECK (thanks googyanas)
- Enabled SPEEDUP_KEYRESUME as discussed in temasek's thread (Placebo effect? Maybe. Better ask Brian Molko. A cookie for you if you understand that reference) (thanks googyanas)
- Added my own wake-speed ideas (2-second max-CPU-speed lock, and 2-second max-bus/RAM-speed lock on KEY_POWER press)
- Permanently fixed (hopefully) the laggy, skippy, media bug
- Toggle negative screen mode by taping the home button 4 times quickly (but NOT as fast as you can) (based on a commit by gokhanmoral)
- Toggle nightmode (red) screen mode by pressing the home button 3 times VERY quickly (pretty much as fast as you can) This is purposely designed to be a dim red, as searing bright 255 red isn't particularly easy on your eyes in the dark. Fun fact: this (and the negative one described above) are functional even during boot...triple tap to see your bootscreen turn red :P
- CPUFreq bug fixes/commits (thanks DerTeufel)
- Permanent TRIM (thanks googyanas)
- Added shell scripts to quickly and easily see statistics with as little typing as possible. Open a command prompt on your device, type "su" and press enter to ascend to root. Now you can type "szc" and press enter to see zCache statistics (szc = show zcache). Or type "ssw" to see swapfile/zRAM statistics (ssw = show swap). Note: Some statistics don't fully populate until a few minutes after boot
- Experimental: Set ZZMoove governor for battery savings by obtaining a root shell as described above, then typing "zzb" and pressing enter (zzb = zzmove battery). Does not reapply after reboot.
- Compiler optimizations
2013-07-19 | v1.67
- Updated to Linux 3.0.84 [thanks, temasek]
- Enabled support for SELinux
- Fixed some bugs with the stylus touchkey block
- Voodoo was removed
- Sound-control is permanently enabled. Anything Voodoo did, sound-control can do.
- A bunch of ROW and other smaller cherry-picks
- Fixed some STweaks bugs
- Fixed some gestures in the Gesture Pack
2013-06-26 | v1.65
- Updated to Linux 3.0.83 [thanks, temasek]
- Better battery life, particularly while idle. [thanks, temasek]
- Gesture engine now has support for two special gesture flags; TKEYS and EXCLUSIVE
- S-Pen: Disabled the booster and made it optional, as well as what frequency it boosts to. By default this used to lock at 800MHz when you used the pen, which has shown to be way overkill for the most part.
- S-Pen: Adjust input averaging strength (2 or 3 are the only useful settings. Wanna see what the actual input is from the digitizer? Set this to 0 and draw a line. Yeah...now you see what the poor driver has to filter out)
- S-Pen: Adjust box filter strength for pen input and hover input. Mostly experimental.
- S-Pen: Set minimum pressure before pen input is registered.
- S-Pen: Set fixed pressure (driver will never report sensitivity, and instead uses this value)
- S-Pen: Disable side button (for those that don't use it, it can really get in the way at times)
- S-Pen: X and Y axis offset (tweak this to your screen and usage. Samsung defaults this to -30 for right handed users)
- S-Pen: When the pen is within hovering distance, the touchkeys will now be disabled. When out of range, the block will be held for a definable period before restoring them. This means you can naturally write without fearing the buttons will come on and do crazy stuff.
- S-Pen: Disable touchscreen and gestures when drawing
- GPU: Frequency, voltage, and up/down threshold are available for each of the 5 steps.
- GPU: Expanded GPU clock options: 54, 100, 160, 200, 266, 275, 300, 333, 350, 400, 440, 500, 533, 600, 640, 666, 700, 733, 750, 800+ MHz.
- GPU: Adjustable GPU scaling driver polling frequency (sampling rate) [thanks, AndreiLux]
- GPU: Lock GPU to one user-defined step.
- GPU: Limit the GPU to less than 5 steps.
- GPU: Increase default GPU polling frequency to 100ms (stock was 1000ms (!!!) and causing laggy performance within the first few seconds of using your device). [thanks, AndreiLux]
- Fixed some STweaks bugs.
- A bunch of predefined gestures in the Gesture Pack.
2013-06-11 | v1.60 [733 GPU overclock] / [No GPU overclock]
- Updated to Linux 3.0.81
- Added section to Screen tab in STweaks for touchkey backlight control (for ROMs without controls built in)
- Implemented mechanism to manually control the display panel's refresh rate (no, you can't go higher than 60fps :P )
- Added support for lcdfreq scaling in PegasusQ (on PegasusQ Scaling tab of STweaks)
- Added support for lcqfreq scaling on touch (on Screen tab of STweaks)
- Option to force lcdfreq's limited state to constantly be on, effectively giving you control of panel refresh rate (on Screen tab of STweaks)
- Made PegasusQ screen-off multicore policy enforcement more robust
2013-06-08 | v1.58 [733 GPU overclock] / [No GPU overclock]
- Updated to Linux 3.0.80
- Switched to TCP Veno
- Updated zzmoove to version 0.4
- Added a sysfs entry to control the PM lock frequency
- Added screen-off tunables for PegasusQ, LulzactiveQ and zzmoove
- Added screen-off hotplugging to LulzactiveQ
- Led-control: more accurately mix LED colors
- Led-control: custom requests for white (255/255/255) are adjusted to obtain the most realistic actual color
- Led-control: change system notification (charging/charged) LED brightness level (LED tab of STweaks)
- Frandom module (enabled on the Memory/Internal tab of STweaks. A reboot is required after changing this setting!)
- Experimental: Reduce mdm wakelocks
- Updated row scheduler
- Experimental: Support for both Voodoo and Wolfson/sound-control. They both do they same thing though. Choose one on the Audio tab of STweaks, then reboot.
- Wacom: add sysfs entry for pen inserted (/sys/devices/virtual/sec/sec_epen/epen_pen_inserted)
- Dynamic fsync tweaks
- Many small cherrypicks
2013-05-06 | v1.50 [733 GPU overclock] / [No GPU overclock]
- Updated to Linux 3.0.76
- Sbrissen's WiFi driver from the GT-9505
- Kernel-based multi-touch gesture support. Enable it on the Screen tab of STweaks. Flashable sample script to be added to this post soon.
- Touchwake now wakes from the touchkeys in addition to screen taps
- Updated zzmoove governor with changes from DerTeufel
- PegasusQ: calculate gradient of CPU load to early increase frequency
- Added LulzactiveQ governor
- Stopped an insane amount of kernel logging in cpuidle-exynos4
- Updated Wacom drivers
- Updated camera drivers
- Added Proportional Rate Reduction for TCP
- Added missing flexrate code and removed the default touchbooster
- Joe's RCU
2013-04-27 | v1.43 [733 GPU overclock] / v1.43 [No GPU overclock]
- Touchwake support. Enable it on the Screen tab of STweaks
- Some dynamic fsync commits
2013-04-26 | v1.42
- Updated to Linux 3.0.75
- Reworded the settings in STweaks for ABB
- Fixed a bug in Adaptive Body Bias (ABB) that caused certain frequencies to be offset. 800MHz was in slice 3 (instead of 2) and 1600MHz was in slice 4 (instead of 3). If you have been undervolting these frequencies recently, you need to reevaluate your stability at them now.
2013-04-25 | v1.41
- Updated to Linux 3.0.74
- Adaptive Body Bias (ABB) control. This is only for the most hardcore users. I suggest reading the note above, as well as this thread.
- Snappy compression added to zRAM
- Some kernel updates to speed up hotplugging
- Correctly applied load averaging patch to fix moire pattern
- New LED control. Offers better control over LED fading. If your ROM has its own fade control, be sure to match your chosen setting in the LED tab of STweaks to avoid possible issues
- mDNIe digital brightness reduction. Ever notice how the lowest screen brightness setting is still very bright, especially in a dark room? Many of us nighttime users have had to manually enable apps like ScreenFilter to overlay a black layer to artificially dim the screen via software. This is somewhat like that, but more accurate and done at the video driver level in the kernel. To summarize, it seamlessly allows you to reduce the typical brightness control beyond its normal minimum by digitally darkening the display data after a certain point. This is very cool, as it's all automatic once you initially tweak it - goodbye ScreenFilter! Adjust the settings on the Screen STweaks tab.
- Expanded explanation of ABB on its STweaks tab
- Unaligned memory access where possible
- Fixed a bug that was causing frequencies greater than 1600 to become stuck as the current frequency
- Added the zzmoove governor and tweaked it for this kernel
- Update ramdisk
2013-04-17 | v1.34 [733 GPU overclock] / [No GPU overclock]
- Updated to Linux 3.0.73
- Flexrate now works
- Other, smaller changes
2013-04-10 | v1.32 [733 GPU overclock] / [No GPU overclock]
- Fixed MTP
2013-04-09 | v1.31 [733 GPU overclock] / [No GPU overclock]
- Forgot to include Front End Delay code last time
- Smarter CPU usage; assign more work to only 1 core when at lower frequencies
- Ability to change memory and internal voltages
- Boot a device from storage
- WiFi driver updates
- Other driver updates
- Updated to Linux 3.0.72
- Compiled with -O3
- Added support for Android zRAM (settings are in I/O tab of STweaks)
- Updated STweaks
- Started building optional non-GPU overclocked versions for those who don't want it
- Many, many small additions, such as better entropy (see commits for individual credits)
2013-04-03 | v1.20 [733 GPU overclock only]
- Added support for STweaks2013-04-02 | v1.12 [733 GPU overclock only]
Source for Plasma kernel can be found on my github.