At Thu, 22 Aug 2002 16:13:07 +0200,
Benny Sjostrand wrote:
> 
> >
> >
> >how about to do pcm_link/unlink in open/close or prepare callback?
> >they are definitely not called from interrupts.
> >
> The idea of calling  pcm_unlink in trigger (PLAYBACK_STOP) function is 
> to stop the DMA tranfers,
> and so on stop the  DSP from requesting interrupts, and still have the 
> channel prepared
> to be quickly started again on trigger (PLAYBACK_START/RESUME).
 
how about to make the list of free scbs so that the free scb can be
found without loop?  also, doulbe linked lists would be more feasible
for such frequent insert/deletion.


> Another idea  that I have in mind is to use in_interrupt() && 
> schedule_task() functions, then if _trigger
> function is called from interrupt context, mute/unmute pcm channel,  use 
> schedule_task() to
> indirectly invoke pcm_link/unlink. Otherwise if not in interrupt context 
> call pcm_link/unlnk
> directly using mutexes.
> What do you think ?

but this may introduce the inconsistent status until the scheduled
task is really called.

i think the best way is to shorten the code path of trigger callback.


Takashi


-------------------------------------------------------
This sf.net email is sponsored by: OSDN - Tired of that same old
cell phone?  Get a new here for FREE!
https://www.inphonic.com/r.asp?r=sourceforge1&refcode1=vs3390
_______________________________________________
Alsa-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-devel

Reply via email to