aboutsummaryrefslogtreecommitdiffstats
path: root/sound/usb/card.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/usb/card.c')
-rw-r--r--sound/usb/card.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/sound/usb/card.c b/sound/usb/card.c
index a09e5f3519e3..7ecd0e8a5c51 100644
--- a/sound/usb/card.c
+++ b/sound/usb/card.c
@@ -680,6 +680,7 @@ static int usb_audio_suspend(struct usb_interface *intf, pm_message_t message)
680 struct snd_usb_audio *chip = usb_get_intfdata(intf); 680 struct snd_usb_audio *chip = usb_get_intfdata(intf);
681 struct snd_usb_stream *as; 681 struct snd_usb_stream *as;
682 struct usb_mixer_interface *mixer; 682 struct usb_mixer_interface *mixer;
683 struct list_head *p;
683 684
684 if (chip == (void *)-1L) 685 if (chip == (void *)-1L)
685 return 0; 686 return 0;
@@ -692,6 +693,9 @@ static int usb_audio_suspend(struct usb_interface *intf, pm_message_t message)
692 as->substream[0].need_setup_ep = 693 as->substream[0].need_setup_ep =
693 as->substream[1].need_setup_ep = true; 694 as->substream[1].need_setup_ep = true;
694 } 695 }
696 list_for_each(p, &chip->midi_list) {
697 snd_usbmidi_suspend(p);
698 }
695 } 699 }
696 } else { 700 } else {
697 /* 701 /*
@@ -713,6 +717,7 @@ static int __usb_audio_resume(struct usb_interface *intf, bool reset_resume)
713{ 717{
714 struct snd_usb_audio *chip = usb_get_intfdata(intf); 718 struct snd_usb_audio *chip = usb_get_intfdata(intf);
715 struct usb_mixer_interface *mixer; 719 struct usb_mixer_interface *mixer;
720 struct list_head *p;
716 int err = 0; 721 int err = 0;
717 722
718 if (chip == (void *)-1L) 723 if (chip == (void *)-1L)
@@ -731,6 +736,10 @@ static int __usb_audio_resume(struct usb_interface *intf, bool reset_resume)
731 goto err_out; 736 goto err_out;
732 } 737 }
733 738
739 list_for_each(p, &chip->midi_list) {
740 snd_usbmidi_resume(p);
741 }
742
734 if (!chip->autosuspended) 743 if (!chip->autosuspended)
735 snd_power_change_state(chip->card, SNDRV_CTL_POWER_D0); 744 snd_power_change_state(chip->card, SNDRV_CTL_POWER_D0);
736 chip->autosuspended = 0; 745 chip->autosuspended = 0;