All of lore.kernel.org
 help / color / mirror / Atom feed
From: Takashi Iwai <tiwai@suse.de>
To: Clemens Ladisch <clemens@ladisch.de>
Cc: alsa-devel@lists.sourceforge.net
Subject: Re: [PATCH] usbaudio fixes
Date: Mon, 24 Nov 2003 13:36:42 +0100	[thread overview]
Message-ID: <s5hptfi2bad.wl@alsa2.suse.de> (raw)
In-Reply-To: <Pine.HPX.4.33n.0311241254590.20532-100000@studcom.urz.uni-halle.de>

At Mon, 24 Nov 2003 13:10:55 +0100 (MET),
Clemens Ladisch wrote:
> 
> Takashi Iwai wrote:
> 
> > Clemens Ladisch wrote:
> > >
> > > - initialize active_mask and unlink_mask each time before URBs are
> > >   started
> >
> > we still need to check here whether the urbs are really free, since
> > a path like trigger stop -> prepare -> trigger_start is possible.
> > in this case, the operation can be done quickly enough before urbs are
> > really unlinked.
> >
> > the question is then where we can do a long wait.  perpare would be a
> > better place than trigger, but unfortunately, prepare callback is also
> > regarded as atomic because of linked streams.
> 
> If we cannot sleep until the URBs are completely unlinked, we have to
> 1) busy-wait until the URBs are inactive (*ouch!*), or
> 2) let trigger_start fail with "device not yet ready", or
> 3) allocate a new set of URBs, and put the old ones in some list to be
>    freed later.
> 
> (1) would be really evil; (2) a quick hack; (3) would be most useful,
> but it's anything but elegant.

(1) is difficult because the callback is performed with irq disabled.
thus complete callback will be never called inside the prepare or
trigger callback.

(2) will bring many complains, i guess :)

(3) looks like a good idea as a workaround.


meanwhile, i'm trying to implement:

(4) allow prepare callback to sleep with a special flag.

this will be useful for other drivers, too, such as vx and korg1212
drivers which require the handshaking.
but what i'm doing is still a hack, and will be a fundamental rewrite
later.


Takashi


-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/

  reply	other threads:[~2003-11-24 12:36 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-11-24  7:46 [PATCH] usbaudio fixes Clemens Ladisch
2003-11-24 11:27 ` Takashi Iwai
2003-11-24 12:10   ` Clemens Ladisch
2003-11-24 12:36     ` Takashi Iwai [this message]
2003-11-24 12:51       ` Takashi Iwai
2003-11-24 17:59         ` Takashi Iwai
2003-11-25 11:51           ` Jaroslav Kysela
2003-11-25 11:56             ` Takashi Iwai
2003-11-24 11:37 ` Takashi Iwai
  -- strict thread matches above, loose matches on Subject: below --
2003-06-19  7:00 Clemens Ladisch
2003-06-20 18:14 ` Takashi Iwai

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=s5hptfi2bad.wl@alsa2.suse.de \
    --to=tiwai@suse.de \
    --cc=alsa-devel@lists.sourceforge.net \
    --cc=clemens@ladisch.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.