linux-stable/sound/pci/hda
Mengdong Lin 795614dde4 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>
2015-04-29 12:27:53 +02:00
..
ca0132_regs.h ALSA: hda: ca0132_regs.h: Fix typo in include guard 2014-08-22 11:24:11 +02:00
dell_wmi_helper.c ALSA: hda - add mic mute led hook for dell machines 2014-07-31 09:21:42 +02:00
hda_auto_parser.c ALSA: hda - Move a part of hda_codec stuff into hdac_device 2015-03-23 13:17:17 +01:00
hda_auto_parser.h ALSA: hda - Sort input pins depending on amp caps 2014-09-23 15:57:32 +02:00
hda_beep.c ALSA: hda - Move a part of hda_codec stuff into hdac_device 2015-03-23 13:17:17 +01:00
hda_beep.h ALSA: hda - Adjust power of beep widget and outputs 2015-03-18 09:23:10 +01:00
hda_bind.c ALSA: hda - Add regmap support 2015-03-23 13:19:36 +01:00
hda_codec.c ALSA: hda - allow a codec to control the link power 2015-04-29 12:27:52 +02:00
hda_codec.h ALSA: hda - Replace hda_bus_ops with static binding 2015-04-16 23:40:09 +02:00
hda_controller.c ALSA: hda - implement link_power ops for i915 display power control 2015-04-29 12:27:53 +02:00
hda_controller.h ALSA: hda - implement link_power ops for i915 display power control 2015-04-29 12:27:53 +02:00
hda_eld.c ALSA: hda - Correct kerneldoc comments 2014-10-29 15:06:54 +01:00
hda_generic.c ALSA: hda/generic - Don't override power_filter when power_save_node is set 2015-04-09 10:34:00 +02:00
hda_generic.h ALSA: hda - Fix power of pins used for mute LED with vrefs 2015-03-20 18:30:48 +01:00
hda_hwdep.c ALSA: hda - Add card field to hda_codec struct 2015-03-03 11:25:16 +01:00
hda_i915.c ALSA: hda - implement a refcount for i915 power well switch 2015-04-29 12:27:52 +02:00
hda_intel.c ALSA: hda - divide controller and codec dependency on i915 gfx power well 2015-04-29 12:27:53 +02:00
hda_intel.h ALSA: hda - divide controller and codec dependency on i915 gfx power well 2015-04-29 12:27:53 +02:00
hda_intel_trace.h ALSA: hda - Reenable tracepoints for controller 2015-04-16 11:45:26 +02:00
hda_jack.c ALSA: hda - Add card field to hda_codec struct 2015-03-03 11:25:16 +01:00
hda_jack.h ALSA: hda - More kerneldoc comments 2014-10-29 16:03:58 +01:00
hda_local.h ALSA: hda - Use regmap for parameter caches, too 2015-03-23 13:19:40 +01:00
hda_proc.c ALSA: hda - Implement uncached version of parameter reads 2015-03-23 13:19:38 +01:00
hda_sysfs.c ALSA: hda - Move a part of hda_codec stuff into hdac_device 2015-03-23 13:17:17 +01:00
hda_tegra.c ALSA: hda/tegra - Fix build error and warning 2015-04-16 12:07:24 +02:00
Kconfig ALSA: hda - Add DSP loader to core library code 2015-04-16 07:28:27 +02:00
local.h ALSA: hda - Move a part of hda_codec stuff into hdac_device 2015-03-23 13:17:17 +01:00
Makefile ALSA: hda - Merge codec and controller helpers 2015-04-16 07:31:31 +02:00
patch_analog.c ALSA: hda - Use regmap for command verb caches, too 2015-03-23 13:19:41 +01:00
patch_ca0110.c ALSA: hda - Bind codecs via standard bus 2015-02-23 09:16:06 +01:00
patch_ca0132.c ALSA: hda - Move PCM format and rate handling code to core library 2015-04-16 08:47:28 +02:00
patch_cirrus.c Merge branch 'topic/hda-bus' into for-next 2015-03-16 14:48:16 +01:00
patch_cmedia.c ALSA: hda - Bind codecs via standard bus 2015-02-23 09:16:06 +01:00
patch_conexant.c ALSA: hda - Use regmap for command verb caches, too 2015-03-23 13:19:41 +01:00
patch_hdmi.c ALSA: hda - Work around races of power up/down with runtime PM 2015-04-08 13:50:42 +02:00
patch_realtek.c ALSA: hda/realtek - Enable the ALC292 dock fixup on the Thinkpad T450 2015-04-13 13:23:40 +02:00
patch_si3054.c ALSA: hda - Use regmap for command verb caches, too 2015-03-23 13:19:41 +01:00
patch_sigmatel.c ALSA: hda - Use regmap for command verb caches, too 2015-03-23 13:19:41 +01:00
patch_via.c ALSA: hda/via - Add missing stream_pm ops setup 2015-04-09 15:23:59 +02:00
thinkpad_helper.c ALSA: hda - Move a part of hda_codec stuff into hdac_device 2015-03-23 13:17:17 +01:00