Explorar el Código

[ALSA] hda-intel - Add power_save_controller module option

Add power_save_controller module option instead of define flag.
Also, added descriptions of new module options in ALSA-Configuration.txt.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Takashi Iwai hace 17 años
padre
commit
dee1b66ce4
Se han modificado 2 ficheros con 21 adiciones y 14 borrados
  1. 10 0
      Documentation/sound/alsa/ALSA-Configuration.txt
  2. 11 14
      sound/pci/hda/hda_intel.c

+ 10 - 0
Documentation/sound/alsa/ALSA-Configuration.txt

@@ -768,6 +768,10 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
     single_cmd  - Use single immediate commands to communicate with
 		codecs (for debugging only)
     enable_msi	- Enable Message Signaled Interrupt (MSI) (default = off)
+    power_save	- Automatic power-saving timtout (in second, 0 =
+		disable, default = 10)
+    power_save_controller - Reset HD-audio controller in power-saving mode
+		(default = on)
 
     This module supports one card and autoprobe.
 
@@ -993,6 +997,12 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
     subsystem ID (output of "lspci -nv") to ALSA BTS or alsa-devel
     ML (see the section "Links and Addresses").
 
+    When CONFIG_SND_HDA_POWER_SAVE is set, two options, power_save and
+    power_save_controller become available.  power_save specifies the
+    time to turn off the power automatically at idle status.  When
+    power_save_controller is true, the controller is also turned off.
+    This might result in more obvious click noise at turning on/off.
+
     Note 2: If you get click noises on output, try the module option
 	    position_fix=1 or 2.  position_fix=1 will use the SD_LPIB
 	    register value without FIFO size correction as the current

+ 11 - 14
sound/pci/hda/hda_intel.c

@@ -75,8 +75,18 @@ MODULE_PARM_DESC(single_cmd, "Use single command to communicate with codecs "
 module_param(enable_msi, int, 0);
 MODULE_PARM_DESC(enable_msi, "Enable Message Signaled Interrupt (MSI)");
 
+#ifdef CONFIG_SND_HDA_POWER_SAVE
 /* power_save option is defined in hda_codec.c */
 
+/* reset the HD-audio controller in power save mode.
+ * this may give more power-saving, but will take longer time to
+ * wake up.
+ */
+static int power_save_controller = 1;
+module_param(power_save_controller, bool, 0644);
+MODULE_PARM_DESC(power_save_controller, "Reset controller in power save mode.");
+#endif
+
 /* just for backward compatibility */
 static int enable;
 module_param(enable, bool, 0444);
@@ -102,17 +112,6 @@ MODULE_DESCRIPTION("Intel HDA driver");
 
 #define SFX	"hda-intel: "
 
-/*
- * build flags
- */
-
-/*
- * reset the HD-audio controller in power save mode.
- * this may give more power-saving, but will take longer time to
- * wake up.
- */
-#define HDA_POWER_SAVE_RESET_CONTROLLER
-
 
 /*
  * registers
@@ -1533,10 +1532,8 @@ static void azx_power_notify(struct hda_codec *codec)
 	}
 	if (power_on)
 		azx_init_chip(chip);
-#ifdef HDA_POWER_SAVE_RESET_CONTROLLER
-	else if (chip->running)
+	else if (chip->running && power_save_controller)
 		azx_stop_chip(chip);
-#endif
 }
 #endif /* CONFIG_SND_HDA_POWER_SAVE */