summaryrefslogtreecommitdiff
path: root/sound/hda/ext/hdac_ext_bus.c
diff options
context:
space:
mode:
authorVinod Koul <vinod.koul@intel.com>2016-05-12 06:28:53 +0300
committerMark Brown <broonie@kernel.org>2016-05-13 13:43:00 +0300
commit4446085d21e75dd6c0c45577f12db0bd7c7bf35f (patch)
tree2a96c35b59641cb3cf898333398388b0155af77e /sound/hda/ext/hdac_ext_bus.c
parentbfb7802a06ac1855096a3f248822e8f943e6574d (diff)
downloadlinux-4446085d21e75dd6c0c45577f12db0bd7c7bf35f.tar.xz
ALSA: hdac: add link pm and ref counting
The HDA links can be switched off when not is use, similarly command DMA can be stopped as well. This calls for a reference counting mechanism on the link by it's users to manage the link power. The DMA can be turned off when all links are off For this we add two APIs snd_hdac_ext_bus_link_get snd_hdac_ext_bus_link_put They help users to turn up/down link and manage the DMA as well Signed-off-by: Jeeja KP <jeeja.kp@intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Acked-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/hda/ext/hdac_ext_bus.c')
-rw-r--r--sound/hda/ext/hdac_ext_bus.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sound/hda/ext/hdac_ext_bus.c b/sound/hda/ext/hdac_ext_bus.c
index 2433f7c81472..3b7ae24900fd 100644
--- a/sound/hda/ext/hdac_ext_bus.c
+++ b/sound/hda/ext/hdac_ext_bus.c
@@ -105,6 +105,9 @@ int snd_hdac_ext_bus_init(struct hdac_ext_bus *ebus, struct device *dev,
INIT_LIST_HEAD(&ebus->hlink_list);
ebus->idx = idx++;
+ mutex_init(&ebus->lock);
+ ebus->cmd_dma_state = true;
+
return 0;
}
EXPORT_SYMBOL_GPL(snd_hdac_ext_bus_init);