linux/sound/soc
Matthias Reichl 73fe01cfb3 ASoC: dmaengine_pcm: Add support for packed transfers
dmaengine_pcm currently only supports setups where FIFO reads/writes
correspond to exactly one sample, eg 16-bit sample data is transferred
via 16-bit FIFO accesses, 32-bit data via 32-bit accesses.

This patch adds support for setups with fixed width FIFOs where
multiple samples are packed into a larger word.

For example setups with a 32-bit wide FIFO register that expect
16-bit sample transfers to be done with the left+right sample data
packed into a 32-bit word.

Support for packed transfers is controlled via the
SND_DMAENGINE_PCM_DAI_FLAG_PACK flag in snd_dmaengine_dai_dma_data.flags

If this flag is set dmaengine_pcm doesn't put any restriction on the
supported formats and sets the DMA transfer width to undefined.

This means control over the constraints is now transferred to the DAI
driver and it's responsible to provide proper configuration and
check for possible corner cases that aren't handled by the ALSA core.

Signed-off-by: Matthias Reichl <hias@horus.com>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Tested-by: Martin Sperl <kernel@martin.sperl.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
2016-04-27 17:34:11 +01:00
..
adi
amd ASoC: AMD: free memory on error 2016-01-13 12:32:04 +00:00
atmel ASoC: atmel_ssc_dai: distinguish the different SSC 2016-03-02 23:43:11 +09:00
au1x ASoC: Updates for v4.4 2015-10-26 11:15:54 +09:00
bcm ASoC: bcm2835: move to use the clock framework 2016-01-15 18:09:10 +00:00
blackfin ASoC: blackfin: Convert to devm_snd_soc_register_card 2015-09-14 18:32:58 +01:00
cirrus
codecs sound updates for 4.6-rc1 2016-03-18 10:05:46 -07:00
davinci ASoC: davinci: Kconfig: Update the edma-pcm section's dependency and help 2016-03-12 09:45:59 +07:00
dwc ASoC: dwc: Ensure i2s_reg_comp{1,2} is always initialised 2016-02-02 19:20:18 +00:00
fsl sound updates for 4.6-rc1 2016-03-18 10:05:46 -07:00
generic ASoC: simple-card: don't fail if sysclk setting is not supported 2016-01-27 20:27:09 +00:00
img ASoC: img: Add driver for Pistachio internal DAC 2015-12-12 22:56:35 +00:00
intel Merge remote-tracking branch 'asoc/topic/intel' into asoc-next 2016-03-13 15:16:26 +07:00
jz4740 ASoC: jz4740: Fix module autoload for OF platform driver 2015-09-14 18:46:14 +01:00
kirkwood ASoC: kirkwood: Fix module autoload for OF platform driver 2015-09-14 18:46:28 +01:00
mediatek ASoC: mediatek: address dai link array entries by enum 2016-03-05 13:46:06 +09:00
mxs Merge remote-tracking branches 'asoc/topic/max98926', 'asoc/topic/mtk', 'asoc/topic/mxs-saif', 'asoc/topic/nau8825' and 'asoc/topic/omap' into asoc-next 2016-03-13 15:17:18 +07:00
nuc900 dma, mm/pat: Rename dma_*_writecombine() to dma_*_wc() 2016-03-09 14:57:51 +01:00
omap sound updates for 4.6-rc1 2016-03-18 10:05:46 -07:00
pxa Merge remote-tracking branches 'asoc/topic/pxa' and 'asoc/topic/qcom' into asoc-next 2016-03-13 15:17:28 +07:00
qcom ASoC: qcom: fix build error 2016-03-12 09:51:17 +07:00
rockchip ASoC: rockchip: add bindings for spdif controller 2016-03-05 12:59:06 +09:00
samsung Merge remote-tracking branches 'asoc/topic/rt5640', 'asoc/topic/rt5659', 'asoc/topic/samsung' and 'asoc/topic/ssm4567' into asoc-next 2016-03-13 15:17:47 +07:00
sh ASoC: rsnd: add simplified module explanation 2016-03-12 13:03:41 +07:00
sirf
spear ASoC: SPEAr: Make SND_SPEAR_SOC select SND_SOC_GENERIC_DMAENGINE_PCM 2015-09-16 17:46:11 +01:00
sti Merge remote-tracking branches 'asoc/topic/samsung', 'asoc/topic/sh', 'asoc/topic/ssm2518' and 'asoc/topic/sti' into asoc-next 2015-12-23 00:23:51 +00:00
sunxi ASoC: sunxi: Add support for the SPDIF block 2016-02-20 01:25:51 +09:00
tegra Merge remote-tracking branches 'asoc/topic/tegra', 'asoc/topic/topology', 'asoc/topic/wm8903' and 'asoc/topic/wm8904' into asoc-next 2015-12-23 00:23:52 +00:00
txx9 ASoC: txx9: Convert to devm_snd_soc_register_platform 2015-08-28 18:09:04 +01:00
ux500 Merge branch 'topic/hw-constraint-single' into for-next 2015-10-23 06:57:50 +02:00
xtensa ASoC: xtfpga-i2s: Add missing __rcu annotation 2015-07-29 15:07:54 +01:00
zte Merge remote-tracking branches 'asoc/topic/wm8996', 'asoc/topic/xtensa' and 'asoc/topic/zx296702' into asoc-next 2015-08-30 15:59:18 +01:00
Kconfig ALSA: jack: Allow building the jack layer without input device 2016-02-23 09:03:07 +01:00
Makefile Merge remote-tracking branches 'asoc/topic/adsp' and 'asoc/topic/amd' into asoc-next 2016-01-11 13:54:32 +00:00
soc-ac97.c GPIO bulk updates for the v4.5 kernel cycle: 2016-01-17 12:32:01 -08:00
soc-cache.c
soc-compress.c ASoC: Last updates for v4.5 2016-01-11 17:50:15 +01:00
soc-core.c ASoC: fix memory leak 2016-02-22 19:40:06 +09:00
soc-dapm.c Merge remote-tracking branch 'asoc/topic/dapm' into asoc-next 2016-03-13 15:16:24 +07:00
soc-devres.c
soc-generic-dmaengine-pcm.c ASoC: dmaengine_pcm: Add support for packed transfers 2016-04-27 17:34:11 +01:00
soc-io.c
soc-jack.c
soc-ops.c Merge remote-tracking branches 'asoc/topic/kcontrol', 'asoc/topic/max98357a' and 'asoc/topic/mtk' into asoc-next 2015-12-23 00:23:44 +00:00
soc-pcm.c Merge remote-tracking branch 'asoc/topic/pcm' into asoc-next 2016-03-13 15:16:30 +07:00
soc-topology.c ASoC: topology: Fix setting of stream rates, rate_min and rate_max 2016-02-22 19:40:36 +09:00
soc-utils.c ASoC: Document snd-soc-dummy-dai purpose 2015-08-31 16:40:26 +01:00