aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/sound/pci/hda/hda_intel.h
diff options
context:
space:
mode:
authorMengdong Lin <mengdong.lin@intel.com>2015-04-29 17:43:36 +0800
committerTakashi Iwai <tiwai@suse.de>2015-04-29 12:27:53 +0200
commit795614dde4d3550c3ef72469b1ba4d09d8635202 (patch)
treeca2576888eb4343dc9dcb2ca15e9f2b2bad58623 /sound/pci/hda/hda_intel.h
parentALSA: hda - implement link_power ops for i915 display power control (diff)
downloadwireguard-linux-795614dde4d3550c3ef72469b1ba4d09d8635202.tar.xz
wireguard-linux-795614dde4d3550c3ef72469b1ba4d09d8635202.zip
ALSA: hda - divide controller and codec dependency on i915 gfx power well
This patch can improve power saving for Intel platforms on which only the display audio codec is in the shared i915 power well: - Add a flag "need_i915_power" to indicate whether the controller needs the i915 power well. - The driver will always request the i915 power when probing the controller and codecs if AZX_DCAPS_I915_POWERWELL is set (either the controller or a codec needs this power). - If the controller needs the i915 power, the power will be held after probe until the controller is runtime suspended or S3. If the controller doesn't need the power, the power will be released the after probe, and a codec that needs the power can request/release the power via bus link_power ops. Background: - For Haswell/Broadwell, which has a separate HD-A controller for display audio, both the controller and the display codec are in the i915 power well. - For Baytrail/Braswell, the display and analog audio share the same HDA controller and link, and only the display codec is in the i915 power well. - For Skylake, the display and analog audio share the same HDA controller but use separate links. Only the display codec is in the i915 power well. And in legacy mode we take the two links as one. So it can follow Baytrail/Braswell. Signed-off-by: Mengdong Lin <mengdong.lin@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/hda/hda_intel.h')
-rw-r--r--sound/pci/hda/hda_intel.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/sound/pci/hda/hda_intel.h b/sound/pci/hda/hda_intel.h
index dc1d3ffab1aa..505f987eb4a2 100644
--- a/sound/pci/hda/hda_intel.h
+++ b/sound/pci/hda/hda_intel.h
@@ -45,6 +45,7 @@ struct hda_intel {
struct dev_pm_domain hdmi_pm_domain;
/* i915 component interface */
+ bool need_i915_power:1; /* the hda controller needs i915 power */
struct i915_audio_component audio_component;
int i915_power_refcount;
};