From: Randy Dunlap <[email protected]>

Add HD audio power_save suggestion comparable to AC97 power_save.

Signed-off-by: Randy Dunlap <[email protected]>
---
 misctips.c |   39 +++++++++++++++++++++++++++++++++++++++
 powertop.c |    1 +
 powertop.h |    1 +
 3 files changed, 41 insertions(+)

--- powertop-1.11.orig/powertop.c
+++ powertop-1.11/powertop.c
@@ -1138,6 +1138,7 @@ int main(int argc, char **argv)
                if (maxsleep > 15.0)
                        suggest_hpet();
                suggest_ac97_powersave();
+               suggest_hda_powersave();
                suggest_wireless_powersave();
                suggest_ondemand_governor();
                suggest_noatime();
--- powertop-1.11.orig/powertop.h
+++ powertop-1.11/powertop.h
@@ -50,6 +50,7 @@ void suggest_bluetooth_off(void);
 void suggest_nmi_watchdog(void);
 void suggest_hpet(void);
 void suggest_ac97_powersave(void);
+void suggest_hda_powersave(void);
 void suggest_wireless_powersave(void);
 void suggest_ondemand_governor(void);
 void suggest_noatime(void);
--- powertop-1.11.orig/misctips.c
+++ powertop-1.11/misctips.c
@@ -176,6 +176,45 @@ void suggest_ac97_powersave(void)
        fclose(file);
 }
 
+void hda_power_on(void)
+{
+       FILE *file;
+
+       file = fopen("/sys/module/snd_hda_intel/parameters/power_save", "w");
+       if (!file)
+               return;
+       fprintf(file,"1");
+       fclose(file);
+       if (access("/dev/dsp", F_OK))
+               return;
+       file = fopen("/dev/dsp", "w");
+       if (file) {
+               fprintf(file,"1");
+               fclose(file);
+       }
+}
+
+void suggest_hda_powersave(void)
+{
+       FILE *file;
+       char buffer[1024];
+
+       file = fopen("/sys/module/snd_hda_intel/parameters/power_save", "r");
+       if (!file)
+               return;
+       memset(buffer, 0, 1024);
+       if (!fgets(buffer, 1023, file)) {
+               fclose(file);
+               return;
+       }
+       if (buffer[0]=='0') {
+               add_suggestion( _("Suggestion: enable HD audio powersave mode 
by executing the following command:\n"
+                       "   echo 1 > 
/sys/module/snd_hda_intel/parameters/power_save \n"
+                       "or by passing power_save=1 as module parameter."), 25, 
'A', _(" A - Turn HD audio powersave on "), hda_power_on);
+       }
+       fclose(file);
+}
+
 void noatime_on(void)
 {
        system("/bin/mount -o remount,noatime,nodiratime /");




---
~Randy
LPC 2009, Sept. 23-25, Portland, Oregon
http://linuxplumbersconf.org/2009/
_______________________________________________
Discuss mailing list
[email protected]
http://lists.lesswatts.org/listinfo/discuss

Reply via email to