On Thu, Mar 23, 2023 at 01:11:11PM -0500, Pierre-Louis Bossart wrote:
The trigger is run in atomic context, can you really write safely to a SoundWire device there?
Mark, I've seen that comment from you several times, and I wonder if I am missing something: the triggers for SoundWire managers and dailinks are typically nonatomic - at least for the Cadence-based solution the trigger is based on a bank switch that may happen with a delay and with a wait_for_completion(). Sending a command over the SoundWire channel is also typically not atomic, there's usually a wait_for_completion() as well.
Ah, you're setting the nonatomic flag on your links to disable the locking. The default for trigger operations is to run them with local interrupts disabled. It looks like at least some of the Qualcomm stuff does that too.