HDA: Intel: enable automatic runtime pm for HDMI codecs by default
PATCH v2 1/1 HDA: Intel: enable automatic runtime pm for HDMI codecs by default
From: "Lu, Han" <[email protected]>
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.
sound/pci/hda/hda_codec.c +3 -0
@@ -3495,6 +3495,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);
sound/pci/hda/hda_codec.h +1 -0
@@ -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;
sound/pci/hda/patch_hdmi.c +4 -0
@@ -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 ();
Signature · 1 line
1.9.1
Takashi Iwai
AppliedAt Tue, 9 Jun 2015 16:50:38 +0800,
Quoted 10 lines · [email protected] wrote:
From: "Lu, Han" <[email protected]>
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 <[email protected]>
Applied, thanks.
Takashi
Quoted 45 lines
sound/pci/hda/hda_codec.c +3
-0@@ -3495,6 +3495,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);sound/pci/hda/hda_codec.h +1
-0@@ -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;sound/pci/hda/patch_hdmi.c +4
-0@@ -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 ();Signature · 1 line
1.9.1