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>
This commit is contained in:
parent
b2eb950de2
commit
b0db6063db
1 changed files with 2 additions and 2 deletions
|
@ -446,7 +446,7 @@ static int configure_endpoint(struct snd_usb_substream *subs)
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
/* format changed */
|
/* format changed */
|
||||||
stop_endpoints(subs, false);
|
stop_endpoints(subs, true);
|
||||||
ret = snd_usb_endpoint_set_params(subs->data_endpoint,
|
ret = snd_usb_endpoint_set_params(subs->data_endpoint,
|
||||||
subs->pcm_format,
|
subs->pcm_format,
|
||||||
subs->channels,
|
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_stream *as = snd_pcm_substream_chip(substream);
|
||||||
struct snd_usb_substream *subs = &as->substream[direction];
|
struct snd_usb_substream *subs = &as->substream[direction];
|
||||||
|
|
||||||
stop_endpoints(subs, false);
|
stop_endpoints(subs, true);
|
||||||
|
|
||||||
if (!as->chip->shutdown && subs->interface >= 0) {
|
if (!as->chip->shutdown && subs->interface >= 0) {
|
||||||
usb_set_interface(subs->dev, subs->interface, 0);
|
usb_set_interface(subs->dev, subs->interface, 0);
|
||||||
|
|
Loading…
Add table
Reference in a new issue