linux-hardened/sound/soc
Ranjani Sridharan bdf4ad3fd0
ASoC: SOF: Intel: hda: assign link DMA channel at run-time
The recommended HDA HW programming sequence for setting
the DMA format requires that the link DMA and host DMA
channels be coupled before setting the format. This
change means that host DMA or link DMA channels be
reserved even if only one is used.

Statically assigned link DMA channels would mean that
all the corresponding host DMA channels will need to be
reserved, leaving only a few channels available at run-time.
So, the suggestion here is to switch to dynamically assigning
both host DMA channels and link DMA channels are run-time.

The host DMA channel is assigned when the pcm
is opened as before. While choosing the link DMA channel,
if the host DMA channel corresponding to the link DMA channel
is already taken, the proposed method checks to make
sure that the BE is connected to the FE that has been assigned
this host DMA channel. Once the link DMA channel is assigned,
an IPC is sent to the DSP to set the link DMA channel.

The link DMA channel is freed during hw_free() and also in the
SUSPEND trigger callback. It will be re-assigned when hw_params
are set upon resume.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2019-06-17 13:37:16 +01:00
..
adi ASoC: axi-i2s: let both capture and playback be optional 2019-03-11 17:17:38 +00:00
amd ASoC: amd: acp-rt5645: use modern dai_link style 2019-06-06 21:38:04 +01:00
atmel ASoC: atmel: atmel-classd: use modern dai_link style 2019-06-06 21:39:50 +01:00
au1x ASoC: au1x: db1200: use modern dai_link style 2019-06-06 21:40:19 +01:00
bcm ASoC: bcm: use devm_snd_soc_register_component() 2018-09-10 15:13:12 +01:00
cirrus ASoC: cirrus: snappercl15: use modern dai_link style 2019-06-06 21:40:58 +01:00
codecs ASoC: cx2072x: mark PM function as __maybe_unused 2019-06-17 13:35:51 +01:00
dwc ASoC: dwc: Drop superfluous PCM preallocation error checks 2019-02-06 18:28:59 +01:00
fsl ASoC: fsl: no need to check return value of debugfs_create functions 2019-06-14 16:37:48 +01:00
generic ASoC: simple-card: support snd_soc_dai_link_component style for cpu 2019-06-06 21:22:17 +01:00
hisilicon ASoC: hisilicon: fix fall-through annotations 2018-09-17 10:30:23 -07:00
img treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
intel ASoC: Intel: bxt-da7219-max98357a: add BE dailink for dmic16k 2019-06-13 16:23:27 +01:00
jz4740 ASoC: jz4740: qi_lb60: use modern dai_link style 2019-06-06 21:44:15 +01:00
kirkwood ASoC: kirkwood: armada-370-db: use modern dai_link style 2019-06-06 21:35:19 +01:00
mediatek Merge branch 'asoc-5.2' into asoc-5.3 2019-06-06 22:44:24 +01:00
meson ASoC: meson: axg-tdm: consistently use SND_SOC_DAIFMT defines 2019-06-13 19:46:31 +01:00
mxs ASoC: mxs: mxs-sgtl5000: use modern dai_link style 2019-06-06 21:44:52 +01:00
nuc900 ASoC: nuc900: nuc900-audio: use modern dai_link style 2019-06-06 21:45:11 +01:00
pxa ASoC: pxa: poodle: use modern dai_link style 2019-06-06 21:35:09 +01:00
qcom ASoC: qcom: apq8016_sbc: use modern dai_link style 2019-06-06 21:45:50 +01:00
rockchip ASoC: rockchip: pdm: select CONFIG_RATIONAL 2019-06-17 13:35:21 +01:00
samsung ASoC: samsung: jive_wm8750: use modern dai_link style 2019-06-06 21:32:13 +01:00
sh ASoC: sh: sh7760-ac97: use modern dai_link style 2019-06-06 21:37:35 +01:00
sirf ASoC: sirf: sirf-audio: use modern dai_link style 2019-06-06 22:06:59 +01:00
sof ASoC: SOF: Intel: hda: assign link DMA channel at run-time 2019-06-17 13:37:16 +01:00
spear
sprd ASoC: sprd: Add reserved DMA memory support 2019-05-06 22:48:03 +09:00
sti ASoC: sti: Use snd_pcm_stop_xrun() helper 2018-07-04 15:41:35 +01:00
stm ASoC: stm32: sai: manage identification registers 2019-06-03 17:46:11 +01:00
sunxi Merge branch 'asoc-5.2' into asoc-5.3 2019-06-06 22:44:24 +01:00
tegra ASoC: tegra: tegra_max98090: use modern dai_link style 2019-06-06 22:09:54 +01:00
ti ASoC: ti: davinci-mcasp: Support for auxclk-fs-ratio 2019-06-12 13:53:44 +01:00
txx9 ASoC: txx9: txx9aclc-generic: use modern dai_link style 2019-06-06 22:07:55 +01:00
uniphier ASoC: uniphier: Drop superfluous PCM preallocation error checks 2019-02-06 18:29:39 +01:00
ux500 ASoC: ux500: mop500: use modern dai_link style 2019-06-06 22:07:20 +01:00
xilinx ASoC: xlnx: fix up for snd_pcm_lib_preallocate_pages_for_all() API change 2019-02-08 14:23:54 +01:00
xtensa ASoC: xtensa: Drop superfluous PCM preallocation error checks 2019-02-06 18:29:44 +01:00
zte ASoC: zte: Fix incorrect PCM format bit usages 2018-07-26 15:48:19 +01:00
Kconfig ASoC: SOF: Add Build support for SOF core and Intel drivers 2019-04-28 02:51:46 +09:00
Makefile ASoC: SOF: Add Build support for SOF core and Intel drivers 2019-04-28 02:51:46 +09:00
soc-ac97.c ASoC: ac97: convert to SPDX identifiers 2018-07-02 10:56:09 +01:00
soc-acpi.c ASoC: soc-acpi: fix implicit header use of module.h/export.h 2019-05-08 18:06:28 +09:00
soc-compress.c ASoC: compress: Add helper functions for component trigger/set_params 2019-02-06 15:51:04 +00:00
soc-core.c ASoC: Remove erroneous soc_cleanup_card_resources() call 2019-06-07 17:03:35 +01:00
soc-dapm.c Merge branch 'asoc-5.2' into asoc-5.3 2019-05-30 16:47:43 +01:00
soc-devres.c ASoC: soc-devres.c: convert to SPDX identifiers 2018-07-02 10:55:22 +01:00
soc-generic-dmaengine-pcm.c ASoC: More changes for v5.1 2019-02-28 13:30:55 +01:00
soc-io.c ASoC: soc-io.c: convert to SPDX identifiers 2018-07-02 10:53:55 +01:00
soc-jack.c ASoC: soc-jack.c: convert to SPDX identifiers 2018-07-02 10:55:12 +01:00
soc-ops.c ASoC: Fix UBSAN warning at snd_soc_get/put_volsw_sx() 2018-09-11 11:58:52 +01:00
soc-pcm.c Merge branch 'for-5.2' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-5.3 2019-05-21 22:00:33 +01:00
soc-topology.c ASoC: soc-topology: fix modern dai link style 2019-06-13 19:47:14 +01:00
soc-utils.c ASoC: soc-utils: Rename dummy_dma_ops to snd_dummy_dma_ops 2018-09-27 23:15:46 +01:00