>> but its still possible that if an interrupt occured at the wrong time,
>> the delay between issuing the two start instructions could be
>> sufficient to mess them up. its hard to work around this, though there
>
>Trying to do this in user space is mad. It should be done in drivers.

it *IS* done in the drivers. what makes you think i was talking about
user-space?

but the device drivers do not block interrupts while sync-starting
multiple devices. perhaps they should. its rather ugly.

>Usually starting the chip after initialization is matter of one out(), so
>the driver could have tight for loop with interrupts disabled where it
>launches all the cards.

its not that simple. you have to make sure that the driver software
state is up-to-date when the h/w starts. you can't just issue out()'s
and then pick up the pieces later. you have to make sure that the
driver infrastructure is ready to start processing interrupts, etc.

>Then we could have something like this in userspace:
>
>i = create_sync_line();
>connect_sync_line(i, card1);
>connect_sync_line(i, card2);
>trigger_sync_line(i);

snd_pcm_sync (card1, card2);
snd_pcm_sync (card1, card3);
snd_pcm_start (card1);

ok?

--p

_______________________________________________
Alsa-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-devel

Reply via email to