Linux Sound subsystem development
 help / color / mirror / Atom feed
* [PATCH] ASoC: tac5xx2-sdw: Use SoundWire init wait helper
@ 2026-05-14 13:16 Cássio Gabriel
  2026-05-14 13:19 ` Cássio Gabriel Monteiro Pires
  0 siblings, 1 reply; 2+ messages in thread
From: Cássio Gabriel @ 2026-05-14 13:16 UTC (permalink / raw)
  To: Liam Girdwood, Mark Brown, Takashi Iwai, Jaroslav Kysela
  Cc: linux-sound, linux-kernel, Cássio Gabriel

The runtime-resume path open-codes the same SoundWire re-enumeration
wait now provided by sdw_slave_wait_for_init(): check whether an
unattach was requested, wait for initialization_complete, report timeout
status, and clear unattach_request on success.

Use the helper to match the other SoundWire codec drivers and keep the
runtime-resume unattach handling in the SoundWire core.

Signed-off-by: Cássio Gabriel <cassiogabrielcontato@gmail.com>
---
 sound/soc/codecs/tac5xx2-sdw.c | 16 +++-------------
 1 file changed, 3 insertions(+), 13 deletions(-)

diff --git a/sound/soc/codecs/tac5xx2-sdw.c b/sound/soc/codecs/tac5xx2-sdw.c
index 917b36ac1cd3..bb12cfb6da12 100644
--- a/sound/soc/codecs/tac5xx2-sdw.c
+++ b/sound/soc/codecs/tac5xx2-sdw.c
@@ -1437,7 +1437,6 @@ static s32 tac5xx2_sdca_dev_resume(struct device *dev)
 {
 	struct tac5xx2_prv *tac_dev = dev_get_drvdata(dev);
 	struct sdw_slave *slave = dev_to_sdw_dev(dev);
-	unsigned long t;
 	int ret;
 
 	if (!tac_dev->first_hw_init_done) {
@@ -1445,19 +1444,10 @@ static s32 tac5xx2_sdca_dev_resume(struct device *dev)
 		return 0;
 	}
 
-	if (!slave->unattach_request)
-		goto regmap_sync;
-
-	t = wait_for_completion_timeout(&slave->initialization_complete,
-					msecs_to_jiffies(TAC5XX2_PROBE_TIMEOUT_MS));
-	if (!t) {
-		dev_err(&slave->dev, "resume: initialization timed out\n");
-		sdw_show_ping_status(slave->bus, true);
-		return -ETIMEDOUT;
-	}
-	slave->unattach_request = 0;
+	ret = sdw_slave_wait_for_init(slave, TAC5XX2_PROBE_TIMEOUT_MS);
+	if (ret)
+		return ret;
 
-regmap_sync:
 	regcache_cache_only(tac_dev->regmap, false);
 	regcache_mark_dirty(tac_dev->regmap);
 	ret = regcache_sync(tac_dev->regmap);

---
base-commit: eeecc92a9f1dd213dd52d9b8f42d155595b1d278
change-id: 20260514-asoc-tac5xx2-sdw-init-helper-5c2363020069

Best regards,
--  
Cássio Gabriel <cassiogabrielcontato@gmail.com>


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

* Re: [PATCH] ASoC: tac5xx2-sdw: Use SoundWire init wait helper
  2026-05-14 13:16 [PATCH] ASoC: tac5xx2-sdw: Use SoundWire init wait helper Cássio Gabriel
@ 2026-05-14 13:19 ` Cássio Gabriel Monteiro Pires
  0 siblings, 0 replies; 2+ messages in thread
From: Cássio Gabriel Monteiro Pires @ 2026-05-14 13:19 UTC (permalink / raw)
  To: Liam Girdwood, Mark Brown, Takashi Iwai, Jaroslav Kysela
  Cc: linux-sound, linux-kernel


[-- Attachment #1.1: Type: text/plain, Size: 2211 bytes --]

On 5/14/26 10:16, Cássio Gabriel wrote:
> The runtime-resume path open-codes the same SoundWire re-enumeration
> wait now provided by sdw_slave_wait_for_init(): check whether an
> unattach was requested, wait for initialization_complete, report timeout
> status, and clear unattach_request on success.
> 
> Use the helper to match the other SoundWire codec drivers and keep the
> runtime-resume unattach handling in the SoundWire core.
> 
> Signed-off-by: Cássio Gabriel <cassiogabrielcontato@gmail.com>
> ---
>  sound/soc/codecs/tac5xx2-sdw.c | 16 +++-------------
>  1 file changed, 3 insertions(+), 13 deletions(-)
> 
> diff --git a/sound/soc/codecs/tac5xx2-sdw.c b/sound/soc/codecs/tac5xx2-sdw.c
> index 917b36ac1cd3..bb12cfb6da12 100644
> --- a/sound/soc/codecs/tac5xx2-sdw.c
> +++ b/sound/soc/codecs/tac5xx2-sdw.c
> @@ -1437,7 +1437,6 @@ static s32 tac5xx2_sdca_dev_resume(struct device *dev)
>  {
>  	struct tac5xx2_prv *tac_dev = dev_get_drvdata(dev);
>  	struct sdw_slave *slave = dev_to_sdw_dev(dev);
> -	unsigned long t;
>  	int ret;
>  
>  	if (!tac_dev->first_hw_init_done) {
> @@ -1445,19 +1444,10 @@ static s32 tac5xx2_sdca_dev_resume(struct device *dev)
>  		return 0;
>  	}
>  
> -	if (!slave->unattach_request)
> -		goto regmap_sync;
> -
> -	t = wait_for_completion_timeout(&slave->initialization_complete,
> -					msecs_to_jiffies(TAC5XX2_PROBE_TIMEOUT_MS));
> -	if (!t) {
> -		dev_err(&slave->dev, "resume: initialization timed out\n");
> -		sdw_show_ping_status(slave->bus, true);
> -		return -ETIMEDOUT;
> -	}
> -	slave->unattach_request = 0;
> +	ret = sdw_slave_wait_for_init(slave, TAC5XX2_PROBE_TIMEOUT_MS);
> +	if (ret)
> +		return ret;
>  
> -regmap_sync:
>  	regcache_cache_only(tac_dev->regmap, false);
>  	regcache_mark_dirty(tac_dev->regmap);
>  	ret = regcache_sync(tac_dev->regmap);
> 
> ---
> base-commit: eeecc92a9f1dd213dd52d9b8f42d155595b1d278
> change-id: 20260514-asoc-tac5xx2-sdw-init-helper-5c2363020069
> 
> Best regards,
> --  
> Cássio Gabriel <cassiogabrielcontato@gmail.com>

Sorry, please disregard this.

I just noticed that the patch changing this has already been sent.

-- 
Thanks,
Cássio


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

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

end of thread, other threads:[~2026-05-14 13:19 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-14 13:16 [PATCH] ASoC: tac5xx2-sdw: Use SoundWire init wait helper Cássio Gabriel
2026-05-14 13:19 ` Cássio Gabriel Monteiro Pires

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox