diff options
author | Takashi Iwai <tiwai@suse.de> | 2014-05-02 20:14:42 +0400 |
---|---|---|
committer | Jiri Slaby <jslaby@suse.cz> | 2015-08-04 17:51:53 +0300 |
commit | 708183150dad5f6a2bdde67e8292954012782171 (patch) | |
tree | ef7ee06096d976937c846c30c91897bca848618c | |
parent | c26da265bd7f71ab7a9c3f5839dff58122787b06 (diff) | |
download | linux-708183150dad5f6a2bdde67e8292954012782171.tar.xz |
ALSA: usb-audio: Save mixer status only once at suspend
commit 1c53e7253ed8769a00afa0f06777d731dbe1ba6f upstream.
The suspend callback of usb-audio driver may be called multiple times
per suspend when multiple USB interfaces are bound to a single sound
card instance. In such a case, it's superfluous to save the mixer
values multiple times. This patch fixes it by checking the counter.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
-rw-r--r-- | sound/usb/card.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sound/usb/card.c b/sound/usb/card.c index 3ab9fc47da09..ca55e033cf9d 100644 --- a/sound/usb/card.c +++ b/sound/usb/card.c @@ -705,8 +705,9 @@ static int usb_audio_suspend(struct usb_interface *intf, pm_message_t message) chip->autosuspended = 1; } - list_for_each_entry(mixer, &chip->mixer_list, list) - snd_usb_mixer_suspend(mixer); + if (chip->num_suspended_intf == 1) + list_for_each_entry(mixer, &chip->mixer_list, list) + snd_usb_mixer_suspend(mixer); return 0; } |