[alsa-devel] [PATCH 2/5] ALSA: snd-usb: implement new endpoint streaming model

Daniel Mack zonque at gmail.com
Tue Dec 20 21:16:56 CET 2011


On 12/20/2011 04:32 PM, Clemens Ladisch wrote:
> Takashi Iwai wrote:
>> One point I'm not sure about this implementation is the use of
>> tasklet.  The tasklet itself runs again in ep->lock, what's the
>> rationale for it?  In other words, can't it be a straight function
>> call?
> 
> This architecture was copied from ua101.c.

Yes.

> If I remember correctly,
> the original reason for the tasklet was to avoid calling
> snd_pcm_period_elapsed() from inside the lock.  This would not be
> necessary in endpoint.c.

Hmm. It was actually you who told me to use a tasklet and not to submit
urbs from the input urb completion callbacks, as we can run out of
queuable playback buffers otherwise. Now that I think about it again, I
agree that it could be done without a tasklet as well by just keeping
the returned ones in a list and handle them in one go whenever possible.

I'll try this when I spin the next version.


Thanks,
Daniel


More information about the Alsa-devel mailing list