[Sony Ericsson Xperia Neo, Pro] AnDyX:
This modules are for people with stock kernels because they don't have 'smartass' or ondemandX' governors.

EASY ENGLISH:

Differences between this modules and build in stock kernels:

- allows to set max CPU freq when screen is off (to save battery),

- allows to set starting CPU freq when phone awakes (to speed up awake process),

- allows set/change almost all aspects of governor (to suite needs),

- should be a bit more responsive when parameters are well chosen for smartassv2 governor.

Each governor has some predefinied values - more info in "Available settings".

If governors works or not on other version then 4.0.2.A.0.42 let me know.

Start:

The goal was bring 'smartassv2' and 'ondemandX' governor to work with stock kernel on Neo V.

Most information is in my thread on 'XPERIA X8 Android Development': [Module] | X8 | X10 mini/pro | AX8_SMARTASS v002 | 'smartass' governor | [2011-07-19]

To remind:

Info:

- information about governors is here,

- more information about 'smartass' governor is here or here,

- how different governors work is explained here: [Q] SetCPU governors (explained).

Prerequisites:

- Neo V (if works on Neo - let me know),

- root,

- ondemandX should work on any version,

- smartass was compiled against 4.0.2.A.0.42 version, how run on other version will be explained in manuall installation section,

- desire to replace SetCPU - when used only for 'ScreenOff' profile.

Manual installation:

Unzip file

Run copy.cmd file - this should copy modules to /system/lib/modules

run adb shell or terminal - whatever you like and execute su

su

If you have 4.0.2.A.0.42 version proceed to step 6

For smartass governor you need to know address for 'kallsyms_lookup_name'

run following command:

cat /proc/kallsyms | grep kallsyms_lookup_name

result should be as follows:

80101aec T module_kallsyms_lookup_name
[SIZE="3"][B]801056f0[/B][/SIZE] T kallsyms_lookup_name

Bolded value (801056f0) is address which we need.

Optional step: lower min CPU freq:

echo 122880 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq

Insert ondemandX module:

insmod /system/lib/modules/aneov_ondemandx.ko

in dmesg command should be line:

<6>[ 431.711517] aneov_ondemandX: module v001 for device Xperia Neo V loaded

Insert smartassV2 module:

for version 4.0.2.A.0.42 just run command:

insmod /system/lib/modules/aneov_smartass2.ko

in dmesg command should be line:

<6>[ 420.308380] aneov_smartass2: module v001 for device Xperia Neo V loaded

for other use 'address' and use following command:

insmod /system/lib/modules/aneov_smartass2.ko lookup_address=0x[B][COLOR="Red"]801056f0[/COLOR][/B]

in dmesg command should be line:

<6>[ 420.308380] aneov_smartass2: module v001 for device Xperia Neo V loaded

Now you can enable desired governor. Execute:

echo "smartassV2" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

for smartassV2 or

echo "ondemandX" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

for ondemandX governor.

Lower min cpu freq a bit:

echo 122880 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq

Until you're sure that it works with your hardware, don't install it to hw_config.sh.

Available settings:

Will be added later

v001:

- just initial version fixed to work with Neo V.

Disclaimer

I'm not responsible if this module damages your lovely phone. Use it at your own risk! Think before you do something!

Sources at: GitHub