Related
hello all,
we have all seen the sound issue with cm7/cm9 where the sound is distorted upon screen shutting down.
I thought maybe getting our research together may be able to help someone develop a fix so i'll start.
Based on some tear down research, I figured out the the touchpad comes with the Wolfson WM8958
here is a pdf with great info and diagrams (including pin layouts and diagrams, max ratings, and recommend operating conditions):
http://www.wolfsonmicro.com/documents/uploads/product_briefs/en/WM8958_ProductBrief_1.pdf
link: http://www.wolfsonmicro.com/products/audio_hubs/WM8958/
key features:
Features
24-bit 4-channel Hi-Fi DAC and 2-channel Hi-Fi ADC
100dB SNR during DAC playback (‘A’ weighted)
Smart MIC interface
- Power, clocking and data input for up to four digital MICs
- High performance analogue MIC interface
- MIC activity detect & interrupt allows processor to sleep
2W stereo (2x2W) class D/AB speaker driver
Capless Class W headphone drivers
- Integrated charge pump
- 5.3mW total power for DAC playback to headphones
4 Line outputs (single-ended or differential)
BTL Earpiece driver
Digital audio interfaces for multi-processor architecture
- Asynchronous stereo duplex sample rate conversion
- Powerful mixing and digital loopback functions
ReTune™ Mobile 5-band, 6-channel parametric EQ
Multiband compressor and dynamic range controller
Dual FLL provides all necessary clocks
- Self-clocking modes allow processor to sleep
- All standard sample rates from 8kHz to 96kHz
Active noise reduction circuits
- DC offset correction removes pops and clicks
- Ground loop noise cancellation
Integrated LDO regulators
72-ball W-CSP package (4.516 x 4.258 x 0.7mm)
----------------------------------------------------
now they have an opensource that may or may not be helpful:
http://opensource.wolfsonmicro.com/
Linux 2.6.38 was just released. As ever this release incorporates many enhancements from Wolfson, including substantial improvements in the memory usage when used with large and flexible devices such as modern audio hub CODECs and new driver support for WM8326, WM8737, WM8770 and WM8958
http://opensource.wolfsonmicro.com/content/wolfson-updates-2638
i was reading some information posted by timepants and eventually used by biotech creator of Touchvol on the webos side that seems interesting and may be useful:
here is a copy and paste since i'm not sure if i can post the link to another forum here.
To modify some "hidden" WM8958 CODEC settings from the console you can use the below commands using novaterm. I should caution that you should be very careful because you can break something if you set your headphones or the internal speakers to drive beyond their normal operating limits.
A reboot should reset the values to default.
See what mixer channels are available: "amixer" <enter>. I recommend copying the contents to a text editor window so you can maintain a list of defaults (which are the bottom line of each printed section). The headphones are tied to items relating to "AIF1" and "AIF1DAC1". I haven't explored speakers yet.
To control volume: amixer set "Headphone" <0..63>
To control volume boost: amixer set "AIF1 Boost" <0..3>
To enable/disable "3D Stereo": amixer set "3D Stereo" toggle
There are settings for an EQ but I haven't had success getting it to work yet. The associated settings appear to be "AIF1DAC1 EQ", "AIF1DAC1 EQ1", "AIF1DAC1 EQ2", "AIF1DAC1 EQ3", "AIF1DAC1 EQ4", "AIF1DAC1 EQ5", "AIF1DAC1 Enhanced EQ". Maybe there's another toggle or channel selection involved?
If anyone discovers any additional useful settings, be sure to share.
Edit: Changed WM8994 to WM8958. The kernel module in use is the WM8994 which is what confused me originally.
also seems like from reading the software may not take full advantage of the hardware, it may be using 2x1w rather then the 2x2w.
hope some of this helps, maybe we can get this issue resolved, thanks for reading
Hello, I was trying to tweak the hotplug governor (from trickster app).
These are the default values:
Code:
cpu_down_avg_times = 100
cpu_down_differential = 10
cpu_input_boost_enable = 1
cpu_input_boost_num = 2
cpu_num_base = 1
cpu_num_limit = 8
cpu_rush_avg_times = 5
cpu_rush_boost_enable = 1
cpu_rush_boost_num = 8
cpu_rush_threshold = 98
cpu_rush_tlp_times = 5
cpu_up_avg_times = 10
cpu_up_threshold = 90
down_differential = 15
ignore_nice_load = 0
io_is_busy = 1
is_cpu_hotplug_disable = 0
powersave_bias = 0
sampling_down_factor = 1
sampling_rate = 30000
up_threshold = 85
These are what I changed them to, I know I tweaked the rush values but the disabled it, I will see if I notice heavy stuttering without it.
Code:
cpu_down_avg_times = 200
cpu_down_differential = 20
cpu_input_boost_enable = 1
cpu_input_boost_num = 2
cpu_num_base = 1
cpu_num_limit = 8
cpu_rush_avg_times = 10
cpu_rush_boost_enable = 0
cpu_rush_boost_num = 4
cpu_rush_threshold = 80
cpu_rush_tlp_times = 10
cpu_up_avg_times = 20
cpu_up_threshold = 80
down_differential = 20
ignore_nice_load = 0
io_is_busy = 0
is_cpu_hotplug_disable = 0
powersave_bias = 0
sampling_down_factor = 40
sampling_rate = 40000
up_threshold = 80
I also can choose between cfq/deadline/noop as io schedulers, I am opting for deadline, and changed the tunable variables to:
Code:
add_random = 1
iostats = 0
nomerges = 0
rotational = 0
rq_affinity = 0
- - -
fifo_batch = 4
fron_merges = 1
read_expire = 300
write_expire = 1800
writes_starved = 1
what do these parameters mean?
cpu down avg times
cpu down differential
cpu input boost enable
cpu input boost num
cpu num base
cpu num limit
cpu rush avg times
cpu rush boost enable
cpu rush boost num
cpu rush threshold
cpu rush tlp times
cpu up avg times
cpu up threshold
down differential
ignore nice load
io is busy
is cpu hotplug disable
sampling down factor
powersave bias
sampling rate min
sampling rate
up threshold
please describe them. I'd like to tweak my CPU to get better performance and better battery life
What are the result of the test?
Hi all, got myself a Daydream and have been working on ways to make the experience better, and thought I'd share
Here's what I've done so far:
Make sure your build.prop device is set to angler and your ro.product.model is Nexus 6P
Check "Skip VR entry screens" in Developer Options in the Daydream app settings
Modify /etc/thermal-engine.conf to bump the throttling temperatures
Tweak governor to be as efficient as possible for Daydream use
Make sure Daydream, VR Services and Daydream Keyboard have all their permissions
I'm using stock ROM and the latest Franco kernel.
Results so far have been great, got through the Fantastic Beasts game without it lagging, then watched some youtube VR.
I'd love to make this even better, so share with me what you guys are doing to make your daydream experience better :highfive:
Updated 05/05/17 - v0.0.4
Code:
# Daydream Tweaks 0.0.4 - Xluco
#!/system/bin/sh
##################
# LITTLE Cluster #
##################
echo interactive > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo 460000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo 1344000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo '0:460000' > /sys/module/msm_performance/parameters/cpu_min_freq
echo '1:460000' > /sys/module/msm_performance/parameters/cpu_min_freq
echo '2:460000' > /sys/module/msm_performance/parameters/cpu_min_freq
echo '3:460000' > /sys/module/msm_performance/parameters/cpu_min_freq
echo '0:1344000' > /sys/module/msm_performance/parameters/cpu_max_freq
echo '1:1344000' > /sys/module/msm_performance/parameters/cpu_max_freq
echo '2:1344000' > /sys/module/msm_performance/parameters/cpu_max_freq
echo '3:1344000' > /sys/module/msm_performance/parameters/cpu_max_freq
echo "70 672000:79 768000:80 864000:54 960000:69 1248000:83 1344000:90" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads
echo 400000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_slack
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq
echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay
echo 100 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load
echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time
echo 80000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/max_freq_hysteresis
echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/ignore_hispeed_on_notif
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/boost
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/fast_ramp_down
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/align_windows
echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/boostpulse_duration
###############
# big Cluster #
###############
echo 1 > /sys/devices/system/cpu/cpu4/online
echo interactive > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
echo 1824000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq
echo 633600 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
echo '4:633600' > /sys/module/msm_performance/parameters/cpu_min_freq
echo '5:633600' > /sys/module/msm_performance/parameters/cpu_min_freq
echo '6:633600' > /sys/module/msm_performance/parameters/cpu_min_freq
echo '7:633600' > /sys/module/msm_performance/parameters/cpu_min_freq
echo '4:1824000' > /sys/module/msm_performance/parameters/cpu_max_freq
echo '5:1824000' > /sys/module/msm_performance/parameters/cpu_max_freq
echo '6:1824000' > /sys/module/msm_performance/parameters/cpu_max_freq
echo '7:1824000' > /sys/module/msm_performance/parameters/cpu_max_freq
echo "80 1248000:90 1536000:95" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads
echo 3000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_slack
echo 768000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq
echo 30000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate
echo 30000 1248000:50000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay
echo 90 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load
echo 30000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time
echo 80000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/max_freq_hysteresis
echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/ignore_hispeed_on_notif
echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/boost
echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/fast_ramp_down
echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/align_windows
echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif
echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load
echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/boostpulse_duration
##################
# Boost Settings #
##################
# Enable Input Boost for LITTLE cluster @600MHz for 40ms
echo 1 > /sys/module/cpu_boost/parameters/input_boost_enabled
echo 0:0 1:0 2:0 3:768000 4:0 5:0 6:0 7:0 > /sys/module/cpu_boost/parameters/input_boost_freq
echo 0 > /sys/module/cpu_boost/parameters/boost_ms
echo 50 > /sys/module/cpu_boost/parameters/input_boost_ms
#################
# Thermal Settings #
#################
# Enable Core Control and Disable MSM Thermal Throttling
echo 0 > /sys/module/msm_thermal/core_control/enabled
echo Y > /sys/module/msm_thermal/parameters/enabled
#################
# IO Settings #
#################
echo 0 > /sys/block/mmcblk0/queue/iostats
echo 2 > /sys/block/mmcblk0/queue/rq_affinity
thermal-engine.conf
Code:
# [email protected]:/ # cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_fre>
# 384000 460800 600000 672000 768000 864000 960000 1248000 1344000 1478400 1555200
# [email protected]:/ # cat /sys/devices/system/cpu/cpu4/cpufreq/scaling_available_fre>
# 384000 480000 633600 768000 864000 960000 1248000 1344000 1440000 1536000 1632000 1728000 1824000 1958400
# [email protected]:/ # cat /sys/class/kgsl/kgsl-3d0/devfreq/available_frequencies
# 600000000 510000000 450000000 390000000 305000000 180000000
[MONITOR_MSM_THERM_CLUSTER]
algo_type monitor
sampling 1000
sensor msm_therm
thresholds 46000 47000 48000 49000 50000 66000
thresholds_clr 45000 46000 47000 46000 47000 64000
actions cluster1 cluster1 cluster0 cluster0 cluster0 shutdown
action_info 1248000 960000 1344000 1248000 960000 1
[MONITOR_MSM_THERM_GPU]
algo_type monitor
sampling 1000
sensor msm_therm
thresholds 43000 45000 46000 47000 49000
thresholds_clr 42000 44000 45000 46000 48000
actions gpu gpu gpu gpu gpu
action_info 510000000 450000000 390000000 305000000 180000000
[MONITOR_MSM_THERM_HOTPLUG]
algo_type monitor
sampling 1000
sensor msm_therm
thresholds 46000 47000 48000
thresholds_clr 45000 46000 47000
actions hotplug_4+hotplug_5+hotplug_6+hotplug_7 hotplug_4+hotplug_5+hotplug_6+hotplug_7 hotplug_4+hotplug_5+hotplug_6+hotplug_7
action_info 0+0+0+1 0+1+0+1 1+1+1+1
[MONITOR_MSM_THERM_BUS]
algo_type monitor
sampling 1000
sensor msm_therm
thresholds 50000
thresholds_clr 47000
actions bus
action_info 1
[MONITOR_EMMC_THERM]
algo_type monitor
sampling 1000
sensor emmc_therm
thresholds 40000 42000 45000 53000
thresholds_clr 38000 40000 43000 50000
actions battery battery battery battery
action_info 1 2 3 4
[MONITOR_PA_THERM]
algo_type monitor
sampling 1000
sensor pa_therm1
thresholds 42000
thresholds_clr 40000
actions battery
action_info 3
[SS-GPU]
#algo_type ss
sampling 250
sensor gpu
device gpu
set_point 85000
set_point_clr 55000
time_constant 0
[SS-POPMEM]
#algo_type ss
sampling 10
sensor pop_mem
device cluster1
set_point 80000
set_point_clr 55000
time_constant 16
[SS-CPU7]
#algo_type ss
sampling 10
sensor cpu7
device cluster1
set_point 85000
set_point_clr 55000
time_constant 0
[SS-CPU6]
#algo_type ss
sampling 10
sensor cpu6
device cluster1
set_point 85000
set_point_clr 55000
time_constant 0
[SS-CPU5]
#algo_type ss
sampling 10
sensor cpu5
device cluster1
set_point 85000
set_point_clr 55000
time_constant 0
[SS-CPU4]
#algo_type ss
sampling 10
sensor cpu4
device cluster1
set_point 85000
set_point_clr 55000
time_constant 0
[SS-CPU3]
#algo_type ss
sampling 10
sensor cpu3
device cluster0
set_point 85000
set_point_clr 55000
time_constant 0
[SS-CPU2]
#algo_type ss
sampling 10
sensor cpu2
device cluster0
set_point 85000
set_point_clr 55000
time_constant 0
[SS-CPU1]
#algo_type ss
sampling 10
sensor cpu1
device cluster0
set_point 85000
set_point_clr 55000
time_constant 0
[SS-CPU0]
#algo_type ss
sampling 10
sensor cpu0
device cluster0
set_point 85000
set_point_clr 55000
time_constant 0
[SPEAKER-CAL]
sampling 30000 30000 10 1800000
sensor pm8994_tz
sensors tsens_tz_sensor1 tsens_tz_sensor2 tsens_tz_sensor3 tsens_tz_sensor4 tsens_tz_sensor5 tsens_tz_sensor11 tsens_tz_sensor12
temp_range 6000 10000 2000
max_temp 45000
offset -4000
[PMIC-ALARM-MONITOR]
#algo_type monitor
sampling 1000
sensor pm8994_tz
thresholds 107000 127000
thresholds_clr 103000 123000
actions hotplug_7+hotplug_6+hotplug_5+hotplug_4+hotplug_3+hotplug_2+hotplug_1+cluster1+cluster0 hotplug_7+hotplug_6+hotplug_5+hotplug_4+hotplug_3+hotplug_2+hotplug_1
action_info 0+0+0+0+0+0+0+302400+302400 1+1+1+1+1+1+1
[VDD_RSTR_MONITOR-TSENS15]
#algo_type monitor
sampling 1000
sensor tsens_tz_sensor15
thresholds 5000
thresholds_clr 10000
actions vdd_restriction
action_info 1
descending
[VDD_RSTR_MONITOR-TSENS14]
#algo_type monitor
sampling 1000
sensor tsens_tz_sensor14
thresholds 5000
thresholds_clr 10000
actions vdd_restriction
action_info 1
descending
[VDD_RSTR_MONITOR-TSENS13]
#algo_type monitor
sampling 1000
sensor tsens_tz_sensor13
thresholds 5000
thresholds_clr 10000
actions vdd_restriction
action_info 1
descending
[VDD_RSTR_MONITOR-TSENS12]
#algo_type monitor
sampling 1000
sensor tsens_tz_sensor12
thresholds 5000
thresholds_clr 10000
actions vdd_restriction
action_info 1
descending
[VDD_RSTR_MONITOR-TSENS11]
#algo_type monitor
sampling 1000
sensor tsens_tz_sensor11
thresholds 5000
thresholds_clr 10000
actions vdd_restriction
action_info 1
descending
[VDD_RSTR_MONITOR-TSENS10]
#algo_type monitor
sampling 1000
sensor tsens_tz_sensor10
thresholds 5000
thresholds_clr 10000
actions vdd_restriction
action_info 1
descending
[VDD_RSTR_MONITOR-TSENS9]
#algo_type monitor
sampling 1000
sensor tsens_tz_sensor9
thresholds 5000
thresholds_clr 10000
actions vdd_restriction
action_info 1
descending
[VDD_RSTR_MONITOR-TSENS8]
#algo_type monitor
sampling 1000
sensor tsens_tz_sensor8
thresholds 5000
thresholds_clr 10000
actions vdd_restriction
action_info 1
descending
[VDD_RSTR_MONITOR-TSENS7]
#algo_type monitor
sampling 1000
sensor tsens_tz_sensor7
thresholds 5000
thresholds_clr 10000
actions vdd_restriction
action_info 1
descending
[VDD_RSTR_MONITOR-TSENS6]
#algo_type monitor
sampling 1000
sensor tsens_tz_sensor6
thresholds 5000
thresholds_clr 10000
actions vdd_restriction
action_info 1
descending
[VDD_RSTR_MONITOR-TSENS5]
#algo_type monitor
sampling 1000
sensor tsens_tz_sensor5
thresholds 5000
thresholds_clr 10000
actions vdd_restriction
action_info 1
descending
[VDD_RSTR_MONITOR-TSENS4]
#algo_type monitor
sampling 1000
sensor tsens_tz_sensor4
thresholds 5000
thresholds_clr 10000
actions vdd_restriction
action_info 1
descending
[VDD_RSTR_MONITOR-TSENS3]
#algo_type monitor
sampling 1000
sensor tsens_tz_sensor3
thresholds 5000
thresholds_clr 10000
actions vdd_restriction
action_info 1
descending
[VDD_RSTR_MONITOR-TSENS2]
#algo_type monitor
sampling 1000
sensor tsens_tz_sensor2
thresholds 5000
thresholds_clr 10000
actions vdd_restriction
action_info 1
descending
[VDD_RSTR_MONITOR-TSENS1]
#algo_type monitor
sampling 1000
sensor tsens_tz_sensor1
thresholds 5000
thresholds_clr 10000
actions vdd_restriction
action_info 1
descending
[VDD_RSTR_MONITOR-TSENS0]
#algo_type monitor
sampling 1000
sensor tsens_tz_sensor0
thresholds 5000
thresholds_clr 10000
actions vdd_restriction
action_info 1
descending
v 0.0.4 - 05/04/17
XDA won't let me upload files for some reason so here are my tweak files:
* https://a.pomf.cat/nqnvdf.sh - these are the governor tweaks, I run with Tasker when Daydream app starts
* https://a.pomf.cat/qvcnnc.conf - this is my tweaked thermal-engine.conf, rename to that, place in /etc/ and reboot.
https://a.pomf.cat/ptmpmh.sh - old 0.0.3 tweaks
https://a.pomf.cat/uwikus.sh - old 0.0.2 tweaks
https://a.pomf.cat/bbpooh.txt - old 0.0.1 tweaks
What ROM are you using?
Sent from my Nexus 6P using XDA-Developers mobile app
rizzxx7 said:
What ROM are you using?
Sent from my Nexus 6P using XDA-Developers mobile app
Click to expand...
Click to collapse
Stock ROM w/ latest franco kernel
Nice thread, I've just ordered a daydream
Skickat från min Nexus 6P via Tapatalk
Is this still working on 7.1.1? Also does anyone else experience screen tearing in vr?
Humpie said:
Is this still working on 7.1.1? Also does anyone else experience screen tearing in vr?
Click to expand...
Click to collapse
Yes good question. I'd like to know too. I just got my snow white daydream and it is unbelievable. tweaks like these would really make a difference.
Hi, I'm using the Pixel Experience mod so my build.prop has already the line ro.product.model = Pixel XL, however when I try to download the Daydream app on Google Play it says "This app is incompatible with your device", so are a number of other apps too, like this one com.resolutiongames.wonderglade.
Do you have any idea how to fix this? Thanks a lot!
I don't have a daydream, but I was able to download Netflix VR from apkmirror...
thank you for starting this thread, i have been trying to get better daydream experience for a couple of days now. I installed Franco kernel and tasker but i am not sure how to apply your tweaks, do you think you could give more details about how you set this up? Thanks!
Humpie said:
Is this still working on 7.1.1? Also does anyone else experience screen tearing in vr?
Click to expand...
Click to collapse
Yep, working in 7.1.1 but have experienced screen tearing after update - try changing VR settings under the display settings menu.
v4victorii said:
Hi, I'm using the Pixel Experience mod so my build.prop has already the line ro.product.model = Pixel XL, however when I try to download the Daydream app on Google Play it says "This app is incompatible with your device", so are a number of other apps too, like this one com.resolutiongames.wonderglade.
Do you have any idea how to fix this? Thanks a lot!
Click to expand...
Click to collapse
Download the Daydream and Daydream Keyboard from apkmirror
jpfk said:
thank you for starting this thread, i have been trying to get better daydream experience for a couple of days now. I installed Franco kernel and tasker but i am not sure how to apply your tweaks, do you think you could give more details about how you set this up? Thanks!
Click to expand...
Click to collapse
if you have terminal emulator, type "su" press enter to change to root mode, then type "sh /sdcard/download/[FILENAME].sh" and thats it!
in tasker just use the same "sh" command as a shell script thats set to run at boot (make sure you click "use root")
Thank you!
xluco said:
Yep, working in 7.1.1 but have experienced screen tearing after update - try changing VR settings under the display settings menu.
Click to expand...
Click to collapse
Thanks for your response! Changing the settings from blur to flickering however doesn't change anything about the screen tearing for me
I have been having great results with my cardboard and controller emulator using latest CM14.1 build, your thermal conf and Franco kernel, no screen tearing (except for some small black part on the sides when moving head fast during intense parts of the games) and almost no lag. All games I tried were playable. I tried to run your script to hopefully get even better results but it returns "cant create /sys/...." and No such files or directoy errors. Any Idea why? Im running the script from terminal emulator as sudo
thanks!
are you typing "su" before the sh command?
if you are, it might be something to do with CM, I've only tested the script on stock ROM tbh. The script is pretty easy to recreate in a kernel app like kernel auditor, maybe give that a try
jpfk said:
I have been having great results with my cardboard and controller emulator using latest CM14.1 build, your thermal conf and Franco kernel, no screen tearing (except for some small black part on the sides when moving head fast during intense parts of the games) and almost no lag. All games I tried were playable. I tried to run your script to hopefully get even better results but it returns "cant create /sys/...." and No such files or directoy errors. Any Idea why? Im running the script from terminal emulator as sudo
thanks!
Click to expand...
Click to collapse
xluco said:
are you typing "su" before the sh command?
if you are, it might be something to do with CM, I've only tested the script on stock ROM tbh. The script is pretty easy to recreate in a kernel app like kernel auditor, maybe give that a try
Click to expand...
Click to collapse
i was so im not sure what the problem is, so I will try to recreate in kernel auditor as you mentionned. Thanks
---------- Post added at 03:27 PM ---------- Previous post was at 03:02 PM ----------
If anyone interested, here is a list of the Daydream apps I tested on my current setup
Device - Nexus 6P
Rom - Lineage OS 14.1 (20170105 build)
Kernel - FrancoKernel r44
Thermal Conf - the one posted by xluco
Headset - Official daydream
Note: I also tried returning to stock 7.0 rom and noticed it works much better than stock 7.1.1 rom.
Playable
The other room
Hello mars
Horizons VR
Fantastic Beasts
EarthShape
Poly Runner
Labster
Coloring VR
VR karts Sprint
Rose
Youvisit VR
Youtube VR
vTime
Gravity Pull
CNN Vr
Littlstar VR
Within
Jaunt VR
Google street view
inception: VR & 360 videos
Lego brickheads (some screen flickers but fully playable)
The turning forest (some screen flickers but fully playable)
Sisters : Faye and Elsa part 1 (Playable but gets hot and starts lagging after a while)
Works but problems
realestate (the downloaded tour would not launch)
Asteroids Holiday special (got a random freeze)
Google arts and Culture (got a random freeze)
Netflix VR (pointer not always appearing) -- this problem occurs if you scan QR code of another headset (ie: cardboard)
not working
Wonderglade (black screen at launch) -- Actually works if not using latest version from store, sideload previous version apk
Twighlight Pioneers (menu items disappears when trying to launch new game) -- Actually works if not using latest version from store, sideload previous version apk
jpfk said:
I have been having great results with my cardboard and controller emulator using latest CM14.1 build, your thermal conf and Franco kernel, no screen tearing (except for some small black part on the sides when moving head fast during intense parts of the games) and almost no lag. All games I tried were playable. I tried to run your script to hopefully get even better results but it returns "cant create /sys/...." and No such files or directoy errors. Any Idea why? Im running the script from terminal emulator as sudo
thanks!
Click to expand...
Click to collapse
Hey did you ever get this figured out? I'm having the same issue with it telling me no such file or directory. Tried a few different ways.
razgriz8426 said:
Hey did you ever get this figured out? I'm having the same issue with it telling me no such file or directory. Tried a few different ways.
Click to expand...
Click to collapse
No sorry, actually i did not investigate further as I realized i was getting good enough performances after reverting to stock 7.0 firmware and using Franco kernel. I dont know what they did between 7.0 and 7.1.1 but daydream works way better on the 6p with 7.0 firmware
jpfk said:
No sorry, actually i did not investigate further as I realized i was getting good enough performances after reverting to stock 7.0 firmware and using Franco kernel. I dont know what they did between 7.0 and 7.1.1 but daydream works way better on the 6p with 7.0 firmware
Click to expand...
Click to collapse
That's interesting, because I flashed back to 7.0 as well, reading that people had better luck with it, but I'm still having screen tearing. Could you tell me which firmware you're on? I flashed the very last factory image before 7.1.1. Also, are you using any other "enhancements" other than the Franco kernel? I immediately tried using the above mentioned throttling adjustments and am using the performance setting in the Franco kernel. Thanks in advance!
razgriz8426 said:
That's interesting, because I flashed back to 7.0 as well, reading that people had better luck with it, but I'm still having screen tearing. Could you tell me which firmware you're on? I flashed the very last factory image before 7.1.1. Also, are you using any other "enhancements" other than the Franco kernel? I immediately tried using the above mentioned throttling adjustments and am using the performance setting in the Franco kernel. Thanks in advance!
Click to expand...
Click to collapse
i am using 7.0 NRD90U but I didnt notice much difference with other 7.0 stock roms. And I just flashed franco kernel without changing any configs, using performance setting doesnt seem to improve much and drains battery faster. As for the screen tearing you are experiencing do you mean constant screen flickering when moving your head or image stopping completely at times and leaving black bars with small ligths flashing on the far ends before it gets back to normal. I had the later with 7.1.1 but not with 7.0. As for the weird screen flickering there are some games that does that and I did not find a solution for this.
games that i can confirm have screen flickering : Gunjack 2, Arcslingers, Lego brickheads,
Games that run perfectly (except maybe for some slowdowns when it gets hot) : Wonderglade, Mekorama, Hunters gate, Keep talking and nobody explodes, Bait!, FLoorplan, Arche E Bowman, Sherlock VR, The other room, Frostbound
Need for speed has a too low FPS to be enjoyable in my opinion
Note: If i modify the build.prop to make google play store think the 6P is a PixelXL to download any games all the games then suffer from the weird screen flickering but if you restore original build.prop it returns to normal.
jpfk said:
i am using 7.0 NRD90U but I didnt notice much difference with other 7.0 stock roms. And I just flashed franco kernel without changing any configs, using performance setting doesnt seem to improve much and drains battery faster. As for the screen tearing you are experiencing do you mean constant screen flickering when moving your head or image stopping completely at times and leaving black bars with small ligths flashing on the far ends before it gets back to normal. I had the later with 7.1.1 but not with 7.0. As for the weird screen flickering there are some games that does that and I did not find a solution for this.
games that i can confirm have screen flickering : Gunjack 2, Arcslingers, Lego brickheads,
Games that run perfectly (except maybe for some slowdowns when it gets hot) : Wonderglade, Mekorama, Hunters gate, Keep talking and nobody explodes, Bait!, FLoorplan, Arche E Bowman, Sherlock VR, The other room, Frostbound
Need for speed has a too low FPS to be enjoyable in my opinion
Note: If i modify the build.prop to make google play store think the 6P is a PixelXL to download any games all the games then suffer from the weird screen flickering but if you restore original build.prop it returns to normal.
Click to expand...
Click to collapse
Your last note is particularly interesting to me. I'm going to not edit my build.prop and see what happens. Will report back.
CPU Governors, Hotplug drivers and GPU governors Explained Part 4 (Updated 23/12/16)
---------------------------------------------------------------------------------------------------------------
Official XDA thread Of The Contributer: http://forum.xda-developers.com/member.php?u=5811506
Edited By ShivaY: http://forum.xda-developers.com/member.php?u=6704044
Guide Part 1 Link: http://forum.xda-developers.com/lenovo-a6000/how-to/cpu-governors-hotplug-drivers-gpu-t3528762
Guide Part 2 Link: http://forum.xda-developers.com/lenovo-a6000/how-to/cpu-governors-hotplug-drivers-gpu-t3528766
Guide Part 3 Link :http://forum.xda-developers.com/lenovo-a6000/how-to/cpu-governors-hotplug-drivers-gpu-t3528771
Here I've gathered some info for newcomers to the Android world.I've tried to keep it relatively simple. So if you want more info Comment Below
Recommended apps for manipulating kernel values:
1. Kernel Adiutor (Free to change governor and tune variables)
2. Kernel Adiutor-Mod (Free to change governor and tune variables)
3. Compatible kernel managers (e.g Stweaks, Synapse, UKM, etc.)
8. zzmoove
[ PARAMETERS ]
Quote:
sampling_rate_sleep_multiplier -> sampling rate multiplier on early suspend (possible values 1 or 2, default: 2)
up_threshold_sleep -> up threshold on early suspend (possible range from above 'down_threshold_sleep' up to 100, default: 90)
down_threshold_sleep -> down threshold on early suspend (possible range from 11 to 'under up_threshold_sleep', default: 44)
smooth_up -> smooth up scaling when screen is on (possible range from 1 to 100, default: 100)
smooth_up_sleep -> smooth up scaling on early suspend (possible range from 1 to 100, default: 100)
up_threshold_hotplug x -> hotplug threshold for cpu core x (0 disable core, possible range from 'down_threshold' up to 100, default: 68)
down_threshold_hotplug x -> hotplug threshold for cpu core x (possible range from 1 to under 'up_threshold', default: 55)
block_down_multiplier_hotplug x -> block down multiplier for core x
block_up_multiplier_hotplug x -> block up multiplier for core x
sampling_down_max_momentum -> max sampling down factor which should be set by momentum (0 disable momentum, possible range from sampling_down_factor up to MAX_SAMPLING_DOWN_FACTOR, default 0 disabled)
sampling_down_momentum_sensitivity -> how fast the sampling down factor should be switched (possible values from 1 to 500, default 50)
sampling_down_factor -> depending on which mode is active the factor for sampling rate multiplier which influences the whole sampling rate or the value for stock 'down skip' functionality which influences only the down scaling mechanism (possible values are from 1 to MAX_SMPLING_DOWN_FACTOR, default 1 disabled)
freq_limit_sleep-> limit freqency at early suspend (possible values 0 disable limit, 200-1600, default: 0)
freq_limit -> limit freqency at awake (possible values 0 disable limit, 200-1600, default: 0)
scaling_proportional -> if enabled load-proportional frequencies will be calculated in parallel and will be used in decision for next freq step. after a comparison between normal system table step and proportional step the lowest of these two frequencies will be used for next freq step in both directions. (0 to disable, any value above 0 to enable)
scaling_block_temp -> CPU temperature threshold from where governors freq 'holding' should start. if the given temperature (if CPU temp reading is enabled) is reached the frequency used in tunable 'scaling_block_freq' will be forced targeted and scaling stays on this freq till the temperature is under the threshold again. at the same time hotplugging up work is blocked so in this throttling phase offline cores are staying offline even if the hotplug up thresholds are reached (0 to disable, values between 30 and 80 in °C)
scaling_up_block_cycles -> similar to scaling fastdown but here for a slowdown of up scaling
scaling_up_block_freq -> similar to scaling fastdown but here for a slowdown of up scaling
fast_scaling_up -> Number of scaling jumps only for upscaling when screen on (skip 0-4 frequency steps) or 5 to use autoscaling.
fast_scaling_down -> Number of scaling jumps only for downscaling when screen on (skip 0-4 frequency steps) or 5 to use autoscaling.
fast_scaling_sleep_up -> Number of scaling jumps only for upscaling when screen off (skip 0-4 frequency steps) or 5 to use autoscaling.
fast_scaling_sleep_down -> Number of scaling jumps only for downscaling when screen off (skip 0-4 frequency steps) or 5 to use autoscaling.
disable_hotplug -> switch to enable/disable hotplugging (possible values are any value above 0 to disable hotplugging and 0 to enable it, default 0)
auto_adjust_freq_thresholds -> if enabled all freq thresholds used by the governor will be adjusted accordingly to the new scaling max policy. in particular the thresholds will be increased/decreased by the actual changed max freq step if that change will undercut/exceed the actual min/max freq policy it will stop at the max possible frequency step before undercutting/exceeding min/max freq policy (0 to disable, any value above 0 to enable)
early_demand -> switch to enable/disable early demand functionality (possible values 0 disable or 1 enable, default: 0)
grad_up_threshold -> scale up frequency if the load goes up in one step of grad up value (possible range from 1 to 100, default 50) little example for understanding: when the load rises up in one big 50% step then the frequency will be scaled up immediately instead of wating till up_threshold is reached.
early_demand_sleep -> same function as early demand on awake but in addition combined with fast scaling and sampling rate switch and only active at sleep. (possible values 0 disable or 1 enable, default is 1)
grad_up_threshold_sleep -> 2 way functionality: early demand sleep grad up (load gradient) threshold and at the same time load threshold for switching internally (tuneables are staying at set values!) sampling_rate_sleep_multiplier to 2 and fast_scaling to 2 (possible values from 1 to 100, default is 35)
hotplug_block_up_cycles -> (replaces hotplug_block_cycles) slow down up hotplugging by waiting a given amount of cycles before plugging. possible values 0 disable, any values above 0 (default is 0)
hotplug_block_down_cycles -> (replaces hotplug_block_cycles) slow down down hotplugging by waiting a given amount of cycles before plugging. possible values 0 disbale, any values above 0 (default is 0)
hotplug_idle_freq -> freq at which the idle should be active (possible values 0 disable and any possible scaling freq, default is 0)
sampling_rate_current -> read only and shows currently active sampling rate
sampling_rate_idle -> sampling rate which should be used at 'idle times' (possible values are any sampling rate > 'min_sampling_rate', 0 to disable whole function, default is 0)
sampling_rate_idle_delay -> delay in cycles for switching from idle to normal sampling rate and vice versa (possible values are any value and 0 to disable delay, default is 0)
sampling_rate_idle_threshold -> threshold under which idle sampling rate should be active (possible values 1 to 100, 0 to disable function, default is 0)
scaling_block_cycles -> amount of gradients which should be counted (if block threshold is set) and at the same time up scaling should be blocked and after that a forced down scaling should happen (possible values are any value, 0 to disable that function, default is 0)
scaling_block_freq -> frequency at and above the blocking should be active (possible values are any possible scaling freq, 0 to enable blocking permanently at every frequency, default is 0)
scaling_block_threshold -> gradient (min value) of load in both directions (up/down) to count-up cycles (possible value are 1 to 100, 0 to disable gradient counting)
scaling_block_force_down -> multiplier for the maximal amount of forced down scaling cycles (force down cycles = block_cycles * force_down) therefore the forced down scaling duration (possible value are 2 to any value, 0 to disable forced down scaling and use only scaling up blocks)
profile_number -> switches profile (possible value depends on amount of profiles in cpufreq_zzmoove_profiles.h file, please check this file for further details!) 0 = tunable mode, default 0)
scaling_fastdown_freq -> will be enabled once this frequency has been met or exceeded (0 to disable, all possible system frequencies, default is 0)
scaling_fastdown_up_threshold -> once the above frequency threshold has been met, this will become the new up_threshold until we fall below the scaling_fastdown_freq again. (range from over fastdown_down_threshold to 100, default is 95)
scaling_fastdown_down_threshold -> once the above frequency threshold has been met, this will become the new down_threshold until we fall below the scaling_fastdown_freq again. (range from 11 to under fastdown_up_threshold, default is 90)
scaling_responsiveness_freq -> will be enabled once this frequency has been met or exceeded (0 to disable, all possible system frequencies, default is 0)
scaling_responsiveness_up_threshold -> the up_threshold that will take effect if scaling_responsiveness_freq is set (range from 11 to 100, default is 30)
hotplug_engage_freq -> will not bring any cores online until this frequency is met or exceeded
(0 to disable, all possible system frequencies, default is 0)
music_max_freq -> maximum frequency for CPU when governor is on music mode
music_min_cores -> minimum CPU cores used when governor is on music mode
music_min_freq -> minimum frequency for CPU when governor is on music mode
afs_threshold 1,2,3 -> Auto fast scaling for step one to three respectively (range from 1 to 100)
9. Smartmax/Performance May Cry
[ PARAMETERS ]
Quote:
boost_duration - how long you want the governor to boost your CPU in seconds.
down_rate - The minimum amount of time in nsecs to spend at a frequency before we can ramp down. Notice we ignore this when we are above the ideal frequency.
io_is_busy - Consider if IO is busy
max_cpu_load - CPU freq will be increased if measured load > max_cpu_load
min_cpu_load - CPU freq will be decreased if measured load < min_cpu_load
ramp_up_during_boost - should ramp_up steps during boost be possible
ramp_up_step - Frequency delta when ramping up above the ideal frequency. Zero disables and causes to always jump straight to max frequency. When below the ideal freqeuncy we always ramp up to the ideal freq.
Touch_poke_freq - Also known as the touch boost frequency. This is the frequency that you CPU jumps to when touching screen.
Hotplug tunables
--------------------------
Mako Hotplug:
Quote:
load_threshold: system load threshold to decide when online or offline cores from 0 to 100
high_load_counter: counter to filter online/offline calls. The load needs to be above load_threshold X high_load_counter times for the cores to go online otherwise they stay offline
max_load_counter: max number of samples counters allowed to be counted. The higher thevalue the longer it will take the driver to offline cores after a period of high and continuous load
cpufreq_unplug_limit: if the current CPU freq is above this limit don't offline the cores for a couple of extra samples
min_time_cpu_online: minimum time in seconds that a core stays online to avoid too many online/offline calls
int timer: sample timer in seconds. The default value of 1 equals to 10 samples every second. The higher the value the less samples per second it runs
msm_mpdecision/bricked hotplug
Quote:
startdelay = time until mpdecision starts doing it's magic (20000)
delay = time between checks (70)
pause = if something else plugs in the cpu, fall asleep for 10000ms (10 secs)
scroff_single_core = if the screen is off, don't plug in cpu1/2/3. Additionally: Unplug all cpus except cpu0 when screen is turned off (1)
enabled = enable(1) or disable(0) mpdecision. This does not affect scroff_single_core!
min_cpus = min cpus to be online, cannot be < 1.
max_cpus = max cpus to be online (if you set it to 2 and min_cpus to 1 you will basically have a dualcore)
idle_freq = a value against that will be checked if a core +/- is requested.
nwns_threshold_x = runqueue threshold, if this is reached cpuX will be hot/unplugged
twts_threshold_x = time threshold, this amount of time must have passed for the related action to be taken (hot/unplug)
AutoSMP
Quote:
max_cpus, min_cpus, scroff_single_core, delay: Look at description above
enabled: Enable/Disable AutoSMP. Y ( for enabled). N (for disabled)
cpufreq_down: Percentage values for downrate limit (range from 0 - 100)
cpufreq_up: Percentage values for uprate limits (range from 0 - 100)
cycle_down: Cycles to wait after the last hotplug event to unplug another core (values 0 1 2 3 4)
cycle_up: Cycles to wait after the last hotplug event to plug another core (values 0 1 2 3 4)
Alucard
(sourced from defconoi's kernel guide)
Quote:
hotplug_sampling_rate:
Sampling Interval, measured in ms. This factor determines how often the governor should poll for CPU usage in terms of frequency and load percentage to make hotplugging decisions. (Default: 30 ms)
hotplug_rate_1_1:
Number of samples to evaluate cpu1 hotplug in. (Default: 1)
hotplug_rate_2_0:
Number of samples to evaluate cpu1 hotplug out. (Default: 5)
hotplug_rate_2_1:
Number of samples to evaluate cpu2 hotplug in. (Default: 2)
hotplug_rate_3_0:
Number of samples to evaluate cpu2 hotplug out. (Default: 5)
hotplug_rate_3_1:
Number of samples to evaluate cpu3 hotplug in. (Default: 2)
hotplug_rate_4_0:
Number of samples to evaluate cpu3 hotplug out. (Default: 5)
hotplug_freq_1_1:
Up threshold frequency to turn second core On, when some other conditions is also met. ie If (minimum frequency greater than or equal to hotplug_freq 1 1) Hotplug IN Second Core. Higher value corresponds to delay in turning on second core.
hotplug_freq_2_0:
Down threshold frequency to turn second core Off, when some other conditions is also met. ie If (maximum frequency less than hotplug_freq 2 0) Hotplug OUT Second Core. Lower value corresponds to delay in turning off second core.
hotplug_freq_2_1:
Up threshold frequency to turn third core On, when some other conditions is also met. ie If (minimum frequency greater than or equal to hotplug_freq 2 1) Hotplug IN Third Core. Higher value corresponds to delay in turning on Third core.
hotplug_freq_3_0:
Down threshold frequency to turn third core Off, when some other conditions is also met. ie If (maximum frequency less than hotplug_freq 3 0) Hotplug OUT Third Core. Lower value corresponds to delay in turning off third core.
hotplug_freq_3_1:
Up threshold frequency to turn fourth core On, when some other conditions is also met. ie If (minimum frequency greater than or equal to hotplug_freq 3 1) Hotplug IN Fourth Core. Higher value corresponds to delay in turning on Fourth core.
hotplug_freq_4_0:
Down threshold frequency to turn fourth core Off, when some other conditions is also met. ie If (maximum frequency less than hotplug_freq 4 0) Hotplug OUT Fourth Core. Lower value corresponds to delay in turning off fourth core.
hotplug_load_1_1:
The CPU load at which governor scales CPU up. Current Load equal or greater than up_load: CPU Hotplug IN. Value corresponding to 101 causes not HOTPLUG IN. (Default: 60%)
hotplug_load_2_0:
The CPU load at which governor scales CPU down. Current Load less than down_load and CPU online greater than 1: CPU Hotplug OUT. Value corresponding to 101 causes immediately HOTPLUG OUT. (Default: 30%)
hotplug_load_2_1:
The CPU load at which governor scales CPU up. Current Load equal or greater than up_load: CPU Hotplug IN. Value corresponding to 101 causes not HOTPLUG IN. (Default: 65%)
hotplug_load_3_0:
The CPU load at which governor scales CPU down. Current Load less than down_load and CPU online greater than 1: CPU Hotplug OUT. Value corresponding to 101 causes immediately HOTPLUG OUT. (Default: 30%)
hotplug_load_3_1:
The CPU load at which governor scales CPU up. Current Load equal or greater than up_load: CPU Hotplug IN. Value corresponding to 101 causes not HOTPLUG IN. (Default: 65%)
hotplug_load_4_0:
The CPU load at which governor scales CPU down. Current Load less than down_load and CPU online greater than 1: CPU Hotplug OUT. Value corresponding to 101 causes immediately HOTPLUG OUT. (Default: 20%)
hotplug_rq_1_1:
Threshold run queue length for second core to turn on. (Default: 100)
hotplug_rq_2_0:
Threshold run queue length for second core to turn off. (Default: 100)
hotplug_rq_2_1:
Threshold run queue length for third core to turn on. (Default: 200)
hotplug_rq_3_0:
Threshold run queue length for third core to turn off. (Default: 200)
hotplug_rq_3_1:
Threshold run queue length for fourth core to turn on. (Default: 300)
hotplug_rq_4_0:
Threshold run queue length for fourth core to turn off. (Default: 300)
maxcoreslimit:
Max CPU's hotplugging limit. (Default: 4)
maxcoreslimit_sleep:
Max CPU's hotplugging limit. (Default: 2)
Guide Part 1 Link: http://forum.xda-developers.com/lenovo-a6000/how-to/cpu-governors-hotplug-drivers-gpu-t3528762
Guide Part 2 Link: http://forum.xda-developers.com/lenovo-a6000/how-to/cpu-governors-hotplug-drivers-gpu-t3528766
Guide Part 3 Link :http://forum.xda-developers.com/lenovo-a6000/how-to/cpu-governors-hotplug-drivers-gpu-t3528771
Please Press Thanks Button If It Helped . It Will Encourage Me to Work More For You Guys
THANK YOU:good:
Which one to choose for best bettery?
laddugaur said:
Which one to choose for best bettery?
Click to expand...
Click to collapse
hey laddu when tipsy is coming?
baba.balatkari said:
hey laddu when tipsy is coming?
Click to expand...
Click to collapse
Maybe today
laddugaur said:
Maybe today
Click to expand...
Click to collapse
bro xperience was aesome rom
i loved it can i buy you idili and dosa?
baba.balatkari said:
bro xperience was aesome rom
i loved it can i buy you idili and dosa?
Click to expand...
Click to collapse
No need....
baba.balatkari said:
bro xperience was aesome rom
i loved it can i buy you idili and dosa?
Click to expand...
Click to collapse
Wow you seem to have lots of money
laddugaur said:
Which one to choose for best bettery?
Click to expand...
Click to collapse
Follow This Thread- https://forum.xda-developers.com/lenovo-a6000/how-to/guide-setting-kernel-t3547610
Which one for gaming?
CPU Governors, Hotplug drivers and GPU governors Explained Part 4 (Updated 30/12/16)
---------------------------------------------------------------------------------------------------------------
Official XDA thread Of The Contributer: http://forum.xda-developers.com/member.php?u=5811506
Edited By ShivaY: http://forum.xda-developers.com/member.php?u=6704044
Guide Part 1 Link: http://forum.xda-developers.com/lenovo-a6000/how-to/cpu-governors-hotplug-drivers-gpu-t3528762
Guide Part 2 Link: http://forum.xda-developers.com/lenovo-a6000/how-to/cpu-governors-hotplug-drivers-gpu-t3528766
Guide Part 3 Link :http://forum.xda-developers.com/lenovo-a6000/how-to/cpu-governors-hotplug-drivers-gpu-t3528771
Here I've gathered some info for newcomers to the Android world.I've tried to keep it relatively simple. So if you want more info Comment Below
Recommended apps for manipulating kernel values:
1. Kernel Adiutor (Free to change governor and tune variables)
2. Kernel Adiutor-Mod (Free to change governor and tune variables)
3. Compatible kernel managers (e.g Stweaks, Synapse, UKM, etc.)
8. zzmoove
[ PARAMETERS ]
Quote:
sampling_rate_sleep_multiplier -> sampling rate multiplier on early suspend (possible values 1 or 2, default: 2)
up_threshold_sleep -> up threshold on early suspend (possible range from above 'down_threshold_sleep' up to 100, default: 90)
down_threshold_sleep -> down threshold on early suspend (possible range from 11 to 'under up_threshold_sleep', default: 44)
smooth_up -> smooth up scaling when screen is on (possible range from 1 to 100, default: 100)
smooth_up_sleep -> smooth up scaling on early suspend (possible range from 1 to 100, default: 100)
up_threshold_hotplug x -> hotplug threshold for cpu core x (0 disable core, possible range from 'down_threshold' up to 100, default: 68)
down_threshold_hotplug x -> hotplug threshold for cpu core x (possible range from 1 to under 'up_threshold', default: 55)
block_down_multiplier_hotplug x -> block down multiplier for core x
block_up_multiplier_hotplug x -> block up multiplier for core x
sampling_down_max_momentum -> max sampling down factor which should be set by momentum (0 disable momentum, possible range from sampling_down_factor up to MAX_SAMPLING_DOWN_FACTOR, default 0 disabled)
sampling_down_momentum_sensitivity -> how fast the sampling down factor should be switched (possible values from 1 to 500, default 50)
sampling_down_factor -> depending on which mode is active the factor for sampling rate multiplier which influences the whole sampling rate or the value for stock 'down skip' functionality which influences only the down scaling mechanism (possible values are from 1 to MAX_SMPLING_DOWN_FACTOR, default 1 disabled)
freq_limit_sleep-> limit freqency at early suspend (possible values 0 disable limit, 200-1600, default: 0)
freq_limit -> limit freqency at awake (possible values 0 disable limit, 200-1600, default: 0)
scaling_proportional -> if enabled load-proportional frequencies will be calculated in parallel and will be used in decision for next freq step. after a comparison between normal system table step and proportional step the lowest of these two frequencies will be used for next freq step in both directions. (0 to disable, any value above 0 to enable)
scaling_block_temp -> CPU temperature threshold from where governors freq 'holding' should start. if the given temperature (if CPU temp reading is enabled) is reached the frequency used in tunable 'scaling_block_freq' will be forced targeted and scaling stays on this freq till the temperature is under the threshold again. at the same time hotplugging up work is blocked so in this throttling phase offline cores are staying offline even if the hotplug up thresholds are reached (0 to disable, values between 30 and 80 in °C)
scaling_up_block_cycles -> similar to scaling fastdown but here for a slowdown of up scaling
scaling_up_block_freq -> similar to scaling fastdown but here for a slowdown of up scaling
fast_scaling_up -> Number of scaling jumps only for upscaling when screen on (skip 0-4 frequency steps) or 5 to use autoscaling.
fast_scaling_down -> Number of scaling jumps only for downscaling when screen on (skip 0-4 frequency steps) or 5 to use autoscaling.
fast_scaling_sleep_up -> Number of scaling jumps only for upscaling when screen off (skip 0-4 frequency steps) or 5 to use autoscaling.
fast_scaling_sleep_down -> Number of scaling jumps only for downscaling when screen off (skip 0-4 frequency steps) or 5 to use autoscaling.
disable_hotplug -> switch to enable/disable hotplugging (possible values are any value above 0 to disable hotplugging and 0 to enable it, default 0)
auto_adjust_freq_thresholds -> if enabled all freq thresholds used by the governor will be adjusted accordingly to the new scaling max policy. in particular the thresholds will be increased/decreased by the actual changed max freq step if that change will undercut/exceed the actual min/max freq policy it will stop at the max possible frequency step before undercutting/exceeding min/max freq policy (0 to disable, any value above 0 to enable)
early_demand -> switch to enable/disable early demand functionality (possible values 0 disable or 1 enable, default: 0)
grad_up_threshold -> scale up frequency if the load goes up in one step of grad up value (possible range from 1 to 100, default 50) little example for understanding: when the load rises up in one big 50% step then the frequency will be scaled up immediately instead of wating till up_threshold is reached.
early_demand_sleep -> same function as early demand on awake but in addition combined with fast scaling and sampling rate switch and only active at sleep. (possible values 0 disable or 1 enable, default is 1)
grad_up_threshold_sleep -> 2 way functionality: early demand sleep grad up (load gradient) threshold and at the same time load threshold for switching internally (tuneables are staying at set values!) sampling_rate_sleep_multiplier to 2 and fast_scaling to 2 (possible values from 1 to 100, default is 35)
hotplug_block_up_cycles -> (replaces hotplug_block_cycles) slow down up hotplugging by waiting a given amount of cycles before plugging. possible values 0 disable, any values above 0 (default is 0)
hotplug_block_down_cycles -> (replaces hotplug_block_cycles) slow down down hotplugging by waiting a given amount of cycles before plugging. possible values 0 disbale, any values above 0 (default is 0)
hotplug_idle_freq -> freq at which the idle should be active (possible values 0 disable and any possible scaling freq, default is 0)
sampling_rate_current -> read only and shows currently active sampling rate
sampling_rate_idle -> sampling rate which should be used at 'idle times' (possible values are any sampling rate > 'min_sampling_rate', 0 to disable whole function, default is 0)
sampling_rate_idle_delay -> delay in cycles for switching from idle to normal sampling rate and vice versa (possible values are any value and 0 to disable delay, default is 0)
sampling_rate_idle_threshold -> threshold under which idle sampling rate should be active (possible values 1 to 100, 0 to disable function, default is 0)
scaling_block_cycles -> amount of gradients which should be counted (if block threshold is set) and at the same time up scaling should be blocked and after that a forced down scaling should happen (possible values are any value, 0 to disable that function, default is 0)
scaling_block_freq -> frequency at and above the blocking should be active (possible values are any possible scaling freq, 0 to enable blocking permanently at every frequency, default is 0)
scaling_block_threshold -> gradient (min value) of load in both directions (up/down) to count-up cycles (possible value are 1 to 100, 0 to disable gradient counting)
scaling_block_force_down -> multiplier for the maximal amount of forced down scaling cycles (force down cycles = block_cycles * force_down) therefore the forced down scaling duration (possible value are 2 to any value, 0 to disable forced down scaling and use only scaling up blocks)
profile_number -> switches profile (possible value depends on amount of profiles in cpufreq_zzmoove_profiles.h file, please check this file for further details!) 0 = tunable mode, default 0)
scaling_fastdown_freq -> will be enabled once this frequency has been met or exceeded (0 to disable, all possible system frequencies, default is 0)
scaling_fastdown_up_threshold -> once the above frequency threshold has been met, this will become the new up_threshold until we fall below the scaling_fastdown_freq again. (range from over fastdown_down_threshold to 100, default is 95)
scaling_fastdown_down_threshold -> once the above frequency threshold has been met, this will become the new down_threshold until we fall below the scaling_fastdown_freq again. (range from 11 to under fastdown_up_threshold, default is 90)
scaling_responsiveness_freq -> will be enabled once this frequency has been met or exceeded (0 to disable, all possible system frequencies, default is 0)
scaling_responsiveness_up_threshold -> the up_threshold that will take effect if scaling_responsiveness_freq is set (range from 11 to 100, default is 30)
hotplug_engage_freq -> will not bring any cores online until this frequency is met or exceeded
(0 to disable, all possible system frequencies, default is 0)
music_max_freq -> maximum frequency for CPU when governor is on music mode
music_min_cores -> minimum CPU cores used when governor is on music mode
music_min_freq -> minimum frequency for CPU when governor is on music mode
afs_threshold 1,2,3 -> Auto fast scaling for step one to three respectively (range from 1 to 100)
9. Smartmax/Performance May Cry
[ PARAMETERS ]
Quote:
boost_duration - how long you want the governor to boost your CPU in seconds.
down_rate - The minimum amount of time in nsecs to spend at a frequency before we can ramp down. Notice we ignore this when we are above the ideal frequency.
io_is_busy - Consider if IO is busy
max_cpu_load - CPU freq will be increased if measured load > max_cpu_load
min_cpu_load - CPU freq will be decreased if measured load < min_cpu_load
ramp_up_during_boost - should ramp_up steps during boost be possible
ramp_up_step - Frequency delta when ramping up above the ideal frequency. Zero disables and causes to always jump straight to max frequency. When below the ideal freqeuncy we always ramp up to the ideal freq.
Touch_poke_freq - Also known as the touch boost frequency. This is the frequency that you CPU jumps to when touching screen.
Hotplug tunables
--------------------------
Mako Hotplug:
Quote:
load_threshold: system load threshold to decide when online or offline cores from 0 to 100
high_load_counter: counter to filter online/offline calls. The load needs to be above load_threshold X high_load_counter times for the cores to go online otherwise they stay offline
max_load_counter: max number of samples counters allowed to be counted. The higher thevalue the longer it will take the driver to offline cores after a period of high and continuous load
cpufreq_unplug_limit: if the current CPU freq is above this limit don't offline the cores for a couple of extra samples
min_time_cpu_online: minimum time in seconds that a core stays online to avoid too many online/offline calls
int timer: sample timer in seconds. The default value of 1 equals to 10 samples every second. The higher the value the less samples per second it runs
msm_mpdecision/bricked hotplug
Quote:
startdelay = time until mpdecision starts doing it's magic (20000)
delay = time between checks (70)
pause = if something else plugs in the cpu, fall asleep for 10000ms (10 secs)
scroff_single_core = if the screen is off, don't plug in cpu1/2/3. Additionally: Unplug all cpus except cpu0 when screen is turned off (1)
enabled = enable(1) or disable(0) mpdecision. This does not affect scroff_single_core!
min_cpus = min cpus to be online, cannot be < 1.
max_cpus = max cpus to be online (if you set it to 2 and min_cpus to 1 you will basically have a dualcore)
idle_freq = a value against that will be checked if a core +/- is requested.
nwns_threshold_x = runqueue threshold, if this is reached cpuX will be hot/unplugged
twts_threshold_x = time threshold, this amount of time must have passed for the related action to be taken (hot/unplug)
AutoSMP
Quote:
max_cpus, min_cpus, scroff_single_core, delay: Look at description above
enabled: Enable/Disable AutoSMP. Y ( for enabled). N (for disabled)
cpufreq_down: Percentage values for downrate limit (range from 0 - 100)
cpufreq_up: Percentage values for uprate limits (range from 0 - 100)
cycle_down: Cycles to wait after the last hotplug event to unplug another core (values 0 1 2 3 4)
cycle_up: Cycles to wait after the last hotplug event to plug another core (values 0 1 2 3 4)
Alucard
(sourced from defconoi's kernel guide)
Quote:
hotplug_sampling_rate:
Sampling Interval, measured in ms. This factor determines how often the governor should poll for CPU usage in terms of frequency and load percentage to make hotplugging decisions. (Default: 30 ms)
hotplug_rate_1_1:
Number of samples to evaluate cpu1 hotplug in. (Default: 1)
hotplug_rate_2_0:
Number of samples to evaluate cpu1 hotplug out. (Default: 5)
hotplug_rate_2_1:
Number of samples to evaluate cpu2 hotplug in. (Default: 2)
hotplug_rate_3_0:
Number of samples to evaluate cpu2 hotplug out. (Default: 5)
hotplug_rate_3_1:
Number of samples to evaluate cpu3 hotplug in. (Default: 2)
hotplug_rate_4_0:
Number of samples to evaluate cpu3 hotplug out. (Default: 5)
hotplug_freq_1_1:
Up threshold frequency to turn second core On, when some other conditions is also met. ie If (minimum frequency greater than or equal to hotplug_freq 1 1) Hotplug IN Second Core. Higher value corresponds to delay in turning on second core.
hotplug_freq_2_0:
Down threshold frequency to turn second core Off, when some other conditions is also met. ie If (maximum frequency less than hotplug_freq 2 0) Hotplug OUT Second Core. Lower value corresponds to delay in turning off second core.
hotplug_freq_2_1:
Up threshold frequency to turn third core On, when some other conditions is also met. ie If (minimum frequency greater than or equal to hotplug_freq 2 1) Hotplug IN Third Core. Higher value corresponds to delay in turning on Third core.
hotplug_freq_3_0:
Down threshold frequency to turn third core Off, when some other conditions is also met. ie If (maximum frequency less than hotplug_freq 3 0) Hotplug OUT Third Core. Lower value corresponds to delay in turning off third core.
hotplug_freq_3_1:
Up threshold frequency to turn fourth core On, when some other conditions is also met. ie If (minimum frequency greater than or equal to hotplug_freq 3 1) Hotplug IN Fourth Core. Higher value corresponds to delay in turning on Fourth core.
hotplug_freq_4_0:
Down threshold frequency to turn fourth core Off, when some other conditions is also met. ie If (maximum frequency less than hotplug_freq 4 0) Hotplug OUT Fourth Core. Lower value corresponds to delay in turning off fourth core.
hotplug_load_1_1:
The CPU load at which governor scales CPU up. Current Load equal or greater than up_load: CPU Hotplug IN. Value corresponding to 101 causes not HOTPLUG IN. (Default: 60%)
hotplug_load_2_0:
The CPU load at which governor scales CPU down. Current Load less than down_load and CPU online greater than 1: CPU Hotplug OUT. Value corresponding to 101 causes immediately HOTPLUG OUT. (Default: 30%)
hotplug_load_2_1:
The CPU load at which governor scales CPU up. Current Load equal or greater than up_load: CPU Hotplug IN. Value corresponding to 101 causes not HOTPLUG IN. (Default: 65%)
hotplug_load_3_0:
The CPU load at which governor scales CPU down. Current Load less than down_load and CPU online greater than 1: CPU Hotplug OUT. Value corresponding to 101 causes immediately HOTPLUG OUT. (Default: 30%)
hotplug_load_3_1:
The CPU load at which governor scales CPU up. Current Load equal or greater than up_load: CPU Hotplug IN. Value corresponding to 101 causes not HOTPLUG IN. (Default: 65%)
hotplug_load_4_0:
The CPU load at which governor scales CPU down. Current Load less than down_load and CPU online greater than 1: CPU Hotplug OUT. Value corresponding to 101 causes immediately HOTPLUG OUT. (Default: 20%)
hotplug_rq_1_1:
Threshold run queue length for second core to turn on. (Default: 100)
hotplug_rq_2_0:
Threshold run queue length for second core to turn off. (Default: 100)
hotplug_rq_2_1:
Threshold run queue length for third core to turn on. (Default: 200)
hotplug_rq_3_0:
Threshold run queue length for third core to turn off. (Default: 200)
hotplug_rq_3_1:
Threshold run queue length for fourth core to turn on. (Default: 300)
hotplug_rq_4_0:
Threshold run queue length for fourth core to turn off. (Default: 300)
maxcoreslimit:
Max CPU's hotplugging limit. (Default: 4)
maxcoreslimit_sleep:
Max CPU's hotplugging limit. (Default: 2)
Guide Part 1 Link: http://forum.xda-developers.com/lenovo-a6000/how-to/cpu-governors-hotplug-drivers-gpu-t3528762
Guide Part 2 Link: http://forum.xda-developers.com/lenovo-a6000/how-to/cpu-governors-hotplug-drivers-gpu-t3528766
Guide Part 3 Link :http://forum.xda-developers.com/lenovo-a6000/how-to/cpu-governors-hotplug-drivers-gpu-t3528771
Please Press Thanks Button If It Helped . It Will Encourage Me to Work More For You Guys
THANK YOU:good: