Date: Sat, 13 Jun 2026 18:41:24 +0000 From: Christos Margiolis <christos@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Subject: git: 33c8e68d3237 - stable/14 - snd_uaudio: Support Roland UA-33 Message-ID: <6a2da454.22000.24c9de7f@gitrepo.freebsd.org>
index | next in thread | raw e-mail
The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=33c8e68d3237af2f0540ff39eed8439a67b3f90a commit 33c8e68d3237af2f0540ff39eed8439a67b3f90a Author: Christos Margiolis <christos@FreeBSD.org> AuthorDate: 2026-06-13 18:40:35 +0000 Commit: Christos Margiolis <christos@FreeBSD.org> CommitDate: 2026-06-13 18:40:35 +0000 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 (cherry picked from commit 549e740619873716b796a841a10f56fae3c3ad49) --- sys/dev/sound/usb/uaudio.c | 10 ++++++++++ sys/dev/usb/quirk/usb_quirk.c | 1 + sys/dev/usb/usbdevs | 1 + 3 files changed, 12 insertions(+) diff --git a/sys/dev/sound/usb/uaudio.c b/sys/dev/sound/usb/uaudio.c index 8238629a2a51..986cab8a7a62 100644 --- a/sys/dev/sound/usb/uaudio.c +++ b/sys/dev/sound/usb/uaudio.c @@ -715,6 +715,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 */ @@ -870,6 +874,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); @@ -6278,4 +6287,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); diff --git a/sys/dev/usb/quirk/usb_quirk.c b/sys/dev/usb/quirk/usb_quirk.c index 5920ffa934a0..dd319fde130d 100644 --- a/sys/dev/usb/quirk/usb_quirk.c +++ b/sys/dev/usb/quirk/usb_quirk.c @@ -619,6 +619,7 @@ static struct usb_quirk_entry usb_quirks[USB_DEV_QUIRKS_MAX] = { USB_QUIRK(CMEDIA, CM6206, 0x0000, 0xffff, UQ_AU_SET_SPDIF_CM6206), USB_QUIRK(PLOYTEC, SPL_CRIMSON_1, 0x0000, 0xffff, UQ_CFG_INDEX_1), USB_QUIRK(ROLAND, UA25EX_AD, 0x0000, 0xffff, UQ_AU_VENDOR_CLASS), + USB_QUIRK(ROLAND, UA33, 0x0000, 0xffff, UQ_AU_VENDOR_CLASS), /* * Quirks for manufacturers which USB devices does not respond diff --git a/sys/dev/usb/usbdevs b/sys/dev/usb/usbdevs index fa201f448fd6..97cd80795e3c 100644 --- a/sys/dev/usb/usbdevs +++ b/sys/dev/usb/usbdevs @@ -4201,6 +4201,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 203USBhome | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6a2da454.22000.24c9de7f>
