Re: [PATCH 1/2] ASoC: codecs: Use component driver suspend/resume
From: Richard Fitzgerald
Date: Wed Oct 29 2025 - 10:38:44 EST
On 29/10/2025 2:11 pm, Claudiu wrote:
From: Claudiu Beznea <claudiu.beznea.uj@xxxxxxxxxxxxxx>The commit title starts "ASoC: codecs:", which implies that this
Since snd_soc_suspend() is invoked through snd_soc_pm_ops->suspend(),
and snd_soc_pm_ops is associated with the soc_driver (defined in
sound/soc/soc-core.c), and there is no parent-child relationship between
the soc_driver and the DA7213 codec driver, the power management subsystem
does not enforce a specific suspend/resume order between the DA7213 driver
and the soc_driver.
Because of this, the different codec component functionalities, called from
snd_soc_resume() to reconfigure various functions, can race with the
DA7213 resume function, leading to misapplied configuration.
This occasionally results in clipped sound.
Fix this by moving the regmap cache operations into
struct snd_soc_component_driver::{suspend, resume}. This ensures the
proper configuration sequence is handled by the ASoC subsystem.
Cc: stable@xxxxxxxxxxxxxxx
Fixes: 431e040065c8 ("ASoC: da7213: Add suspend to RAM support")
Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@xxxxxxxxxxxxxx>
---
sound/soc/codecs/da7213.c | 38 +++++++++++++++++++++++++-------------
1 file changed, 25 insertions(+), 13 deletions(-)
patch affects multiple codecs. But it only changes one file.
The commit title prefix should be "ASoC: da7213:", same as the
commit you reference in the Fixes: tag.