From: Claudiu Beznea <claudiu.beznea@microchip.com>
To: <lgirdwood@gmail.com>, <broonie@kernel.org>, <robh+dt@kernel.org>,
<krzysztof.kozlowski+dt@linaro.org>, <lars@metafoo.de>,
<perex@perex.cz>, <tiwai@suse.com>, <nicolas.ferre@microchip.com>,
<alexandre.belloni@bootlin.com>
Cc: <alsa-devel@alsa-project.org>, <devicetree@vger.kernel.org>,
<linux-kernel@vger.kernel.org>,
<linux-arm-kernel@lists.infradead.org>,
Claudiu Beznea <claudiu.beznea@microchip.com>
Subject: [PATCH 0/3] ASoC: mchp-pdmc: fix poc noises when starting capture
Date: Tue, 14 Feb 2023 18:14:32 +0200 [thread overview]
Message-ID: <20230214161435.1088246-1-claudiu.beznea@microchip.com> (raw)
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, driver sets
its struct snd_dmaengine_pcm_config::start_dma_last = 1 and proper
action is taken based on this flag when starting DAI trigger vs DMA.
The other solution that was identified for this was to extend the already
existing mechanism around struct snd_soc_dai_link::stop_dma_first. The downside
of this was that a potential struct snd_soc_dai_link::start_dma_last
would have to be populated on sound card driver thus, had to be taken
into account in all sound card drivers. At the moment, the mchp-pdmc is used
only with simple-audio-card. In case of simple-audio-card a new DT
binding would had to be introduced to specify this action on dai-link
descriptions (as of my investigation).
Please advice what might be the best approach.
Thank you,
Claudiu Beznea
Claudiu Beznea (3):
ASoC: soc-generic-dmaengine-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/dmaengine_pcm.h | 1 +
include/sound/soc-component.h | 2 +
sound/soc/atmel/mchp-pdmc.c | 55 +++++++++++++++++--
sound/soc/soc-generic-dmaengine-pcm.c | 8 ++-
sound/soc/soc-pcm.c | 27 +++++++--
6 files changed, 86 insertions(+), 13 deletions(-)
--
2.34.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next reply other threads:[~2023-02-14 16:17 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-14 16:14 Claudiu Beznea [this message]
2023-02-14 16:14 ` [PATCH 1/3] ASoC: soc-generic-dmaengine-pcm: add option to start DMA after DAI Claudiu Beznea
2023-02-14 18:14 ` Lars-Peter Clausen
2023-02-14 21:26 ` Mark Brown
2023-02-16 9:49 ` Claudiu.Beznea
2023-02-16 13:53 ` Lars-Peter Clausen
2023-02-17 10:59 ` Claudiu.Beznea
2023-02-14 16:14 ` [PATCH 2/3] ASoC: dt-bindings: sama7g5-pdmc: add microchip,startup-delay-us binding Claudiu Beznea
2023-02-16 10:04 ` Krzysztof Kozlowski
2023-02-16 10:15 ` Claudiu.Beznea
2023-02-16 10:18 ` Krzysztof Kozlowski
2023-02-16 10:41 ` Claudiu.Beznea
2023-02-16 10:43 ` Krzysztof Kozlowski
2023-02-16 14:46 ` Mark Brown
2023-02-14 16:14 ` [PATCH 3/3] ASoC: mchp-pdmc: fix poc noise at capture startup Claudiu Beznea
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230214161435.1088246-1-claudiu.beznea@microchip.com \
--to=claudiu.beznea@microchip.com \
--cc=alexandre.belloni@bootlin.com \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=lars@metafoo.de \
--cc=lgirdwood@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nicolas.ferre@microchip.com \
--cc=perex@perex.cz \
--cc=robh+dt@kernel.org \
--cc=tiwai@suse.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox