aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/hda/hda_codec.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2008-11-27 06:43:28 -0500
committerTakashi Iwai <tiwai@suse.de>2008-11-27 06:43:28 -0500
commitfee2fba3586f78762ecc5f432dfd3602765a31b3 (patch)
tree9435bc32c3e41ad74dbcb18d829d8c51227c16c3 /sound/pci/hda/hda_codec.c
parent986862bdf17655d012f9b0654925dccdcc4183c9 (diff)
ALSA: hda - Move power_save option to hda_intel.c
Move power_save option into hda_intel.c, and make a field in hda_bus, instead of keeping module parameters in separate files. Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/hda/hda_codec.c')
-rw-r--r--sound/pci/hda/hda_codec.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
index f84874445b50..052a898a63ba 100644
--- a/sound/pci/hda/hda_codec.c
+++ b/sound/pci/hda/hda_codec.c
@@ -33,14 +33,6 @@
33#include <sound/hda_hwdep.h> 33#include <sound/hda_hwdep.h>
34#include "hda_patch.h" /* codec presets */ 34#include "hda_patch.h" /* codec presets */
35 35
36#ifdef CONFIG_SND_HDA_POWER_SAVE
37/* define this option here to hide as static */
38static int power_save = CONFIG_SND_HDA_POWER_SAVE_DEFAULT;
39module_param(power_save, int, 0644);
40MODULE_PARM_DESC(power_save, "Automatic power-saving timeout "
41 "(in second, 0 = disable).");
42#endif
43
44/* 36/*
45 * vendor / preset table 37 * vendor / preset table
46 */ 38 */
@@ -519,6 +511,7 @@ int __devinit snd_hda_bus_new(struct snd_card *card,
519 bus->private_data = temp->private_data; 511 bus->private_data = temp->private_data;
520 bus->pci = temp->pci; 512 bus->pci = temp->pci;
521 bus->modelname = temp->modelname; 513 bus->modelname = temp->modelname;
514 bus->power_save = temp->power_save;
522 bus->ops = temp->ops; 515 bus->ops = temp->ops;
523 516
524 mutex_init(&bus->cmd_mutex); 517 mutex_init(&bus->cmd_mutex);
@@ -2694,15 +2687,18 @@ void snd_hda_power_up(struct hda_codec *codec)
2694 codec->power_transition = 0; 2687 codec->power_transition = 0;
2695} 2688}
2696 2689
2690#define power_save(codec) \
2691 ((codec)->bus->power_save ? *(codec)->bus->power_save : 0)
2692
2697void snd_hda_power_down(struct hda_codec *codec) 2693void snd_hda_power_down(struct hda_codec *codec)
2698{ 2694{
2699 --codec->power_count; 2695 --codec->power_count;
2700 if (!codec->power_on || codec->power_count || codec->power_transition) 2696 if (!codec->power_on || codec->power_count || codec->power_transition)
2701 return; 2697 return;
2702 if (power_save) { 2698 if (power_save(codec)) {
2703 codec->power_transition = 1; /* avoid reentrance */ 2699 codec->power_transition = 1; /* avoid reentrance */
2704 schedule_delayed_work(&codec->power_work, 2700 schedule_delayed_work(&codec->power_work,
2705 msecs_to_jiffies(power_save * 1000)); 2701 msecs_to_jiffies(power_save(codec) * 1000));
2706 } 2702 }
2707} 2703}
2708 2704