diff options
author | Takashi Iwai <tiwai@suse.de> | 2008-11-27 06:43:28 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2008-11-27 06:43:28 -0500 |
commit | fee2fba3586f78762ecc5f432dfd3602765a31b3 (patch) | |
tree | 9435bc32c3e41ad74dbcb18d829d8c51227c16c3 /sound/pci/hda/hda_codec.c | |
parent | 986862bdf17655d012f9b0654925dccdcc4183c9 (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.c | 16 |
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 */ | ||
38 | static int power_save = CONFIG_SND_HDA_POWER_SAVE_DEFAULT; | ||
39 | module_param(power_save, int, 0644); | ||
40 | MODULE_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 | |||
2697 | void snd_hda_power_down(struct hda_codec *codec) | 2693 | void 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 | ||