linux/sound/soc/atmel
Codrin Ciubotariu c9cff337ea
ASoC: mchp-i2s-mcc: Fix simultaneous capture and playback in master mode
This controller supports capture and playback running at the same time,
with the limitation that both capture and playback must be configured the
same way (sample rate, sample format, number of channels, etc). For this,
we have to assure that the configuration registers look the same when
capture and playback are initiated.
This patch fixes a bug in which the controller is in master mode and the
hw_params() callback fails for the second audio stream. The fail occurs
because the divisors are calculated after comparing the configuration
registers for capture and playback. The fix consists in calculating the
divisors before comparing the configuration registers. BCLK and LRC are
then configured and started only if the controller is not already running.

Fixes: 7e0cdf545a55 ("ASoC: mchp-i2s-mcc: add driver for I2SC Multi-Channel Controller")
Signed-off-by: Codrin Ciubotariu <codrin.ciubotariu@microchip.com>
Link: https://lore.kernel.org/r/20190820162411.24836-4-codrin.ciubotariu@microchip.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2019-08-20 18:39:46 +01:00
..
atmel_ssc_dai.c ASoC: atmel: atmel-pcm-dma.c: use devm_snd_dmaengine_pcm_register() 2019-06-28 15:08:38 +01:00
atmel_ssc_dai.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
atmel_wm8904.c ASoC: atmel: atmel_wm8904: consider CPU-Platform possibility unnecessary Platform" 2019-06-28 15:10:01 +01:00
atmel-classd.c ASoC: Remove dev_err() usage after platform_get_irq() 2019-08-02 12:12:31 +01:00
atmel-classd.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
atmel-i2s.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 234 2019-06-19 17:09:07 +02:00
atmel-pcm-dma.c ASoC: atmel: atmel-pcm-dma.c: use devm_snd_dmaengine_pcm_register() 2019-06-28 15:08:38 +01:00
atmel-pcm-pdc.c ASoC: atmel: atmel-pcm-dma.c: use devm_snd_dmaengine_pcm_register() 2019-06-28 15:08:38 +01:00
atmel-pcm.h ASoC: atmel: atmel-pcm-dma.c: use devm_snd_dmaengine_pcm_register() 2019-06-28 15:08:38 +01:00
atmel-pdmic.c ASoC: Remove dev_err() usage after platform_get_irq() 2019-08-02 12:12:31 +01:00
atmel-pdmic.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile ASoC: mchp-i2s-mcc: add driver for I2SC Multi-Channel Controller 2019-03-21 14:53:12 +00:00
mchp-i2s-mcc.c ASoC: mchp-i2s-mcc: Fix simultaneous capture and playback in master mode 2019-08-20 18:39:46 +01:00
mikroe-proto.c ASoC: amtel: mikroe-proto: consider CPU-Platform possibility 2019-06-28 15:10:11 +01:00
sam9g20_wm8731.c ASoC: atmel: sam9g20_wm8731: consider CPU-Platform possibility 2019-06-28 15:10:31 +01:00
sam9x5_wm8731.c ASoC: atmel: sam9x5_wm8731: consider CPU-Platform possibility 2019-06-28 15:10:41 +01:00
tse850-pcm5142.c ASoC: atmel: tse850-pcm5142: consider CPU-Platform possibility 2019-06-28 15:10:51 +01:00