OpenCloudOS-Kernel/sound/soc/atmel
Mark Brown 11d4e47486
ASoC: mchp-pdmc: fix poc noises when starting
Merge series from Claudiu Beznea <claudiu.beznea@microchip.com>:

To start capture on Microchip PDMC the enable bits for each supported
microphone need to be set. After this bit is set the PDMC starts to
receive data from microphones and it considers this data as valid data.
Thus if microphones are not ready the PDMC captures anyway data from its
lines. This data is interpreted by the human ear as poc noises.

To avoid this the following software workaround need to be applied when
starting capture:
1/ enable PDMC channel
2/ wait 150ms
3/ execute 16 dummy reads from RHR
4/ clear interrupts
5/ enable interrupts
6/ enable DMA channel

For this workaround to work step 6 need to be executed at the end.
For step 6 was added patch 1/3 from this series. With this, component
DAI driver sets its struct snd_soc_component_driver::start_dma_last = 1
and proper action is taken based on this flag when starting DAI trigger
vs DMA.
2023-02-28 17:59:15 +00: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
atmel-classd.c ASoC: atmel-classd: Drop empty platform remove function 2022-12-25 23:32:43 +00: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 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 ASoC: atmel: atmel-pcm-dma.c: use devm_snd_dmaengine_pcm_register() 2019-06-28 15:08:38 +01:00
atmel-pdmic.c ASoC: atmel-pdmic: Drop empty platform remove function 2022-12-25 23:32:44 +00: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
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 ASoC: atmel_ssc_dai: Remove wrong spinlock usage 2019-09-18 11:12:24 +01:00
atmel_wm8904.c ASoC: atmel: Convert to new style DAI format definitions 2021-09-16 14:11:30 +01: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: sam9g20ek: Disable capture unless building with microphone input 2023-02-28 13:59:55 +00: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