ALSA: hda: Intel: enable automatic runtime pm for HDMI codecs by default
authorLu, Han <han.lu@intel.com>
Tue, 9 Jun 2015 08:50:38 +0000 (16:50 +0800)
committerTakashi Iwai <tiwai@suse.de>
Tue, 9 Jun 2015 09:58:37 +0000 (11:58 +0200)
Enable runtime PM of the HDMI audio codec on the latest Intel platforms.
So the HD-A controller or HDMI codec can suspend when idle timeout by
default and release the GFX power well.
The patch influences HSW/BDW/BYT/BSW/SKL. Eariler platforms and third
party analog codecs will not be influenced.

Signed-off-by: Lu, Han <han.lu@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/hda_codec.c
sound/pci/hda/hda_codec.h
sound/pci/hda/patch_hdmi.c

index 938ee4a..d702298 100644 (file)
@@ -3496,6 +3496,9 @@ static void codec_set_power_save(struct hda_codec *codec, int delay)
 {
        struct device *dev = hda_codec_dev(codec);
 
+       if (delay == 0 && codec->auto_runtime_pm)
+               delay = 3000;
+
        if (delay > 0) {
                pm_runtime_set_autosuspend_delay(dev, delay);
                pm_runtime_use_autosuspend(dev);
index 6c57258..12837ab 100644 (file)
@@ -251,6 +251,7 @@ struct hda_codec {
        unsigned int dp_mst:1; /* support DP1.2 Multi-stream transport */
        unsigned int dump_coef:1; /* dump processing coefs in codec proc file */
        unsigned int power_save_node:1; /* advanced PM for each widget */
+       unsigned int auto_runtime_pm:1; /* enable automatic codec runtime pm */
 #ifdef CONFIG_PM
        unsigned long power_on_acct;
        unsigned long power_off_acct;
index 407978b..f852734 100644 (file)
@@ -2356,6 +2356,10 @@ static int patch_generic_hdmi(struct hda_codec *codec)
                codec->dp_mst = true;
        }
 
+       /* Enable runtime pm for HDMI audio codec of HSW/BDW/SKL/BYT/BSW */
+       if (is_haswell_plus(codec) || is_valleyview_plus(codec))
+               codec->auto_runtime_pm = 1;
+
        generic_hdmi_init_per_pins(codec);
 
        init_channel_allocations();