• Home
  • Raw
  • Download

Lines Matching +full:0 +full:x1806

155 #define STATE_UNKNOWN	0
163 } ports[0x10];
175 } ports[0x10];
186 0, 0, 2, 3, 3, 1, 2, 3, 3, 3, 3, 3, 2, 2, 3, 1
195 if (err < 0 && err != -ENODEV) in snd_usbmidi_submit_urb()
219 return 0; /* continue */ in snd_usbmidi_urb_error()
244 for (; length > 0; ++data, --length) in dump_urb()
259 if (urb->status == 0) { in snd_usbmidi_in_urb_complete()
265 if (err < 0) { in snd_usbmidi_in_urb_complete()
294 if (urb->status < 0) { in snd_usbmidi_out_urb_complete()
296 if (err < 0) { in snd_usbmidi_out_urb_complete()
326 urb->transfer_buffer_length = 0; in snd_usbmidi_do_output()
328 if (urb->transfer_buffer_length == 0) in snd_usbmidi_do_output()
334 if (snd_usbmidi_submit_urb(urb, GFP_ATOMIC) < 0) in snd_usbmidi_do_output()
339 urb_index = 0; in snd_usbmidi_do_output()
366 for (i = 0; i < MIDI_MAX_ENDPOINTS; ++i) { in snd_usbmidi_error_timer()
369 in->error_resubmit = 0; in snd_usbmidi_error_timer()
370 for (j = 0; j < INPUT_URBS; ++j) { in snd_usbmidi_error_timer()
387 int err = 0; in send_bulk_static_data()
392 if (ep->urbs[0].urb) in send_bulk_static_data()
393 err = usb_bulk_msg(ep->umidi->dev, ep->urbs[0].urb->pipe, in send_bulk_static_data()
410 for (i = 0; i + 3 < buffer_length; i += 4) in snd_usbmidi_standard_input()
411 if (buffer[i] != 0) { in snd_usbmidi_standard_input()
413 int length = snd_usbmidi_cin_length[buffer[i] & 0x0f]; in snd_usbmidi_standard_input()
424 for (i = 0; i + 3 < buffer_length; i += 4) in snd_usbmidi_midiman_input()
425 if (buffer[i + 3] != 0) { in snd_usbmidi_midiman_input()
442 for (i = 0; i + 3 < buffer_length; i += 4) in snd_usbmidi_maudio_broken_running_status_input()
443 if (buffer[i] != 0) { in snd_usbmidi_maudio_broken_running_status_input()
445 u8 cin = buffer[i] & 0x0f; in snd_usbmidi_maudio_broken_running_status_input()
450 if (cin == 0xf && buffer[i + 1] >= 0xf8) in snd_usbmidi_maudio_broken_running_status_input()
452 else if (cin >= 0x8 && cin <= 0xe) in snd_usbmidi_maudio_broken_running_status_input()
455 else if (cin == 0x4 && in snd_usbmidi_maudio_broken_running_status_input()
456 port->running_status_length != 0 && in snd_usbmidi_maudio_broken_running_status_input()
457 buffer[i + 1] < 0x80) in snd_usbmidi_maudio_broken_running_status_input()
463 * (A channel msg sent as two or three CIN 0xF in snd_usbmidi_maudio_broken_running_status_input()
467 port->running_status_length = 0; in snd_usbmidi_maudio_broken_running_status_input()
482 for (i = 0; i + 3 < buffer_length; i += 4) { in ch345_broken_sysex_input()
483 if (buffer[i] == 0 && i > 0) in ch345_broken_sysex_input()
485 cin = buffer[i] & 0x0f; in ch345_broken_sysex_input()
488 (buffer[i + 1 + (cin == 0x6)] & 0x80) == 0) in ch345_broken_sysex_input()
489 cin = 0x4; in ch345_broken_sysex_input()
490 #if 0 in ch345_broken_sysex_input()
491 if (buffer[i + 1] == 0x90) { in ch345_broken_sysex_input()
499 snd_usbmidi_input_data(ep, 0, &buffer[i + 1], length); in ch345_broken_sysex_input()
500 ep->in_sysex = cin == 0x4; in ch345_broken_sysex_input()
508 * single USB packet preceded by a 0x0F byte.
513 if (buffer_length < 2 || (buffer[0] & 0x0f) != 0x0f) in snd_usbmidi_cme_input()
516 snd_usbmidi_input_data(ep, buffer[0] >> 4, in snd_usbmidi_cme_input()
530 buf[0] = p0; in snd_usbmidi_output_standard_packet()
547 buf[0] = p1; in snd_usbmidi_output_midiman_packet()
550 buf[3] = (p0 & 0xf0) | snd_usbmidi_cin_length[p0 & 0x0f]; in snd_usbmidi_output_midiman_packet()
564 if (b >= 0xf8) { in snd_usbmidi_transmit_byte()
565 output_packet(urb, p0 | 0x0f, b, 0, 0); in snd_usbmidi_transmit_byte()
566 } else if (b >= 0xf0) { in snd_usbmidi_transmit_byte()
568 case 0xf0: in snd_usbmidi_transmit_byte()
569 port->data[0] = b; in snd_usbmidi_transmit_byte()
572 case 0xf1: in snd_usbmidi_transmit_byte()
573 case 0xf3: in snd_usbmidi_transmit_byte()
574 port->data[0] = b; in snd_usbmidi_transmit_byte()
577 case 0xf2: in snd_usbmidi_transmit_byte()
578 port->data[0] = b; in snd_usbmidi_transmit_byte()
581 case 0xf4: in snd_usbmidi_transmit_byte()
582 case 0xf5: in snd_usbmidi_transmit_byte()
585 case 0xf6: in snd_usbmidi_transmit_byte()
586 output_packet(urb, p0 | 0x05, 0xf6, 0, 0); in snd_usbmidi_transmit_byte()
589 case 0xf7: in snd_usbmidi_transmit_byte()
592 output_packet(urb, p0 | 0x05, 0xf7, 0, 0); in snd_usbmidi_transmit_byte()
595 output_packet(urb, p0 | 0x06, port->data[0], in snd_usbmidi_transmit_byte()
596 0xf7, 0); in snd_usbmidi_transmit_byte()
599 output_packet(urb, p0 | 0x07, port->data[0], in snd_usbmidi_transmit_byte()
600 port->data[1], 0xf7); in snd_usbmidi_transmit_byte()
606 } else if (b >= 0x80) { in snd_usbmidi_transmit_byte()
607 port->data[0] = b; in snd_usbmidi_transmit_byte()
608 if (b >= 0xc0 && b <= 0xdf) in snd_usbmidi_transmit_byte()
612 } else { /* b < 0x80 */ in snd_usbmidi_transmit_byte()
615 if (port->data[0] < 0xf0) { in snd_usbmidi_transmit_byte()
616 p0 |= port->data[0] >> 4; in snd_usbmidi_transmit_byte()
618 p0 |= 0x02; in snd_usbmidi_transmit_byte()
621 output_packet(urb, p0, port->data[0], b, 0); in snd_usbmidi_transmit_byte()
628 if (port->data[0] < 0xf0) { in snd_usbmidi_transmit_byte()
629 p0 |= port->data[0] >> 4; in snd_usbmidi_transmit_byte()
632 p0 |= 0x03; in snd_usbmidi_transmit_byte()
635 output_packet(urb, p0, port->data[0], port->data[1], b); in snd_usbmidi_transmit_byte()
638 port->data[0] = b; in snd_usbmidi_transmit_byte()
646 output_packet(urb, p0 | 0x04, port->data[0], in snd_usbmidi_transmit_byte()
660 for (p = 0; p < 0x10; ++p) { in snd_usbmidi_standard_output()
667 port->active = 0; in snd_usbmidi_standard_output()
711 * One or more chunks consisting of first byte of (0x10 | msg_len) and then a
716 * One or more chunks consisting of first byte of (0x20 | msg_len) and then a
724 unsigned int pos = 0; in snd_usbmidi_akai_input()
728 unsigned int msg_len = buffer[pos] & 0x0f; in snd_usbmidi_akai_input()
731 snd_usbmidi_input_data(ep, 0, &buffer[pos], msg_len); in snd_usbmidi_akai_input()
744 struct snd_rawmidi_substream *substream = ep->ports[0].substream; in snd_usbmidi_akai_output()
746 if (!ep->ports[0].active) in snd_usbmidi_akai_output()
757 ep->ports[0].active = 0; in snd_usbmidi_akai_output()
761 for (pos = 0; pos < count && tmp[pos] != 0xF0; pos++) in snd_usbmidi_akai_output()
764 if (pos > 0) { in snd_usbmidi_akai_output()
770 for (end = 1; end < count && tmp[end] < 0xF0; end++) in snd_usbmidi_akai_output()
774 if (end < count && tmp[end] == 0xF0) { in snd_usbmidi_akai_output()
780 if (end < count && tmp[end] == 0xF7) { in snd_usbmidi_akai_output()
783 msg[0] = 0x10 | count; in snd_usbmidi_akai_output()
792 ep->ports[0].active = 0; in snd_usbmidi_akai_output()
814 if (buffer_length < 2 || !buffer[0] || buffer_length < buffer[0] + 1) in snd_usbmidi_novation_input()
816 snd_usbmidi_input_data(ep, 0, &buffer[2], buffer[0] - 1); in snd_usbmidi_novation_input()
825 if (!ep->ports[0].active) in snd_usbmidi_novation_output()
828 count = snd_rawmidi_transmit(ep->ports[0].substream, in snd_usbmidi_novation_output()
832 ep->ports[0].active = 0; in snd_usbmidi_novation_output()
835 transfer_buffer[0] = 0; in snd_usbmidi_novation_output()
852 snd_usbmidi_input_data(ep, 0, buffer, buffer_length); in snd_usbmidi_raw_input()
860 if (!ep->ports[0].active) in snd_usbmidi_raw_output()
862 count = snd_rawmidi_transmit(ep->ports[0].substream, in snd_usbmidi_raw_output()
866 ep->ports[0].active = 0; in snd_usbmidi_raw_output()
885 snd_usbmidi_input_data(ep, 0, buffer + 2, buffer_length - 2); in snd_usbmidi_ftdi_input()
899 while (buffer_length && buffer[buffer_length - 1] == 0xFD) in snd_usbmidi_us122l_input()
902 snd_usbmidi_input_data(ep, 0, buffer, buffer_length); in snd_usbmidi_us122l_input()
910 if (!ep->ports[0].active) in snd_usbmidi_us122l_output()
921 count = snd_rawmidi_transmit(ep->ports[0].substream, in snd_usbmidi_us122l_output()
925 ep->ports[0].active = 0; in snd_usbmidi_us122l_output()
929 memset(urb->transfer_buffer + count, 0xFD, ep->max_transfer - count); in snd_usbmidi_us122l_output()
946 0xf0, in snd_usbmidi_emagic_init_out()
947 0x00, 0x20, 0x31, /* Emagic */ in snd_usbmidi_emagic_init_out()
948 0x64, /* Unitor8 */ in snd_usbmidi_emagic_init_out()
949 0x0b, /* version number request */ in snd_usbmidi_emagic_init_out()
950 0x00, /* command version */ in snd_usbmidi_emagic_init_out()
951 0x00, /* EEPROM, box 0 */ in snd_usbmidi_emagic_init_out()
952 0xf7 in snd_usbmidi_emagic_init_out()
963 0xf0, in snd_usbmidi_emagic_finish_out()
964 0x00, 0x20, 0x31, /* Emagic */ in snd_usbmidi_emagic_finish_out()
965 0x64, /* Unitor8 */ in snd_usbmidi_emagic_finish_out()
966 0x10, /* patch switch command */ in snd_usbmidi_emagic_finish_out()
967 0x00, /* command version */ in snd_usbmidi_emagic_finish_out()
968 0x7f, /* to all boxes */ in snd_usbmidi_emagic_finish_out()
969 0x40, /* last preset in EEPROM */ in snd_usbmidi_emagic_finish_out()
970 0xf7 in snd_usbmidi_emagic_finish_out()
981 for (i = 0; i < buffer_length; ++i) in snd_usbmidi_emagic_input()
982 if (buffer[i] == 0xff) { in snd_usbmidi_emagic_input()
991 while (buffer_length > 0) { in snd_usbmidi_emagic_input()
993 for (i = 0; i < buffer_length; ++i) in snd_usbmidi_emagic_input()
994 if (buffer[i] == 0xf5) in snd_usbmidi_emagic_input()
1000 if (buffer_length <= 0) in snd_usbmidi_emagic_input()
1002 /* assert(buffer[0] == 0xf5); */ in snd_usbmidi_emagic_input()
1008 if (buffer_length <= 0) in snd_usbmidi_emagic_input()
1010 if (buffer[0] < 0x80) { in snd_usbmidi_emagic_input()
1011 ep->current_port = (buffer[0] - 1) & 15; in snd_usbmidi_emagic_input()
1015 ep->seen_f5 = 0; in snd_usbmidi_emagic_input()
1027 for (i = 0; i < 0x10; ++i) { in snd_usbmidi_emagic_output()
1035 port->active = 0; in snd_usbmidi_emagic_output()
1043 buf[0] = 0xf5; in snd_usbmidi_emagic_output()
1052 if (length > 0) { in snd_usbmidi_emagic_output()
1059 if (buf_free < ep->max_transfer && buf_free > 0) { in snd_usbmidi_emagic_output()
1060 *buf = 0xff; in snd_usbmidi_emagic_output()
1102 return open ? -ENODEV : 0; in substream_open()
1107 if (!umidi->opened[0] && !umidi->opened[1]) { in substream_open()
1110 ctl->vd[0].access |= in substream_open()
1124 if (!umidi->opened[0] && !umidi->opened[1]) { in substream_open()
1127 ctl->vd[0].access &= in substream_open()
1136 return 0; in substream_open()
1145 for (i = 0; i < MIDI_MAX_ENDPOINTS; ++i) in snd_usbmidi_output_open()
1147 for (j = 0; j < 0x10; ++j) in snd_usbmidi_output_open()
1157 return substream_open(substream, 0, 1); in snd_usbmidi_output_open()
1165 return substream_open(substream, 0, 0); in snd_usbmidi_output_close()
1214 port->active = 0; in snd_usbmidi_output_drain()
1225 return substream_open(substream, 1, 0); in snd_usbmidi_input_close()
1268 for (i = 0; i < INPUT_URBS; ++i) in snd_usbmidi_in_endpoint_delete()
1295 for (i = 0; i < INPUT_URBS; ++i) { in snd_usbmidi_in_endpoint_create()
1296 ep->urbs[i] = usb_alloc_urb(0, GFP_KERNEL); in snd_usbmidi_in_endpoint_create()
1306 length = usb_maxpacket(umidi->dev, pipe, 0); in snd_usbmidi_in_endpoint_create()
1307 for (i = 0; i < INPUT_URBS; ++i) { in snd_usbmidi_in_endpoint_create()
1325 if (err < 0) { in snd_usbmidi_in_endpoint_create()
1333 return 0; in snd_usbmidi_in_endpoint_create()
1348 for (i = 0; i < OUTPUT_URBS; ++i) in snd_usbmidi_out_endpoint_clear()
1381 for (i = 0; i < OUTPUT_URBS; ++i) { in snd_usbmidi_out_endpoint_create()
1382 ep->urbs[i].urb = usb_alloc_urb(0, GFP_KERNEL); in snd_usbmidi_out_endpoint_create()
1401 case USB_ID(0x0a67, 0x5011): /* Medeli DD305 */ in snd_usbmidi_out_endpoint_create()
1402 case USB_ID(0x0a92, 0x1020): /* ESI M4U */ in snd_usbmidi_out_endpoint_create()
1403 case USB_ID(0x1430, 0x474b): /* RedOctane GH MIDI INTERFACE */ in snd_usbmidi_out_endpoint_create()
1404 case USB_ID(0x15ca, 0x0101): /* Textech USB Midi Cable */ in snd_usbmidi_out_endpoint_create()
1405 case USB_ID(0x15ca, 0x1806): /* Textech USB Midi Cable */ in snd_usbmidi_out_endpoint_create()
1406 case USB_ID(0x1a86, 0x752d): /* QinHeng CH345 "USB2.0-MIDI" */ in snd_usbmidi_out_endpoint_create()
1407 case USB_ID(0xfc08, 0x0101): /* Unknown vendor Cable */ in snd_usbmidi_out_endpoint_create()
1413 case USB_ID(0x0644, 0x800e): /* Tascam US-122L */ in snd_usbmidi_out_endpoint_create()
1414 case USB_ID(0x0644, 0x800f): /* Tascam US-144 */ in snd_usbmidi_out_endpoint_create()
1418 for (i = 0; i < OUTPUT_URBS; ++i) { in snd_usbmidi_out_endpoint_create()
1437 if (err < 0) { in snd_usbmidi_out_endpoint_create()
1449 for (i = 0; i < 0x10; ++i) in snd_usbmidi_out_endpoint_create()
1459 return 0; in snd_usbmidi_out_endpoint_create()
1473 for (i = 0; i < MIDI_MAX_ENDPOINTS; ++i) { in snd_usbmidi_free()
1506 for (i = 0; i < MIDI_MAX_ENDPOINTS; ++i) { in snd_usbmidi_disconnect()
1511 for (j = 0; j < OUTPUT_URBS; ++j) in snd_usbmidi_disconnect()
1515 ep->out->active_urbs = 0; in snd_usbmidi_disconnect()
1517 ep->out->drain_urbs = 0; in snd_usbmidi_disconnect()
1522 for (j = 0; j < INPUT_URBS; ++j) in snd_usbmidi_disconnect()
1572 PORT_INFO(vendor, product, num, name, 0, \
1577 PORT_INFO(vendor, product, num, name, 0, \
1606 GM_SYNTH_PORT(0x0499, 0x105c, 0, "%s Tone Generator", 128),
1607 CONTROL_PORT(0x0499, 0x105c, 1, "%s Remote Control"),
1608 EXTERNAL_PORT(0x0499, 0x105c, 2, "%s Thru"),
1609 CONTROL_PORT(0x0499, 0x105c, 3, "%s Editor"),
1611 CONTROL_PORT(0x0582, 0x0000, 2, "%s Control"),
1613 SOUNDCANVAS_PORT(0x0582, 0x0003, 0, "%s Part A", 128),
1614 SOUNDCANVAS_PORT(0x0582, 0x0003, 1, "%s Part B", 128),
1615 SOUNDCANVAS_PORT(0x0582, 0x0003, 2, "%s Part C", 128),
1616 SOUNDCANVAS_PORT(0x0582, 0x0003, 3, "%s Part D", 128),
1617 EXTERNAL_PORT(0x0582, 0x0003, 4, "%s MIDI 1"),
1618 EXTERNAL_PORT(0x0582, 0x0003, 5, "%s MIDI 2"),
1620 EXTERNAL_PORT(0x0582, 0x0004, 0, "%s MIDI"),
1621 CONTROL_PORT(0x0582, 0x0004, 1, "%s Control"),
1623 SOUNDCANVAS_PORT(0x0582, 0x0007, 0, "%s Part A", 64),
1624 SOUNDCANVAS_PORT(0x0582, 0x0007, 1, "%s Part B", 64),
1625 EXTERNAL_PORT(0x0582, 0x0007, 2, "%s MIDI"),
1627 SOUNDCANVAS_PORT(0x0582, 0x000b, 0, "%s Part A", 64),
1628 SOUNDCANVAS_PORT(0x0582, 0x000b, 1, "%s Part B", 64),
1629 EXTERNAL_PORT(0x0582, 0x000b, 2, "%s MIDI"),
1631 SOUNDCANVAS_PORT(0x0582, 0x000c, 0, "%s Part A", 64),
1632 SOUNDCANVAS_PORT(0x0582, 0x000c, 1, "%s Part B", 64),
1633 EXTERNAL_PORT(0x0582, 0x000c, 2, "%s MIDI"),
1635 CONTROL_PORT(0x0582, 0x0014, 8, "%s Control"),
1637 ROLAND_SYNTH_PORT(0x0582, 0x0016, 0, "%s Part A", 128),
1638 ROLAND_SYNTH_PORT(0x0582, 0x0016, 1, "%s Part B", 128),
1639 EXTERNAL_PORT(0x0582, 0x0016, 2, "%s MIDI 1"),
1640 EXTERNAL_PORT(0x0582, 0x0016, 3, "%s MIDI 2"),
1642 CONTROL_PORT(0x0582, 0x0023, 5, "%s Control"),
1644 ROLAND_SYNTH_PORT(0x0582, 0x0027, 0, "%s Part A", 64),
1645 ROLAND_SYNTH_PORT(0x0582, 0x0027, 1, "%s Part B", 64),
1646 EXTERNAL_PORT(0x0582, 0x0027, 2, "%s MIDI"),
1648 ROLAND_SYNTH_PORT(0x0582, 0x0029, 0, "%s Part A", 128),
1649 ROLAND_SYNTH_PORT(0x0582, 0x0029, 1, "%s Part B", 128),
1650 EXTERNAL_PORT(0x0582, 0x0029, 2, "%s MIDI 1"),
1651 EXTERNAL_PORT(0x0582, 0x0029, 3, "%s MIDI 2"),
1653 EXTERNAL_PORT(0x0582, 0x002b, 0, "%s MIDI"),
1654 CONTROL_PORT(0x0582, 0x002b, 1, "%s Control"),
1656 EXTERNAL_PORT(0x0582, 0x002f, 0, "%s MIDI"),
1657 EXTERNAL_PORT(0x0582, 0x002f, 1, "%s External MIDI"),
1658 EXTERNAL_PORT(0x0582, 0x002f, 2, "%s Sync"),
1660 EXTERNAL_PORT(0x0582, 0x0033, 0, "%s MIDI"),
1661 EXTERNAL_PORT(0x0582, 0x0033, 1, "%s 1"),
1662 EXTERNAL_PORT(0x0582, 0x0033, 2, "%s 2"),
1664 EXTERNAL_PORT(0x0582, 0x003b, 0, "%s MIDI"),
1665 CONTROL_PORT(0x0582, 0x003b, 1, "%s Control"),
1667 EXTERNAL_PORT(0x0582, 0x0044, 0, "%s MIDI"),
1668 CONTROL_PORT(0x0582, 0x0044, 1, "%s Control"),
1670 EXTERNAL_PORT(0x0582, 0x0048, 0, "%s MIDI"),
1671 EXTERNAL_PORT(0x0582, 0x0048, 1, "%s 1"),
1672 EXTERNAL_PORT(0x0582, 0x0048, 2, "%s 2"),
1674 EXTERNAL_PORT(0x0582, 0x004d, 0, "%s MIDI"),
1675 EXTERNAL_PORT(0x0582, 0x004d, 1, "%s 1"),
1676 EXTERNAL_PORT(0x0582, 0x004d, 2, "%s 2"),
1678 CONTROL_PORT(0x0582, 0x0089, 0, "%s Control"),
1680 CONTROL_PORT(0x0582, 0x009a, 3, "%s Control"),
1682 CONTROL_PORT(0x0582, 0x00b2, 0, "%s Control"),
1683 EXTERNAL_PORT(0x0582, 0x00b2, 1, "%s MIDI"),
1685 EXTERNAL_PORT(0x0582, 0x00eb, 0, "%s MIDI"),
1686 CONTROL_PORT(0x0582, 0x00eb, 1, "%s Control"),
1688 CONTROL_PORT(0x0582, 0x0102, 0, "%s Control"),
1689 EXTERNAL_PORT(0x0582, 0x0102, 1, "%s MIDI"),
1691 EXTERNAL_PORT(0x0582, 0x010f, 0, "%s MIDI"),
1692 CONTROL_PORT(0x0582, 0x010f, 1, "%s 1"),
1693 CONTROL_PORT(0x0582, 0x010f, 2, "%s 2"),
1695 ROLAND_SYNTH_PORT(0x0582, 0x0114, 0, "%s Synth", 128),
1696 EXTERNAL_PORT(0x0582, 0x0114, 1, "%s MIDI"),
1697 CONTROL_PORT(0x0582, 0x0114, 2, "%s Control"),
1699 EXTERNAL_PORT(0x0582, 0x0120, 0, "%s MIDI"),
1700 CONTROL_PORT(0x0582, 0x0120, 1, "%s Control"),
1701 EXTERNAL_PORT(0x0582, 0x0121, 0, "%s MIDI"),
1702 CONTROL_PORT(0x0582, 0x0121, 1, "%s Control"),
1704 CONTROL_PORT(0x0582, 0x0145, 0, "%s Control"),
1705 EXTERNAL_PORT(0x0582, 0x0145, 1, "%s MIDI"),
1707 CONTROL_PORT(0x0582, 0x0156, 0, "%s Keyboard"),
1708 EXTERNAL_PORT(0x0582, 0x0156, 1, "%s MIDI"),
1710 ROLAND_SYNTH_PORT(0x0582, 0x015b, 0, "%s Synth", 128),
1711 CONTROL_PORT(0x0582, 0x015b, 1, "%s Control"),
1713 CONTROL_PORT(0x0763, 0x1031, 8, "%s Control"),
1714 CONTROL_PORT(0x0763, 0x1033, 8, "%s Control"),
1716 EXTERNAL_PORT(0x07fd, 0x0001, 0, "%s MIDI A"),
1717 EXTERNAL_PORT(0x07fd, 0x0001, 1, "%s MIDI B"),
1719 EXTERNAL_PORT(0x086a, 0x0001, 8, "%s Broadcast"),
1720 EXTERNAL_PORT(0x086a, 0x0002, 8, "%s Broadcast"),
1721 EXTERNAL_PORT(0x086a, 0x0003, 4, "%s Broadcast"),
1723 CONTROL_PORT(0x09e8, 0x0062, 0, "%s Control"),
1724 PORT_INFO(0x09e8, 0x0062, 1, "%s MIDI", 0,
1728 EXTERNAL_PORT(0x133e, 0x0815, 0, "%s MIDI"),
1729 PORT_INFO(0x133e, 0x0815, 1, "%s Synth", 0,
1739 for (i = 0; i < ARRAY_SIZE(snd_usbmidi_port_info); ++i) { in find_port_info()
1792 int out_ports = 0, in_ports = 0; in snd_usbmidi_create_endpoints()
1794 for (i = 0; i < MIDI_MAX_ENDPOINTS; ++i) { in snd_usbmidi_create_endpoints()
1799 if (err < 0) in snd_usbmidi_create_endpoints()
1806 if (err < 0) in snd_usbmidi_create_endpoints()
1810 for (j = 0; j < 0x10; ++j) { in snd_usbmidi_create_endpoints()
1829 return 0; in snd_usbmidi_create_endpoints()
1846 if (!extra[0]) in find_usb_ms_endpoint_descriptor()
1848 extralen -= extra[0]; in find_usb_ms_endpoint_descriptor()
1849 extra += extra[0]; in find_usb_ms_endpoint_descriptor()
1872 hostif = &intf->altsetting[0]; in snd_usbmidi_get_ms_info()
1880 ms_header->bcdMSC[1], ms_header->bcdMSC[0]); in snd_usbmidi_get_ms_info()
1885 epidx = 0; in snd_usbmidi_get_ms_info()
1886 for (i = 0; i < intfd->bNumEndpoints; ++i) { in snd_usbmidi_get_ms_info()
1896 if (ms_ep->bNumEmbMIDIJack > 0x10) in snd_usbmidi_get_ms_info()
1941 return 0; in snd_usbmidi_get_ms_info()
1955 value->value.enumerated.item[0] = kcontrol->private_value; in roland_load_get()
1956 return 0; in roland_load_get()
1965 if (value->value.enumerated.item[0] > 1) in roland_load_put()
1968 changed = value->value.enumerated.item[0] != kcontrol->private_value; in roland_load_put()
1970 kcontrol->private_value = value->value.enumerated.item[0]; in roland_load_put()
2004 !((get_endpoint(hostif, 0)->bmAttributes & in snd_usbmidi_switch_roland_altsetting()
2016 if (snd_ctl_add(umidi->card, umidi->roland_load_ctl) < 0) in snd_usbmidi_switch_roland_altsetting()
2031 int i, out_eps = 0, in_eps = 0; in snd_usbmidi_detect_endpoints()
2033 if (USB_ID_VENDOR(umidi->usb_id) == 0x0582) in snd_usbmidi_detect_endpoints()
2036 if (endpoint[0].out_ep || endpoint[0].in_ep) in snd_usbmidi_detect_endpoints()
2037 return 0; in snd_usbmidi_detect_endpoints()
2045 for (i = 0; i < intfd->bNumEndpoints; ++i) { in snd_usbmidi_detect_endpoints()
2065 return (out_eps || in_eps) ? 0 : -ENOENT; in snd_usbmidi_detect_endpoints()
2077 for (i = 0; i < MIDI_MAX_ENDPOINTS; ++i) { in snd_usbmidi_detect_per_port_endpoints()
2079 endpoints[i].out_cables = 0x0001; in snd_usbmidi_detect_per_port_endpoints()
2081 endpoints[i].in_cables = 0x0001; in snd_usbmidi_detect_per_port_endpoints()
2110 cs_desc < hostif->extra + hostif->extralen && cs_desc[0] >= 2; in snd_usbmidi_detect_yamaha()
2111 cs_desc += cs_desc[0]) { in snd_usbmidi_detect_yamaha()
2146 cs_desc < hostif->extra + hostif->extralen && cs_desc[0] >= 2; in snd_usbmidi_detect_roland()
2147 cs_desc += cs_desc[0]) { in snd_usbmidi_detect_roland()
2148 if (cs_desc[0] >= 6 && in snd_usbmidi_detect_roland()
2150 cs_desc[2] == 0xf1 && in snd_usbmidi_detect_roland()
2151 cs_desc[3] == 0x02) { in snd_usbmidi_detect_roland()
2152 if (cs_desc[4] > 0x10 || cs_desc[5] > 0x10) in snd_usbmidi_detect_roland()
2157 } else if (cs_desc[0] >= 7 && in snd_usbmidi_detect_roland()
2195 if (intfd->bNumEndpoints < (endpoint->out_cables > 0x0001 ? 5 : 3)) { in snd_usbmidi_create_endpoints_midiman()
2200 epd = get_endpoint(hostif, 0); in snd_usbmidi_create_endpoints_midiman()
2202 dev_dbg(&umidi->dev->dev, "endpoint[0] isn't interrupt\n"); in snd_usbmidi_create_endpoints_midiman()
2210 if (endpoint->out_cables > 0x0001) { in snd_usbmidi_create_endpoints_midiman()
2222 ep_info.out_interval = 0; in snd_usbmidi_create_endpoints_midiman()
2223 ep_info.out_cables = endpoint->out_cables & 0x5555; in snd_usbmidi_create_endpoints_midiman()
2225 &umidi->endpoints[0]); in snd_usbmidi_create_endpoints_midiman()
2226 if (err < 0) in snd_usbmidi_create_endpoints_midiman()
2229 ep_info.in_ep = get_endpoint(hostif, 0)->bEndpointAddress & in snd_usbmidi_create_endpoints_midiman()
2231 ep_info.in_interval = get_endpoint(hostif, 0)->bInterval; in snd_usbmidi_create_endpoints_midiman()
2234 &umidi->endpoints[0]); in snd_usbmidi_create_endpoints_midiman()
2235 if (err < 0) in snd_usbmidi_create_endpoints_midiman()
2238 if (endpoint->out_cables > 0x0001) { in snd_usbmidi_create_endpoints_midiman()
2241 ep_info.out_cables = endpoint->out_cables & 0xaaaa; in snd_usbmidi_create_endpoints_midiman()
2244 if (err < 0) in snd_usbmidi_create_endpoints_midiman()
2248 for (cable = 0; cable < 0x10; ++cable) { in snd_usbmidi_create_endpoints_midiman()
2258 &umidi->endpoints[0].in->ports[cable].substream); in snd_usbmidi_create_endpoints_midiman()
2260 return 0; in snd_usbmidi_create_endpoints_midiman()
2276 if (err < 0) in snd_usbmidi_create_rawmidi()
2291 return 0; in snd_usbmidi_create_rawmidi()
2305 for (i = 0; i < MIDI_MAX_ENDPOINTS; ++i) { in snd_usbmidi_input_stop()
2308 for (j = 0; j < INPUT_URBS; ++j) in snd_usbmidi_input_stop()
2311 umidi->input_running = 0; in snd_usbmidi_input_stop()
2323 for (i = 0; i < INPUT_URBS; ++i) { in snd_usbmidi_input_start_ep()
2345 for (i = 0; i < MIDI_MAX_ENDPOINTS; ++i) in snd_usbmidi_input_start()
2408 timer_setup(&umidi->error_timer, snd_usbmidi_error_timer, 0); in __snd_usbmidi_create()
2411 memset(endpoints, 0, sizeof(endpoints)); in __snd_usbmidi_create()
2415 if (umidi->usb_id == USB_ID(0x0763, 0x0150)) /* M-Audio Uno */ in __snd_usbmidi_create()
2423 memcpy(&endpoints[0], quirk->data, 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()
2435 memcpy(&endpoints[0], quirk->data, in __snd_usbmidi_create()
2437 err = 0; in __snd_usbmidi_create()
2447 * numbers as in interface 0. Since it is interface 1 that the in __snd_usbmidi_create()
2451 * interface 0, so we have to make sure that the USB core looks in __snd_usbmidi_create()
2452 * again at interface 0 by calling usb_set_interface() on it. 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()
2460 memcpy(&endpoints[0], quirk->data, in __snd_usbmidi_create()
2462 err = snd_usbmidi_detect_endpoints(umidi, &endpoints[0], 1); in __snd_usbmidi_create()
2472 endpoints[1].out_cables = 0; in __snd_usbmidi_create()
2478 err = usb_control_msg(umidi->dev, usb_sndctrlpipe(umidi->dev, 0), in __snd_usbmidi_create()
2479 3, 0x40, 0x60, 0, NULL, 0, 1000); in __snd_usbmidi_create()
2480 if (err < 0) in __snd_usbmidi_create()
2495 if (err < 0) in __snd_usbmidi_create()
2499 out_ports = 0; in __snd_usbmidi_create()
2500 in_ports = 0; in __snd_usbmidi_create()
2501 for (i = 0; i < MIDI_MAX_ENDPOINTS; ++i) { in __snd_usbmidi_create()
2506 if (err < 0) in __snd_usbmidi_create()
2511 err = snd_usbmidi_create_endpoints_midiman(umidi, &endpoints[0]); in __snd_usbmidi_create()
2514 if (err < 0) in __snd_usbmidi_create()
2520 return 0; in __snd_usbmidi_create()