diff options
Diffstat (limited to 'drivers/usb/gadget/function/f_midi.c')
| -rw-r--r-- | drivers/usb/gadget/function/f_midi.c | 56 | 
1 files changed, 23 insertions, 33 deletions
diff --git a/drivers/usb/gadget/function/f_midi.c b/drivers/usb/gadget/function/f_midi.c index fddf539008a9..2d02f25f9597 100644 --- a/drivers/usb/gadget/function/f_midi.c +++ b/drivers/usb/gadget/function/f_midi.c @@ -1023,40 +1023,30 @@ static int f_midi_bind(struct usb_configuration *c, struct usb_function *f)  	if (!f->fs_descriptors)  		goto fail_f_midi; -	if (gadget_is_dualspeed(c->cdev->gadget)) { -		bulk_in_desc.wMaxPacketSize = cpu_to_le16(512); -		bulk_out_desc.wMaxPacketSize = cpu_to_le16(512); -		f->hs_descriptors = usb_copy_descriptors(midi_function); -		if (!f->hs_descriptors) -			goto fail_f_midi; -	} +	bulk_in_desc.wMaxPacketSize = cpu_to_le16(512); +	bulk_out_desc.wMaxPacketSize = cpu_to_le16(512); +	f->hs_descriptors = usb_copy_descriptors(midi_function); +	if (!f->hs_descriptors) +		goto fail_f_midi; -	if (gadget_is_superspeed(c->cdev->gadget)) { -		bulk_in_desc.wMaxPacketSize = cpu_to_le16(1024); -		bulk_out_desc.wMaxPacketSize = cpu_to_le16(1024); -		i = endpoint_descriptor_index; -		midi_function[i++] = (struct usb_descriptor_header *) -				     &bulk_out_desc; -		midi_function[i++] = (struct usb_descriptor_header *) -				     &bulk_out_ss_comp_desc; -		midi_function[i++] = (struct usb_descriptor_header *) -				     &ms_out_desc; -		midi_function[i++] = (struct usb_descriptor_header *) -				     &bulk_in_desc; -		midi_function[i++] = (struct usb_descriptor_header *) -				     &bulk_in_ss_comp_desc; -		midi_function[i++] = (struct usb_descriptor_header *) -				     &ms_in_desc; -		f->ss_descriptors = usb_copy_descriptors(midi_function); -		if (!f->ss_descriptors) -			goto fail_f_midi; - -		if (gadget_is_superspeed_plus(c->cdev->gadget)) { -			f->ssp_descriptors = usb_copy_descriptors(midi_function); -			if (!f->ssp_descriptors) -				goto fail_f_midi; -		} -	} +	bulk_in_desc.wMaxPacketSize = cpu_to_le16(1024); +	bulk_out_desc.wMaxPacketSize = cpu_to_le16(1024); +	i = endpoint_descriptor_index; +	midi_function[i++] = (struct usb_descriptor_header *) +			     &bulk_out_desc; +	midi_function[i++] = (struct usb_descriptor_header *) +			     &bulk_out_ss_comp_desc; +	midi_function[i++] = (struct usb_descriptor_header *) +			     &ms_out_desc; +	midi_function[i++] = (struct usb_descriptor_header *) +			     &bulk_in_desc; +	midi_function[i++] = (struct usb_descriptor_header *) +			     &bulk_in_ss_comp_desc; +	midi_function[i++] = (struct usb_descriptor_header *) +			     &ms_in_desc; +	f->ss_descriptors = usb_copy_descriptors(midi_function); +	if (!f->ss_descriptors) +		goto fail_f_midi;  	kfree(midi_function);  |