devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/3] ASoC: mchp-pdmc: fix poc noises when starting capture
@ 2023-02-17 12:41 Claudiu Beznea
  2023-02-17 12:41 ` [PATCH v2 1/3] ASoC: soc-pcm: add option to start DMA after DAI Claudiu Beznea
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Claudiu Beznea @ 2023-02-17 12:41 UTC (permalink / raw)
  To: lgirdwood, broonie, robh+dt, krzysztof.kozlowski+dt, perex, tiwai,
	nicolas.ferre, alexandre.belloni
  Cc: alsa-devel, devicetree, linux-kernel, linux-arm-kernel,
	Claudiu Beznea

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.

Thank you,
Claudiu Beznea

Changes in v2:
- patch 1/3 from v1 is now "ASoC: soc-pcm: add option to start DMA after DAI"
- pass start_dma_last from component DAI driver object
  (struct snd_soc_component_driver::start_dma_last); adapt patch 3/3 after this;
- in patch 1/3 s/Do we need to start dma first/Do we need to start dma last
  in comment from soc_pcm_trigger()
- collect review tag from Krzysztof

Claudiu Beznea (3):
  ASoC: soc-pcm: add option to start DMA after DAI
  ASoC: dt-bindings: sama7g5-pdmc: add microchip,startup-delay-us
    binding
  ASoC: mchp-pdmc: fix poc noise at capture startup

 .../sound/microchip,sama7g5-pdmc.yaml         |  6 ++
 include/sound/soc-component.h                 |  2 +
 sound/soc/atmel/mchp-pdmc.c                   | 55 +++++++++++++++++--
 sound/soc/soc-pcm.c                           | 27 +++++++--
 4 files changed, 80 insertions(+), 10 deletions(-)

-- 
2.34.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2023-02-21 14:50 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-02-17 12:41 [PATCH v2 0/3] ASoC: mchp-pdmc: fix poc noises when starting capture Claudiu Beznea
2023-02-17 12:41 ` [PATCH v2 1/3] ASoC: soc-pcm: add option to start DMA after DAI Claudiu Beznea
2023-02-17 13:09   ` Amadeusz Sławiński
2023-02-17 13:14     ` Claudiu.Beznea
2023-02-17 12:41 ` [PATCH v2 2/3] ASoC: dt-bindings: sama7g5-pdmc: add microchip,startup-delay-us binding Claudiu Beznea
2023-02-20 22:56   ` Rob Herring
2023-02-21  8:10     ` Claudiu.Beznea
2023-02-21  9:23       ` Krzysztof Kozlowski
2023-02-21 10:52         ` Claudiu.Beznea
2023-02-21 14:50           ` Mark Brown
2023-02-17 12:41 ` [PATCH v2 3/3] ASoC: mchp-pdmc: fix poc noise at capture startup Claudiu Beznea

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).