Author: hselasky
Date: Sat Jan 12 11:14:59 2019
New Revision: 342961
URL: https://svnweb.freebsd.org/changeset/base/342961

Log:
  snd_uaudio: Add quirks for Edirol UA-25EX in advanced driver mode.
  
  Extend the vendor class USB audio quirk to cover devices without
  the USB audio control descriptor.
  
  PR:                   234794
  MFC after:            1 week
  Sponsored by:         Mellanox Technologies

Modified:
  head/sys/dev/sound/usb/uaudio.c
  head/sys/dev/sound/usb/uaudioreg.h
  head/sys/dev/usb/quirk/usb_quirk.c
  head/sys/dev/usb/usbdevs

Modified: head/sys/dev/sound/usb/uaudio.c
==============================================================================
--- head/sys/dev/sound/usb/uaudio.c     Sat Jan 12 08:30:13 2019        
(r342960)
+++ head/sys/dev/sound/usb/uaudio.c     Sat Jan 12 11:14:59 2019        
(r342961)
@@ -1745,7 +1745,7 @@ uaudio_chan_fill_info_sub(struct uaudio_softc *sc, str
                        continue;
                }
 
-               if ((acdp != NULL) &&
+               if ((acdp != NULL || sc->sc_uq_au_vendor_class != 0) &&
                    (desc->bDescriptorType == UDESC_CS_INTERFACE) &&
                    (desc->bDescriptorSubtype == AS_GENERAL) &&
                    (asid.v1 == NULL)) {
@@ -1761,7 +1761,7 @@ uaudio_chan_fill_info_sub(struct uaudio_softc *sc, str
                                }
                        }
                }
-               if ((acdp != NULL) &&
+               if ((acdp != NULL || sc->sc_uq_au_vendor_class != 0) &&
                    (desc->bDescriptorType == UDESC_CS_INTERFACE) &&
                    (desc->bDescriptorSubtype == FORMAT_TYPE) &&
                    (asf1d.v1 == NULL)) {
@@ -1800,7 +1800,7 @@ uaudio_chan_fill_info_sub(struct uaudio_softc *sc, str
                                continue;
                        }
                }
-               if ((acdp != NULL) &&
+               if ((acdp != NULL || sc->sc_uq_au_vendor_class != 0) &&
                    (desc->bDescriptorType == UDESC_CS_ENDPOINT) &&
                    (desc->bDescriptorSubtype == AS_GENERAL) &&
                    (sed.v1 == NULL)) {

Modified: head/sys/dev/sound/usb/uaudioreg.h
==============================================================================
--- head/sys/dev/sound/usb/uaudioreg.h  Sat Jan 12 08:30:13 2019        
(r342960)
+++ head/sys/dev/sound/usb/uaudioreg.h  Sat Jan 12 11:14:59 2019        
(r342961)
@@ -36,7 +36,7 @@
 #ifndef _UAUDIOREG_H_
 #define        _UAUDIOREG_H_
 
-#define        UAUDIO_VERSION          0x0100
+#define        UAUDIO_VERSION_10       0x0100
 #define        UAUDIO_VERSION_20       0x0200
 #define        UAUDIO_VERSION_30       0x0300
 

Modified: head/sys/dev/usb/quirk/usb_quirk.c
==============================================================================
--- head/sys/dev/usb/quirk/usb_quirk.c  Sat Jan 12 08:30:13 2019        
(r342960)
+++ head/sys/dev/usb/quirk/usb_quirk.c  Sat Jan 12 11:14:59 2019        
(r342961)
@@ -529,6 +529,7 @@ static struct usb_quirk_entry usb_quirks[USB_DEV_QUIRK
        USB_QUIRK(MAUDIO, FASTTRACKULTRA8R, 0x0000, 0xffff, UQ_AU_VENDOR_CLASS),
        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),
 
        /*
         * Quirks for manufacturers which USB devices does not respond

Modified: head/sys/dev/usb/usbdevs
==============================================================================
--- head/sys/dev/usb/usbdevs    Sat Jan 12 08:30:13 2019        (r342960)
+++ head/sys/dev/usb/usbdevs    Sat Jan 12 11:14:59 2019        (r342961)
@@ -3998,6 +3998,8 @@ product ROLAND SD20               0x0027  SD-20 MIDI Synth
 product ROLAND SD80            0x0029  SD-80 MIDI Synth
 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)
 
 /* Rockfire products */
 product ROCKFIRE GAMEPAD       0x2033  gamepad 203USB
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to