Hi, Some critical zone should be added to the audio core so that two processes cannot call SNDCTL_DSP_SYNCSTART at the same time. In this way process 1 can do the SYNC_PREPARE and SYNC_TRIGGER calls without being disturbed by process 2.
The first SYNC_TRIGER call for given sound card should start all the sub-devices. Subsequent calls should not have any effect. I think this is handled by the drivers that implement the sync start feature. Best regards, Hannu --------- Zakhar Levchenko wrote: > I can't fully agree with this. Let's look again at my example with 3 > subdevises (when two instances of handle_syncstart are executed in > parallel): > > SYNC_PREPARE for sub-device 1 (1st process) > SYNC_PREPARE for sub-device 2 (1st process) > SYNC_PREPARE for sub-device 3 (2nd process) > ... > > The device driver gets three subsequent SYNC_PREPARE calls, how should > it guess for example that it should start simulateneoulsy subdevices 1 > and 2 and then device 3, but not all 3 subdevices at the same time? > Yes, audio core invokes sync_control for correct devices, but this > operation is not atomic, handle_syncstart executed in parallel may > mess up things totally, the order in which device driver receives > these commands may be kind of random. Driver just can't distinguish > commands from different processes. It expects something like: > > SYNC_PREPARE for sub-device 1 (1st process) > SYNC_PREPARE for sub-device 2 (1st process) > SYNC_TRIGGER for sub-device 1 (1st process) > SYNC_TRIGGER for sub-device 2 (1st process) > > SYNC_PREPARE for sub-device 3 (2nd process) > SYNC_TRIGGER for sub-device 3 (2nd process) > > but probably not > > SYNC_PREPARE for sub-device 1 (1st process) > SYNC_PREPARE for sub-device 2 (1st process) > SYNC_PREPARE for sub-device 3 (2nd process) > SYNC_TRIGGER for sub-device 1 (1st process) > SYNC_TRIGGER for sub-device 3 (2nd process) > SYNC_TRIGGER for sub-device 2 (1st process) > > Regards, > Zakhar Levcehnko > > > > On 6/8/08, *Hannu Savolainen* <[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]>> wrote: > > Zakhar Levchenko kirjoitti: > > > So device driver implementation of sync_control is supposed to check > > group id or something like that? Otherwise I can't see any way to > > separate devices from different groups. > > Drivers don't need to check it. The audio core takes care of invoking > just the correct devices. > > > Best regards, > > Hannu > _______________________________________________ > oss-devel mailing list > oss-devel@mailman.opensound.com > <mailto:oss-devel@mailman.opensound.com> > http://mailman.opensound.com/mailman/listinfo/oss-devel > > > ------------------------------------------------------------------------ > > _______________________________________________ > oss-devel mailing list > oss-devel@mailman.opensound.com > http://mailman.opensound.com/mailman/listinfo/oss-devel > _______________________________________________ oss-devel mailing list oss-devel@mailman.opensound.com http://mailman.opensound.com/mailman/listinfo/oss-devel