sound: simplify au0828 quirk table
authorMauro Carvalho Chehab <mchehab@osg.samsung.com>
Thu, 30 Oct 2014 10:53:04 +0000 (07:53 -0300)
committerBen Hutchings <ben@decadent.org.uk>
Fri, 20 Feb 2015 00:49:22 +0000 (00:49 +0000)
commit 5d1f00a20d2d56ed480e64e938a2391353ee565b upstream.

Add a macro to simplify au0828 quirk table. That makes easier
to check it against the USB IDs at drivers/media/usb/au0828/au0828-cards.c.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
[bwh: Backported to 3.2:
 - Adjust filename
 - Quirks were in a different order]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/media/video/au0828/au0828-cards.c
sound/usb/quirks-table.h

index 1c6015a..d6adee6 100644 (file)
@@ -36,6 +36,11 @@ void hvr950q_cs5340_audio(void *priv, int enable)
                au0828_clear(dev, REG_000, 0x10);
 }
 
+/*
+ * WARNING: There's a quirks table at sound/usb/quirks-table.h
+ * that should also be updated every time a new device with V4L2 support
+ * is added here.
+ */
 struct au0828_board au0828_boards[] = {
        [AU0828_BOARD_UNKNOWN] = {
                .name   = "Unknown board",
index e467a58..ba09467 100644 (file)
@@ -2540,133 +2540,37 @@ YAMAHA_DEVICE(0x7010, "UB99"),
        }
 },
 
-/* Hauppauge HVR-950Q and HVR-850 */
-{
-       USB_DEVICE_VENDOR_SPEC(0x2040, 0x7200),
-       .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,
-       .driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
-               .vendor_name = "Hauppauge",
-               .product_name = "HVR-950Q",
-               .ifnum = QUIRK_ANY_INTERFACE,
-               .type = QUIRK_AUDIO_ALIGN_TRANSFER,
-       }
-},
-{
-       USB_DEVICE_VENDOR_SPEC(0x2040, 0x7240),
-       .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,
-       .driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
-               .vendor_name = "Hauppauge",
-               .product_name = "HVR-850",
-               .ifnum = QUIRK_ANY_INTERFACE,
-               .type = QUIRK_AUDIO_ALIGN_TRANSFER,
-       }
-},
-{
-       USB_DEVICE_VENDOR_SPEC(0x2040, 0x7210),
-       .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,
-       .driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
-               .vendor_name = "Hauppauge",
-               .product_name = "HVR-950Q",
-               .ifnum = QUIRK_ANY_INTERFACE,
-               .type = QUIRK_AUDIO_ALIGN_TRANSFER,
-       }
-},
-{
-       USB_DEVICE_VENDOR_SPEC(0x2040, 0x7217),
-       .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,
-       .driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
-               .vendor_name = "Hauppauge",
-               .product_name = "HVR-950Q",
-               .ifnum = QUIRK_ANY_INTERFACE,
-               .type = QUIRK_AUDIO_ALIGN_TRANSFER,
-       }
-},
-{
-       USB_DEVICE_VENDOR_SPEC(0x2040, 0x721b),
-       .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,
-       .driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
-               .vendor_name = "Hauppauge",
-               .product_name = "HVR-950Q",
-               .ifnum = QUIRK_ANY_INTERFACE,
-               .type = QUIRK_AUDIO_ALIGN_TRANSFER,
-       }
-},
-{
-       USB_DEVICE_VENDOR_SPEC(0x2040, 0x721e),
-       .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,
-       .driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
-               .vendor_name = "Hauppauge",
-               .product_name = "HVR-950Q",
-               .ifnum = QUIRK_ANY_INTERFACE,
-               .type = QUIRK_AUDIO_ALIGN_TRANSFER,
-       }
-},
-{
-       USB_DEVICE_VENDOR_SPEC(0x2040, 0x721f),
-       .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,
-       .driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
-               .vendor_name = "Hauppauge",
-               .product_name = "HVR-950Q",
-               .ifnum = QUIRK_ANY_INTERFACE,
-               .type = QUIRK_AUDIO_ALIGN_TRANSFER,
-       }
-},
-{
-       USB_DEVICE_VENDOR_SPEC(0x2040, 0x7280),
-       .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,
-       .driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
-               .vendor_name = "Hauppauge",
-               .product_name = "HVR-950Q",
-               .ifnum = QUIRK_ANY_INTERFACE,
-               .type = QUIRK_AUDIO_ALIGN_TRANSFER,
-       }
-},
-{
-       USB_DEVICE_VENDOR_SPEC(0x0fd9, 0x0008),
-       .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,
-       .driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
-               .vendor_name = "Hauppauge",
-               .product_name = "HVR-950Q",
-               .ifnum = QUIRK_ANY_INTERFACE,
-               .type = QUIRK_AUDIO_ALIGN_TRANSFER,
-       }
-},
+/*
+ * Auvitek au0828 devices with audio interface.
+ * This should be kept in sync with drivers/media/video/au0828/au0828-cards.c
+ * Please notice that some drivers are DVB only, and don't need to be
+ * here. That's the case, for example, of DVICO_FUSIONHDTV7.
+ */
+
+#define AU0828_DEVICE(vid, pid, vname, pname) { \
+       USB_DEVICE_VENDOR_SPEC(vid, 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, \
+       .driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) { \
+               .vendor_name = vname, \
+               .product_name = pname, \
+               .ifnum = QUIRK_ANY_INTERFACE, \
+               .type = QUIRK_AUDIO_ALIGN_TRANSFER, \
+       } \
+}
+
+AU0828_DEVICE(0x2040, 0x7200, "Hauppauge", "HVR-950Q"),
+AU0828_DEVICE(0x2040, 0x7210, "Hauppauge", "HVR-950Q"),
+AU0828_DEVICE(0x2040, 0x7217, "Hauppauge", "HVR-950Q"),
+AU0828_DEVICE(0x2040, 0x721b, "Hauppauge", "HVR-950Q"),
+AU0828_DEVICE(0x2040, 0x721e, "Hauppauge", "HVR-950Q"),
+AU0828_DEVICE(0x2040, 0x721f, "Hauppauge", "HVR-950Q"),
+AU0828_DEVICE(0x2040, 0x7240, "Hauppauge", "HVR-850"),
+AU0828_DEVICE(0x2040, 0x7280, "Hauppauge", "HVR-950Q"),
+AU0828_DEVICE(0x0fd9, 0x0008, "Hauppauge", "HVR-950Q"),
 
 /* Digidesign Mbox */
 {