ALSA: oxfw: code refactoring for existent device entry with specifier_id and version
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Tue, 18 May 2021 08:45:49 +0000 (17:45 +0900)
committerTakashi Iwai <tiwai@suse.de>
Tue, 18 May 2021 10:22:12 +0000 (12:22 +0200)
All of the devices known to be based on OXFW ASICs have the same layout
of configuration ROM, in which unit directory includes vendor, model,
specifier_id and version immediate values. Especially, the pair of
specifier_id and version is fixed to represent AV/C general protocol.

This commit refactors device entries to fulfil with these 4 elements.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Link: https://lore.kernel.org/r/20210518084557.102681-4-o-takashi@sakamocchi.jp
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/firewire/oxfw/oxfw.c

index 5490637..7be999c 100644 (file)
@@ -320,36 +320,24 @@ static const struct compat_info lacie_speakers = {
        .model_name = "FireWire Speakers",
 };
 
+#define OXFW_DEV_ENTRY(vendor, model, data) \
+{ \
+       .match_flags  = IEEE1394_MATCH_VENDOR_ID | \
+                       IEEE1394_MATCH_MODEL_ID | \
+                       IEEE1394_MATCH_SPECIFIER_ID | \
+                       IEEE1394_MATCH_VERSION, \
+       .vendor_id    = vendor, \
+       .model_id     = model, \
+       .specifier_id = SPECIFIER_1394TA, \
+       .version      = VERSION_AVC, \
+       .driver_data  = (kernel_ulong_t)data, \
+}
+
 static const struct ieee1394_device_id oxfw_id_table[] = {
-       {
-               .match_flags  = IEEE1394_MATCH_VENDOR_ID |
-                               IEEE1394_MATCH_MODEL_ID |
-                               IEEE1394_MATCH_SPECIFIER_ID |
-                               IEEE1394_MATCH_VERSION,
-               .vendor_id    = VENDOR_GRIFFIN,
-               .model_id     = 0x00f970,
-               .specifier_id = SPECIFIER_1394TA,
-               .version      = VERSION_AVC,
-               .driver_data  = (kernel_ulong_t)&griffin_firewave,
-       },
-       {
-               .match_flags  = IEEE1394_MATCH_VENDOR_ID |
-                               IEEE1394_MATCH_MODEL_ID |
-                               IEEE1394_MATCH_SPECIFIER_ID |
-                               IEEE1394_MATCH_VERSION,
-               .vendor_id    = VENDOR_LACIE,
-               .model_id     = 0x00f970,
-               .specifier_id = SPECIFIER_1394TA,
-               .version      = VERSION_AVC,
-               .driver_data  = (kernel_ulong_t)&lacie_speakers,
-       },
-       /* Behringer,F-Control Audio 202 */
-       {
-               .match_flags    = IEEE1394_MATCH_VENDOR_ID |
-                                 IEEE1394_MATCH_MODEL_ID,
-               .vendor_id      = VENDOR_BEHRINGER,
-               .model_id       = 0x00fc22,
-       },
+       OXFW_DEV_ENTRY(VENDOR_GRIFFIN, 0x00f970, &griffin_firewave),
+       OXFW_DEV_ENTRY(VENDOR_LACIE, 0x00f970, &lacie_speakers),
+       // Behringer,F-Control Audio 202.
+       OXFW_DEV_ENTRY(VENDOR_BEHRINGER, 0x00fc22, NULL),
        /*
         * Any Mackie(Loud) models (name string/model id):
         *  Onyx-i series (former models):      0x081216
@@ -367,34 +355,14 @@ static const struct ieee1394_device_id oxfw_id_table[] = {
                .specifier_id   = SPECIFIER_1394TA,
                .version        = VERSION_AVC,
        },
-       /* TASCAM, FireOne */
-       {
-               .match_flags    = IEEE1394_MATCH_VENDOR_ID |
-                                 IEEE1394_MATCH_MODEL_ID,
-               .vendor_id      = VENDOR_TASCAM,
-               .model_id       = 0x800007,
-       },
-       /* Stanton, Stanton Controllers & Systems 1 Mixer (SCS.1m) */
-       {
-               .match_flags    = IEEE1394_MATCH_VENDOR_ID |
-                                 IEEE1394_MATCH_MODEL_ID,
-               .vendor_id      = OUI_STANTON,
-               .model_id       = 0x001000,
-       },
-       /* Stanton, Stanton Controllers & Systems 1 Deck (SCS.1d) */
-       {
-               .match_flags    = IEEE1394_MATCH_VENDOR_ID |
-                                 IEEE1394_MATCH_MODEL_ID,
-               .vendor_id      = OUI_STANTON,
-               .model_id       = 0x002000,
-       },
-       // APOGEE, duet FireWire
-       {
-               .match_flags    = IEEE1394_MATCH_VENDOR_ID |
-                                 IEEE1394_MATCH_MODEL_ID,
-               .vendor_id      = OUI_APOGEE,
-               .model_id       = 0x01dddd,
-       },
+       // TASCAM, FireOne.
+       OXFW_DEV_ENTRY(VENDOR_TASCAM, 0x800007, NULL),
+       // Stanton, Stanton Controllers & Systems 1 Mixer (SCS.1m).
+       OXFW_DEV_ENTRY(OUI_STANTON, 0x001000, NULL),
+       // Stanton, Stanton Controllers & Systems 1 Deck (SCS.1d).
+       OXFW_DEV_ENTRY(OUI_STANTON, 0x002000, NULL),
+       // APOGEE, duet FireWire.
+       OXFW_DEV_ENTRY(OUI_APOGEE, 0x01dddd, NULL),
        { }
 };
 MODULE_DEVICE_TABLE(ieee1394, oxfw_id_table);