diff options
Diffstat (limited to 'sound/usb/card.c')
-rw-r--r-- | sound/usb/card.c | 9 |
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; |