aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2014-05-02 12:14:42 -0400
committerTakashi Iwai <tiwai@suse.de>2014-05-02 12:14:42 -0400
commit1c53e7253ed8769a00afa0f06777d731dbe1ba6f (patch)
tree63d9f275184d0ccd6d2be62d92b6e8d7c2e670f8
parentb7a7723513dc89f83d6df13206df55d4dc26e825 (diff)
ALSA: usb-audio: Save mixer status only once at suspend
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>
-rw-r--r--sound/usb/card.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sound/usb/card.c b/sound/usb/card.c
index 893d5a1afc3c..e769d3977716 100644
--- a/sound/usb/card.c
+++ b/sound/usb/card.c
@@ -695,8 +695,9 @@ static int usb_audio_suspend(struct usb_interface *intf, pm_message_t message)
695 chip->autosuspended = 1; 695 chip->autosuspended = 1;
696 } 696 }
697 697
698 list_for_each_entry(mixer, &chip->mixer_list, list) 698 if (chip->num_suspended_intf == 1)
699 snd_usb_mixer_suspend(mixer); 699 list_for_each_entry(mixer, &chip->mixer_list, list)
700 snd_usb_mixer_suspend(mixer);
700 701
701 return 0; 702 return 0;
702} 703}