Smartreflex

Contents

[edit] 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]

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.

[edit] SR on the Stock Nokia kernel

Smartreflex has been considered broken for a long time. The Stock Nokia kernel implementation of SmartReflex is to be considered broken and its use is to be avoided as it has been reported to be unstable on some devices


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."

[edit] 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 with stock DSP frequencies and up to 600Mhz for overclocked DSP.

  • 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.

[edit] Enabling Smartreflex

[edit] Temporarily from terminal

echo 1 > /sys/power/sr_vdd1_autocomp
echo 1 > /sys/power/sr_vdd2_autocomp

This setting is not persistent and will reset to default after a reboot. It is recommended you test with this method first to determine if SR will work for your setup.

[edit] Terminal

To eneble smartreflex persistently edit /etc/pmconfig

sudo leafpad /etc/pmconfig

Use leafpad text editor to change, sr_vddX_autocomp values to: 1

sr_vdd1_autocomp 1
sr_vdd2_autocomp 1 

Warning! If you set overclock voltages above that which smartreflex is stable AND you enable SR from /etc/pmconfig you WILL get a re-boot loop. You will need to re-flash to fix.

[edit] GUI

[QCPUFreq] application has an option to enable Smartreflex via GUI. However it currently only enables VDD1 and disables both VDD1 and VDD2 values together if previously enabled. This [script] from talk.maemo.org has been tested by at least two users and modifies QCPUFreq to enable and disable both values together.

If you know a GUI method that works out of the box please edit.