Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

ASoC: SDCA: Add NO_DIRECT_COMPLETE flag to class driver

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@opensource.cirrus.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@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@kernel.org>

authored by

Charles Keepax and committed by
Mark Brown
702ce71d be9d8d96

+2
+2
sound/soc/sdca/sdca_class_function.c
··· 377 377 if (ret) 378 378 return ret; 379 379 380 + dev_pm_set_driver_flags(dev, DPM_FLAG_NO_DIRECT_COMPLETE); 381 + 380 382 pm_runtime_set_autosuspend_delay(dev, 200); 381 383 pm_runtime_use_autosuspend(dev); 382 384 pm_runtime_set_active(dev);