On 08/28/15 16:04, Tomi Valkeinen wrote: ...
The question is (which was my point in the earlier mail), we already have mutex, so why a new spinlock?
I think the answer is that audio start/stop (anything else?) are called in atomic context, so mutex cannot be used.
Yes, that is correct.
Also (not exactly related to this patch), if the audio callbacks must be atomic, could we use a workqueue to run the audio start/stop work in non-atomic context? Protecting the whole hdmi state with a single mutex would be much nicer.
The reason why the audio start and stop are done in atomic context is for audio synchronization to other audio devices or video stream to be more accurate.
I guess in theory a work queue could be used to serialize the audio commands, but that would ruin the whole point of why the start and stop commands are atomic in the first place.
Cheers, Jyri