[alsa-devel] [PATCH 0/5] RFC for snd-usb: rework usb endpoint logic

Daniel Mack zonque at gmail.com
Wed Nov 2 09:27:30 CET 2011

Hi Takashi,

On 11/01/2011 05:19 PM, Takashi Iwai wrote:
 > The overall design looks good to me.  Nice work!
 > A few nitpicking:

Thanks for your review!

 > - No need for check of activated flags at starting streams?

Such a condition would be a bug in the driver. But I'll add a check.

 > - Better to clear subs->data_endpoint&  co at closing.


 > - There might be unbalances when deactivate_endpoints() isn't called
 >    in prepare callback before activate_endpoints().  The apps may call
 >    like
 > 	open ->  hw_params ->  prepare ->  hw_params ->  prepare ->  trigger
 >    and
 > 	trigger (stop) ->  prepare ->  trigger (start)
 >    So, be careful about refcounting and active flags.

Hmm, I don't think I follow here. snd_usb_endpoint_{de,}activate() don't 
actually touch the refcounts but act upon the "activated" flag, and 
snd_usb_endpoint_{start,stop}() will touch the refcounts only. Hence, an 
unbalanced call to activate() would basically be a noop. Do I miss your 

 > And, yes, the protection for snd_usb_add_endpoint() would be really
 > needed for concurrent access.  The card-global mutex would be enough.

Ok. However, there is actually no card-global mutex for that purpose, 
right? I'll add one :)


More information about the Alsa-devel mailing list