• Introducing XDA Computing: Discussion zones for Hardware, Software, and more!    Check it out!

[KERNEL][Sense/AOSP][aroma] lONELyX #023|3.1.10|S2W,DT2W,FC,UMS,UV,OC,MPDec,CPUQuiet

Search This thread

lyapota

Inactive Recognized Developer
Aug 15, 2008
2,727
13,732
Kiev
op_kernel_head.png

src GitHub link.

CREDITS
step by step i'm porting works this guys.

maxwen (most of code)
n3ocort3x, Xmister, Alex-V, faux123

IMAGES
lonlyx_kernel1.png
lonlyx_kernel2.png
lonlyx_kernel3.png
lonlyx_kernel4.png
lonlyx_kernel5.png
lonlyx_kernel7.png
lonlyx_kernel8.png
lonlyx_kernel9.png
lonlyx_kernel6.png


Configuring kernel parameters:
S2W Configs:
Turn off:
Code:
echo "0" > /sys/android_touch/sweep2wake
Button panel locks to s2w after this distance:
Code:
/sys/android_touch/s2w_register_threshold
Screen turns on/off after this distance:
Code:
/sys/android_touch/s2w_min_distance
Direction independent(1 - Yes, 0 - No):
Code:
/sys/android_touch/s2w_allow_stroke
Pocket protection(1 - Yes, 0 - No):
Code:
/sys/android_touch/pocket_detect
DoubleTap2Wake Configs:
Turn on:
Code:
/sys/android_touch/s2w_allow_double_tap
Time double taps (ms)
Code:
/sys/android_touch/s2w_double_tap_threshold
Time between double taps
Code:
/sys/android_touch/s2w_double_tap_duration
Dead area in points from top of screen
put 1780 for dt2w works only on virtual keya area
Code:
/sys/android_touch/s2w_double_tap_dead_area
Fast charge:
allow charge device from usb connected to PC as from wall wallet
can close ums connestion
Code:
/sys/devices/platform/htc_battery/fast_charge
Disable CPU freq limit in early suspend mode
Code:
/sys/module/cpu_tegra/parameters/perf_early_suspend
Disable EDP limit
Code:
/sys/module/cpu_tegra/parameters/disable_edp_limit
Backlight button brightness (0-255)
Code:
/sys/class/leds/button-backlight/button_brightness
Quick GPU OC 0 - 416 Mhz, 1 - 484 Mhz, 2 - 520 Mhz
Code:
/sys/kernel/tegra3_dvfs/gpu_quick_oc
CPU UV one digital value such as 25 or 0 or -25, -50, etc
Code:
/sys/kernel/tegra3_dvfs/cpu_millivolts
CORE UV one digital value such as 25 or 0 or -25, -50, etc
Code:
/sys/kernel/tegra3_dvfs/core_millivolts
Eco mode 0 - disabled, 1 - enabled (plug up to max 2 core)
Code:
/sys/module/intelli_plug/parameters/eco_mode_active

aroma installer



  • UMS Mass storage (Sense applications)
  • common presets
    • turn on/off S2W
    • S2W direction dependent
    • S2W three/two buttons distance
    • pocket protection on/off
    • turn on/off DT2W
    • DT2W only on the VK board
    • usb fast charge on/off
    • VK button brightness
      • set 0
      • set 10
      • set 60
      • set 140
      • set 255
    • GPU OC 416, 484, 520
      • set 416 Mhz
      • set 484 Mhz
      • set 520 Mhz
    • boost CPU on resume
    • disable/enable EDP limitation
    • disable/enable LP mode on resume
    • disable/enable ECO mode
    • limit CPU max freq
  • undervolting
    • CPU
      • -25 mV
      • -50 mV
    • CORE
      • -25 mV
      • -50 mV
  • frandom device
  • flash kernel image (for S-OFF device)
    • Sense LM seria
    • Sense LQ seria
    • Sense LI seria
    • Sense UV LM seria
    • Sense UV LQ seria
    • Sense UV LI seria
    • Sense MV LM seria
    • Sense MV LQ seria
    • Sense MV LI seria
CHANGE LOG
Code:
[B]Ver 023[/B]
+ added MV kernels - middle undervolting from the box (CORE -25 mV/CPU -50 mV) 
- complette removed LS seria.
[SIZE=1][COLOR=navy]full kernel set now: LM, LM_UV, LM_MV, LQ, LQ_UV, LQ_MV, LI, LI_UV, LI_MV[/COLOR][/SIZE]
[B]aroma[/B] 
+ added value 10 backlight button brightness
 
[B]Ver 022[/B] (renew)
+ the golden kernel seria LM UV -50 from the box, return back in full team UV - LM, LQ, LI, LS look in ZIP with uv predicate.
- removed quick core uv option as incompatible with UV -50 kernels, the core_millivolts stay.
[B]aroma[/B] 
* fixed mistakes.
+ added  eco mode option
+ added limit CPU max freq option
+ account UV -50 kernels features
 
[B]Ver 021[/B]
+ added intelli hot plug (faux123), LI seria in ZIP
* restored Best trade  hot plug (HTC), LS seria in ZIP
 
[B]Ver 020[/B]
* fixed bluetooth for AOSP, checked with CM 10.2.1
 
[B]Ver 019[/B]
+ restored frandom compiled as separate module
* restored /sys/kernel/tegra3_dvfs/core_millivolts
[SIZE=1][COLOR=#0000ff]getter show CPU clock freq with CPU voltage, setter takes one digital value: 25 or -25 or -50 etc. Entered value applying to all CPU voltage table.[/COLOR][/SIZE]
+ added core voltage attribute /sys/kernel/tegra3_dvfs/core_millivolts
[SIZE=1][COLOR=blue]getter show GPU clock freq with CORE voltage, setter takes one digital value: 25 or -25 or -50 etc. Entered value applying to all CORE voltage table.[/COLOR][/SIZE]
+ added quick core voltage atrribute /sys/kernel/tegra3_dvfs/core_quick_mv
 [SIZE=1][COLOR=blue]0 - stock mV table, 1 set -25 mV,  2 set -50 mV into core_millivolts[/COLOR][/SIZE]
* compiled two kernel files LM and LQ with stock voltage 
[B]aroma[/B] 
+ added undervolting option to CORE and CPU voltage.
* restored frandom option
* in zip file two kernel images LM and LQ seria packed with Sense ramdisk.
[COLOR=blue]To get AOSP repack appropriate sense kernel into AOSP image.[/COLOR] 
 
[B]Ver 018 (renew)[/B]
* DVFS GPU table 484 Mhz set as default
- removed frandom device
[B]aroma[/B] 
+ default GPU OC 484 Mhz
- removed endeavoru model checks before install
- removed rescue voltage
* in zip file now four kernels: LM seria 50 and 25 mV undervolted, LQ seria 50 and 25 mV undervolted.
[COLOR=blue]To get AOSP repack appropriate sense kernel into AOSP image.[/COLOR] 
 
[B]Ver 017 [/B](renew)
* undervolted -50mV for all freq table from the box
* enhanced gpu_quick_oc to three position. 0 - 416 Mhz(default), 1 - 484 Mhz, 2 - 520 Mhz
* no_edp_limit reworked and renamed to disable_edp_limit. Now applied values from init.d without losing after.
+ added gaming governor
+ compiled with linaro 4.7 Cortex A9 toolchain with appropriated compiler options
+ added frandom and erandom char devices
[SIZE=1][COLOR=blue]56frandom script replace random with frandom and urandom with erandom.[/COLOR][/SIZE]
* installation via aroma installer
+ kernel repacked with AISP and CM ramdisks (tnx @[URL="http://forum.xda-developers.com/htc-one-x/member.php?u=4898058"][COLOR=#d38339]audahadi[/COLOR][/URL])
  [SIZE=1][COLOR=blue]Not sure it working - need check.[/COLOR][/SIZE]
 
[B]Ver 016[/B]
- reverted to stock variant button backlight - removed blink virtual key supports, button_brightness stay here.
+ swap support
+ reworked init.d/55sw2wake
+ reworked min scale frequnce same as max
+ compiled with linaro 4.7
* fixed not applied CPU voltage
* fixed abnormal battery consuming
* GPU OC set default to 484 Mhz
+ added gpu_quick_oc to 520 Mgz
 
[B]Ver 015[/B]
* user policy max  freq sync vs scaling max.
+ applied fix for proximity sensor with not enough light.
+applyed wi-fi patch.
 
To init.d/55sw2wake added
------------------------
##Blink VK with events
echo "0" > /sys/class/leds/button-backlight/auto_bln;
#Actual anly for cpuquiet LQ seria
#echo "0" > /sys/module/cpu_tegra/parameters/disable_lp_mode_on_resume;
 
[B]Ver 014[/B]
* Remade no_edp_limit attribute. Now can be applied from init.d
 
[B]Ver 013[/B]
+ added Backlight button brightness
[SIZE=1][COLOR=blue]/sys/class/leds/button-backlight/button_brightness (0-255)[/COLOR][/SIZE]
 
[B]Ver 012[/B]
* UV-mv table
[SIZE=1][COLOR=blue]/sys/kernel/tegra3_dvfs/cpu_millivolts[/COLOR][/SIZE]
* GPU OC 520 persist
[SIZE=1][COLOR=blue]removed gpu_oc and quick_gpu_oc attributies (not needed),[/COLOR][/SIZE]
[SIZE=1][COLOR=blue]but forgot to remove commented string gpu_quick_oc from init.d/sw2wake[/COLOR][/SIZE]
- Removed intellidemand, ondemand1 and touchdemand governors 
[SIZE=1][COLOR=blue]old release not compatible with new kernel, may be i'm add reworked versions latter[/COLOR][/SIZE]
* Thermal throttle limitation
[SIZE=1][COLOR=blue]to disable /sys/module/cpu_tegra/parameters/no_thermal_throttle_limit (1-disable control)[/COLOR][/SIZE]
[SIZE=1][COLOR=red]i'm highly do not recommending touch it[/COLOR][/SIZE]
[SIZE=1][COLOR=#ff0000]thermal throttle prevent cpu damage from overheating more then 85 deg by C[/COLOR][/SIZE]
* EDP limitation
[SIZE=1][COLOR=blue]to disable /sys/module/cpu_tegra/parameters/no_edp_limit (1-disable max CPU freq limits in multi cpu mode)[/COLOR][/SIZE]
[SIZE=1][COLOR=#0000ff]EDP set freq limits dinamicalky decide battery level and cpu temperature below 85 deg by C[/COLOR][/SIZE]
* perf mode for awake 
[SIZE=1][COLOR=blue]/sys/module/cpu_tegra/parameters/perf_early_suspend (1-enable perfomance mode in early suspend mode)[/COLOR][/SIZE]
+ Support HTC power save mode
[SIZE=1][COLOR=blue]/sys/htc/power_save (1 - enable power save mode 1.3 Ghz cpu limitation)[/COLOR][/SIZE]
[SIZE=1][COLOR=#ff0000]controlled by ROM HTC power manager no need touch it[/COLOR][/SIZE]
+ Support HTC media boost
[SIZE=1][COLOR=blue]Don't investigate it. In code it some alghoritm to boost cpu freq for audio and video processing. looks like controled by ROM[/COLOR][/SIZE]
+ Support HTC ril boost
[SIZE=1][COLOR=blue]Boost cpu freq in deep sleep mode for ril modem(incoming call)[/COLOR][/SIZE]
 
[B]Ver 011[/B] - died in beta stage
 
[B]Ver 010[/B]
+ GPU OC 520 optional in init.d/sw2wake
+ MP Decision instead HOTPLUG
+ IO Schedules (bfq, row, sio)
+ Governors (touchdemand, ondemand1)
 
[B]Ver 009[/B]
- GPU 520 removed
* do over again dt2w
* fixed stuck after deep sleep
* fixed vk responsible for Venom users
 
[B]Ver 008[/B]
+ Voltage control
+ GPU 520
+ smartmax, smartmax_eps governors.
 
[B]Ver 007[/B]
*Code revised and cleaned
*Pocket protection rewrited, now it work as expected
-Dead area by default revert back to 0
 
[B]Ver 006[/B]
+s2w Added pocket protection
[SIZE=1][COLOR=blue]/sys/android_touch/pocket_detect, enabled by default in 55sw2wake[/COLOR][/SIZE]
+dt2w Added dead area
[SIZE=1][COLOR=blue]/sys/android_touch/s2w_double_tap_dead_area, 1780 by default in 55sw2wake (dt2w work only in virtual key panel)[/COLOR][/SIZE]
[SIZE=1][COLOR=blue]put 0 for dt2w works on all screen and not only on virtual keya area.[/COLOR][/SIZE]

HOW TO FLASH
For S-OFF
1. Download ZIP file and put to SD card
2. Flash ZIP from recovery

For S-ON
1. Download ZIP file and extract kernel\[what you need].img to Kernel Flasher fastboot dirrectory on the PC
2. Rename .img file to boot.img
2. Put ZIP file to SD card and flash from recovery
3. Reboot to bootloader and flash kernel by Kernel Flasher from PC

Downloads post #2
 
Last edited:

lyapota

Inactive Recognized Developer
Aug 15, 2008
2,727
13,732
Kiev
Download section

Short explanation

Tegra 3
Tegra 3 have two CPU clasters
G cluster: 4 high performance Cortex A9 cores
LP cluster: 1 low leakage Cortex A9 core
Only 1 cluster can be active at a time
To enable use of LP cluster, must only 1 CPU to be active
No interrupts or other wakeups possible for other cores

CPU management
Handles both onlining/offlining cores and cluster switch
Use hotplug to online/offline cores
Uses the per cpu frequency targets set by cpufreq, and number of runing threads, as a measure of load

CPUFreq
The cpufreq architecture allows frequency scaling of a target CPU and is a basic driver installed in the kernel. Controlling of frequency and its corresponding voltage results in lower power of the target device. On the Android device, dynamic frequency scaling is realized by using the governors.
Governor monitors the current usage on each core at certain time intervals. When the load exceeds or falls below the threshold, frequencies are made higher or lower dynamically. Use SMP to identify power suspend/resume events.

Governors
Deside with what frequency must works cpu
Decide how long time cpu must stay with this frequency and which be next
Good guide by governors HERE.

HotPlug
The hotplug is an extended function of cpufreq, which was developed specifically for the power control of multicore processors. When cpufreq sets a core to the maximum frequency that runs for a certain period of time, the hotplug adds another core to distribute the load. Similarly, when cpufreq sets a core to the minimum frequency and the load stays low, the hotplug shuts down excess cores to reduce power consumption.

HTC best trade (HTC)
Cpu auto-hotplug/unplug based on cpufreq and runnable threads
Automatic decision wether to switch to low power core or not
Automatic decision wether to switch off cpus 1,2,3

Qualcom mpdecision (showp1984)
Cpu auto-hotplug/unplug based on system load (runqueue)
Automatic decision wether to switch to low power core or not
Low power single core while screen is off

Nvidia cpuquiet (maxwen)
Uses load status to hotplug cpus
Uses also rq_stats to detect situations with lots of threads, but low load
Froze cpus instead turn off as in best trade and mpdecision.

Cpuquiet implements pluggable policies for forcing cpu cores into a quiescent state. Appropriate policies will save power without hurting performance
Basically its a governer for the CPU cores
Runnable activates cores based on multithreading
Balanced activates based on load
Userspace basically forces them online
RQ_STATS and LOAD_STATS use the rq information to scale the CPUs

Cpu quiescent state, instead turning off it was main idea for develop cpuquiet by nvidia.

Intelliplug (faux123)
Cpu auto-hotplug/unplug based on system load (runqueue)
Automatic decision wether to switch to low power core or not
Low power single core while screen is off
Faux's mpdecision variation.

ver #023
LS seria - stock HTC best trade hotplug, LM seria - mpdecision hotplug, LQ seria - nvidia cpuquiet hotplug, LI seria - intelli hotplug
*for more informtyion read Short explanation


To get AOSP just repack apropriate Sense seria with wanted AOSP kernel image from installer

UV predicate mean undervolted -50 mV both CPU and CORE from the box.
MV predicate mean undervolted -25 mV CORE and -50 mV CPU from the box.
Flash UV only if you sure in your device. Other way - it try first standart version with undervolting on the fly. If your device works without problems with -50 mV can try MV version, next step UV.
*UV version MUCH power save than standart, but so undervolting can not works on your device.

androidfilehost.com

mirror
bindroid.com
 
Last edited:

bhaumik555

Senior Member
Jan 24, 2012
230
48
Ahmedabad
Awh my god lyapota you are the real champ i mean real developer 1st for mod 2nd for ROM and now for even kernel also. I salute your dedication for one x. You have learned a lot. Gr8 work much appreciated

Sent from my HTC One X using Tapatalk
 
  • Like
Reactions: cappuccina

smeejaytee

Recognized Contributor
Sep 29, 2013
7,815
4,104
40
kent
Xiaomi Mi 10T / 10T Pro
Thank you for this it was much needed been using this kernel since you first posted it all works well I have had a couple ogg reboots but I think that's due to minfrees it's developing well I can't wait to see some oc and uv smartmax gov ect. Is this in your plans if you don't mind me asking I am very happy the way things are but battery could use a little help however my hox runs beautifully using your kernel we all really appreciate your work and thank you again

Sent from my HTC One X using Tapatalk
 

Top Liked Posts

  • There are no posts matching your filters.
  • 160
    op_kernel_head.png

    src GitHub link.

    CREDITS
    step by step i'm porting works this guys.

    maxwen (most of code)
    n3ocort3x, Xmister, Alex-V, faux123

    IMAGES
    lonlyx_kernel1.png
    lonlyx_kernel2.png
    lonlyx_kernel3.png
    lonlyx_kernel4.png
    lonlyx_kernel5.png
    lonlyx_kernel7.png
    lonlyx_kernel8.png
    lonlyx_kernel9.png
    lonlyx_kernel6.png


    Configuring kernel parameters:
    S2W Configs:
    Turn off:
    Code:
    echo "0" > /sys/android_touch/sweep2wake
    Button panel locks to s2w after this distance:
    Code:
    /sys/android_touch/s2w_register_threshold
    Screen turns on/off after this distance:
    Code:
    /sys/android_touch/s2w_min_distance
    Direction independent(1 - Yes, 0 - No):
    Code:
    /sys/android_touch/s2w_allow_stroke
    Pocket protection(1 - Yes, 0 - No):
    Code:
    /sys/android_touch/pocket_detect
    DoubleTap2Wake Configs:
    Turn on:
    Code:
    /sys/android_touch/s2w_allow_double_tap
    Time double taps (ms)
    Code:
    /sys/android_touch/s2w_double_tap_threshold
    Time between double taps
    Code:
    /sys/android_touch/s2w_double_tap_duration
    Dead area in points from top of screen
    put 1780 for dt2w works only on virtual keya area
    Code:
    /sys/android_touch/s2w_double_tap_dead_area
    Fast charge:
    allow charge device from usb connected to PC as from wall wallet
    can close ums connestion
    Code:
    /sys/devices/platform/htc_battery/fast_charge
    Disable CPU freq limit in early suspend mode
    Code:
    /sys/module/cpu_tegra/parameters/perf_early_suspend
    Disable EDP limit
    Code:
    /sys/module/cpu_tegra/parameters/disable_edp_limit
    Backlight button brightness (0-255)
    Code:
    /sys/class/leds/button-backlight/button_brightness
    Quick GPU OC 0 - 416 Mhz, 1 - 484 Mhz, 2 - 520 Mhz
    Code:
    /sys/kernel/tegra3_dvfs/gpu_quick_oc
    CPU UV one digital value such as 25 or 0 or -25, -50, etc
    Code:
    /sys/kernel/tegra3_dvfs/cpu_millivolts
    CORE UV one digital value such as 25 or 0 or -25, -50, etc
    Code:
    /sys/kernel/tegra3_dvfs/core_millivolts
    Eco mode 0 - disabled, 1 - enabled (plug up to max 2 core)
    Code:
    /sys/module/intelli_plug/parameters/eco_mode_active

    aroma installer



    • UMS Mass storage (Sense applications)
    • common presets
      • turn on/off S2W
      • S2W direction dependent
      • S2W three/two buttons distance
      • pocket protection on/off
      • turn on/off DT2W
      • DT2W only on the VK board
      • usb fast charge on/off
      • VK button brightness
        • set 0
        • set 10
        • set 60
        • set 140
        • set 255
      • GPU OC 416, 484, 520
        • set 416 Mhz
        • set 484 Mhz
        • set 520 Mhz
      • boost CPU on resume
      • disable/enable EDP limitation
      • disable/enable LP mode on resume
      • disable/enable ECO mode
      • limit CPU max freq
    • undervolting
      • CPU
        • -25 mV
        • -50 mV
      • CORE
        • -25 mV
        • -50 mV
    • frandom device
    • flash kernel image (for S-OFF device)
      • Sense LM seria
      • Sense LQ seria
      • Sense LI seria
      • Sense UV LM seria
      • Sense UV LQ seria
      • Sense UV LI seria
      • Sense MV LM seria
      • Sense MV LQ seria
      • Sense MV LI seria
    CHANGE LOG
    Code:
    [B]Ver 023[/B]
    + added MV kernels - middle undervolting from the box (CORE -25 mV/CPU -50 mV) 
    - complette removed LS seria.
    [SIZE=1][COLOR=navy]full kernel set now: LM, LM_UV, LM_MV, LQ, LQ_UV, LQ_MV, LI, LI_UV, LI_MV[/COLOR][/SIZE]
    [B]aroma[/B] 
    + added value 10 backlight button brightness
     
    [B]Ver 022[/B] (renew)
    + the golden kernel seria LM UV -50 from the box, return back in full team UV - LM, LQ, LI, LS look in ZIP with uv predicate.
    - removed quick core uv option as incompatible with UV -50 kernels, the core_millivolts stay.
    [B]aroma[/B] 
    * fixed mistakes.
    + added  eco mode option
    + added limit CPU max freq option
    + account UV -50 kernels features
     
    [B]Ver 021[/B]
    + added intelli hot plug (faux123), LI seria in ZIP
    * restored Best trade  hot plug (HTC), LS seria in ZIP
     
    [B]Ver 020[/B]
    * fixed bluetooth for AOSP, checked with CM 10.2.1
     
    [B]Ver 019[/B]
    + restored frandom compiled as separate module
    * restored /sys/kernel/tegra3_dvfs/core_millivolts
    [SIZE=1][COLOR=#0000ff]getter show CPU clock freq with CPU voltage, setter takes one digital value: 25 or -25 or -50 etc. Entered value applying to all CPU voltage table.[/COLOR][/SIZE]
    + added core voltage attribute /sys/kernel/tegra3_dvfs/core_millivolts
    [SIZE=1][COLOR=blue]getter show GPU clock freq with CORE voltage, setter takes one digital value: 25 or -25 or -50 etc. Entered value applying to all CORE voltage table.[/COLOR][/SIZE]
    + added quick core voltage atrribute /sys/kernel/tegra3_dvfs/core_quick_mv
     [SIZE=1][COLOR=blue]0 - stock mV table, 1 set -25 mV,  2 set -50 mV into core_millivolts[/COLOR][/SIZE]
    * compiled two kernel files LM and LQ with stock voltage 
    [B]aroma[/B] 
    + added undervolting option to CORE and CPU voltage.
    * restored frandom option
    * in zip file two kernel images LM and LQ seria packed with Sense ramdisk.
    [COLOR=blue]To get AOSP repack appropriate sense kernel into AOSP image.[/COLOR] 
     
    [B]Ver 018 (renew)[/B]
    * DVFS GPU table 484 Mhz set as default
    - removed frandom device
    [B]aroma[/B] 
    + default GPU OC 484 Mhz
    - removed endeavoru model checks before install
    - removed rescue voltage
    * in zip file now four kernels: LM seria 50 and 25 mV undervolted, LQ seria 50 and 25 mV undervolted.
    [COLOR=blue]To get AOSP repack appropriate sense kernel into AOSP image.[/COLOR] 
     
    [B]Ver 017 [/B](renew)
    * undervolted -50mV for all freq table from the box
    * enhanced gpu_quick_oc to three position. 0 - 416 Mhz(default), 1 - 484 Mhz, 2 - 520 Mhz
    * no_edp_limit reworked and renamed to disable_edp_limit. Now applied values from init.d without losing after.
    + added gaming governor
    + compiled with linaro 4.7 Cortex A9 toolchain with appropriated compiler options
    + added frandom and erandom char devices
    [SIZE=1][COLOR=blue]56frandom script replace random with frandom and urandom with erandom.[/COLOR][/SIZE]
    * installation via aroma installer
    + kernel repacked with AISP and CM ramdisks (tnx @[URL="http://forum.xda-developers.com/htc-one-x/member.php?u=4898058"][COLOR=#d38339]audahadi[/COLOR][/URL])
      [SIZE=1][COLOR=blue]Not sure it working - need check.[/COLOR][/SIZE]
     
    [B]Ver 016[/B]
    - reverted to stock variant button backlight - removed blink virtual key supports, button_brightness stay here.
    + swap support
    + reworked init.d/55sw2wake
    + reworked min scale frequnce same as max
    + compiled with linaro 4.7
    * fixed not applied CPU voltage
    * fixed abnormal battery consuming
    * GPU OC set default to 484 Mhz
    + added gpu_quick_oc to 520 Mgz
     
    [B]Ver 015[/B]
    * user policy max  freq sync vs scaling max.
    + applied fix for proximity sensor with not enough light.
    +applyed wi-fi patch.
     
    To init.d/55sw2wake added
    ------------------------
    ##Blink VK with events
    echo "0" > /sys/class/leds/button-backlight/auto_bln;
    #Actual anly for cpuquiet LQ seria
    #echo "0" > /sys/module/cpu_tegra/parameters/disable_lp_mode_on_resume;
     
    [B]Ver 014[/B]
    * Remade no_edp_limit attribute. Now can be applied from init.d
     
    [B]Ver 013[/B]
    + added Backlight button brightness
    [SIZE=1][COLOR=blue]/sys/class/leds/button-backlight/button_brightness (0-255)[/COLOR][/SIZE]
     
    [B]Ver 012[/B]
    * UV-mv table
    [SIZE=1][COLOR=blue]/sys/kernel/tegra3_dvfs/cpu_millivolts[/COLOR][/SIZE]
    * GPU OC 520 persist
    [SIZE=1][COLOR=blue]removed gpu_oc and quick_gpu_oc attributies (not needed),[/COLOR][/SIZE]
    [SIZE=1][COLOR=blue]but forgot to remove commented string gpu_quick_oc from init.d/sw2wake[/COLOR][/SIZE]
    - Removed intellidemand, ondemand1 and touchdemand governors 
    [SIZE=1][COLOR=blue]old release not compatible with new kernel, may be i'm add reworked versions latter[/COLOR][/SIZE]
    * Thermal throttle limitation
    [SIZE=1][COLOR=blue]to disable /sys/module/cpu_tegra/parameters/no_thermal_throttle_limit (1-disable control)[/COLOR][/SIZE]
    [SIZE=1][COLOR=red]i'm highly do not recommending touch it[/COLOR][/SIZE]
    [SIZE=1][COLOR=#ff0000]thermal throttle prevent cpu damage from overheating more then 85 deg by C[/COLOR][/SIZE]
    * EDP limitation
    [SIZE=1][COLOR=blue]to disable /sys/module/cpu_tegra/parameters/no_edp_limit (1-disable max CPU freq limits in multi cpu mode)[/COLOR][/SIZE]
    [SIZE=1][COLOR=#0000ff]EDP set freq limits dinamicalky decide battery level and cpu temperature below 85 deg by C[/COLOR][/SIZE]
    * perf mode for awake 
    [SIZE=1][COLOR=blue]/sys/module/cpu_tegra/parameters/perf_early_suspend (1-enable perfomance mode in early suspend mode)[/COLOR][/SIZE]
    + Support HTC power save mode
    [SIZE=1][COLOR=blue]/sys/htc/power_save (1 - enable power save mode 1.3 Ghz cpu limitation)[/COLOR][/SIZE]
    [SIZE=1][COLOR=#ff0000]controlled by ROM HTC power manager no need touch it[/COLOR][/SIZE]
    + Support HTC media boost
    [SIZE=1][COLOR=blue]Don't investigate it. In code it some alghoritm to boost cpu freq for audio and video processing. looks like controled by ROM[/COLOR][/SIZE]
    + Support HTC ril boost
    [SIZE=1][COLOR=blue]Boost cpu freq in deep sleep mode for ril modem(incoming call)[/COLOR][/SIZE]
     
    [B]Ver 011[/B] - died in beta stage
     
    [B]Ver 010[/B]
    + GPU OC 520 optional in init.d/sw2wake
    + MP Decision instead HOTPLUG
    + IO Schedules (bfq, row, sio)
    + Governors (touchdemand, ondemand1)
     
    [B]Ver 009[/B]
    - GPU 520 removed
    * do over again dt2w
    * fixed stuck after deep sleep
    * fixed vk responsible for Venom users
     
    [B]Ver 008[/B]
    + Voltage control
    + GPU 520
    + smartmax, smartmax_eps governors.
     
    [B]Ver 007[/B]
    *Code revised and cleaned
    *Pocket protection rewrited, now it work as expected
    -Dead area by default revert back to 0
     
    [B]Ver 006[/B]
    +s2w Added pocket protection
    [SIZE=1][COLOR=blue]/sys/android_touch/pocket_detect, enabled by default in 55sw2wake[/COLOR][/SIZE]
    +dt2w Added dead area
    [SIZE=1][COLOR=blue]/sys/android_touch/s2w_double_tap_dead_area, 1780 by default in 55sw2wake (dt2w work only in virtual key panel)[/COLOR][/SIZE]
    [SIZE=1][COLOR=blue]put 0 for dt2w works on all screen and not only on virtual keya area.[/COLOR][/SIZE]

    HOW TO FLASH
    For S-OFF
    1. Download ZIP file and put to SD card
    2. Flash ZIP from recovery

    For S-ON
    1. Download ZIP file and extract kernel\[what you need].img to Kernel Flasher fastboot dirrectory on the PC
    2. Rename .img file to boot.img
    2. Put ZIP file to SD card and flash from recovery
    3. Reboot to bootloader and flash kernel by Kernel Flasher from PC

    Downloads post #2
    84
    Download section

    Short explanation

    Tegra 3
    Tegra 3 have two CPU clasters
    G cluster: 4 high performance Cortex A9 cores
    LP cluster: 1 low leakage Cortex A9 core
    Only 1 cluster can be active at a time
    To enable use of LP cluster, must only 1 CPU to be active
    No interrupts or other wakeups possible for other cores

    CPU management
    Handles both onlining/offlining cores and cluster switch
    Use hotplug to online/offline cores
    Uses the per cpu frequency targets set by cpufreq, and number of runing threads, as a measure of load

    CPUFreq
    The cpufreq architecture allows frequency scaling of a target CPU and is a basic driver installed in the kernel. Controlling of frequency and its corresponding voltage results in lower power of the target device. On the Android device, dynamic frequency scaling is realized by using the governors.
    Governor monitors the current usage on each core at certain time intervals. When the load exceeds or falls below the threshold, frequencies are made higher or lower dynamically. Use SMP to identify power suspend/resume events.

    Governors
    Deside with what frequency must works cpu
    Decide how long time cpu must stay with this frequency and which be next
    Good guide by governors HERE.

    HotPlug
    The hotplug is an extended function of cpufreq, which was developed specifically for the power control of multicore processors. When cpufreq sets a core to the maximum frequency that runs for a certain period of time, the hotplug adds another core to distribute the load. Similarly, when cpufreq sets a core to the minimum frequency and the load stays low, the hotplug shuts down excess cores to reduce power consumption.

    HTC best trade (HTC)
    Cpu auto-hotplug/unplug based on cpufreq and runnable threads
    Automatic decision wether to switch to low power core or not
    Automatic decision wether to switch off cpus 1,2,3

    Qualcom mpdecision (showp1984)
    Cpu auto-hotplug/unplug based on system load (runqueue)
    Automatic decision wether to switch to low power core or not
    Low power single core while screen is off

    Nvidia cpuquiet (maxwen)
    Uses load status to hotplug cpus
    Uses also rq_stats to detect situations with lots of threads, but low load
    Froze cpus instead turn off as in best trade and mpdecision.

    Cpuquiet implements pluggable policies for forcing cpu cores into a quiescent state. Appropriate policies will save power without hurting performance
    Basically its a governer for the CPU cores
    Runnable activates cores based on multithreading
    Balanced activates based on load
    Userspace basically forces them online
    RQ_STATS and LOAD_STATS use the rq information to scale the CPUs

    Cpu quiescent state, instead turning off it was main idea for develop cpuquiet by nvidia.

    Intelliplug (faux123)
    Cpu auto-hotplug/unplug based on system load (runqueue)
    Automatic decision wether to switch to low power core or not
    Low power single core while screen is off
    Faux's mpdecision variation.

    ver #023
    LS seria - stock HTC best trade hotplug, LM seria - mpdecision hotplug, LQ seria - nvidia cpuquiet hotplug, LI seria - intelli hotplug
    *for more informtyion read Short explanation


    To get AOSP just repack apropriate Sense seria with wanted AOSP kernel image from installer

    UV predicate mean undervolted -50 mV both CPU and CORE from the box.
    MV predicate mean undervolted -25 mV CORE and -50 mV CPU from the box.
    Flash UV only if you sure in your device. Other way - it try first standart version with undervolting on the fly. If your device works without problems with -50 mV can try MV version, next step UV.
    *UV version MUCH power save than standart, but so undervolting can not works on your device.

    androidfilehost.com

    mirror
    bindroid.com
    34
    Ver #016 release

    Ver #016 release.

    After three weeks of testing, i decided to release a version without CPU overclock.
    This version the best what i'm made before.
    Very good powerfull, smoothness and battery consuming balanced.

    Changelog related to #015 ver.
    - reverted to stock variant button backlight - removed blink virtual key supports, button_brightness stay here.
    + swap support
    + reworked init.d/55sw2wake
    + reworked min scale frequnce same as max
    + compiled with linaro 4.7
    * fixed not applied CPU voltage
    * fixed abnormal battery consuming
    * GPU OC set default to 484 Mhz
    + added gpu_quick_oc to 520 Mgz

    #016 stay using pnpmgr and:
    rarely you can see changed min freq, no need touch it, min freq will be automitical restore to saved value in short time period.
    3d gpu scaling will be automiticaly reset.

    You can remove/rename pnpmgr in /system/bin, BUT!!! you'll lost about 30% smoothness and graphical performance not winning anything.
    So, if you previously remove pnpmgr, my recommendation to return it back.
    26
    aroma installer for #017

    aroma installer for #017

    image files into ZIP file by path
    - kernel/lm/boot.img - LM seria (mpdecision)
    - kernel/lq/boot.img - LQ seria (cpuquiet)

    even if you have already installed #017, you can play with kernel options from aroma.
    allow:

    • turn on/off S2W
    • S2W direction dependent
    • S2W three/two buttons distance
    • pocket protection on/off
    • turn on/off DT2W
    • DT2W only on the VK board
    • usb fast charge on/off
    • VK button low/high brightness
    • GPU OC 416, 484, 520
    • boost CPU on resume
    • disable EDP limitation
    • disable LP mode on resume
    rescue voltage tables, ...

    HERE and HERE

    if all good with it, tomorrow i'll change download section - post #2
    EDIT: today
    25
    Thanks to all for good words. This is what do your work enjoyable.