Currently, if a SoundWire driver takes an action that causes the
device to detach from the bus it needs to be careful. There will be
a period of time until the detach is recognised by the core, if the
driver immediately calls sdw_slave_wait_for_init() it is possible for
that to complete before the detach has been recognised. Leaving the
driver with a device that is potentially not ready for what follows.
To avoid this race add a new helper that drivers can use to inform
the core the device will detach. This clears the enumeration
completions ensuring that sdw_slave_wait_for_init() can't complete
until the device re-attaches.
This is the third part of a longer series of moving these slave
attach/deatach operations into the core:
https://lore.kernel.org/linux-sound/20260512103022.1154645-1-ckeepax@opensource.cirrus.com/
https://lore.kernel.org/linux-sound/20260608102714.2503120-1-ckeepax@opensource.cirrus.com/
I have based this series off Vinod's soundwire tree, but the patches
apply to both the current MFD and SoundWire next branches so should
be fine to apply to either tree.
Thanks,
Charles
Changes since v1:
- Correct kerneldoc
Charles Keepax (2):
soundwire: Add a helper function to indicate a device will detach
mfd: cs42l43: Move to core detach helper
drivers/mfd/cs42l43-sdw.c | 2 --
drivers/mfd/cs42l43.c | 15 +--------------
drivers/soundwire/bus.h | 6 ------
include/linux/mfd/cs42l43.h | 1 -
include/linux/soundwire/sdw.h | 26 ++++++++++++++++++++++++++
5 files changed, 27 insertions(+), 23 deletions(-)
--
2.47.3