umidi 137 sound/usb/midi.c struct snd_usb_midi *umidi; umidi 170 sound/usb/midi.c struct snd_usb_midi *umidi; umidi 232 sound/usb/midi.c dev_dbg(&ep->umidi->dev->dev, "unexpected port %d!\n", portidx); umidi 235 sound/usb/midi.c if (!test_bit(port->substream->number, &ep->umidi->input_triggered)) umidi 261 sound/usb/midi.c ep->umidi->usb_protocol_ops->input(ep, urb->transfer_buffer, umidi 268 sound/usb/midi.c mod_timer(&ep->umidi->error_timer, umidi 275 sound/usb/midi.c urb->dev = ep->umidi->dev; umidi 298 sound/usb/midi.c mod_timer(&ep->umidi->error_timer, umidi 317 sound/usb/midi.c if (ep->umidi->disconnected) { umidi 327 sound/usb/midi.c ep->umidi->usb_protocol_ops->output(ep, urb); umidi 333 sound/usb/midi.c urb->dev = ep->umidi->dev; umidi 358 sound/usb/midi.c struct snd_usb_midi *umidi = from_timer(umidi, t, error_timer); umidi 361 sound/usb/midi.c spin_lock(&umidi->disc_lock); umidi 362 sound/usb/midi.c if (umidi->disconnected) { umidi 363 sound/usb/midi.c spin_unlock(&umidi->disc_lock); umidi 367 sound/usb/midi.c struct snd_usb_midi_in_endpoint *in = umidi->endpoints[i].in; umidi 373 sound/usb/midi.c in->urbs[j]->dev = umidi->dev; umidi 377 sound/usb/midi.c if (umidi->endpoints[i].out) umidi 378 sound/usb/midi.c snd_usbmidi_do_output(umidi->endpoints[i].out); umidi 380 sound/usb/midi.c spin_unlock(&umidi->disc_lock); umidi 393 sound/usb/midi.c err = usb_bulk_msg(ep->umidi->dev, ep->urbs[0].urb->pipe, umidi 562 sound/usb/midi.c port->ep->umidi->usb_protocol_ops->output_packet; umidi 912 sound/usb/midi.c switch (snd_usb_get_speed(ep->umidi->dev)) { umidi 1074 sound/usb/midi.c static void update_roland_altsetting(struct snd_usb_midi *umidi) umidi 1081 sound/usb/midi.c intf = umidi->iface; umidi 1083 sound/usb/midi.c if (umidi->roland_load_ctl->private_value == is_light_load) umidi 1085 sound/usb/midi.c hostif = &intf->altsetting[umidi->roland_load_ctl->private_value]; umidi 1087 sound/usb/midi.c snd_usbmidi_input_stop(&umidi->list); umidi 1088 sound/usb/midi.c usb_set_interface(umidi->dev, intfd->bInterfaceNumber, umidi 1090 sound/usb/midi.c snd_usbmidi_input_start(&umidi->list); umidi 1096 sound/usb/midi.c struct snd_usb_midi *umidi = substream->rmidi->private_data; umidi 1099 sound/usb/midi.c down_read(&umidi->disc_rwsem); umidi 1100 sound/usb/midi.c if (umidi->disconnected) { umidi 1101 sound/usb/midi.c up_read(&umidi->disc_rwsem); umidi 1105 sound/usb/midi.c mutex_lock(&umidi->mutex); umidi 1107 sound/usb/midi.c if (!umidi->opened[0] && !umidi->opened[1]) { umidi 1108 sound/usb/midi.c if (umidi->roland_load_ctl) { umidi 1109 sound/usb/midi.c ctl = umidi->roland_load_ctl; umidi 1112 sound/usb/midi.c snd_ctl_notify(umidi->card, umidi 1114 sound/usb/midi.c update_roland_altsetting(umidi); umidi 1117 sound/usb/midi.c umidi->opened[dir]++; umidi 1118 sound/usb/midi.c if (umidi->opened[1]) umidi 1119 sound/usb/midi.c snd_usbmidi_input_start(&umidi->list); umidi 1121 sound/usb/midi.c umidi->opened[dir]--; umidi 1122 sound/usb/midi.c if (!umidi->opened[1]) umidi 1123 sound/usb/midi.c snd_usbmidi_input_stop(&umidi->list); umidi 1124 sound/usb/midi.c if (!umidi->opened[0] && !umidi->opened[1]) { umidi 1125 sound/usb/midi.c if (umidi->roland_load_ctl) { umidi 1126 sound/usb/midi.c ctl = umidi->roland_load_ctl; umidi 1129 sound/usb/midi.c snd_ctl_notify(umidi->card, umidi 1134 sound/usb/midi.c mutex_unlock(&umidi->mutex); umidi 1135 sound/usb/midi.c up_read(&umidi->disc_rwsem); umidi 1141 sound/usb/midi.c struct snd_usb_midi *umidi = substream->rmidi->private_data; umidi 1146 sound/usb/midi.c if (umidi->endpoints[i].out) umidi 1148 sound/usb/midi.c if (umidi->endpoints[i].out->ports[j].substream == substream) { umidi 1149 sound/usb/midi.c port = &umidi->endpoints[i].out->ports[j]; umidi 1175 sound/usb/midi.c if (port->ep->umidi->disconnected) { umidi 1193 sound/usb/midi.c if (ep->umidi->disconnected) umidi 1229 sound/usb/midi.c struct snd_usb_midi *umidi = substream->rmidi->private_data; umidi 1232 sound/usb/midi.c set_bit(substream->number, &umidi->input_triggered); umidi 1234 sound/usb/midi.c clear_bit(substream->number, &umidi->input_triggered); umidi 1250 sound/usb/midi.c static void free_urb_and_buffer(struct snd_usb_midi *umidi, struct urb *urb, umidi 1253 sound/usb/midi.c usb_free_coherent(umidi->dev, buffer_length, umidi 1268 sound/usb/midi.c free_urb_and_buffer(ep->umidi, ep->urbs[i], umidi 1276 sound/usb/midi.c static int snd_usbmidi_in_endpoint_create(struct snd_usb_midi *umidi, umidi 1291 sound/usb/midi.c ep->umidi = umidi; umidi 1301 sound/usb/midi.c pipe = usb_rcvintpipe(umidi->dev, ep_info->in_ep); umidi 1303 sound/usb/midi.c pipe = usb_rcvbulkpipe(umidi->dev, ep_info->in_ep); umidi 1304 sound/usb/midi.c length = usb_maxpacket(umidi->dev, pipe, 0); umidi 1306 sound/usb/midi.c buffer = usb_alloc_coherent(umidi->dev, length, GFP_KERNEL, umidi 1313 sound/usb/midi.c usb_fill_int_urb(ep->urbs[i], umidi->dev, umidi 1318 sound/usb/midi.c usb_fill_bulk_urb(ep->urbs[i], umidi->dev, umidi 1324 sound/usb/midi.c dev_err(&umidi->dev->dev, "invalid MIDI in EP %x\n", umidi 1348 sound/usb/midi.c free_urb_and_buffer(ep->umidi, ep->urbs[i].urb, umidi 1363 sound/usb/midi.c static int snd_usbmidi_out_endpoint_create(struct snd_usb_midi *umidi, umidi 1377 sound/usb/midi.c ep->umidi = umidi; umidi 1388 sound/usb/midi.c pipe = usb_sndintpipe(umidi->dev, ep_info->out_ep); umidi 1390 sound/usb/midi.c pipe = usb_sndbulkpipe(umidi->dev, ep_info->out_ep); umidi 1391 sound/usb/midi.c switch (umidi->usb_id) { umidi 1393 sound/usb/midi.c ep->max_transfer = usb_maxpacket(umidi->dev, pipe, 1); umidi 1417 sound/usb/midi.c buffer = usb_alloc_coherent(umidi->dev, umidi 1425 sound/usb/midi.c usb_fill_int_urb(ep->urbs[i].urb, umidi->dev, umidi 1430 sound/usb/midi.c usb_fill_bulk_urb(ep->urbs[i].urb, umidi->dev, umidi 1436 sound/usb/midi.c dev_err(&umidi->dev->dev, "invalid MIDI out EP %x\n", umidi 1453 sound/usb/midi.c if (umidi->usb_protocol_ops->init_out_endpoint) umidi 1454 sound/usb/midi.c umidi->usb_protocol_ops->init_out_endpoint(ep); umidi 1467 sound/usb/midi.c static void snd_usbmidi_free(struct snd_usb_midi *umidi) umidi 1472 sound/usb/midi.c struct snd_usb_midi_endpoint *ep = &umidi->endpoints[i]; umidi 1478 sound/usb/midi.c mutex_destroy(&umidi->mutex); umidi 1479 sound/usb/midi.c kfree(umidi); umidi 1487 sound/usb/midi.c struct snd_usb_midi *umidi; umidi 1490 sound/usb/midi.c umidi = list_entry(p, struct snd_usb_midi, list); umidi 1496 sound/usb/midi.c down_write(&umidi->disc_rwsem); umidi 1497 sound/usb/midi.c spin_lock_irq(&umidi->disc_lock); umidi 1498 sound/usb/midi.c umidi->disconnected = 1; umidi 1499 sound/usb/midi.c spin_unlock_irq(&umidi->disc_lock); umidi 1500 sound/usb/midi.c up_write(&umidi->disc_rwsem); umidi 1503 sound/usb/midi.c struct snd_usb_midi_endpoint *ep = &umidi->endpoints[i]; umidi 1509 sound/usb/midi.c if (umidi->usb_protocol_ops->finish_out_endpoint) umidi 1510 sound/usb/midi.c umidi->usb_protocol_ops->finish_out_endpoint(ep->out); umidi 1528 sound/usb/midi.c del_timer_sync(&umidi->error_timer); umidi 1534 sound/usb/midi.c struct snd_usb_midi *umidi = rmidi->private_data; umidi 1535 sound/usb/midi.c snd_usbmidi_free(umidi); umidi 1538 sound/usb/midi.c static struct snd_rawmidi_substream *snd_usbmidi_find_substream(struct snd_usb_midi *umidi, umidi 1544 sound/usb/midi.c list_for_each_entry(substream, &umidi->rmidi->streams[stream].substreams, umidi 1732 sound/usb/midi.c static struct port_info *find_port_info(struct snd_usb_midi *umidi, int number) umidi 1737 sound/usb/midi.c if (snd_usbmidi_port_info[i].id == umidi->usb_id && umidi 1747 sound/usb/midi.c struct snd_usb_midi *umidi = rmidi->private_data; umidi 1751 sound/usb/midi.c port_info = find_port_info(umidi, number); umidi 1758 sound/usb/midi.c static void snd_usbmidi_init_substream(struct snd_usb_midi *umidi, umidi 1766 sound/usb/midi.c snd_usbmidi_find_substream(umidi, stream, number); umidi 1768 sound/usb/midi.c dev_err(&umidi->dev->dev, "substream %d:%d not found\n", stream, umidi 1774 sound/usb/midi.c port_info = find_port_info(umidi, number); umidi 1777 sound/usb/midi.c name_format, umidi->card->shortname, number + 1); umidi 1785 sound/usb/midi.c static int snd_usbmidi_create_endpoints(struct snd_usb_midi *umidi, umidi 1793 sound/usb/midi.c err = snd_usbmidi_out_endpoint_create(umidi, umidi 1795 sound/usb/midi.c &umidi->endpoints[i]); umidi 1800 sound/usb/midi.c err = snd_usbmidi_in_endpoint_create(umidi, umidi 1802 sound/usb/midi.c &umidi->endpoints[i]); umidi 1809 sound/usb/midi.c snd_usbmidi_init_substream(umidi, umidi 1812 sound/usb/midi.c &umidi->endpoints[i].out->ports[j].substream); umidi 1816 sound/usb/midi.c snd_usbmidi_init_substream(umidi, umidi 1819 sound/usb/midi.c &umidi->endpoints[i].in->ports[j].substream); umidi 1824 sound/usb/midi.c dev_dbg(&umidi->dev->dev, "created %d output and %d input ports\n", umidi 1832 sound/usb/midi.c static int snd_usbmidi_get_ms_info(struct snd_usb_midi *umidi, umidi 1844 sound/usb/midi.c intf = umidi->iface; umidi 1854 sound/usb/midi.c dev_dbg(&umidi->dev->dev, "MIDIStreaming version %02x.%02x\n", umidi 1857 sound/usb/midi.c dev_warn(&umidi->dev->dev, umidi 1875 sound/usb/midi.c dev_warn(&umidi->dev->dev, umidi 1883 sound/usb/midi.c else if (snd_usb_get_speed(umidi->dev) == USB_SPEED_LOW) umidi 1892 sound/usb/midi.c dev_dbg(&umidi->dev->dev, "EP %02X: %d jack(s)\n", umidi 1897 sound/usb/midi.c dev_warn(&umidi->dev->dev, umidi 1905 sound/usb/midi.c else if (snd_usb_get_speed(umidi->dev) == USB_SPEED_LOW) umidi 1909 sound/usb/midi.c dev_dbg(&umidi->dev->dev, "EP %02X: %d jack(s)\n", umidi 1934 sound/usb/midi.c struct snd_usb_midi *umidi = kcontrol->private_data; umidi 1939 sound/usb/midi.c mutex_lock(&umidi->mutex); umidi 1943 sound/usb/midi.c mutex_unlock(&umidi->mutex); umidi 1960 sound/usb/midi.c static void snd_usbmidi_switch_roland_altsetting(struct snd_usb_midi *umidi) umidi 1966 sound/usb/midi.c intf = umidi->iface; umidi 1982 sound/usb/midi.c dev_dbg(&umidi->dev->dev, "switching to altsetting %d with int ep\n", umidi 1984 sound/usb/midi.c usb_set_interface(umidi->dev, intfd->bInterfaceNumber, umidi 1987 sound/usb/midi.c umidi->roland_load_ctl = snd_ctl_new1(&roland_load_ctl, umidi); umidi 1988 sound/usb/midi.c if (snd_ctl_add(umidi->card, umidi->roland_load_ctl) < 0) umidi 1989 sound/usb/midi.c umidi->roland_load_ctl = NULL; umidi 1995 sound/usb/midi.c static int snd_usbmidi_detect_endpoints(struct snd_usb_midi *umidi, umidi 2005 sound/usb/midi.c if (USB_ID_VENDOR(umidi->usb_id) == 0x0582) umidi 2006 sound/usb/midi.c snd_usbmidi_switch_roland_altsetting(umidi); umidi 2011 sound/usb/midi.c intf = umidi->iface; umidi 2043 sound/usb/midi.c static int snd_usbmidi_detect_per_port_endpoints(struct snd_usb_midi *umidi, umidi 2048 sound/usb/midi.c err = snd_usbmidi_detect_endpoints(umidi, endpoints, MIDI_MAX_ENDPOINTS); umidi 2061 sound/usb/midi.c static int snd_usbmidi_detect_yamaha(struct snd_usb_midi *umidi, umidi 2069 sound/usb/midi.c intf = umidi->iface; umidi 2096 sound/usb/midi.c return snd_usbmidi_detect_endpoints(umidi, endpoint, 1); umidi 2102 sound/usb/midi.c static int snd_usbmidi_detect_roland(struct snd_usb_midi *umidi, umidi 2109 sound/usb/midi.c intf = umidi->iface; umidi 2126 sound/usb/midi.c return snd_usbmidi_detect_endpoints(umidi, endpoint, 1); umidi 2130 sound/usb/midi.c return snd_usbmidi_get_ms_info(umidi, endpoint); umidi 2140 sound/usb/midi.c static int snd_usbmidi_create_endpoints_midiman(struct snd_usb_midi *umidi, umidi 2150 sound/usb/midi.c intf = umidi->iface; umidi 2166 sound/usb/midi.c dev_dbg(&umidi->dev->dev, "not enough endpoints\n"); umidi 2172 sound/usb/midi.c dev_dbg(&umidi->dev->dev, "endpoint[0] isn't interrupt\n"); umidi 2177 sound/usb/midi.c dev_dbg(&umidi->dev->dev, "endpoint[2] isn't bulk output\n"); umidi 2184 sound/usb/midi.c dev_dbg(&umidi->dev->dev, umidi 2194 sound/usb/midi.c err = snd_usbmidi_out_endpoint_create(umidi, &ep_info, umidi 2195 sound/usb/midi.c &umidi->endpoints[0]); umidi 2203 sound/usb/midi.c err = snd_usbmidi_in_endpoint_create(umidi, &ep_info, umidi 2204 sound/usb/midi.c &umidi->endpoints[0]); umidi 2212 sound/usb/midi.c err = snd_usbmidi_out_endpoint_create(umidi, &ep_info, umidi 2213 sound/usb/midi.c &umidi->endpoints[1]); umidi 2220 sound/usb/midi.c snd_usbmidi_init_substream(umidi, umidi 2223 sound/usb/midi.c &umidi->endpoints[cable & 1].out->ports[cable].substream); umidi 2225 sound/usb/midi.c snd_usbmidi_init_substream(umidi, umidi 2228 sound/usb/midi.c &umidi->endpoints[0].in->ports[cable].substream); umidi 2237 sound/usb/midi.c static int snd_usbmidi_create_rawmidi(struct snd_usb_midi *umidi, umidi 2243 sound/usb/midi.c err = snd_rawmidi_new(umidi->card, "USB MIDI", umidi 2244 sound/usb/midi.c umidi->next_midi_device++, umidi 2248 sound/usb/midi.c strcpy(rmidi->name, umidi->card->shortname); umidi 2253 sound/usb/midi.c rmidi->private_data = umidi; umidi 2260 sound/usb/midi.c umidi->rmidi = rmidi; umidi 2269 sound/usb/midi.c struct snd_usb_midi *umidi; umidi 2272 sound/usb/midi.c umidi = list_entry(p, struct snd_usb_midi, list); umidi 2273 sound/usb/midi.c if (!umidi->input_running) umidi 2276 sound/usb/midi.c struct snd_usb_midi_endpoint *ep = &umidi->endpoints[i]; umidi 2281 sound/usb/midi.c umidi->input_running = 0; umidi 2293 sound/usb/midi.c urb->dev = ep->umidi->dev; umidi 2303 sound/usb/midi.c struct snd_usb_midi *umidi; umidi 2306 sound/usb/midi.c umidi = list_entry(p, struct snd_usb_midi, list); umidi 2307 sound/usb/midi.c if (umidi->input_running || !umidi->opened[1]) umidi 2310 sound/usb/midi.c snd_usbmidi_input_start_ep(umidi->endpoints[i].in); umidi 2311 sound/usb/midi.c umidi->input_running = 1; umidi 2320 sound/usb/midi.c struct snd_usb_midi *umidi; umidi 2322 sound/usb/midi.c umidi = list_entry(p, struct snd_usb_midi, list); umidi 2323 sound/usb/midi.c mutex_lock(&umidi->mutex); umidi 2325 sound/usb/midi.c mutex_unlock(&umidi->mutex); umidi 2334 sound/usb/midi.c struct snd_usb_midi *umidi; umidi 2336 sound/usb/midi.c umidi = list_entry(p, struct snd_usb_midi, list); umidi 2337 sound/usb/midi.c mutex_lock(&umidi->mutex); umidi 2339 sound/usb/midi.c mutex_unlock(&umidi->mutex); umidi 2352 sound/usb/midi.c struct snd_usb_midi *umidi; umidi 2357 sound/usb/midi.c umidi = kzalloc(sizeof(*umidi), GFP_KERNEL); umidi 2358 sound/usb/midi.c if (!umidi) umidi 2360 sound/usb/midi.c umidi->dev = interface_to_usbdev(iface); umidi 2361 sound/usb/midi.c umidi->card = card; umidi 2362 sound/usb/midi.c umidi->iface = iface; umidi 2363 sound/usb/midi.c umidi->quirk = quirk; umidi 2364 sound/usb/midi.c umidi->usb_protocol_ops = &snd_usbmidi_standard_ops; umidi 2365 sound/usb/midi.c spin_lock_init(&umidi->disc_lock); umidi 2366 sound/usb/midi.c init_rwsem(&umidi->disc_rwsem); umidi 2367 sound/usb/midi.c mutex_init(&umidi->mutex); umidi 2369 sound/usb/midi.c usb_id = USB_ID(le16_to_cpu(umidi->dev->descriptor.idVendor), umidi 2370 sound/usb/midi.c le16_to_cpu(umidi->dev->descriptor.idProduct)); umidi 2371 sound/usb/midi.c umidi->usb_id = usb_id; umidi 2372 sound/usb/midi.c timer_setup(&umidi->error_timer, snd_usbmidi_error_timer, 0); umidi 2378 sound/usb/midi.c err = snd_usbmidi_get_ms_info(umidi, endpoints); umidi 2379 sound/usb/midi.c if (umidi->usb_id == USB_ID(0x0763, 0x0150)) /* M-Audio Uno */ umidi 2380 sound/usb/midi.c umidi->usb_protocol_ops = umidi 2384 sound/usb/midi.c umidi->usb_protocol_ops = &snd_usbmidi_122l_ops; umidi 2389 sound/usb/midi.c err = snd_usbmidi_detect_endpoints(umidi, &endpoints[0], 1); umidi 2392 sound/usb/midi.c err = snd_usbmidi_detect_yamaha(umidi, &endpoints[0]); umidi 2395 sound/usb/midi.c err = snd_usbmidi_detect_roland(umidi, &endpoints[0]); umidi 2398 sound/usb/midi.c umidi->usb_protocol_ops = &snd_usbmidi_midiman_ops; umidi 2404 sound/usb/midi.c umidi->usb_protocol_ops = &snd_usbmidi_novation_ops; umidi 2405 sound/usb/midi.c err = snd_usbmidi_detect_per_port_endpoints(umidi, endpoints); umidi 2408 sound/usb/midi.c umidi->usb_protocol_ops = &snd_usbmidi_raw_ops; umidi 2418 sound/usb/midi.c if (umidi->usb_id == USB_ID(0x07fd, 0x0001)) /* MOTU Fastlane */ umidi 2419 sound/usb/midi.c usb_set_interface(umidi->dev, 0, 0); umidi 2420 sound/usb/midi.c err = snd_usbmidi_detect_per_port_endpoints(umidi, endpoints); umidi 2423 sound/usb/midi.c umidi->usb_protocol_ops = &snd_usbmidi_emagic_ops; umidi 2426 sound/usb/midi.c err = snd_usbmidi_detect_endpoints(umidi, &endpoints[0], 1); umidi 2429 sound/usb/midi.c umidi->usb_protocol_ops = &snd_usbmidi_cme_ops; umidi 2430 sound/usb/midi.c err = snd_usbmidi_detect_per_port_endpoints(umidi, endpoints); umidi 2433 sound/usb/midi.c umidi->usb_protocol_ops = &snd_usbmidi_akai_ops; umidi 2434 sound/usb/midi.c err = snd_usbmidi_detect_per_port_endpoints(umidi, endpoints); umidi 2439 sound/usb/midi.c umidi->usb_protocol_ops = &snd_usbmidi_ftdi_ops; umidi 2442 sound/usb/midi.c err = usb_control_msg(umidi->dev, usb_sndctrlpipe(umidi->dev, 0), umidi 2447 sound/usb/midi.c err = snd_usbmidi_detect_per_port_endpoints(umidi, endpoints); umidi 2450 sound/usb/midi.c umidi->usb_protocol_ops = &snd_usbmidi_ch345_broken_sysex_ops; umidi 2451 sound/usb/midi.c err = snd_usbmidi_detect_per_port_endpoints(umidi, endpoints); umidi 2454 sound/usb/midi.c dev_err(&umidi->dev->dev, "invalid quirk type %d\n", umidi 2469 sound/usb/midi.c err = snd_usbmidi_create_rawmidi(umidi, out_ports, in_ports); umidi 2475 sound/usb/midi.c err = snd_usbmidi_create_endpoints_midiman(umidi, &endpoints[0]); umidi 2477 sound/usb/midi.c err = snd_usbmidi_create_endpoints(umidi, endpoints); umidi 2481 sound/usb/midi.c usb_autopm_get_interface_no_resume(umidi->iface); umidi 2483 sound/usb/midi.c list_add_tail(&umidi->list, midi_list); umidi 2487 sound/usb/midi.c kfree(umidi);