Smartreflex
Contents |
The official explanation
- "SmartReflex is an advanced, multi-level and multi-parameter power management approach that can be found at some TI DSPs of the OMAP35x series."[1]
TL;DR. SmartReflex is a nifty way of scaling the voltage of the processor in a way similar to frequency scaling. That is, voltage is increased as it is required. Conversely it is decreased as it is not required. Most users report that this has lead to an increase of around 1/3 battery life. (DISCLAIMER:1/3 battery life is dependent on a particular users set up and style of use.)
This module adjusts OMAP3 VDD1 and VDD2 operating voltages around the nominal values of current operating point depending on silicon characteristics and operating conditions.
SR on the Stock Nokia kernel
Smartreflex has been considered broken for a long time. Using the stock Nokia kernel it can only be activated up to 805MHz at most. The Stock Nokia kernel implementation of SmartReflex is to be considered broken and its use is to be avoided.
Due to it's instability and multiple bug reports:-
"Nokia decided that SR will be kept disabled. In the next public update (PR 1.3) it will be made possible for advanced users to enable it if wanted."
Kernel Power
Since Kernel Power 50 (KP50), despite some disagreements amongst some of the more senior Maemo developers, SmartReflex can now be considered stable up 900MHz.
- I know I just said SR is stable up to 900MHz however some users have reported that on their devices SR is only stable up to lower frequencies (720-805MHz for example). For more examples on tuning SR see the KP50 article.
Enabling Smartreflex
Terminal
Assuming you are using Kernel Power the instruction for use are:-
[Use of Kernel Power Configuration]
Alternative Terminal Method
This alternative method can be used even if Stock Kernel is used.
sudo leafpad /etc/pmconfig
Use leafpad text editor to change, sr_vdd_autocomp to:-
sr_vdd1_autocomp 1 sr_vdd2_autocomp 1
GUI
[QCPUFreq] application has an option to enable Smartreflex via GUI. However it currently only changes VDD1 values.