diff options
author | Takashi Iwai <tiwai@suse.de> | 2012-11-21 08:35:42 +0100 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2012-11-21 11:43:58 +0100 |
commit | b0db6063dba4ee02dfda7411ec3aaf8f0fbda0f7 (patch) | |
tree | bf19151e8c414745c8df3684e2a71b12fdeec2ce /sound/usb | |
parent | ALSA: usb-audio: stop both data and sync endpoints asynchronously (diff) | |
download | linux-b0db6063dba4ee02dfda7411ec3aaf8f0fbda0f7.tar.xz linux-b0db6063dba4ee02dfda7411ec3aaf8f0fbda0f7.zip |
ALSA: usb-audio: process pending stop at PCM hw_free and close
PCM hw_free and close should wait until all the pending stop
operations have been finished. Basically only PCM trigger callback
should use non-wait calls.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/usb')
-rw-r--r-- | sound/usb/pcm.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sound/usb/pcm.c b/sound/usb/pcm.c index 4750d3d5c0cc..bc3c9acc68b7 100644 --- a/sound/usb/pcm.c +++ b/sound/usb/pcm.c @@ -446,7 +446,7 @@ static int configure_endpoint(struct snd_usb_substream *subs) int ret; /* format changed */ - stop_endpoints(subs, false); + stop_endpoints(subs, true); ret = snd_usb_endpoint_set_params(subs->data_endpoint, subs->pcm_format, subs->channels, @@ -1012,7 +1012,7 @@ static int snd_usb_pcm_close(struct snd_pcm_substream *substream, int direction) struct snd_usb_stream *as = snd_pcm_substream_chip(substream); struct snd_usb_substream *subs = &as->substream[direction]; - stop_endpoints(subs, false); + stop_endpoints(subs, true); if (!as->chip->shutdown && subs->interface >= 0) { usb_set_interface(subs->dev, subs->interface, 0); |