snd_uaudio: Support Roland UA-33
Apply the appropriate quirk. Also, introduce a new uaudio_vendor_audio table, similar to uaudio_vendor_midi, which includes non-standard USB audio devices. The Roland UA-33 needs this, bceause it comes with bInterfaceClass = 0xff (vendor-specific), so snd_uaudio(4) doesn't detect it. PR: 294814 Sponsored by: The FreeBSD Foundation MFC after: 1 week Reviewed by: emaste Pull Request: https://ron-dev.freebsd.org/FreeBSD/src/pulls/24
This commit is contained in:
@@ -713,6 +713,10 @@ static driver_t uaudio_driver = {
|
||||
.size = sizeof(struct uaudio_softc),
|
||||
};
|
||||
|
||||
static const STRUCT_USB_HOST_ID uaudio_vendor_audio[] = {
|
||||
{ USB_VPI(USB_VENDOR_ROLAND, 0x0132, 0) }, /* UA-33 */
|
||||
};
|
||||
|
||||
/* The following table is derived from Linux's quirks-table.h */
|
||||
static const STRUCT_USB_HOST_ID uaudio_vendor_midi[] = {
|
||||
{ USB_VPI(USB_VENDOR_YAMAHA, 0x1000, 0) }, /* UX256 */
|
||||
@@ -868,6 +872,11 @@ uaudio_probe(device_t dev)
|
||||
|
||||
/* lookup non-standard device(s) */
|
||||
|
||||
if (usbd_lookup_id_by_uaa(uaudio_vendor_audio,
|
||||
sizeof(uaudio_vendor_audio), uaa) == 0) {
|
||||
return (BUS_PROBE_SPECIFIC);
|
||||
}
|
||||
|
||||
if (usbd_lookup_id_by_uaa(uaudio_vendor_midi,
|
||||
sizeof(uaudio_vendor_midi), uaa) == 0) {
|
||||
return (BUS_PROBE_SPECIFIC);
|
||||
@@ -6258,4 +6267,5 @@ MODULE_DEPEND(snd_uaudio, sound, SOUND_MINVER, SOUND_PREFVER, SOUND_MAXVER);
|
||||
MODULE_DEPEND(snd_uaudio, hid, 1, 1, 1);
|
||||
MODULE_VERSION(snd_uaudio, 1);
|
||||
USB_PNP_HOST_INFO(uaudio_devs);
|
||||
USB_PNP_HOST_INFO(uaudio_vendor_audio);
|
||||
USB_PNP_HOST_INFO(uaudio_vendor_midi);
|
||||
|
||||
@@ -565,6 +565,7 @@ static struct usb_quirk_entry usb_quirks[USB_DEV_QUIRKS_MAX] = {
|
||||
USB_QUIRK(CMEDIA, CM6206, UQ_AU_SET_SPDIF_CM6206),
|
||||
USB_QUIRK(PLOYTEC, SPL_CRIMSON_1, UQ_CFG_INDEX_1),
|
||||
USB_QUIRK(ROLAND, UA25EX_AD, UQ_AU_VENDOR_CLASS),
|
||||
USB_QUIRK(ROLAND, UA33, UQ_AU_VENDOR_CLASS),
|
||||
|
||||
/* DYMO LabelManager Pnp */
|
||||
USB_QUIRK(DYMO, LABELMANAGERPNP, UQ_MSC_DYMO_EJECT),
|
||||
|
||||
@@ -4208,6 +4208,7 @@ product ROLAND UA700 0x002b UA-700 Audio I/F
|
||||
product ROLAND PCR300 0x0033 EDIROL PCR-300 MIDI I/F
|
||||
product ROLAND UA25EX_AD 0x00e6 EDIROL UA-25EX (Advanced Driver)
|
||||
product ROLAND UA25EX_CC 0x00e7 EDIROL UA-25EX (Class Compliant)
|
||||
product ROLAND UA33 0x0132 UA-33 Audio I/F
|
||||
|
||||
/* Rockfire products */
|
||||
product ROCKFIRE GAMEPAD 0x2033 gamepad 203USB
|
||||
|
||||
Reference in New Issue
Block a user