- Reverted fast charge back to first version due to slow charging - Added msm_mpdecision aka "bricked hotplug" cpu hotplug governor
Check /sys/kernel/msm_mpdecision/conf/ for the configuration. 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. Default: 1 max_cpus = max cpus to be online, cannot be > 4. (if you set it to 2 and min_cpus to 1 you will basically have a dualcore) Default: 4 idle_freq = a value against that will be checked if a core +/- is requested. (486000) If cpu0 is below that value and a core up of another cpu is requested, nothing will happen. If any other cpu is above that value and a core down of that cpu is requested, nothing will happen. (otherwise it would now put down that cpu even though it is still working, which isn't what we want) Hot plug thresholds (aka now it gets 'complicated') This small formula calculates which value will be used: (number_of_cpus_online - 1) * 2 The result of this formula will be the nwns_threshold where a new cpu is hotplugged. The result of this formula + 1 will be the nwns_threshold where a cpu is unplugged. 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) Example: One cpu is online. (1 - 1) * 2 = 0 ergo: nwns_threshold_0 = cpu1 will be hotplugged at this value ((1 - 1) * 2) + 1 = 1 nwns_threshold_1 = cpu0 will be unplugged at this value Since we can't unplug cpu0 this is '0'. Two cpus are online. (2 - 1) * 2 = 2 ergo: nwns_threshold_2 = cpu2 will be hotplugged at this value ((2 - 1) * 2) + 1 = 3 nwns_threshold_3 = cpu1 will be unplugged at this value etc... The default values are: NwNs_Threshold: 12, 0, 25, 20, 32, 28, 0, 35 TwTs_Threshold: 140, 0, 140, 190, 140, 190, 0, 190 Where the position and function of the number equals the result of the above explained formula. (all times are in ms)