On Mon, Aug 10, 2009 at 7:57 AM, Clemens Ladisch<clemens@xxxxxxxxxx> wrote: > Jon Smirl wrote: >> On Mon, Aug 10, 2009 at 3:40 AM, Clemens Ladisch<clemens@xxxxxxxxxx> wrote: >>> There is no common code for the two substreams. >>> Is your hardware actually capable of starting them at exactly the same >>> time? >> >> Sync start is working. This is in the loop and starts the streams: >> bcom_enable(s->bcom_task); >> s is set to two different values in the loop. > > But you are calling bcom_enable() twice, once for each stream. The same > would happen if you didn't implement sync start and let ALSA handle the > linked streams. > > Sync start/stop is intended for hardware that can actually start two > streams at _exactly_ the same time, by, e.g., writing a value with two > bits set to a register. The streams are on the same MCLK. I just need to make sure they get enabled in the same clock cycle. To ensure this I need to add some more code to look for a clock edge before enabling them. If I didn't use sync start wouldn't I be vulnerable to user space getting delayed between the start calls? If I'm unlucky the second start could come in milliseconds after the first one. > >> I'm having problems with the drain error on stop. >> ALSA sound/core/pcm_native.c:1499: playback drain error (DMA or IRQ trouble?) > > ALSA did not get the snd_pcm_period_elapsed() call (or the correct > pointer value) for the last samples. > > > HTH > Clemens > -- Jon Smirl jonsmirl@xxxxxxxxx _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel