• Home
  • Raw
  • Download

Lines Matching +full:0 +full:x1806

139 #define STATE_UNKNOWN	0
147 } ports[0x10];
159 } ports[0x10];
170 0, 0, 2, 3, 3, 1, 2, 3, 3, 3, 3, 3, 2, 2, 3, 1
179 if (err < 0 && err != -ENODEV) in snd_usbmidi_submit_urb()
203 return 0; /* continue */ in snd_usbmidi_urb_error()
228 for (; length > 0; ++data, --length) in dump_urb()
243 if (urb->status == 0) { in snd_usbmidi_in_urb_complete()
249 if (err < 0) { in snd_usbmidi_in_urb_complete()
278 if (urb->status < 0) { in snd_usbmidi_out_urb_complete()
280 if (err < 0) { in snd_usbmidi_out_urb_complete()
310 urb->transfer_buffer_length = 0; in snd_usbmidi_do_output()
312 if (urb->transfer_buffer_length == 0) in snd_usbmidi_do_output()
318 if (snd_usbmidi_submit_urb(urb, GFP_ATOMIC) < 0) in snd_usbmidi_do_output()
323 urb_index = 0; in snd_usbmidi_do_output()
350 for (i = 0; i < MIDI_MAX_ENDPOINTS; ++i) { in snd_usbmidi_error_timer()
353 in->error_resubmit = 0; in snd_usbmidi_error_timer()
354 for (j = 0; j < INPUT_URBS; ++j) { in snd_usbmidi_error_timer()
371 int err = 0; in send_bulk_static_data()
376 if (ep->urbs[0].urb) in send_bulk_static_data()
377 err = usb_bulk_msg(ep->umidi->dev, ep->urbs[0].urb->pipe, in send_bulk_static_data()
394 for (i = 0; i + 3 < buffer_length; i += 4) in snd_usbmidi_standard_input()
395 if (buffer[i] != 0) { in snd_usbmidi_standard_input()
397 int length = snd_usbmidi_cin_length[buffer[i] & 0x0f]; in snd_usbmidi_standard_input()
408 for (i = 0; i + 3 < buffer_length; i += 4) in snd_usbmidi_midiman_input()
409 if (buffer[i + 3] != 0) { in snd_usbmidi_midiman_input()
426 for (i = 0; i + 3 < buffer_length; i += 4) in snd_usbmidi_maudio_broken_running_status_input()
427 if (buffer[i] != 0) { in snd_usbmidi_maudio_broken_running_status_input()
429 u8 cin = buffer[i] & 0x0f; in snd_usbmidi_maudio_broken_running_status_input()
434 if (cin == 0xf && buffer[i + 1] >= 0xf8) in snd_usbmidi_maudio_broken_running_status_input()
436 else if (cin >= 0x8 && cin <= 0xe) in snd_usbmidi_maudio_broken_running_status_input()
439 else if (cin == 0x4 && in snd_usbmidi_maudio_broken_running_status_input()
440 port->running_status_length != 0 && in snd_usbmidi_maudio_broken_running_status_input()
441 buffer[i + 1] < 0x80) in snd_usbmidi_maudio_broken_running_status_input()
447 * (A channel msg sent as two or three CIN 0xF in snd_usbmidi_maudio_broken_running_status_input()
451 port->running_status_length = 0; in snd_usbmidi_maudio_broken_running_status_input()
466 for (i = 0; i + 3 < buffer_length; i += 4) { in ch345_broken_sysex_input()
467 if (buffer[i] == 0 && i > 0) in ch345_broken_sysex_input()
469 cin = buffer[i] & 0x0f; in ch345_broken_sysex_input()
472 (buffer[i + 1 + (cin == 0x6)] & 0x80) == 0) in ch345_broken_sysex_input()
473 cin = 0x4; in ch345_broken_sysex_input()
474 #if 0 in ch345_broken_sysex_input()
475 if (buffer[i + 1] == 0x90) { in ch345_broken_sysex_input()
483 snd_usbmidi_input_data(ep, 0, &buffer[i + 1], length); in ch345_broken_sysex_input()
484 ep->in_sysex = cin == 0x4; in ch345_broken_sysex_input()
492 * single USB packet preceded by a 0x0F byte.
497 if (buffer_length < 2 || (buffer[0] & 0x0f) != 0x0f) in snd_usbmidi_cme_input()
500 snd_usbmidi_input_data(ep, buffer[0] >> 4, in snd_usbmidi_cme_input()
514 buf[0] = p0; in snd_usbmidi_output_standard_packet()
531 buf[0] = p1; in snd_usbmidi_output_midiman_packet()
534 buf[3] = (p0 & 0xf0) | snd_usbmidi_cin_length[p0 & 0x0f]; in snd_usbmidi_output_midiman_packet()
548 if (b >= 0xf8) { in snd_usbmidi_transmit_byte()
549 output_packet(urb, p0 | 0x0f, b, 0, 0); in snd_usbmidi_transmit_byte()
550 } else if (b >= 0xf0) { in snd_usbmidi_transmit_byte()
552 case 0xf0: in snd_usbmidi_transmit_byte()
553 port->data[0] = b; in snd_usbmidi_transmit_byte()
556 case 0xf1: in snd_usbmidi_transmit_byte()
557 case 0xf3: in snd_usbmidi_transmit_byte()
558 port->data[0] = b; in snd_usbmidi_transmit_byte()
561 case 0xf2: in snd_usbmidi_transmit_byte()
562 port->data[0] = b; in snd_usbmidi_transmit_byte()
565 case 0xf4: in snd_usbmidi_transmit_byte()
566 case 0xf5: in snd_usbmidi_transmit_byte()
569 case 0xf6: in snd_usbmidi_transmit_byte()
570 output_packet(urb, p0 | 0x05, 0xf6, 0, 0); in snd_usbmidi_transmit_byte()
573 case 0xf7: in snd_usbmidi_transmit_byte()
576 output_packet(urb, p0 | 0x05, 0xf7, 0, 0); in snd_usbmidi_transmit_byte()
579 output_packet(urb, p0 | 0x06, port->data[0], in snd_usbmidi_transmit_byte()
580 0xf7, 0); in snd_usbmidi_transmit_byte()
583 output_packet(urb, p0 | 0x07, port->data[0], in snd_usbmidi_transmit_byte()
584 port->data[1], 0xf7); in snd_usbmidi_transmit_byte()
590 } else if (b >= 0x80) { in snd_usbmidi_transmit_byte()
591 port->data[0] = b; in snd_usbmidi_transmit_byte()
592 if (b >= 0xc0 && b <= 0xdf) in snd_usbmidi_transmit_byte()
596 } else { /* b < 0x80 */ in snd_usbmidi_transmit_byte()
599 if (port->data[0] < 0xf0) { in snd_usbmidi_transmit_byte()
600 p0 |= port->data[0] >> 4; in snd_usbmidi_transmit_byte()
602 p0 |= 0x02; in snd_usbmidi_transmit_byte()
605 output_packet(urb, p0, port->data[0], b, 0); in snd_usbmidi_transmit_byte()
612 if (port->data[0] < 0xf0) { in snd_usbmidi_transmit_byte()
613 p0 |= port->data[0] >> 4; in snd_usbmidi_transmit_byte()
616 p0 |= 0x03; in snd_usbmidi_transmit_byte()
619 output_packet(urb, p0, port->data[0], port->data[1], b); in snd_usbmidi_transmit_byte()
622 port->data[0] = b; in snd_usbmidi_transmit_byte()
630 output_packet(urb, p0 | 0x04, port->data[0], in snd_usbmidi_transmit_byte()
644 for (p = 0; p < 0x10; ++p) { in snd_usbmidi_standard_output()
651 port->active = 0; in snd_usbmidi_standard_output()
695 * One or more chunks consisting of first byte of (0x10 | msg_len) and then a
700 * One or more chunks consisting of first byte of (0x20 | msg_len) and then a
708 unsigned int pos = 0; in snd_usbmidi_akai_input()
712 unsigned int msg_len = buffer[pos] & 0x0f; in snd_usbmidi_akai_input()
715 snd_usbmidi_input_data(ep, 0, &buffer[pos], msg_len); in snd_usbmidi_akai_input()
728 struct snd_rawmidi_substream *substream = ep->ports[0].substream; in snd_usbmidi_akai_output()
730 if (!ep->ports[0].active) in snd_usbmidi_akai_output()
741 ep->ports[0].active = 0; in snd_usbmidi_akai_output()
745 for (pos = 0; pos < count && tmp[pos] != 0xF0; pos++) in snd_usbmidi_akai_output()
748 if (pos > 0) { in snd_usbmidi_akai_output()
754 for (end = 1; end < count && tmp[end] < 0xF0; end++) in snd_usbmidi_akai_output()
758 if (end < count && tmp[end] == 0xF0) { in snd_usbmidi_akai_output()
764 if (end < count && tmp[end] == 0xF7) { in snd_usbmidi_akai_output()
767 msg[0] = 0x10 | count; in snd_usbmidi_akai_output()
776 ep->ports[0].active = 0; in snd_usbmidi_akai_output()
798 if (buffer_length < 2 || !buffer[0] || buffer_length < buffer[0] + 1) in snd_usbmidi_novation_input()
800 snd_usbmidi_input_data(ep, 0, &buffer[2], buffer[0] - 1); in snd_usbmidi_novation_input()
809 if (!ep->ports[0].active) in snd_usbmidi_novation_output()
812 count = snd_rawmidi_transmit(ep->ports[0].substream, in snd_usbmidi_novation_output()
816 ep->ports[0].active = 0; in snd_usbmidi_novation_output()
819 transfer_buffer[0] = 0; in snd_usbmidi_novation_output()
836 snd_usbmidi_input_data(ep, 0, buffer, buffer_length); in snd_usbmidi_raw_input()
844 if (!ep->ports[0].active) in snd_usbmidi_raw_output()
846 count = snd_rawmidi_transmit(ep->ports[0].substream, in snd_usbmidi_raw_output()
850 ep->ports[0].active = 0; in snd_usbmidi_raw_output()
869 snd_usbmidi_input_data(ep, 0, buffer + 2, buffer_length - 2); in snd_usbmidi_ftdi_input()
883 while (buffer_length && buffer[buffer_length - 1] == 0xFD) in snd_usbmidi_us122l_input()
886 snd_usbmidi_input_data(ep, 0, buffer, buffer_length); in snd_usbmidi_us122l_input()
894 if (!ep->ports[0].active) in snd_usbmidi_us122l_output()
905 count = snd_rawmidi_transmit(ep->ports[0].substream, in snd_usbmidi_us122l_output()
909 ep->ports[0].active = 0; in snd_usbmidi_us122l_output()
913 memset(urb->transfer_buffer + count, 0xFD, ep->max_transfer - count); in snd_usbmidi_us122l_output()
930 0xf0, in snd_usbmidi_emagic_init_out()
931 0x00, 0x20, 0x31, /* Emagic */ in snd_usbmidi_emagic_init_out()
932 0x64, /* Unitor8 */ in snd_usbmidi_emagic_init_out()
933 0x0b, /* version number request */ in snd_usbmidi_emagic_init_out()
934 0x00, /* command version */ in snd_usbmidi_emagic_init_out()
935 0x00, /* EEPROM, box 0 */ in snd_usbmidi_emagic_init_out()
936 0xf7 in snd_usbmidi_emagic_init_out()
947 0xf0, in snd_usbmidi_emagic_finish_out()
948 0x00, 0x20, 0x31, /* Emagic */ in snd_usbmidi_emagic_finish_out()
949 0x64, /* Unitor8 */ in snd_usbmidi_emagic_finish_out()
950 0x10, /* patch switch command */ in snd_usbmidi_emagic_finish_out()
951 0x00, /* command version */ in snd_usbmidi_emagic_finish_out()
952 0x7f, /* to all boxes */ in snd_usbmidi_emagic_finish_out()
953 0x40, /* last preset in EEPROM */ in snd_usbmidi_emagic_finish_out()
954 0xf7 in snd_usbmidi_emagic_finish_out()
965 for (i = 0; i < buffer_length; ++i) in snd_usbmidi_emagic_input()
966 if (buffer[i] == 0xff) { in snd_usbmidi_emagic_input()
975 while (buffer_length > 0) { in snd_usbmidi_emagic_input()
977 for (i = 0; i < buffer_length; ++i) in snd_usbmidi_emagic_input()
978 if (buffer[i] == 0xf5) in snd_usbmidi_emagic_input()
984 if (buffer_length <= 0) in snd_usbmidi_emagic_input()
986 /* assert(buffer[0] == 0xf5); */ in snd_usbmidi_emagic_input()
992 if (buffer_length <= 0) in snd_usbmidi_emagic_input()
994 if (buffer[0] < 0x80) { in snd_usbmidi_emagic_input()
995 ep->current_port = (buffer[0] - 1) & 15; in snd_usbmidi_emagic_input()
999 ep->seen_f5 = 0; in snd_usbmidi_emagic_input()
1011 for (i = 0; i < 0x10; ++i) { in snd_usbmidi_emagic_output()
1019 port->active = 0; in snd_usbmidi_emagic_output()
1027 buf[0] = 0xf5; in snd_usbmidi_emagic_output()
1036 if (length > 0) { in snd_usbmidi_emagic_output()
1043 if (buf_free < ep->max_transfer && buf_free > 0) { in snd_usbmidi_emagic_output()
1044 *buf = 0xff; in snd_usbmidi_emagic_output()
1086 return open ? -ENODEV : 0; in substream_open()
1091 if (!umidi->opened[0] && !umidi->opened[1]) { in substream_open()
1094 ctl->vd[0].access |= in substream_open()
1108 if (!umidi->opened[0] && !umidi->opened[1]) { in substream_open()
1111 ctl->vd[0].access &= in substream_open()
1120 return 0; in substream_open()
1129 for (i = 0; i < MIDI_MAX_ENDPOINTS; ++i) in snd_usbmidi_output_open()
1131 for (j = 0; j < 0x10; ++j) in snd_usbmidi_output_open()
1141 return substream_open(substream, 0, 1); in snd_usbmidi_output_open()
1149 return substream_open(substream, 0, 0); in snd_usbmidi_output_close()
1198 port->active = 0; in snd_usbmidi_output_drain()
1209 return substream_open(substream, 1, 0); in snd_usbmidi_input_close()
1252 for (i = 0; i < INPUT_URBS; ++i) in snd_usbmidi_in_endpoint_delete()
1279 for (i = 0; i < INPUT_URBS; ++i) { in snd_usbmidi_in_endpoint_create()
1280 ep->urbs[i] = usb_alloc_urb(0, GFP_KERNEL); in snd_usbmidi_in_endpoint_create()
1291 for (i = 0; i < INPUT_URBS; ++i) { in snd_usbmidi_in_endpoint_create()
1309 if (err < 0) { in snd_usbmidi_in_endpoint_create()
1317 return 0; in snd_usbmidi_in_endpoint_create()
1332 for (i = 0; i < OUTPUT_URBS; ++i) in snd_usbmidi_out_endpoint_clear()
1365 for (i = 0; i < OUTPUT_URBS; ++i) { in snd_usbmidi_out_endpoint_create()
1366 ep->urbs[i].urb = usb_alloc_urb(0, GFP_KERNEL); in snd_usbmidi_out_endpoint_create()
1385 case USB_ID(0x0a67, 0x5011): /* Medeli DD305 */ in snd_usbmidi_out_endpoint_create()
1386 case USB_ID(0x0a92, 0x1020): /* ESI M4U */ in snd_usbmidi_out_endpoint_create()
1387 case USB_ID(0x1430, 0x474b): /* RedOctane GH MIDI INTERFACE */ in snd_usbmidi_out_endpoint_create()
1388 case USB_ID(0x15ca, 0x0101): /* Textech USB Midi Cable */ in snd_usbmidi_out_endpoint_create()
1389 case USB_ID(0x15ca, 0x1806): /* Textech USB Midi Cable */ in snd_usbmidi_out_endpoint_create()
1390 case USB_ID(0x1a86, 0x752d): /* QinHeng CH345 "USB2.0-MIDI" */ in snd_usbmidi_out_endpoint_create()
1391 case USB_ID(0xfc08, 0x0101): /* Unknown vendor Cable */ in snd_usbmidi_out_endpoint_create()
1397 case USB_ID(0x0644, 0x800e): /* Tascam US-122L */ in snd_usbmidi_out_endpoint_create()
1398 case USB_ID(0x0644, 0x800f): /* Tascam US-144 */ in snd_usbmidi_out_endpoint_create()
1402 for (i = 0; i < OUTPUT_URBS; ++i) { in snd_usbmidi_out_endpoint_create()
1421 if (err < 0) { in snd_usbmidi_out_endpoint_create()
1433 for (i = 0; i < 0x10; ++i) in snd_usbmidi_out_endpoint_create()
1443 return 0; in snd_usbmidi_out_endpoint_create()
1457 for (i = 0; i < MIDI_MAX_ENDPOINTS; ++i) { in snd_usbmidi_free()
1490 for (i = 0; i < MIDI_MAX_ENDPOINTS; ++i) { in snd_usbmidi_disconnect()
1495 for (j = 0; j < OUTPUT_URBS; ++j) in snd_usbmidi_disconnect()
1499 ep->out->active_urbs = 0; in snd_usbmidi_disconnect()
1501 ep->out->drain_urbs = 0; in snd_usbmidi_disconnect()
1506 for (j = 0; j < INPUT_URBS; ++j) in snd_usbmidi_disconnect()
1556 PORT_INFO(vendor, product, num, name, 0, \
1561 PORT_INFO(vendor, product, num, name, 0, \
1590 GM_SYNTH_PORT(0x0499, 0x105c, 0, "%s Tone Generator", 128),
1591 CONTROL_PORT(0x0499, 0x105c, 1, "%s Remote Control"),
1592 EXTERNAL_PORT(0x0499, 0x105c, 2, "%s Thru"),
1593 CONTROL_PORT(0x0499, 0x105c, 3, "%s Editor"),
1595 CONTROL_PORT(0x0582, 0x0000, 2, "%s Control"),
1597 SOUNDCANVAS_PORT(0x0582, 0x0003, 0, "%s Part A", 128),
1598 SOUNDCANVAS_PORT(0x0582, 0x0003, 1, "%s Part B", 128),
1599 SOUNDCANVAS_PORT(0x0582, 0x0003, 2, "%s Part C", 128),
1600 SOUNDCANVAS_PORT(0x0582, 0x0003, 3, "%s Part D", 128),
1601 EXTERNAL_PORT(0x0582, 0x0003, 4, "%s MIDI 1"),
1602 EXTERNAL_PORT(0x0582, 0x0003, 5, "%s MIDI 2"),
1604 EXTERNAL_PORT(0x0582, 0x0004, 0, "%s MIDI"),
1605 CONTROL_PORT(0x0582, 0x0004, 1, "%s Control"),
1607 SOUNDCANVAS_PORT(0x0582, 0x0007, 0, "%s Part A", 64),
1608 SOUNDCANVAS_PORT(0x0582, 0x0007, 1, "%s Part B", 64),
1609 EXTERNAL_PORT(0x0582, 0x0007, 2, "%s MIDI"),
1611 SOUNDCANVAS_PORT(0x0582, 0x000b, 0, "%s Part A", 64),
1612 SOUNDCANVAS_PORT(0x0582, 0x000b, 1, "%s Part B", 64),
1613 EXTERNAL_PORT(0x0582, 0x000b, 2, "%s MIDI"),
1615 SOUNDCANVAS_PORT(0x0582, 0x000c, 0, "%s Part A", 64),
1616 SOUNDCANVAS_PORT(0x0582, 0x000c, 1, "%s Part B", 64),
1617 EXTERNAL_PORT(0x0582, 0x000c, 2, "%s MIDI"),
1619 CONTROL_PORT(0x0582, 0x0014, 8, "%s Control"),
1621 ROLAND_SYNTH_PORT(0x0582, 0x0016, 0, "%s Part A", 128),
1622 ROLAND_SYNTH_PORT(0x0582, 0x0016, 1, "%s Part B", 128),
1623 EXTERNAL_PORT(0x0582, 0x0016, 2, "%s MIDI 1"),
1624 EXTERNAL_PORT(0x0582, 0x0016, 3, "%s MIDI 2"),
1626 CONTROL_PORT(0x0582, 0x0023, 5, "%s Control"),
1628 ROLAND_SYNTH_PORT(0x0582, 0x0027, 0, "%s Part A", 64),
1629 ROLAND_SYNTH_PORT(0x0582, 0x0027, 1, "%s Part B", 64),
1630 EXTERNAL_PORT(0x0582, 0x0027, 2, "%s MIDI"),
1632 ROLAND_SYNTH_PORT(0x0582, 0x0029, 0, "%s Part A", 128),
1633 ROLAND_SYNTH_PORT(0x0582, 0x0029, 1, "%s Part B", 128),
1634 EXTERNAL_PORT(0x0582, 0x0029, 2, "%s MIDI 1"),
1635 EXTERNAL_PORT(0x0582, 0x0029, 3, "%s MIDI 2"),
1637 EXTERNAL_PORT(0x0582, 0x002b, 0, "%s MIDI"),
1638 CONTROL_PORT(0x0582, 0x002b, 1, "%s Control"),
1640 EXTERNAL_PORT(0x0582, 0x002f, 0, "%s MIDI"),
1641 EXTERNAL_PORT(0x0582, 0x002f, 1, "%s External MIDI"),
1642 EXTERNAL_PORT(0x0582, 0x002f, 2, "%s Sync"),
1644 EXTERNAL_PORT(0x0582, 0x0033, 0, "%s MIDI"),
1645 EXTERNAL_PORT(0x0582, 0x0033, 1, "%s 1"),
1646 EXTERNAL_PORT(0x0582, 0x0033, 2, "%s 2"),
1648 EXTERNAL_PORT(0x0582, 0x003b, 0, "%s MIDI"),
1649 CONTROL_PORT(0x0582, 0x003b, 1, "%s Control"),
1651 EXTERNAL_PORT(0x0582, 0x0044, 0, "%s MIDI"),
1652 CONTROL_PORT(0x0582, 0x0044, 1, "%s Control"),
1654 EXTERNAL_PORT(0x0582, 0x0048, 0, "%s MIDI"),
1655 EXTERNAL_PORT(0x0582, 0x0048, 1, "%s 1"),
1656 EXTERNAL_PORT(0x0582, 0x0048, 2, "%s 2"),
1658 EXTERNAL_PORT(0x0582, 0x004d, 0, "%s MIDI"),
1659 EXTERNAL_PORT(0x0582, 0x004d, 1, "%s 1"),
1660 EXTERNAL_PORT(0x0582, 0x004d, 2, "%s 2"),
1662 CONTROL_PORT(0x0582, 0x0089, 0, "%s Control"),
1664 CONTROL_PORT(0x0582, 0x009a, 3, "%s Control"),
1666 CONTROL_PORT(0x0582, 0x00b2, 0, "%s Control"),
1667 EXTERNAL_PORT(0x0582, 0x00b2, 1, "%s MIDI"),
1669 EXTERNAL_PORT(0x0582, 0x00eb, 0, "%s MIDI"),
1670 CONTROL_PORT(0x0582, 0x00eb, 1, "%s Control"),
1672 CONTROL_PORT(0x0582, 0x0102, 0, "%s Control"),
1673 EXTERNAL_PORT(0x0582, 0x0102, 1, "%s MIDI"),
1675 EXTERNAL_PORT(0x0582, 0x010f, 0, "%s MIDI"),
1676 CONTROL_PORT(0x0582, 0x010f, 1, "%s 1"),
1677 CONTROL_PORT(0x0582, 0x010f, 2, "%s 2"),
1679 ROLAND_SYNTH_PORT(0x0582, 0x0114, 0, "%s Synth", 128),
1680 EXTERNAL_PORT(0x0582, 0x0114, 1, "%s MIDI"),
1681 CONTROL_PORT(0x0582, 0x0114, 2, "%s Control"),
1683 EXTERNAL_PORT(0x0582, 0x0120, 0, "%s MIDI"),
1684 CONTROL_PORT(0x0582, 0x0120, 1, "%s Control"),
1685 EXTERNAL_PORT(0x0582, 0x0121, 0, "%s MIDI"),
1686 CONTROL_PORT(0x0582, 0x0121, 1, "%s Control"),
1688 CONTROL_PORT(0x0582, 0x0145, 0, "%s Control"),
1689 EXTERNAL_PORT(0x0582, 0x0145, 1, "%s MIDI"),
1691 CONTROL_PORT(0x0582, 0x0156, 0, "%s Keyboard"),
1692 EXTERNAL_PORT(0x0582, 0x0156, 1, "%s MIDI"),
1694 ROLAND_SYNTH_PORT(0x0582, 0x015b, 0, "%s Synth", 128),
1695 CONTROL_PORT(0x0582, 0x015b, 1, "%s Control"),
1697 CONTROL_PORT(0x0763, 0x1031, 8, "%s Control"),
1698 CONTROL_PORT(0x0763, 0x1033, 8, "%s Control"),
1700 EXTERNAL_PORT(0x07fd, 0x0001, 0, "%s MIDI A"),
1701 EXTERNAL_PORT(0x07fd, 0x0001, 1, "%s MIDI B"),
1703 EXTERNAL_PORT(0x086a, 0x0001, 8, "%s Broadcast"),
1704 EXTERNAL_PORT(0x086a, 0x0002, 8, "%s Broadcast"),
1705 EXTERNAL_PORT(0x086a, 0x0003, 4, "%s Broadcast"),
1707 CONTROL_PORT(0x09e8, 0x0062, 0, "%s Control"),
1708 PORT_INFO(0x09e8, 0x0062, 1, "%s MIDI", 0,
1712 EXTERNAL_PORT(0x133e, 0x0815, 0, "%s MIDI"),
1713 PORT_INFO(0x133e, 0x0815, 1, "%s Synth", 0,
1723 for (i = 0; i < ARRAY_SIZE(snd_usbmidi_port_info); ++i) { in find_port_info()
1760 if (!extra[0]) in find_usb_in_jack_descriptor()
1762 extralen -= extra[0]; in find_usb_in_jack_descriptor()
1763 extra += extra[0]; in find_usb_in_jack_descriptor()
1783 if (!extra[0]) in find_usb_out_jack_descriptor()
1785 extralen -= extra[0]; in find_usb_out_jack_descriptor()
1786 extra += extra[0]; in find_usb_out_jack_descriptor()
1817 if (intf && jack_id >= 0) { in snd_usbmidi_init_substream()
1819 iJack = 0; in snd_usbmidi_init_substream()
1834 if (iJack != 0) { in snd_usbmidi_init_substream()
1858 int out_ports = 0, in_ports = 0; in snd_usbmidi_create_endpoints()
1860 for (i = 0; i < MIDI_MAX_ENDPOINTS; ++i) { in snd_usbmidi_create_endpoints()
1865 if (err < 0) in snd_usbmidi_create_endpoints()
1872 if (err < 0) in snd_usbmidi_create_endpoints()
1876 for (j = 0; j < 0x10; ++j) { in snd_usbmidi_create_endpoints()
1897 return 0; in snd_usbmidi_create_endpoints()
1914 if (!extra[0]) in find_usb_ms_endpoint_descriptor()
1916 extralen -= extra[0]; in find_usb_ms_endpoint_descriptor()
1917 extra += extra[0]; in find_usb_ms_endpoint_descriptor()
1940 hostif = &intf->altsetting[0]; in snd_usbmidi_get_ms_info()
1948 ((uint8_t *)&ms_header->bcdMSC)[1], ((uint8_t *)&ms_header->bcdMSC)[0]); in snd_usbmidi_get_ms_info()
1953 epidx = 0; in snd_usbmidi_get_ms_info()
1954 for (i = 0; i < intfd->bNumEndpoints; ++i) { in snd_usbmidi_get_ms_info()
1964 if (ms_ep->bNumEmbMIDIJack > 0x10) in snd_usbmidi_get_ms_info()
1988 for (j = 0; j < ms_ep->bNumEmbMIDIJack; ++j) in snd_usbmidi_get_ms_info()
2009 for (j = 0; j < ms_ep->bNumEmbMIDIJack; ++j) in snd_usbmidi_get_ms_info()
2017 return 0; in snd_usbmidi_get_ms_info()
2031 value->value.enumerated.item[0] = kcontrol->private_value; in roland_load_get()
2032 return 0; in roland_load_get()
2041 if (value->value.enumerated.item[0] > 1) in roland_load_put()
2044 changed = value->value.enumerated.item[0] != kcontrol->private_value; in roland_load_put()
2046 kcontrol->private_value = value->value.enumerated.item[0]; in roland_load_put()
2080 !((get_endpoint(hostif, 0)->bmAttributes & in snd_usbmidi_switch_roland_altsetting()
2092 if (snd_ctl_add(umidi->card, umidi->roland_load_ctl) < 0) in snd_usbmidi_switch_roland_altsetting()
2107 int i, out_eps = 0, in_eps = 0; in snd_usbmidi_detect_endpoints()
2109 if (USB_ID_VENDOR(umidi->usb_id) == 0x0582) in snd_usbmidi_detect_endpoints()
2112 if (endpoint[0].out_ep || endpoint[0].in_ep) in snd_usbmidi_detect_endpoints()
2113 return 0; in snd_usbmidi_detect_endpoints()
2121 for (i = 0; i < intfd->bNumEndpoints; ++i) { in snd_usbmidi_detect_endpoints()
2141 return (out_eps || in_eps) ? 0 : -ENOENT; in snd_usbmidi_detect_endpoints()
2153 for (i = 0; i < MIDI_MAX_ENDPOINTS; ++i) { in snd_usbmidi_detect_per_port_endpoints()
2155 endpoints[i].out_cables = 0x0001; in snd_usbmidi_detect_per_port_endpoints()
2157 endpoints[i].in_cables = 0x0001; in snd_usbmidi_detect_per_port_endpoints()
2186 cs_desc < hostif->extra + hostif->extralen && cs_desc[0] >= 2; in snd_usbmidi_detect_yamaha()
2187 cs_desc += cs_desc[0]) { in snd_usbmidi_detect_yamaha()
2222 cs_desc < hostif->extra + hostif->extralen && cs_desc[0] >= 2; in snd_usbmidi_detect_roland()
2223 cs_desc += cs_desc[0]) { in snd_usbmidi_detect_roland()
2224 if (cs_desc[0] >= 6 && in snd_usbmidi_detect_roland()
2226 cs_desc[2] == 0xf1 && in snd_usbmidi_detect_roland()
2227 cs_desc[3] == 0x02) { in snd_usbmidi_detect_roland()
2228 if (cs_desc[4] > 0x10 || cs_desc[5] > 0x10) in snd_usbmidi_detect_roland()
2233 } else if (cs_desc[0] >= 7 && in snd_usbmidi_detect_roland()
2271 if (intfd->bNumEndpoints < (endpoint->out_cables > 0x0001 ? 5 : 3)) { in snd_usbmidi_create_endpoints_midiman()
2276 epd = get_endpoint(hostif, 0); in snd_usbmidi_create_endpoints_midiman()
2278 dev_dbg(&umidi->dev->dev, "endpoint[0] isn't interrupt\n"); in snd_usbmidi_create_endpoints_midiman()
2286 if (endpoint->out_cables > 0x0001) { in snd_usbmidi_create_endpoints_midiman()
2298 ep_info.out_interval = 0; in snd_usbmidi_create_endpoints_midiman()
2299 ep_info.out_cables = endpoint->out_cables & 0x5555; in snd_usbmidi_create_endpoints_midiman()
2301 &umidi->endpoints[0]); in snd_usbmidi_create_endpoints_midiman()
2302 if (err < 0) in snd_usbmidi_create_endpoints_midiman()
2305 ep_info.in_ep = get_endpoint(hostif, 0)->bEndpointAddress & in snd_usbmidi_create_endpoints_midiman()
2307 ep_info.in_interval = get_endpoint(hostif, 0)->bInterval; in snd_usbmidi_create_endpoints_midiman()
2310 &umidi->endpoints[0]); in snd_usbmidi_create_endpoints_midiman()
2311 if (err < 0) in snd_usbmidi_create_endpoints_midiman()
2314 if (endpoint->out_cables > 0x0001) { in snd_usbmidi_create_endpoints_midiman()
2317 ep_info.out_cables = endpoint->out_cables & 0xaaaa; in snd_usbmidi_create_endpoints_midiman()
2320 if (err < 0) in snd_usbmidi_create_endpoints_midiman()
2324 for (cable = 0; cable < 0x10; ++cable) { in snd_usbmidi_create_endpoints_midiman()
2336 &umidi->endpoints[0].in->ports[cable].substream); in snd_usbmidi_create_endpoints_midiman()
2338 return 0; in snd_usbmidi_create_endpoints_midiman()
2354 if (err < 0) in snd_usbmidi_create_rawmidi()
2369 return 0; in snd_usbmidi_create_rawmidi()
2383 for (i = 0; i < MIDI_MAX_ENDPOINTS; ++i) { in snd_usbmidi_input_stop()
2386 for (j = 0; j < INPUT_URBS; ++j) in snd_usbmidi_input_stop()
2389 umidi->input_running = 0; in snd_usbmidi_input_stop()
2401 for (i = 0; i < INPUT_URBS; ++i) { in snd_usbmidi_input_start_ep()
2423 for (i = 0; i < MIDI_MAX_ENDPOINTS; ++i) in snd_usbmidi_input_start()
2489 timer_setup(&umidi->error_timer, snd_usbmidi_error_timer, 0); in __snd_usbmidi_create()
2492 memset(endpoints, 0, sizeof(endpoints)); in __snd_usbmidi_create()
2496 if (umidi->usb_id == USB_ID(0x0763, 0x0150)) /* M-Audio Uno */ in __snd_usbmidi_create()
2504 memcpy(&endpoints[0], quirk->data, in __snd_usbmidi_create()
2506 err = snd_usbmidi_detect_endpoints(umidi, &endpoints[0], 1); in __snd_usbmidi_create()
2509 err = snd_usbmidi_detect_yamaha(umidi, &endpoints[0]); in __snd_usbmidi_create()
2512 err = snd_usbmidi_detect_roland(umidi, &endpoints[0]); in __snd_usbmidi_create()
2516 memcpy(&endpoints[0], quirk->data, in __snd_usbmidi_create()
2518 err = 0; in __snd_usbmidi_create()
2528 * numbers as in interface 0. Since it is interface 1 that the in __snd_usbmidi_create()
2532 * interface 0, so we have to make sure that the USB core looks in __snd_usbmidi_create()
2533 * again at interface 0 by calling usb_set_interface() on it. in __snd_usbmidi_create()
2535 if (umidi->usb_id == USB_ID(0x07fd, 0x0001)) /* MOTU Fastlane */ in __snd_usbmidi_create()
2536 usb_set_interface(umidi->dev, 0, 0); in __snd_usbmidi_create()
2541 memcpy(&endpoints[0], quirk->data, in __snd_usbmidi_create()
2543 err = snd_usbmidi_detect_endpoints(umidi, &endpoints[0], 1); in __snd_usbmidi_create()
2553 endpoints[1].out_cables = 0; in __snd_usbmidi_create()
2559 err = usb_control_msg(umidi->dev, usb_sndctrlpipe(umidi->dev, 0), in __snd_usbmidi_create()
2560 3, 0x40, 0x60, 0, NULL, 0, 1000); in __snd_usbmidi_create()
2561 if (err < 0) in __snd_usbmidi_create()
2576 if (err < 0) in __snd_usbmidi_create()
2580 out_ports = 0; in __snd_usbmidi_create()
2581 in_ports = 0; in __snd_usbmidi_create()
2582 for (i = 0; i < MIDI_MAX_ENDPOINTS; ++i) { in __snd_usbmidi_create()
2587 if (err < 0) in __snd_usbmidi_create()
2592 err = snd_usbmidi_create_endpoints_midiman(umidi, &endpoints[0]); in __snd_usbmidi_create()
2595 if (err < 0) in __snd_usbmidi_create()
2603 return 0; in __snd_usbmidi_create()