ALSA: usb-audio: Simplify quirk entries with a macro
authorTakashi Iwai <tiwai@suse.de>
Mon, 17 Aug 2020 08:21:39 +0000 (10:21 +0200)
committerTakashi Iwai <tiwai@suse.de>
Thu, 20 Aug 2020 09:00:46 +0000 (11:00 +0200)
Introduce a new macro USB_AUDIO_DEVICE() for the entries matching with
the pid/vid pair and the class/subclass, and remove the open-code.

Link: https://lore.kernel.org/r/20200817082140.20232-3-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/usb/quirks-table.h

index 978f711..988bb9d 100644 (file)
        .idProduct = prod, \
        .bInterfaceClass = USB_CLASS_VENDOR_SPEC
 
+/* A standard entry matching with vid/pid and the audio class/subclass */
+#define USB_AUDIO_DEVICE(vend, prod) \
+       .match_flags = USB_DEVICE_ID_MATCH_DEVICE | \
+                      USB_DEVICE_ID_MATCH_INT_CLASS | \
+                      USB_DEVICE_ID_MATCH_INT_SUBCLASS, \
+       .idVendor = vend, \
+       .idProduct = prod, \
+       .bInterfaceClass = USB_CLASS_AUDIO, \
+       .bInterfaceSubClass = USB_SUBCLASS_AUDIOCONTROL
+
 /* FTDI devices */
 {
        USB_DEVICE(0x0403, 0xb8d8),
  * Logitech QuickCam: bDeviceClass is vendor-specific, so generic interface
  * class matches do not take effect without an explicit ID match.
  */
-{
-       .match_flags = USB_DEVICE_ID_MATCH_DEVICE |
-                      USB_DEVICE_ID_MATCH_INT_CLASS |
-                      USB_DEVICE_ID_MATCH_INT_SUBCLASS,
-       .idVendor = 0x046d,
-       .idProduct = 0x0850,
-       .bInterfaceClass = USB_CLASS_AUDIO,
-       .bInterfaceSubClass = USB_SUBCLASS_AUDIOCONTROL
-},
-{
-       .match_flags = USB_DEVICE_ID_MATCH_DEVICE |
-                      USB_DEVICE_ID_MATCH_INT_CLASS |
-                      USB_DEVICE_ID_MATCH_INT_SUBCLASS,
-       .idVendor = 0x046d,
-       .idProduct = 0x08ae,
-       .bInterfaceClass = USB_CLASS_AUDIO,
-       .bInterfaceSubClass = USB_SUBCLASS_AUDIOCONTROL
-},
-{
-       .match_flags = USB_DEVICE_ID_MATCH_DEVICE |
-                      USB_DEVICE_ID_MATCH_INT_CLASS |
-                      USB_DEVICE_ID_MATCH_INT_SUBCLASS,
-       .idVendor = 0x046d,
-       .idProduct = 0x08c6,
-       .bInterfaceClass = USB_CLASS_AUDIO,
-       .bInterfaceSubClass = USB_SUBCLASS_AUDIOCONTROL
-},
-{
-       .match_flags = USB_DEVICE_ID_MATCH_DEVICE |
-                      USB_DEVICE_ID_MATCH_INT_CLASS |
-                      USB_DEVICE_ID_MATCH_INT_SUBCLASS,
-       .idVendor = 0x046d,
-       .idProduct = 0x08f0,
-       .bInterfaceClass = USB_CLASS_AUDIO,
-       .bInterfaceSubClass = USB_SUBCLASS_AUDIOCONTROL
-},
-{
-       .match_flags = USB_DEVICE_ID_MATCH_DEVICE |
-                      USB_DEVICE_ID_MATCH_INT_CLASS |
-                      USB_DEVICE_ID_MATCH_INT_SUBCLASS,
-       .idVendor = 0x046d,
-       .idProduct = 0x08f5,
-       .bInterfaceClass = USB_CLASS_AUDIO,
-       .bInterfaceSubClass = USB_SUBCLASS_AUDIOCONTROL
-},
-{
-       .match_flags = USB_DEVICE_ID_MATCH_DEVICE |
-                      USB_DEVICE_ID_MATCH_INT_CLASS |
-                      USB_DEVICE_ID_MATCH_INT_SUBCLASS,
-       .idVendor = 0x046d,
-       .idProduct = 0x08f6,
-       .bInterfaceClass = USB_CLASS_AUDIO,
-       .bInterfaceSubClass = USB_SUBCLASS_AUDIOCONTROL
-},
-{
-       .match_flags = USB_DEVICE_ID_MATCH_DEVICE |
-                      USB_DEVICE_ID_MATCH_INT_CLASS |
-                      USB_DEVICE_ID_MATCH_INT_SUBCLASS,
-       .idVendor = 0x046d,
-       .idProduct = 0x0990,
-       .bInterfaceClass = USB_CLASS_AUDIO,
-       .bInterfaceSubClass = USB_SUBCLASS_AUDIOCONTROL,
-},
+{ USB_AUDIO_DEVICE(0x046d, 0x0850) },
+{ USB_AUDIO_DEVICE(0x046d, 0x08ae) },
+{ USB_AUDIO_DEVICE(0x046d, 0x08c6) },
+{ USB_AUDIO_DEVICE(0x046d, 0x08f0) },
+{ USB_AUDIO_DEVICE(0x046d, 0x08f5) },
+{ USB_AUDIO_DEVICE(0x046d, 0x08f6) },
+{ USB_AUDIO_DEVICE(0x046d, 0x0990) },
 
 /*
  * Yamaha devices
@@ -2831,13 +2785,7 @@ YAMAHA_DEVICE(0x7010, "UB99"),
  */
 
 #define AU0828_DEVICE(vid, pid, vname, pname) { \
-       .idVendor = vid, \
-       .idProduct = pid, \
-       .match_flags = USB_DEVICE_ID_MATCH_DEVICE | \
-                      USB_DEVICE_ID_MATCH_INT_CLASS | \
-                      USB_DEVICE_ID_MATCH_INT_SUBCLASS, \
-       .bInterfaceClass = USB_CLASS_AUDIO, \
-       .bInterfaceSubClass = USB_SUBCLASS_AUDIOCONTROL, \
+       USB_AUDIO_DEVICE(vid, pid), \
        .driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) { \
                .vendor_name = vname, \
                .product_name = pname, \
@@ -2867,13 +2815,7 @@ AU0828_DEVICE(0x2040, 0x7270, "Hauppauge", "HVR-950Q"),
 
 /* Syntek STK1160 */
 {
-       .match_flags = USB_DEVICE_ID_MATCH_DEVICE |
-                      USB_DEVICE_ID_MATCH_INT_CLASS |
-                      USB_DEVICE_ID_MATCH_INT_SUBCLASS,
-       .idVendor = 0x05e1,
-       .idProduct = 0x0408,
-       .bInterfaceClass = USB_CLASS_AUDIO,
-       .bInterfaceSubClass = USB_SUBCLASS_AUDIOCONTROL,
+       USB_AUDIO_DEVICE(0x05e1, 0x0408),
        .driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
                .vendor_name = "Syntek",
                .product_name = "STK1160",
@@ -3628,13 +3570,7 @@ AU0828_DEVICE(0x2040, 0x7270, "Hauppauge", "HVR-950Q"),
  * channels to be swapped and out of phase, which is dealt with in quirks.c.
  */
 {
-       .match_flags = USB_DEVICE_ID_MATCH_DEVICE |
-                      USB_DEVICE_ID_MATCH_INT_CLASS |
-                      USB_DEVICE_ID_MATCH_INT_SUBCLASS,
-       .idVendor = 0x534d,
-       .idProduct = 0x2109,
-       .bInterfaceClass = USB_CLASS_AUDIO,
-       .bInterfaceSubClass = USB_SUBCLASS_AUDIOCONTROL,
+       USB_AUDIO_DEVICE(0x534d, 0x2109),
        .driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
                .vendor_name = "MacroSilicon",
                .product_name = "MS2109",
@@ -3675,3 +3611,4 @@ AU0828_DEVICE(0x2040, 0x7270, "Hauppauge", "HVR-950Q"),
 },
 
 #undef USB_DEVICE_VENDOR_SPEC
+#undef USB_AUDIO_DEVICE