Takashi Iwai wrote: > Clemens Ladisch wrote: > > > > - initialize active_mask and unlink_mask each time before URBs are > > started > > we still need to check here whether the urbs are really free, since > a path like trigger stop -> prepare -> trigger_start is possible. > in this case, the operation can be done quickly enough before urbs are > really unlinked. > > the question is then where we can do a long wait. perpare would be a > better place than trigger, but unfortunately, prepare callback is also > regarded as atomic because of linked streams.
If we cannot sleep until the URBs are completely unlinked, we have to 1) busy-wait until the URBs are inactive (*ouch!*), or 2) let trigger_start fail with "device not yet ready", or 3) allocate a new set of URBs, and put the old ones in some list to be freed later. (1) would be really evil; (2) a quick hack; (3) would be most useful, but it's anything but elegant. Regards, Clemens ------------------------------------------------------- This SF.net email is sponsored by: SF.net Giveback Program. Does SourceForge.net help you be more productive? Does it help you create better code? SHARE THE LOVE, and help us help YOU! Click Here: http://sourceforge.net/donate/ _______________________________________________ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel