summaryrefslogtreecommitdiffstats
path: root/sound/usb/pcm.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/usb/pcm.c')
-rw-r--r--sound/usb/pcm.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/sound/usb/pcm.c b/sound/usb/pcm.c
index ae783d40f55a..55e19e1b80ec 100644
--- a/sound/usb/pcm.c
+++ b/sound/usb/pcm.c
@@ -510,6 +510,7 @@ static int snd_usb_hw_params(struct snd_pcm_substream *substream,
subs->interface = fmt->iface;
subs->altset_idx = fmt->altset_idx;
+ subs->need_setup_ep = true;
return 0;
}
@@ -568,9 +569,12 @@ static int snd_usb_pcm_prepare(struct snd_pcm_substream *substream)
if (ret < 0)
return ret;
- ret = configure_endpoint(subs);
- if (ret < 0)
- return ret;
+ if (subs->need_setup_ep) {
+ ret = configure_endpoint(subs);
+ if (ret < 0)
+ return ret;
+ subs->need_setup_ep = false;
+ }
/* some unit conversions in runtime */
subs->data_endpoint->maxframesize =