This patch is for the Yamaha USB MIDI controller KX49. http://www.yamahasynth.com/products/kx/index.html It has a 3-port MIDI interface and an HID interface (it has a tiny keyboard subset).
--------------dmesg---------------------------------------------------------------- usb 6-2: new full speed USB device using uhci_hcd and address 3 usb 6-2: configuration #1 chosen from 1 choice input: YAMAHA Corporation YAMAHA KX as /devices/pci0000:00/0000:00:1d.1/usb6/6-2/6-2:1.1/input/input12 input,hidraw1: USB HID v1.00 Keyboard [YAMAHA Corporation YAMAHA KX] on usb-0000:00:1d.1-2 usb 6-2: New USB device found, idVendor=0499, idProduct=104e usb 6-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0 usb 6-2: Product: YAMAHA KX usb 6-2: Manufacturer: YAMAHA Corporation ALSA /home/richard/tmp/usb/usbmidi.c:1312: created 3 output and 3 input ports usbcore: registered new interface driver snd-usb-audio -------------end dmesg--------------------------------------------------------------
diff -u -r alsa-kernel/usb/usbquirks.h b/usb/usbquirks.h --- alsa-kernel/usb/usbquirks.h 2008-07-08 21:35:42.000000000 +0800 +++ b/usb/usbquirks.h 2008-07-09 20:45:20.000000000 +0800 @@ -210,6 +210,7 @@ YAMAHA_DEVICE(0x1043, NULL), YAMAHA_DEVICE(0x1044, NULL), YAMAHA_DEVICE(0x1045, NULL), +YAMAHA_DEVICE(0x104E, "KX49"), YAMAHA_DEVICE(0x2000, "DGP-7"), YAMAHA_DEVICE(0x2001, "DGP-5"), YAMAHA_DEVICE(0x2002, NULL),
diff -u -r alsa-kernel/usb/usbquirks.h b/usb/usbquirks.h --- alsa-kernel/usb/usbquirks.h 2008-07-08 21:35:42.000000000 +0800 +++ b/usb/usbquirks.h 2008-07-09 20:45:20.000000000 +0800 @@ -210,6 +210,7 @@ YAMAHA_DEVICE(0x1043, NULL), YAMAHA_DEVICE(0x1044, NULL), YAMAHA_DEVICE(0x1045, NULL), +YAMAHA_DEVICE(0x104E, "KX49"), YAMAHA_DEVICE(0x2000, "DGP-7"), YAMAHA_DEVICE(0x2001, "DGP-5"), YAMAHA_DEVICE(0x2002, NULL),
Bus 006 Device 003: ID 0499:104e Yamaha Corp. Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x0499 Yamaha Corp. idProduct 0x104e bcdDevice 1.00 iManufacturer 1 YAMAHA Corporation iProduct 2 YAMAHA KX iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 109 bNumInterfaces 2 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xc0 Self Powered MaxPower 0mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 0 bInterfaceProtocol 255 iInterface 0 ** UNRECOGNIZED: 07 24 01 00 01 42 00 ** UNRECOGNIZED: 06 24 02 02 01 00 ** UNRECOGNIZED: 06 24 02 02 02 00 ** UNRECOGNIZED: 06 24 02 02 03 00 ** UNRECOGNIZED: 09 24 03 02 01 01 01 01 00 ** UNRECOGNIZED: 09 24 03 02 02 01 01 01 00 ** UNRECOGNIZED: 09 24 03 02 03 01 01 01 00 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 1 Boot Interface Subclass bInterfaceProtocol 1 Keyboard iInterface 3 HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.00 bCountryCode 0 Not supported bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 45 Report Descriptors: ** UNAVAILABLE ** Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 10 Device Status: 0x0001 Self Powered