summaryrefslogtreecommitdiffstats
path: root/sound/usb/card.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2012-09-18 14:49:31 +0200
committerTakashi Iwai <tiwai@suse.de>2012-09-19 08:08:16 +0200
commit384dc085c32285e6548511bf80c5d5a5b246ed24 (patch)
tree09d8c9b74426145ff754690d19a12ec2f8991ddb /sound/usb/card.c
parent61a709504b079110cd5b12ea9a4590ffea687a5c (diff)
downloadop-kernel-dev-384dc085c32285e6548511bf80c5d5a5b246ed24.zip
op-kernel-dev-384dc085c32285e6548511bf80c5d5a5b246ed24.tar.gz
ALSA: usb-audio: Avoid unnecessary EP setups in prepare
The recent fix for USB suspend breakage moved the code to set up EP from hw_params to prepare, but it means also the EP setup might be called multiple times unnecessarily because the prepare callback can be called multiple times without starting the stream (e.g. OSS emulation). This patch adds a new flag to struct snd_usb_substream indicating whether the setup of EP is required, and do it only when necessary, i.e. right after hw_params or suspend. Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/usb/card.c')
-rw-r--r--sound/usb/card.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sound/usb/card.c b/sound/usb/card.c
index 4a469f0..561bb74 100644
--- a/sound/usb/card.c
+++ b/sound/usb/card.c
@@ -646,6 +646,8 @@ static int usb_audio_suspend(struct usb_interface *intf, pm_message_t message)
list_for_each(p, &chip->pcm_list) {
as = list_entry(p, struct snd_usb_stream, list);
snd_pcm_suspend_all(as->pcm);
+ as->substream[0].need_setup_ep =
+ as->substream[1].need_setup_ep = true;
}
}
} else {
OpenPOWER on IntegriCloud