Subject: kern/33154: umidi quirks for Roland UM-3EX
To: None <kern-bug-people@netbsd.org, gnats-admin@netbsd.org,>
From: DHOYASHIKI Shinichi <clare@znet.or.jp>
List: netbsd-bugs
Date: 03/26/2006 15:50:00
>Number:         33154
>Category:       kern
>Synopsis:       umidi quirks for Roland UM-3EX
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    kern-bug-people
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 26 15:50:00 +0000 2006
>Originator:     DHOYASHIKI Shinichi
>Release:        NetBSD 3.99.15
>Organization:
at home
>Environment:
System: NetBSD minako.csel.org 3.99.15
	NetBSD 3.99.15 (MINAKO6) #3: Wed Mar 8 01:53:13 JST 2006
	clare@minako.csel.org:/src/sys/arch/i386/compile/MINAKO6 i386
Architecture: i386
Machine: i386
>Description:
        Missing device ID's and umidi quirks entries.
>How-To-Repeat:
>Fix:
	Following patches add support for Roland UM-3EX USB MIDI
	interface module.


Index: usbdevs
===================================================================
RCS file: /deck/cvsroot/netbsd/src/sys/dev/usb/usbdevs,v
retrieving revision 1.422
diff -u -t -r1.422 usbdevs
--- usbdevs	6 Feb 2006 17:33:26 -0000	1.422
+++ usbdevs	7 Mar 2006 16:48:21 -0000
@@ -1623,6 +1623,8 @@
 product ROLAND FANTOMX          0x006d  Fantom-X MIDI Synth.
 product ROLAND UA101            0x007d  EDIROL UA-101
 product ROLAND UA101F           0x008d  EDIROL UA-101 USB1
+product ROLAND UA1EX            0x0096  EDIROL UA-1EX
+product ROLAND UM3              0x009A  EDIROL UM-3
 
 /* Rockfire products */
 product ROCKFIRE GAMEPAD        0x2033  gamepad 203USB
Index: umidi_quirks.c
===================================================================
RCS file: /deck/cvsroot/netbsd/src/sys/dev/usb/umidi_quirks.c,v
retrieving revision 1.9
diff -u -t -r1.9 umidi_quirks.c
--- umidi_quirks.c	11 Dec 2005 12:24:01 -0000	1.9
+++ umidi_quirks.c	7 Mar 2006 16:48:58 -0000
@@ -436,6 +436,21 @@
 };
 
 /*
+ * ROLAND UM-3EX
+ */
+UMQ_FIXED_EP_DEF(ROLAND, ROLAND_UM3, 0, 1, 1) = {
+        /* out */
+        { 0, 3 },
+        /* in */
+        { 1, 3 }
+};
+
+UMQ_DEF(ROLAND, ROLAND_UM3, 0) = {
+        UMQ_FIXED_EP_REG(ROLAND, ROLAND_UM3, 0),
+        UMQ_TERMINATOR
+};
+
+/*
  * quirk list
  */
 struct umidi_quirk umidi_quirklist[] = {
@@ -463,6 +478,7 @@
         UMQ_REG(ROLAND, ROLAND_UA101F, 2),
         UMQ_REG(ROLAND, ROLAND_FANTOMX, 0),
         UMQ_REG(ROLAND, ROLAND_PCR, 0),
+        UMQ_REG(ROLAND, ROLAND_UM3, 0),
         UMQ_TERMINATOR
 };
 
===================================================================

	An example of dmesg output as follows:

umidi1 at uhub4 port 4 configuration 1 interface 0
umidi1: EDIROL UM-3, rev 1.10/1.00, addr 6
umidi1: (Fixed Endpoint)
umidi1: out=3, in=3
midi2 at umidi1: USB MIDI I/F
midi3 at umidi1: USB MIDI I/F
midi4 at umidi1: USB MIDI I/F