summaryrefslogtreecommitdiff
path: root/sound/pci/hda/hda_codec.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2015-02-20 09:58:14 +0100
committerTakashi Iwai <tiwai@suse.de>2015-02-26 15:37:08 +0100
commit709949fbe9632941585dcacabc8a66010030ed10 (patch)
tree0ff2706a48999e1b0c04a2fc6f5a412f08d7e2f5 /sound/pci/hda/hda_codec.c
parent55ed9cd1feee80764937913afe760161b86cfb11 (diff)
ALSA: hda - Power down codec automatically at registration
So far, we let the controller driver power down the all codecs at the end of probe. But this can be done better in the codec's dev_register callback. This results in the reduction of duplicated codes in each control driver. 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.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
index 33b8b71f8eaf..6580a367023e 100644
--- a/sound/pci/hda/hda_codec.c
+++ b/sound/pci/hda/hda_codec.c
@@ -1163,6 +1163,8 @@ static int snd_hda_codec_dev_register(struct snd_device *device)
snd_hda_register_beep_device(codec);
if (device_is_registered(hda_codec_dev(codec)))
pm_runtime_enable(hda_codec_dev(codec));
+ /* it was powered up in snd_hda_codec_new(), now all done */
+ snd_hda_power_down(codec);
return 0;
}
@@ -1260,8 +1262,7 @@ int snd_hda_codec_new(struct hda_bus *bus,
#ifdef CONFIG_PM
/* snd_hda_codec_new() marks the codec as power-up, and leave it as is.
- * the caller has to power down appropriatley after initialization
- * phase.
+ * it's powered down later in snd_hda_codec_dev_register().
*/
set_bit(codec->addr, &bus->codec_powered);
pm_runtime_set_active(hda_codec_dev(codec));