[SRU][R][PATCH 13/18] ASoC: SDCA: Add NO_DIRECT_COMPLETE flag to class driver

Chris Chiu chris.chiu at canonical.com
Tue Mar 17 05:21:58 UTC 2026


From: Charles Keepax <ckeepax at opensource.cirrus.com>

BugLink: https://bugs.launchpad.net/bugs/2139391

The SDCA class driver currently expects the device will be fully powered
down on system suspend but not on runtime suspend. This is typically
required as when audio is not active (ie. runtime suspend) jack detect
is expected to still function, but when the whole system is hibernated
there is no need to recognise audio jack events. This means the class
driver needs to always be informed of a system suspend, so the direct
complete optimisation (where PM will skip calling system suspend if the
device is runtime suspended) is not appropriate for the SDCA class
driver.

Add the NO_DIRECT_COMPLETE flag to prevent this optimisation from
running against this driver.

Signed-off-by: Charles Keepax <ckeepax at opensource.cirrus.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart at linux.dev>
link: https://github.com/thesofproject/linux/blob/ec0e6c69113f4b342ee8eabec286dea33d98a7cc/drivers/soundwire/intel_auxdevice.c#L568
Link: https://patch.msgid.link/20260115131727.373738-1-ckeepax@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie at kernel.org>
(cherry picked from commit 702ce71d32f2c30b4f45b7c6b701d87583c58df8 linux-next)
Signed-off-by: Chris Chiu <chris.chiu at canonical.com>
---
 sound/soc/sdca/sdca_class_function.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/sound/soc/sdca/sdca_class_function.c b/sound/soc/sdca/sdca_class_function.c
index 0afa41c1ee93..98fd3fd1052b 100644
--- a/sound/soc/sdca/sdca_class_function.c
+++ b/sound/soc/sdca/sdca_class_function.c
@@ -377,6 +377,8 @@ static int class_function_probe(struct auxiliary_device *auxdev,
 	if (ret)
 		return ret;
 
+	dev_pm_set_driver_flags(dev, DPM_FLAG_NO_DIRECT_COMPLETE);
+
 	pm_runtime_set_autosuspend_delay(dev, 200);
 	pm_runtime_use_autosuspend(dev);
 	pm_runtime_set_active(dev);
-- 
2.43.0




More information about the kernel-team mailing list