At Sat, 15 May 2004 23:37:47 +0200, Giuliano Pochini wrote: > > On Fri, 14 May 2004 12:37:46 +0200 > Takashi Iwai <[EMAIL PROTECTED]> wrote: > > > > > prepare and trigger callbacks are already in irq-disabled. > > > > i.e. you need only spin_lock() in them. > > > > > > Does it mean that ALSA acquires the lock only when it calls PCM callbacks, > > > that is trigger(), etc., are atomic only wrt other PCM functions ? > > > > sorry i don't understand your question. > > > > the prepare and the trigger callbacks acquire several locks. > > first, the global rw_lock for the pcm linking (snd_pcm_link_rwlock), > > the group lock the substream belongs to, and the lock for the > > substream itself. and the first lock/unlock is done with *_irq(). > > Ok, are those locks acquired also before calling any other interface > callback (control, midi...) ? If so, it shouldn't be necessary protecting > with a spin_lock() the code which touches the hw inside prepare().
no, all of these locks are specific to PCM. you still likely need another spinlock for protecting the h/w registers reading/writing. Takashi ------------------------------------------------------- This SF.Net email is sponsored by: SourceForge.net Broadband Sign-up now for SourceForge Broadband and get the fastest 6.0/768 connection for only $19.95/mo for the first 3 months! http://ads.osdn.com/?ad_id=2562&alloc_id=6184&op=click _______________________________________________ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel