Subject: kern/18096: usbdevs id's and umidi quirks for Roland USB MIDI devices
To: None <gnats-bugs@gnats.netbsd.org>
From: None <clemens@ladisch.de>
List: netbsd-bugs
Date: 08/28/2002 02:30:52
>Number:         18096
>Category:       kern
>Synopsis:       usbdevs id's and umidi quirks for Roland USB MIDI devices
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    kern-bug-people
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Wed Aug 28 02:31:00 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     Clemens Ladisch
>Release:        
>Organization:
>Environment:
>Description:
Missing device ID id's and umidi quirks for Roland USB MIDI devices.
>How-To-Repeat:

>Fix:
These are the same quirks as in my Linux driver.
Not all devices have been tested.

patch and regen:

--- usbdevs.org	Wed Aug 28 08:33:38 2002
+++ usbdevs	Wed Aug 28 08:43:47 2002
@@ -1122,12 +1122,26 @@
 product	RAINBOW IKEY2000	0x1200	i-Key 2000  
 
 /* Roland products */
+product	ROLAND UA100		0x0000	UA-100 USB Audio I/F
+product	ROLAND UM4		0x0002	UM-4 MIDI I/F
 product	ROLAND SC8850		0x0003	RolandED SC-8850 SOUND Canvas MIDI Synth.
+product	ROLAND U8		0x0004	U-8 USB Audio I/F
+product	ROLAND UM2		0x0005	UM-2 MIDI I/F
+product	ROLAND SC8820		0x0007	SoundCanvas SC-8820 MIDI Synth.
+product	ROLAND PC300		0x0008	PC-300 MIDI Keyboard
 product	ROLAND UM1		0x0009	UM-1 MIDI I/F
+product	ROLAND SK500		0x000b	SoundCanvas SK-500 MIDI Keyboard
+product	ROLAND SCD70		0x000c	SC-D70 MIDI Synth.
 product ROLAND UA3		0x000f	EDIROL UA-3 USB audio I/F
+product	ROLAND XV5050		0x0012	XV-5050 MIDI Synth.
 product	ROLAND UM880N		0x0014	EDIROL UM-880 MIDI I/F (native)
 product	ROLAND UM880G		0x0015	EDIROL UM-880 MIDI I/F (generic)
 product	ROLAND SD90		0x0016	EDIROL SD-90 STDIO Canvas MIDI Synth.
+product	ROLAND UA1A		0x0018	UA-1A USB Audio I/F
+product	ROLAND UM550		0x0023	UM-550 MIDI I/F
+product	ROLAND SD20		0x0027	SD-20 MIDI Synth.
+product	ROLAND SD80		0x0029	SD-80 MIDI Synth.
+product	ROLAND UA700		0x002b	UA-700 USB Audio I/F
 
 /* Rockfire products */
 product ROCKFIRE GAMEPAD	0x2033	gamepad 203USB
@@ -1314,7 +1328,18 @@
 
 /* Yamaha products */
 product YAMAHA UX256		0x1000	UX256 MIDI I/F
+product	YAMAHA MU1000		0x1001	MU1000 MIDI Synth.
+product	YAMAHA MU2000		0x1002	MU2000 MIDI Synth.
+product	YAMAHA MU500		0x1003	MU500 MIDI Synth.
+product	YAMAHA UW500		0x1004	UW500 USB Audio I/F
+product	YAMAHA MOTIF6		0x1005	MOTIF6 MIDI Synth. Workstation
+product	YAMAHA MOTIF7		0x1006	MOTIF7 MIDI Synth. Workstation
+product	YAMAHA MOTIF8		0x1007	MOTIF8 MIDI Synth. Workstation
 product	YAMAHA UX96		0x1008	UX96 MIDI I/F
+product	YAMAHA UX16		0x1009	UX16 MIDI I/F
+product	YAMAHA S08		0x100e	S08 MIDI Keyboard
+product	YAMAHA CLP150		0x100f	CLP-150 digital piano
+product	YAMAHA CLP170		0x1010	CLP-170 digital piano
 product YAMAHA RPU200		0x3104	RP-U200
 
 /* Yano products */
--- umidi_quirks.c.org	Wed Aug 28 08:33:18 2002
+++ umidi_quirks.c	Tue Aug 27 19:08:46 2002
@@ -168,6 +168,201 @@
 	UMQ_TERMINATOR
 };
 
+/*
+ * ROLAND UA-100
+ */
+UMQ_FIXED_EP_DEF(ROLAND, ROLAND_UA100, 2, 1, 1) = {
+	/* out */
+	{ 0, 3 },
+	/* in */
+	{ 1, 3 }
+};
+
+UMQ_DEF(ROLAND, ROLAND_UA100, 2) = {
+	UMQ_FIXED_EP_REG(ROLAND, ROLAND_UA100, 2),
+	UMQ_TERMINATOR
+};
+
+/*
+ * ROLAND UM-4
+ */
+UMQ_FIXED_EP_DEF(ROLAND, ROLAND_UM4, 2, 1, 1) = {
+	/* out */
+	{ 0, 4 },
+	/* in */
+	{ 1, 4 }
+};
+
+UMQ_DEF(ROLAND, ROLAND_UM4, 2) = {
+	UMQ_FIXED_EP_REG(ROLAND, ROLAND_UM4, 2),
+	UMQ_TERMINATOR
+};
+
+/*
+ * ROLAND U-8
+ */
+UMQ_FIXED_EP_DEF(ROLAND, ROLAND_U8, 2, 1, 1) = {
+	/* out */
+	{ 0, 2 },
+	/* in */
+	{ 1, 2 }
+};
+
+UMQ_DEF(ROLAND, ROLAND_U8, 2) = {
+	UMQ_FIXED_EP_REG(ROLAND, ROLAND_U8, 2),
+	UMQ_TERMINATOR
+};
+
+/*
+ * ROLAND UM-2
+ */
+UMQ_FIXED_EP_DEF(ROLAND, ROLAND_UM2, 2, 1, 1) = {
+	/* out */
+	{ 0, 2 },
+	/* in */
+	{ 1, 2 }
+};
+
+UMQ_DEF(ROLAND, ROLAND_UM2, 2) = {
+	UMQ_FIXED_EP_REG(ROLAND, ROLAND_UM2, 2),
+	UMQ_TERMINATOR
+};
+
+/*
+ * ROLAND SC-8820
+ */
+UMQ_FIXED_EP_DEF(ROLAND, ROLAND_SC8820, 2, 1, 1) = {
+	/* out */
+	{ 0, 5 }, /* cables 0, 1, 4 only */
+	/* in */
+	{ 1, 5 } /* do. */
+};
+
+UMQ_DEF(ROLAND, ROLAND_SC8820, 2) = {
+	UMQ_FIXED_EP_REG(ROLAND, ROLAND_SC8820, 2),
+	UMQ_TERMINATOR
+};
+
+/*
+ * ROLAND PC-300
+ */
+UMQ_FIXED_EP_DEF(ROLAND, ROLAND_PC300, 2, 1, 1) = {
+	/* out */
+	{ 0, 1 },
+	/* in */
+	{ 1, 1 }
+};
+
+UMQ_DEF(ROLAND, ROLAND_PC300, 2) = {
+	UMQ_FIXED_EP_REG(ROLAND, ROLAND_PC300, 2),
+	UMQ_TERMINATOR
+};
+
+/*
+ * ROLAND SK-500
+ */
+UMQ_FIXED_EP_DEF(ROLAND, ROLAND_SK500, 2, 1, 1) = {
+	/* out */
+	{ 0, 5 }, /* cables 0, 1, 4 only */
+	/* in */
+	{ 1, 5 } /* do. */
+};
+
+UMQ_DEF(ROLAND, ROLAND_SK500, 2) = {
+	UMQ_FIXED_EP_REG(ROLAND, ROLAND_SK500, 2),
+	UMQ_TERMINATOR
+};
+
+/*
+ * ROLAND SC-D70
+ */
+UMQ_FIXED_EP_DEF(ROLAND, ROLAND_SCD70, 2, 1, 1) = {
+	/* out */
+	{ 0, 3 },
+	/* in */
+	{ 1, 3 }
+};
+
+UMQ_DEF(ROLAND, ROLAND_SCD70, 2) = {
+	UMQ_FIXED_EP_REG(ROLAND, ROLAND_SCD70, 2),
+	UMQ_TERMINATOR
+};
+
+/*
+ * ROLAND XV-5050
+ */
+UMQ_FIXED_EP_DEF(ROLAND, ROLAND_XV5050, 0, 1, 1) = {
+	/* out */
+	{ 0, 1 },
+	/* in */
+	{ 1, 1 }
+};
+
+UMQ_DEF(ROLAND, ROLAND_XV5050, 0) = {
+	UMQ_FIXED_EP_REG(ROLAND, ROLAND_XV5050, 0),
+	UMQ_TERMINATOR
+};
+
+/*
+ * ROLAND UM-550
+ */
+UMQ_FIXED_EP_DEF(ROLAND, ROLAND_UM550, 0, 1, 1) = {
+	/* out */
+	{ 0, 6 },
+	/* in */
+	{ 1, 6 }
+};
+
+UMQ_DEF(ROLAND, ROLAND_UM550, 0) = {
+	UMQ_FIXED_EP_REG(ROLAND, ROLAND_UM550, 0),
+	UMQ_TERMINATOR
+};
+
+/*
+ * ROLAND SD-20
+ */
+UMQ_FIXED_EP_DEF(ROLAND, ROLAND_SD20, 0, 1, 1) = {
+	/* out */
+	{ 0, 2 },
+	/* in */
+	{ 1, 3 }
+};
+
+UMQ_DEF(ROLAND, ROLAND_SD20, 0) = {
+	UMQ_FIXED_EP_REG(ROLAND, ROLAND_SD20, 0),
+	UMQ_TERMINATOR
+};
+
+/*
+ * ROLAND SD-80
+ */
+UMQ_FIXED_EP_DEF(ROLAND, ROLAND_SD80, 0, 1, 1) = {
+	/* out */
+	{ 0, 4 },
+	/* in */
+	{ 1, 4 }
+};
+
+UMQ_DEF(ROLAND, ROLAND_SD80, 0) = {
+	UMQ_FIXED_EP_REG(ROLAND, ROLAND_SD80, 0),
+	UMQ_TERMINATOR
+};
+
+/*
+ * ROLAND UA-700
+ */
+UMQ_FIXED_EP_DEF(ROLAND, ROLAND_UA700, 3, 1, 1) = {
+	/* out */
+	{ 0, 2 },
+	/* in */
+	{ 1, 2 }
+};
+
+UMQ_DEF(ROLAND, ROLAND_UA700, 3) = {
+	UMQ_FIXED_EP_REG(ROLAND, ROLAND_UA700, 3),
+	UMQ_TERMINATOR
+};
+
 
 
 /*
@@ -180,6 +375,19 @@
 	UMQ_REG(ROLAND, ROLAND_SC8850, 2),
 	UMQ_REG(ROLAND, ROLAND_SD90, 2),
 	UMQ_REG(ROLAND, ROLAND_UM880N, 0),
+	UMQ_REG(ROLAND, ROLAND_UA100, 2),
+	UMQ_REG(ROLAND, ROLAND_UM4, 2),
+	UMQ_REG(ROLAND, ROLAND_U8, 2),
+	UMQ_REG(ROLAND, ROLAND_UM2, 2),
+	UMQ_REG(ROLAND, ROLAND_SC8820, 2),
+	UMQ_REG(ROLAND, ROLAND_PC300, 2),
+	UMQ_REG(ROLAND, ROLAND_SK500, 2),
+	UMQ_REG(ROLAND, ROLAND_SCD70, 2),
+	UMQ_REG(ROLAND, ROLAND_XV5050, 0),
+	UMQ_REG(ROLAND, ROLAND_UM550, 0),
+	UMQ_REG(ROLAND, ROLAND_SD20, 0),
+	UMQ_REG(ROLAND, ROLAND_SD80, 0),
+	UMQ_REG(ROLAND, ROLAND_UA700, 3),
 	UMQ_TERMINATOR
 };
 

>Release-Note:
>Audit-Trail:
>Unformatted: