summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb/quirk
diff options
context:
space:
mode:
authorhselasky <hselasky@FreeBSD.org>2011-02-24 09:13:47 +0000
committerhselasky <hselasky@FreeBSD.org>2011-02-24 09:13:47 +0000
commit7e21857a467b489be83f79ca1e430863445d8863 (patch)
tree07b6f0fb54d3173749508731348b60894acd9797 /sys/dev/usb/quirk
parent3cf4cb4f56d5367288dedc4e3c713da744c1666b (diff)
downloadFreeBSD-src-7e21857a467b489be83f79ca1e430863445d8863.zip
FreeBSD-src-7e21857a467b489be83f79ca1e430863445d8863.tar.gz
- Add support for some non-standard USB MIDI devices from Roland, by
means of allowing vendor specific interface class for audio and MIDI devices. - Add new quirks for this. The vendor and product list in OpenBSD's dev/usb/umidi_quirks.c was used as reference. MFC after: 14 days Approved by: thompsa (mentor)
Diffstat (limited to 'sys/dev/usb/quirk')
-rw-r--r--sys/dev/usb/quirk/usb_quirk.c26
-rw-r--r--sys/dev/usb/quirk/usb_quirk.h3
2 files changed, 24 insertions, 5 deletions
diff --git a/sys/dev/usb/quirk/usb_quirk.c b/sys/dev/usb/quirk/usb_quirk.c
index 25d2621..0c3d673 100644
--- a/sys/dev/usb/quirk/usb_quirk.c
+++ b/sys/dev/usb/quirk/usb_quirk.c
@@ -94,11 +94,7 @@ static struct usb_quirk_entry usb_quirks[USB_DEV_QUIRKS_MAX] = {
USB_QUIRK(SILICONPORTALS, YAPPHONE, 0x100, 0x100, UQ_AU_INP_ASYNC),
USB_QUIRK(LOGITECH, UN53B, 0x0000, 0xffff, UQ_NO_STRINGS),
USB_QUIRK(ELSA, MODEM1, 0x0000, 0xffff, UQ_CFG_INDEX_1),
-
- /*
- * XXX The following quirks should have a more specific revision
- * number:
- */
+ /* Quirks for printer devices */
USB_QUIRK(HP, 895C, 0x0000, 0xffff, UQ_BROKEN_BIDIR),
USB_QUIRK(HP, 880C, 0x0000, 0xffff, UQ_BROKEN_BIDIR),
USB_QUIRK(HP, 815C, 0x0000, 0xffff, UQ_BROKEN_BIDIR),
@@ -458,6 +454,24 @@ static struct usb_quirk_entry usb_quirks[USB_DEV_QUIRKS_MAX] = {
USB_QUIRK(CHIPSBANK, USBMEMSTICK, 0x0000, 0xffff, UQ_MSC_NO_SYNC_CACHE),
USB_QUIRK(CHIPSBANK, USBMEMSTICK1, 0x0000, 0xffff, UQ_MSC_NO_SYNC_CACHE),
USB_QUIRK(NEWLINK, USB2IDEBRIDGE, 0x0000, 0xffff, UQ_MSC_NO_SYNC_CACHE),
+
+ /* Non-standard USB MIDI devices */
+ USB_QUIRK(ROLAND, UM1, 0x0000, 0xffff, UQ_AU_VENDOR_CLASS),
+ USB_QUIRK(ROLAND, SC8850, 0x0000, 0xffff, UQ_AU_VENDOR_CLASS),
+ USB_QUIRK(ROLAND, SD90, 0x0000, 0xffff, UQ_AU_VENDOR_CLASS),
+ USB_QUIRK(ROLAND, UM880N, 0x0000, 0xffff, UQ_AU_VENDOR_CLASS),
+ USB_QUIRK(ROLAND, UA100, 0x0000, 0xffff, UQ_AU_VENDOR_CLASS),
+ USB_QUIRK(ROLAND, UM4, 0x0000, 0xffff, UQ_AU_VENDOR_CLASS),
+ USB_QUIRK(ROLAND, U8, 0x0000, 0xffff, UQ_AU_VENDOR_CLASS),
+ USB_QUIRK(ROLAND, UM2, 0x0000, 0xffff, UQ_AU_VENDOR_CLASS),
+ USB_QUIRK(ROLAND, SC8820, 0x0000, 0xffff, UQ_AU_VENDOR_CLASS),
+ USB_QUIRK(ROLAND, PC300, 0x0000, 0xffff, UQ_AU_VENDOR_CLASS),
+ USB_QUIRK(ROLAND, SK500, 0x0000, 0xffff, UQ_AU_VENDOR_CLASS),
+ USB_QUIRK(ROLAND, SCD70, 0x0000, 0xffff, UQ_AU_VENDOR_CLASS),
+ USB_QUIRK(ROLAND, UM550, 0x0000, 0xffff, UQ_AU_VENDOR_CLASS),
+ USB_QUIRK(ROLAND, SD20, 0x0000, 0xffff, UQ_AU_VENDOR_CLASS),
+ USB_QUIRK(ROLAND, SD80, 0x0000, 0xffff, UQ_AU_VENDOR_CLASS),
+ USB_QUIRK(ROLAND, UA700, 0x0000, 0xffff, UQ_AU_VENDOR_CLASS),
};
#undef USB_QUIRK_VP
#undef USB_QUIRK
@@ -522,6 +536,8 @@ static const char *usb_quirk_str[USB_QUIRK_MAX] = {
[UQ_MSC_EJECT_SAEL_M460] = "UQ_MSC_EJECT_SAEL_M460",
[UQ_MSC_EJECT_HUAWEISCSI] = "UQ_MSC_EJECT_HUAWEISCSI",
[UQ_MSC_EJECT_TCT] = "UQ_MSC_EJECT_TCT",
+ [UQ_BAD_MIDI] = "UQ_BAD_MIDI",
+ [UQ_AU_VENDOR_CLASS] = "UQ_AU_VENDOR_CLASS",
};
/*------------------------------------------------------------------------*
diff --git a/sys/dev/usb/quirk/usb_quirk.h b/sys/dev/usb/quirk/usb_quirk.h
index 522b15a..e86794e 100644
--- a/sys/dev/usb/quirk/usb_quirk.h
+++ b/sys/dev/usb/quirk/usb_quirk.h
@@ -100,6 +100,9 @@ enum {
UQ_MSC_EJECT_HUAWEISCSI, /* ejects after Huawei SCSI command */
UQ_MSC_EJECT_TCT, /* ejects after TCT SCSI command */
+ UQ_BAD_MIDI, /* device claims MIDI class, but isn't */
+ UQ_AU_VENDOR_CLASS, /* audio device uses vendor and not audio class */
+
USB_QUIRK_MAX
};
OpenPOWER on IntegriCloud