diff options
| -rw-r--r-- | sound/usb/midi.c | 13 | 
1 files changed, 2 insertions, 11 deletions
diff --git a/sound/usb/midi.c b/sound/usb/midi.c index 60c7aa7579c..8e01fa4991c 100644 --- a/sound/usb/midi.c +++ b/sound/usb/midi.c @@ -126,7 +126,6 @@ struct snd_usb_midi {  		struct snd_usb_midi_in_endpoint *in;  	} endpoints[MIDI_MAX_ENDPOINTS];  	unsigned long input_triggered; -	bool autopm_reference;  	unsigned int opened[2];  	unsigned char disconnected;  	unsigned char input_running; @@ -1040,7 +1039,6 @@ static int substream_open(struct snd_rawmidi_substream *substream, int dir,  {  	struct snd_usb_midi* umidi = substream->rmidi->private_data;  	struct snd_kcontrol *ctl; -	int err;  	down_read(&umidi->disc_rwsem);  	if (umidi->disconnected) { @@ -1051,13 +1049,6 @@ static int substream_open(struct snd_rawmidi_substream *substream, int dir,  	mutex_lock(&umidi->mutex);  	if (open) {  		if (!umidi->opened[0] && !umidi->opened[1]) { -			err = usb_autopm_get_interface(umidi->iface); -			umidi->autopm_reference = err >= 0; -			if (err < 0 && err != -EACCES) { -				mutex_unlock(&umidi->mutex); -				up_read(&umidi->disc_rwsem); -				return -EIO; -			}  			if (umidi->roland_load_ctl) {  				ctl = umidi->roland_load_ctl;  				ctl->vd[0].access |= SNDRV_CTL_ELEM_ACCESS_INACTIVE; @@ -1080,8 +1071,6 @@ static int substream_open(struct snd_rawmidi_substream *substream, int dir,  				snd_ctl_notify(umidi->card,  				       SNDRV_CTL_EVENT_MASK_INFO, &ctl->id);  			} -			if (umidi->autopm_reference) -				usb_autopm_put_interface(umidi->iface);  		}  	}  	mutex_unlock(&umidi->mutex); @@ -2258,6 +2247,8 @@ int snd_usbmidi_create(struct snd_card *card,  		return err;  	} +	usb_autopm_get_interface_no_resume(umidi->iface); +  	list_add_tail(&umidi->list, midi_list);  	return 0;  }  |