diff options
author | Takashi Iwai <tiwai@suse.de> | 2018-03-12 08:55:48 -0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2018-03-12 09:16:08 -0400 |
commit | 40088dc4e1ead7df31728c73f5b51d71da18831d (patch) | |
tree | a7635bf8f64b7feba2c623af70022d32509df445 | |
parent | 01c0b4265cc16bc1f43f475c5944c55c10d5768f (diff) |
ALSA: hda - Revert power_save option default value
With the commit 1ba8f9d30817 ("ALSA: hda: Add a power_save
blacklist"), we changed the default value of power_save option to -1
for processing the power-save blacklist.
Unfortunately, this seems breaking user-space applications that
actually read the power_save parameter value via sysfs and judge /
adjust the power-saving status. They see the value -1 as if the
power-save is turned off, although the actual value is taken from
CONFIG_SND_HDA_POWER_SAVE_DEFAULT and it can be a positive.
So, overall, passing -1 there was no good idea. Let's partially
revert it -- at least for power_save option default value is restored
again to CONFIG_SND_HDA_POWER_SAVE_DEFAULT. Meanwhile, in this patch,
we keep the blacklist behavior and make is adjustable via the new
option, pm_blacklist.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=199073
Fixes: 1ba8f9d30817 ("ALSA: hda: Add a power_save blacklist")
Acked-by: Hans de Goede <hdegoede@redhat.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r-- | sound/pci/hda/hda_intel.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index 96143df19b21..d5017adf9feb 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c | |||
@@ -181,11 +181,15 @@ static const struct kernel_param_ops param_ops_xint = { | |||
181 | }; | 181 | }; |
182 | #define param_check_xint param_check_int | 182 | #define param_check_xint param_check_int |
183 | 183 | ||
184 | static int power_save = -1; | 184 | static int power_save = CONFIG_SND_HDA_POWER_SAVE_DEFAULT; |
185 | module_param(power_save, xint, 0644); | 185 | module_param(power_save, xint, 0644); |
186 | MODULE_PARM_DESC(power_save, "Automatic power-saving timeout " | 186 | MODULE_PARM_DESC(power_save, "Automatic power-saving timeout " |
187 | "(in second, 0 = disable)."); | 187 | "(in second, 0 = disable)."); |
188 | 188 | ||
189 | static bool pm_blacklist = true; | ||
190 | module_param(pm_blacklist, bool, 0644); | ||
191 | MODULE_PARM_DESC(pm_blacklist, "Enable power-management blacklist"); | ||
192 | |||
189 | /* reset the HD-audio controller in power save mode. | 193 | /* reset the HD-audio controller in power save mode. |
190 | * this may give more power-saving, but will take longer time to | 194 | * this may give more power-saving, but will take longer time to |
191 | * wake up. | 195 | * wake up. |
@@ -2300,10 +2304,9 @@ static int azx_probe_continue(struct azx *chip) | |||
2300 | 2304 | ||
2301 | val = power_save; | 2305 | val = power_save; |
2302 | #ifdef CONFIG_PM | 2306 | #ifdef CONFIG_PM |
2303 | if (val == -1) { | 2307 | if (pm_blacklist) { |
2304 | const struct snd_pci_quirk *q; | 2308 | const struct snd_pci_quirk *q; |
2305 | 2309 | ||
2306 | val = CONFIG_SND_HDA_POWER_SAVE_DEFAULT; | ||
2307 | q = snd_pci_quirk_lookup(chip->pci, power_save_blacklist); | 2310 | q = snd_pci_quirk_lookup(chip->pci, power_save_blacklist); |
2308 | if (q && val) { | 2311 | if (q && val) { |
2309 | dev_info(chip->card->dev, "device %04x:%04x is on the power_save blacklist, forcing power_save to 0\n", | 2312 | dev_info(chip->card->dev, "device %04x:%04x is on the power_save blacklist, forcing power_save to 0\n", |