Linux Sound subsystem development
 help / color / mirror / Atom feed
From: Jonathan Marek <jonathan@marek.ca>
To: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>,
	linux-arm-msm@vger.kernel.org
Cc: Srinivas Kandagatla <srini@kernel.org>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>, Jaroslav Kysela <perex@perex.cz>,
	Takashi Iwai <tiwai@suse.com>,
	Krzysztof Kozlowski <krzk@kernel.org>,
	Neil Armstrong <neil.armstrong@linaro.org>,
	"open list:QCOM AUDIO (ASoC) DRIVERS"
	<linux-sound@vger.kernel.org>,
	open list <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 1/6] ASoC: codecs: wsa884x: remove mute_unmute_on_trigger
Date: Mon, 24 Nov 2025 09:55:56 -0500	[thread overview]
Message-ID: <5f15fc5b-375a-1e75-b32d-0d543fa1014d@marek.ca> (raw)
In-Reply-To: <2758401b-e9b5-4f10-bb01-0a1fe4e09430@oss.qualcomm.com>

On 11/24/25 9:08 AM, Srinivas Kandagatla wrote:
> 
> 
> On 11/24/25 6:45 AM, Jonathan Marek wrote:
>> trigger is atomic (non-schedulable), and soundwire register writes are not
>> safe to run in an atomic context. (bus is locked with a mutex, and qcom
>> driver's callback can also sleep if the FIFO is full).
>>
> Thanks Jonathan for the patch,
> 
> We have nonatomic=1 flag set for all the Qualcomm sound cards, Did you
> hit any schedule while atomic bug?
> 

Right, I missed that. I'm using a different driver which does not set 
nonatomic. But this driver to not need nonatomic - 
mute_unmute_on_trigger is a hack, if there is a timing requirement - 
then it needs to be explicit, the different timing with this flag is not 
reliable).

> 
> 
> In-fact this change has helped suppress most of the click and pop noises
> on laptops, specially with wsa codecs as they accumulate static if the
> ports are kept open without sending any data.
> 

28b0b18d5346 is important to fix the click and pop noises. But the 
useful part is the rest of the commit, not the mute_unmute_on_trigger 
flag. As long as the mute_stream() happens while the soundwire stream is 
enabled (between sdw_enable_stream and sdw_disable_stream), there should 
be no pop click.

AFAIK the pop/click is because of PDM: zeros (soundwire stream off) 
represent the minimum (negative maximum) amplitude, and the soundwire 
stream needs to be enabled to output a zero amplitude (alternating 
ones/zeros). Turning on the amp while the soundwire stream is not 
enabled will cause jumps between the minimum and zero amplitude.

> --srini
> 
> 
>> The important part of fixing the click/pop issue was removing the PA_EN
>> writes from the dapm events, AFAICT this flag doesn't help anyway.
>>
>> Fixes: 28b0b18d5346 ("ASoC: codec: wsa884x: make use of new mute_unmute_on_trigger flag")
>> Signed-off-by: Jonathan Marek <jonathan@marek.ca>
>> ---
>>   sound/soc/codecs/wsa884x.c | 1 -
>>   1 file changed, 1 deletion(-)
>>
>> diff --git a/sound/soc/codecs/wsa884x.c b/sound/soc/codecs/wsa884x.c
>> index 2484d4b8e2d94..0218dfc13bc77 100644
>> --- a/sound/soc/codecs/wsa884x.c
>> +++ b/sound/soc/codecs/wsa884x.c
>> @@ -1840,7 +1840,6 @@ static const struct snd_soc_dai_ops wsa884x_dai_ops = {
>>   	.hw_free = wsa884x_hw_free,
>>   	.mute_stream = wsa884x_mute_stream,
>>   	.set_stream = wsa884x_set_stream,
>> -	.mute_unmute_on_trigger = true,
>>   };
>>   
>>   static struct snd_soc_dai_driver wsa884x_dais[] = {
> 

  reply	other threads:[~2025-11-24 14:57 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-24  6:45 [PATCH 0/6] wcd938x/wcd939x fixes Jonathan Marek
2025-11-24  6:45 ` [PATCH 1/6] ASoC: codecs: wsa884x: remove mute_unmute_on_trigger Jonathan Marek
2025-11-24 14:08   ` Srinivas Kandagatla
2025-11-24 14:55     ` Jonathan Marek [this message]
2025-11-26 18:44       ` Alexey Klimov
2025-11-27 10:14       ` Srinivas Kandagatla
2025-11-27 13:57         ` Jonathan Marek
2025-11-24  6:45 ` [PATCH 2/6] ASoC: codecs: wsa883x: " Jonathan Marek
2025-11-24  6:45 ` [PATCH 3/6] ASoC: codecs: wcd939x: fix headphone pop/click sound Jonathan Marek
2025-11-24  6:45 ` [PATCH 4/6] ASoC: codecs: wcd938x: " Jonathan Marek
2025-11-24  6:45 ` [PATCH 5/6] ASoC: codecs: wcd939x: fix get_swr_port behavior Jonathan Marek
2025-11-24  6:45 ` [PATCH 6/6] ASoC: codecs: wcd938x: " Jonathan Marek

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=5f15fc5b-375a-1e75-b32d-0d543fa1014d@marek.ca \
    --to=jonathan@marek.ca \
    --cc=broonie@kernel.org \
    --cc=krzk@kernel.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-sound@vger.kernel.org \
    --cc=neil.armstrong@linaro.org \
    --cc=perex@perex.cz \
    --cc=srini@kernel.org \
    --cc=srinivas.kandagatla@oss.qualcomm.com \
    --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