HDA links are always kept On, this patch adds link management routines in hdac extended core and it's use in Skylake driver and hdmi codec (runs on HDA link)
The aim of serial is to shut down the links when not in use and keep them active when a user is active. The user can activate link by taking reference to the link when required.
When all links are closed, the command DMAs are turned off as well. On first link power up, the command DMAs are turned on first.
First patch touches HDA core, and rest two are dependent on it so Takashi if you are okay, pls ACK it and we can merge thru ASoC tree
Changes in v3: - rename the varaible for dmas and make it bool - change the logic of checking links for powering off dmas as suggested by takashi
Changes in v2: - use mutex instead of spinlock
Vinod Koul (3): ALSA: hdac: add link pm and ref counting ASoC: Intel: Skylake: add link mangement ASoC: hdac_hdmi: add link management
include/sound/hdaudio_ext.h | 13 ++++++++ sound/hda/ext/hdac_ext_bus.c | 3 ++ sound/hda/ext/hdac_ext_controller.c | 66 +++++++++++++++++++++++++++++++++++++ sound/soc/codecs/hdac_hdmi.c | 32 ++++++++++++++++-- sound/soc/intel/skylake/skl-pcm.c | 1 - sound/soc/intel/skylake/skl.c | 34 +++++++++++++++++++ 6 files changed, 146 insertions(+), 3 deletions(-)