linux-stable/sound/soc/atmel
Claudiu Beznea c5682e2ba1
ASoC: mchp-pdmc: fix poc noise at capture startup
Microchip PDMC IP doesn't filter microphone noises on startup. By default,
it captures data received from digital microphones after
the MCHP_PDMC_MR.EN bits are set. Thus when enable is set on PDMC side the
digital microphones might not be ready yet and PDMC captures data from then
in this time. This data captured is poc noise. To avoid this the software
workaround is to the following:
1/ enable PDMC channel
2/ wait 150ms (on SAMA7G5-EK setup)
3/ execute 16 dummy reads from RHR
4/ clear interrupts
5/ enable interrupts
6/ enable DMA channel

Fixes: 50291652af ("ASoC: atmel: mchp-pdmc: add PDMC driver")
Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
Link: https://lore.kernel.org/r/20230228110145.3770525-4-claudiu.beznea@microchip.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-02-28 13:58:50 +00:00
..
atmel-classd.c ASoC: atmel-classd: Drop empty platform remove function 2022-12-25 23:32:43 +00:00
atmel-classd.h
atmel-i2s.c ASoC: atmel: Migrate to new style legacy DAI naming flag 2022-06-27 13:16:31 +01:00
atmel-pcm-dma.c ASoC: atmel-pcm: remove unnecessary include 2020-09-30 16:12:13 +01:00
atmel-pcm-pdc.c ASoC: atmel-pdc: Use managed DMA buffer allocation 2021-01-13 11:36:15 +00:00
atmel-pcm.h
atmel-pdmic.c ASoC: atmel-pdmic: Drop empty platform remove function 2022-12-25 23:32:44 +00:00
atmel-pdmic.h
atmel_ssc_dai.c ASoC: atmel_ssc_dai: Remove the unneeded result variable 2022-08-23 13:04:51 +01:00
atmel_ssc_dai.h
atmel_wm8904.c ASoC: atmel: Convert to new style DAI format definitions 2021-09-16 14:11:30 +01:00
Kconfig ASoC: wm8731: Factor out the I2C and SPI bus code into separate modules 2022-04-04 08:39:32 +01:00
Makefile ASoC: atmel: mchp-pdmc: add PDMC driver 2022-03-08 13:38:59 +00:00
mchp-i2s-mcc.c ASoC: atmel: Migrate to new style legacy DAI naming flag 2022-06-27 13:16:31 +01:00
mchp-pdmc.c ASoC: mchp-pdmc: fix poc noise at capture startup 2023-02-28 13:58:50 +00:00
mchp-spdifrx.c ASoC: mchp-spdifrx: Fix uninitialized use of mr in mchp_spdifrx_hw_params() 2023-02-02 17:36:53 +00:00
mchp-spdiftx.c ASoC: mchp-spdiftx: use FIELD_PREP() where possible 2022-12-25 23:33:18 +00:00
mikroe-proto.c ASoC: core: Make snd_soc_unregister_card() return void 2022-06-22 13:39:34 +01:00
sam9g20_wm8731.c ASoC: sam9g20_wm8731: Simplify some error message 2022-08-15 01:20:05 +01:00
sam9x5_wm8731.c ASoC: atmel: Fix error handling in sam9x5_wm8731_driver_probe 2022-03-16 16:39:19 +00:00
tse850-pcm5142.c ASoC: ateml: Use dev_err_probe() helper 2021-12-20 12:47:12 +00:00