Lines Matching refs:umidi

137 	struct snd_usb_midi *umidi;  member
170 struct snd_usb_midi *umidi; member
232 dev_dbg(&ep->umidi->dev->dev, "unexpected port %d!\n", portidx); in snd_usbmidi_input_data()
235 if (!test_bit(port->substream->number, &ep->umidi->input_triggered)) in snd_usbmidi_input_data()
261 ep->umidi->usb_protocol_ops->input(ep, urb->transfer_buffer, in snd_usbmidi_in_urb_complete()
268 mod_timer(&ep->umidi->error_timer, in snd_usbmidi_in_urb_complete()
275 urb->dev = ep->umidi->dev; in snd_usbmidi_in_urb_complete()
298 mod_timer(&ep->umidi->error_timer, in snd_usbmidi_out_urb_complete()
317 if (ep->umidi->disconnected) { in snd_usbmidi_do_output()
327 ep->umidi->usb_protocol_ops->output(ep, urb); in snd_usbmidi_do_output()
333 urb->dev = ep->umidi->dev; in snd_usbmidi_do_output()
358 struct snd_usb_midi *umidi = from_timer(umidi, t, error_timer); in snd_usbmidi_error_timer() local
361 spin_lock(&umidi->disc_lock); in snd_usbmidi_error_timer()
362 if (umidi->disconnected) { in snd_usbmidi_error_timer()
363 spin_unlock(&umidi->disc_lock); in snd_usbmidi_error_timer()
367 struct snd_usb_midi_in_endpoint *in = umidi->endpoints[i].in; in snd_usbmidi_error_timer()
373 in->urbs[j]->dev = umidi->dev; in snd_usbmidi_error_timer()
377 if (umidi->endpoints[i].out) in snd_usbmidi_error_timer()
378 snd_usbmidi_do_output(umidi->endpoints[i].out); in snd_usbmidi_error_timer()
380 spin_unlock(&umidi->disc_lock); in snd_usbmidi_error_timer()
393 err = usb_bulk_msg(ep->umidi->dev, ep->urbs[0].urb->pipe, in send_bulk_static_data()
562 port->ep->umidi->usb_protocol_ops->output_packet; in snd_usbmidi_transmit_byte()
912 switch (snd_usb_get_speed(ep->umidi->dev)) { in snd_usbmidi_us122l_output()
1074 static void update_roland_altsetting(struct snd_usb_midi *umidi) in update_roland_altsetting() argument
1081 intf = umidi->iface; in update_roland_altsetting()
1083 if (umidi->roland_load_ctl->private_value == is_light_load) in update_roland_altsetting()
1085 hostif = &intf->altsetting[umidi->roland_load_ctl->private_value]; in update_roland_altsetting()
1087 snd_usbmidi_input_stop(&umidi->list); in update_roland_altsetting()
1088 usb_set_interface(umidi->dev, intfd->bInterfaceNumber, in update_roland_altsetting()
1090 snd_usbmidi_input_start(&umidi->list); in update_roland_altsetting()
1096 struct snd_usb_midi *umidi = substream->rmidi->private_data; in substream_open() local
1099 down_read(&umidi->disc_rwsem); in substream_open()
1100 if (umidi->disconnected) { in substream_open()
1101 up_read(&umidi->disc_rwsem); in substream_open()
1105 mutex_lock(&umidi->mutex); in substream_open()
1107 if (!umidi->opened[0] && !umidi->opened[1]) { in substream_open()
1108 if (umidi->roland_load_ctl) { in substream_open()
1109 ctl = umidi->roland_load_ctl; in substream_open()
1112 snd_ctl_notify(umidi->card, in substream_open()
1114 update_roland_altsetting(umidi); in substream_open()
1117 umidi->opened[dir]++; in substream_open()
1118 if (umidi->opened[1]) in substream_open()
1119 snd_usbmidi_input_start(&umidi->list); in substream_open()
1121 umidi->opened[dir]--; in substream_open()
1122 if (!umidi->opened[1]) in substream_open()
1123 snd_usbmidi_input_stop(&umidi->list); in substream_open()
1124 if (!umidi->opened[0] && !umidi->opened[1]) { in substream_open()
1125 if (umidi->roland_load_ctl) { in substream_open()
1126 ctl = umidi->roland_load_ctl; in substream_open()
1129 snd_ctl_notify(umidi->card, in substream_open()
1134 mutex_unlock(&umidi->mutex); in substream_open()
1135 up_read(&umidi->disc_rwsem); in substream_open()
1141 struct snd_usb_midi *umidi = substream->rmidi->private_data; in snd_usbmidi_output_open() local
1146 if (umidi->endpoints[i].out) in snd_usbmidi_output_open()
1148 if (umidi->endpoints[i].out->ports[j].substream == substream) { in snd_usbmidi_output_open()
1149 port = &umidi->endpoints[i].out->ports[j]; in snd_usbmidi_output_open()
1176 if (port->ep->umidi->disconnected) { in snd_usbmidi_output_trigger()
1194 if (ep->umidi->disconnected) in snd_usbmidi_output_drain()
1231 struct snd_usb_midi *umidi = substream->rmidi->private_data; in snd_usbmidi_input_trigger() local
1234 set_bit(substream->number, &umidi->input_triggered); in snd_usbmidi_input_trigger()
1236 clear_bit(substream->number, &umidi->input_triggered); in snd_usbmidi_input_trigger()
1252 static void free_urb_and_buffer(struct snd_usb_midi *umidi, struct urb *urb, in free_urb_and_buffer() argument
1255 usb_free_coherent(umidi->dev, buffer_length, in free_urb_and_buffer()
1270 free_urb_and_buffer(ep->umidi, ep->urbs[i], in snd_usbmidi_in_endpoint_delete()
1278 static int snd_usbmidi_in_endpoint_create(struct snd_usb_midi *umidi, in snd_usbmidi_in_endpoint_create() argument
1293 ep->umidi = umidi; in snd_usbmidi_in_endpoint_create()
1303 pipe = usb_rcvintpipe(umidi->dev, ep_info->in_ep); in snd_usbmidi_in_endpoint_create()
1305 pipe = usb_rcvbulkpipe(umidi->dev, ep_info->in_ep); in snd_usbmidi_in_endpoint_create()
1306 length = usb_maxpacket(umidi->dev, pipe, 0); in snd_usbmidi_in_endpoint_create()
1308 buffer = usb_alloc_coherent(umidi->dev, length, GFP_KERNEL, in snd_usbmidi_in_endpoint_create()
1315 usb_fill_int_urb(ep->urbs[i], umidi->dev, in snd_usbmidi_in_endpoint_create()
1320 usb_fill_bulk_urb(ep->urbs[i], umidi->dev, in snd_usbmidi_in_endpoint_create()
1326 dev_err(&umidi->dev->dev, "invalid MIDI in EP %x\n", in snd_usbmidi_in_endpoint_create()
1350 free_urb_and_buffer(ep->umidi, ep->urbs[i].urb, in snd_usbmidi_out_endpoint_clear()
1365 static int snd_usbmidi_out_endpoint_create(struct snd_usb_midi *umidi, in snd_usbmidi_out_endpoint_create() argument
1379 ep->umidi = umidi; in snd_usbmidi_out_endpoint_create()
1390 pipe = usb_sndintpipe(umidi->dev, ep_info->out_ep); in snd_usbmidi_out_endpoint_create()
1392 pipe = usb_sndbulkpipe(umidi->dev, ep_info->out_ep); in snd_usbmidi_out_endpoint_create()
1393 switch (umidi->usb_id) { in snd_usbmidi_out_endpoint_create()
1395 ep->max_transfer = usb_maxpacket(umidi->dev, pipe, 1); in snd_usbmidi_out_endpoint_create()
1419 buffer = usb_alloc_coherent(umidi->dev, in snd_usbmidi_out_endpoint_create()
1427 usb_fill_int_urb(ep->urbs[i].urb, umidi->dev, in snd_usbmidi_out_endpoint_create()
1432 usb_fill_bulk_urb(ep->urbs[i].urb, umidi->dev, in snd_usbmidi_out_endpoint_create()
1438 dev_err(&umidi->dev->dev, "invalid MIDI out EP %x\n", in snd_usbmidi_out_endpoint_create()
1455 if (umidi->usb_protocol_ops->init_out_endpoint) in snd_usbmidi_out_endpoint_create()
1456 umidi->usb_protocol_ops->init_out_endpoint(ep); in snd_usbmidi_out_endpoint_create()
1469 static void snd_usbmidi_free(struct snd_usb_midi *umidi) in snd_usbmidi_free() argument
1474 struct snd_usb_midi_endpoint *ep = &umidi->endpoints[i]; in snd_usbmidi_free()
1480 mutex_destroy(&umidi->mutex); in snd_usbmidi_free()
1481 kfree(umidi); in snd_usbmidi_free()
1489 struct snd_usb_midi *umidi; in snd_usbmidi_disconnect() local
1492 umidi = list_entry(p, struct snd_usb_midi, list); in snd_usbmidi_disconnect()
1498 down_write(&umidi->disc_rwsem); in snd_usbmidi_disconnect()
1499 spin_lock_irq(&umidi->disc_lock); in snd_usbmidi_disconnect()
1500 umidi->disconnected = 1; in snd_usbmidi_disconnect()
1501 spin_unlock_irq(&umidi->disc_lock); in snd_usbmidi_disconnect()
1502 up_write(&umidi->disc_rwsem); in snd_usbmidi_disconnect()
1504 del_timer_sync(&umidi->error_timer); in snd_usbmidi_disconnect()
1507 struct snd_usb_midi_endpoint *ep = &umidi->endpoints[i]; in snd_usbmidi_disconnect()
1513 if (umidi->usb_protocol_ops->finish_out_endpoint) in snd_usbmidi_disconnect()
1514 umidi->usb_protocol_ops->finish_out_endpoint(ep->out); in snd_usbmidi_disconnect()
1537 struct snd_usb_midi *umidi = rmidi->private_data; in snd_usbmidi_rawmidi_free() local
1538 snd_usbmidi_free(umidi); in snd_usbmidi_rawmidi_free()
1541 static struct snd_rawmidi_substream *snd_usbmidi_find_substream(struct snd_usb_midi *umidi, in snd_usbmidi_find_substream() argument
1547 list_for_each_entry(substream, &umidi->rmidi->streams[stream].substreams, in snd_usbmidi_find_substream()
1735 static struct port_info *find_port_info(struct snd_usb_midi *umidi, int number) in find_port_info() argument
1740 if (snd_usbmidi_port_info[i].id == umidi->usb_id && in find_port_info()
1750 struct snd_usb_midi *umidi = rmidi->private_data; in snd_usbmidi_get_port_info() local
1754 port_info = find_port_info(umidi, number); in snd_usbmidi_get_port_info()
1761 static void snd_usbmidi_init_substream(struct snd_usb_midi *umidi, in snd_usbmidi_init_substream() argument
1769 snd_usbmidi_find_substream(umidi, stream, number); in snd_usbmidi_init_substream()
1771 dev_err(&umidi->dev->dev, "substream %d:%d not found\n", stream, in snd_usbmidi_init_substream()
1777 port_info = find_port_info(umidi, number); in snd_usbmidi_init_substream()
1780 name_format, umidi->card->shortname, number + 1); in snd_usbmidi_init_substream()
1788 static int snd_usbmidi_create_endpoints(struct snd_usb_midi *umidi, in snd_usbmidi_create_endpoints() argument
1796 err = snd_usbmidi_out_endpoint_create(umidi, in snd_usbmidi_create_endpoints()
1798 &umidi->endpoints[i]); in snd_usbmidi_create_endpoints()
1803 err = snd_usbmidi_in_endpoint_create(umidi, in snd_usbmidi_create_endpoints()
1805 &umidi->endpoints[i]); in snd_usbmidi_create_endpoints()
1812 snd_usbmidi_init_substream(umidi, in snd_usbmidi_create_endpoints()
1815 &umidi->endpoints[i].out->ports[j].substream); in snd_usbmidi_create_endpoints()
1819 snd_usbmidi_init_substream(umidi, in snd_usbmidi_create_endpoints()
1822 &umidi->endpoints[i].in->ports[j].substream); in snd_usbmidi_create_endpoints()
1827 dev_dbg(&umidi->dev->dev, "created %d output and %d input ports\n", in snd_usbmidi_create_endpoints()
1857 static int snd_usbmidi_get_ms_info(struct snd_usb_midi *umidi, in snd_usbmidi_get_ms_info() argument
1869 intf = umidi->iface; in snd_usbmidi_get_ms_info()
1879 dev_dbg(&umidi->dev->dev, "MIDIStreaming version %02x.%02x\n", in snd_usbmidi_get_ms_info()
1882 dev_warn(&umidi->dev->dev, in snd_usbmidi_get_ms_info()
1903 dev_warn(&umidi->dev->dev, in snd_usbmidi_get_ms_info()
1911 else if (snd_usb_get_speed(umidi->dev) == USB_SPEED_LOW) in snd_usbmidi_get_ms_info()
1920 dev_dbg(&umidi->dev->dev, "EP %02X: %d jack(s)\n", in snd_usbmidi_get_ms_info()
1925 dev_warn(&umidi->dev->dev, in snd_usbmidi_get_ms_info()
1933 else if (snd_usb_get_speed(umidi->dev) == USB_SPEED_LOW) in snd_usbmidi_get_ms_info()
1937 dev_dbg(&umidi->dev->dev, "EP %02X: %d jack(s)\n", in snd_usbmidi_get_ms_info()
1962 struct snd_usb_midi *umidi = kcontrol->private_data; in roland_load_put() local
1967 mutex_lock(&umidi->mutex); in roland_load_put()
1971 mutex_unlock(&umidi->mutex); in roland_load_put()
1988 static void snd_usbmidi_switch_roland_altsetting(struct snd_usb_midi *umidi) in snd_usbmidi_switch_roland_altsetting() argument
1994 intf = umidi->iface; in snd_usbmidi_switch_roland_altsetting()
2010 dev_dbg(&umidi->dev->dev, "switching to altsetting %d with int ep\n", in snd_usbmidi_switch_roland_altsetting()
2012 usb_set_interface(umidi->dev, intfd->bInterfaceNumber, in snd_usbmidi_switch_roland_altsetting()
2015 umidi->roland_load_ctl = snd_ctl_new1(&roland_load_ctl, umidi); in snd_usbmidi_switch_roland_altsetting()
2016 if (snd_ctl_add(umidi->card, umidi->roland_load_ctl) < 0) in snd_usbmidi_switch_roland_altsetting()
2017 umidi->roland_load_ctl = NULL; in snd_usbmidi_switch_roland_altsetting()
2023 static int snd_usbmidi_detect_endpoints(struct snd_usb_midi *umidi, in snd_usbmidi_detect_endpoints() argument
2033 if (USB_ID_VENDOR(umidi->usb_id) == 0x0582) in snd_usbmidi_detect_endpoints()
2034 snd_usbmidi_switch_roland_altsetting(umidi); in snd_usbmidi_detect_endpoints()
2039 intf = umidi->iface; in snd_usbmidi_detect_endpoints()
2071 static int snd_usbmidi_detect_per_port_endpoints(struct snd_usb_midi *umidi, in snd_usbmidi_detect_per_port_endpoints() argument
2076 err = snd_usbmidi_detect_endpoints(umidi, endpoints, MIDI_MAX_ENDPOINTS); in snd_usbmidi_detect_per_port_endpoints()
2089 static int snd_usbmidi_detect_yamaha(struct snd_usb_midi *umidi, in snd_usbmidi_detect_yamaha() argument
2097 intf = umidi->iface; in snd_usbmidi_detect_yamaha()
2124 return snd_usbmidi_detect_endpoints(umidi, endpoint, 1); in snd_usbmidi_detect_yamaha()
2130 static int snd_usbmidi_detect_roland(struct snd_usb_midi *umidi, in snd_usbmidi_detect_roland() argument
2137 intf = umidi->iface; in snd_usbmidi_detect_roland()
2156 return snd_usbmidi_detect_endpoints(umidi, endpoint, 1); in snd_usbmidi_detect_roland()
2160 return snd_usbmidi_get_ms_info(umidi, endpoint); in snd_usbmidi_detect_roland()
2170 static int snd_usbmidi_create_endpoints_midiman(struct snd_usb_midi *umidi, in snd_usbmidi_create_endpoints_midiman() argument
2180 intf = umidi->iface; in snd_usbmidi_create_endpoints_midiman()
2196 dev_dbg(&umidi->dev->dev, "not enough endpoints\n"); in snd_usbmidi_create_endpoints_midiman()
2202 dev_dbg(&umidi->dev->dev, "endpoint[0] isn't interrupt\n"); in snd_usbmidi_create_endpoints_midiman()
2207 dev_dbg(&umidi->dev->dev, "endpoint[2] isn't bulk output\n"); in snd_usbmidi_create_endpoints_midiman()
2214 dev_dbg(&umidi->dev->dev, in snd_usbmidi_create_endpoints_midiman()
2224 err = snd_usbmidi_out_endpoint_create(umidi, &ep_info, in snd_usbmidi_create_endpoints_midiman()
2225 &umidi->endpoints[0]); in snd_usbmidi_create_endpoints_midiman()
2233 err = snd_usbmidi_in_endpoint_create(umidi, &ep_info, in snd_usbmidi_create_endpoints_midiman()
2234 &umidi->endpoints[0]); in snd_usbmidi_create_endpoints_midiman()
2242 err = snd_usbmidi_out_endpoint_create(umidi, &ep_info, in snd_usbmidi_create_endpoints_midiman()
2243 &umidi->endpoints[1]); in snd_usbmidi_create_endpoints_midiman()
2250 snd_usbmidi_init_substream(umidi, in snd_usbmidi_create_endpoints_midiman()
2253 &umidi->endpoints[cable & 1].out->ports[cable].substream); in snd_usbmidi_create_endpoints_midiman()
2255 snd_usbmidi_init_substream(umidi, in snd_usbmidi_create_endpoints_midiman()
2258 &umidi->endpoints[0].in->ports[cable].substream); in snd_usbmidi_create_endpoints_midiman()
2267 static int snd_usbmidi_create_rawmidi(struct snd_usb_midi *umidi, in snd_usbmidi_create_rawmidi() argument
2273 err = snd_rawmidi_new(umidi->card, "USB MIDI", in snd_usbmidi_create_rawmidi()
2274 umidi->next_midi_device++, in snd_usbmidi_create_rawmidi()
2278 strcpy(rmidi->name, umidi->card->shortname); in snd_usbmidi_create_rawmidi()
2283 rmidi->private_data = umidi; in snd_usbmidi_create_rawmidi()
2290 umidi->rmidi = rmidi; in snd_usbmidi_create_rawmidi()
2299 struct snd_usb_midi *umidi; in snd_usbmidi_input_stop() local
2302 umidi = list_entry(p, struct snd_usb_midi, list); in snd_usbmidi_input_stop()
2303 if (!umidi->input_running) in snd_usbmidi_input_stop()
2306 struct snd_usb_midi_endpoint *ep = &umidi->endpoints[i]; in snd_usbmidi_input_stop()
2311 umidi->input_running = 0; in snd_usbmidi_input_stop()
2315 static void snd_usbmidi_input_start_ep(struct snd_usb_midi *umidi, in snd_usbmidi_input_start_ep() argument
2325 spin_lock_irqsave(&umidi->disc_lock, flags); in snd_usbmidi_input_start_ep()
2327 urb->dev = ep->umidi->dev; in snd_usbmidi_input_start_ep()
2330 spin_unlock_irqrestore(&umidi->disc_lock, flags); in snd_usbmidi_input_start_ep()
2339 struct snd_usb_midi *umidi; in snd_usbmidi_input_start() local
2342 umidi = list_entry(p, struct snd_usb_midi, list); in snd_usbmidi_input_start()
2343 if (umidi->input_running || !umidi->opened[1]) in snd_usbmidi_input_start()
2346 snd_usbmidi_input_start_ep(umidi, umidi->endpoints[i].in); in snd_usbmidi_input_start()
2347 umidi->input_running = 1; in snd_usbmidi_input_start()
2356 struct snd_usb_midi *umidi; in snd_usbmidi_suspend() local
2358 umidi = list_entry(p, struct snd_usb_midi, list); in snd_usbmidi_suspend()
2359 mutex_lock(&umidi->mutex); in snd_usbmidi_suspend()
2361 mutex_unlock(&umidi->mutex); in snd_usbmidi_suspend()
2370 struct snd_usb_midi *umidi; in snd_usbmidi_resume() local
2372 umidi = list_entry(p, struct snd_usb_midi, list); in snd_usbmidi_resume()
2373 mutex_lock(&umidi->mutex); in snd_usbmidi_resume()
2375 mutex_unlock(&umidi->mutex); in snd_usbmidi_resume()
2388 struct snd_usb_midi *umidi; in __snd_usbmidi_create() local
2393 umidi = kzalloc(sizeof(*umidi), GFP_KERNEL); in __snd_usbmidi_create()
2394 if (!umidi) in __snd_usbmidi_create()
2396 umidi->dev = interface_to_usbdev(iface); in __snd_usbmidi_create()
2397 umidi->card = card; in __snd_usbmidi_create()
2398 umidi->iface = iface; in __snd_usbmidi_create()
2399 umidi->quirk = quirk; in __snd_usbmidi_create()
2400 umidi->usb_protocol_ops = &snd_usbmidi_standard_ops; in __snd_usbmidi_create()
2401 spin_lock_init(&umidi->disc_lock); in __snd_usbmidi_create()
2402 init_rwsem(&umidi->disc_rwsem); in __snd_usbmidi_create()
2403 mutex_init(&umidi->mutex); in __snd_usbmidi_create()
2405 usb_id = USB_ID(le16_to_cpu(umidi->dev->descriptor.idVendor), in __snd_usbmidi_create()
2406 le16_to_cpu(umidi->dev->descriptor.idProduct)); in __snd_usbmidi_create()
2407 umidi->usb_id = usb_id; in __snd_usbmidi_create()
2408 timer_setup(&umidi->error_timer, snd_usbmidi_error_timer, 0); in __snd_usbmidi_create()
2414 err = snd_usbmidi_get_ms_info(umidi, endpoints); in __snd_usbmidi_create()
2415 if (umidi->usb_id == USB_ID(0x0763, 0x0150)) /* M-Audio Uno */ in __snd_usbmidi_create()
2416 umidi->usb_protocol_ops = in __snd_usbmidi_create()
2420 umidi->usb_protocol_ops = &snd_usbmidi_122l_ops; in __snd_usbmidi_create()
2425 err = snd_usbmidi_detect_endpoints(umidi, &endpoints[0], 1); in __snd_usbmidi_create()
2428 err = snd_usbmidi_detect_yamaha(umidi, &endpoints[0]); in __snd_usbmidi_create()
2431 err = snd_usbmidi_detect_roland(umidi, &endpoints[0]); in __snd_usbmidi_create()
2434 umidi->usb_protocol_ops = &snd_usbmidi_midiman_ops; in __snd_usbmidi_create()
2440 umidi->usb_protocol_ops = &snd_usbmidi_novation_ops; in __snd_usbmidi_create()
2441 err = snd_usbmidi_detect_per_port_endpoints(umidi, endpoints); in __snd_usbmidi_create()
2444 umidi->usb_protocol_ops = &snd_usbmidi_raw_ops; in __snd_usbmidi_create()
2454 if (umidi->usb_id == USB_ID(0x07fd, 0x0001)) /* MOTU Fastlane */ in __snd_usbmidi_create()
2455 usb_set_interface(umidi->dev, 0, 0); in __snd_usbmidi_create()
2456 err = snd_usbmidi_detect_per_port_endpoints(umidi, endpoints); in __snd_usbmidi_create()
2459 umidi->usb_protocol_ops = &snd_usbmidi_emagic_ops; in __snd_usbmidi_create()
2462 err = snd_usbmidi_detect_endpoints(umidi, &endpoints[0], 1); in __snd_usbmidi_create()
2465 umidi->usb_protocol_ops = &snd_usbmidi_cme_ops; in __snd_usbmidi_create()
2466 err = snd_usbmidi_detect_per_port_endpoints(umidi, endpoints); in __snd_usbmidi_create()
2469 umidi->usb_protocol_ops = &snd_usbmidi_akai_ops; in __snd_usbmidi_create()
2470 err = snd_usbmidi_detect_per_port_endpoints(umidi, endpoints); in __snd_usbmidi_create()
2475 umidi->usb_protocol_ops = &snd_usbmidi_ftdi_ops; in __snd_usbmidi_create()
2478 err = usb_control_msg(umidi->dev, usb_sndctrlpipe(umidi->dev, 0), in __snd_usbmidi_create()
2483 err = snd_usbmidi_detect_per_port_endpoints(umidi, endpoints); in __snd_usbmidi_create()
2486 umidi->usb_protocol_ops = &snd_usbmidi_ch345_broken_sysex_ops; in __snd_usbmidi_create()
2487 err = snd_usbmidi_detect_per_port_endpoints(umidi, endpoints); in __snd_usbmidi_create()
2490 dev_err(&umidi->dev->dev, "invalid quirk type %d\n", in __snd_usbmidi_create()
2505 err = snd_usbmidi_create_rawmidi(umidi, out_ports, in_ports); in __snd_usbmidi_create()
2511 err = snd_usbmidi_create_endpoints_midiman(umidi, &endpoints[0]); in __snd_usbmidi_create()
2513 err = snd_usbmidi_create_endpoints(umidi, endpoints); in __snd_usbmidi_create()
2517 usb_autopm_get_interface_no_resume(umidi->iface); in __snd_usbmidi_create()
2519 list_add_tail(&umidi->list, midi_list); in __snd_usbmidi_create()
2523 kfree(umidi); in __snd_usbmidi_create()