svn commit: r330187 - stable/11/sys/dev/iwm
Eitan Adler
eadler at FreeBSD.org
Thu Mar 1 06:16:42 UTC 2018
Author: eadler
Date: Thu Mar 1 06:16:40 2018
New Revision: 330187
URL: https://svnweb.freebsd.org/changeset/base/330187
Log:
MFC r314074:
[iwm] Simplify device id matching code a bit.
* Just add the struct iwm_cfg pointers to the iwm_devices array, to get
rid of the large switch clause.
Modified:
stable/11/sys/dev/iwm/if_iwm.c
Directory Properties:
stable/11/ (props changed)
Modified: stable/11/sys/dev/iwm/if_iwm.c
==============================================================================
--- stable/11/sys/dev/iwm/if_iwm.c Thu Mar 1 06:16:11 2018 (r330186)
+++ stable/11/sys/dev/iwm/if_iwm.c Thu Mar 1 06:16:40 2018 (r330187)
@@ -5929,19 +5929,30 @@ iwm_intr(void *arg)
#define PCI_PRODUCT_INTEL_WL_8260_2 0x24f4
static const struct iwm_devices {
- uint16_t device;
- const char *name;
+ uint16_t device;
+ const char *name;
+ const struct iwm_cfg *cfg;
} iwm_devices[] = {
- { PCI_PRODUCT_INTEL_WL_3160_1, "Intel Dual Band Wireless AC 3160" },
- { PCI_PRODUCT_INTEL_WL_3160_2, "Intel Dual Band Wireless AC 3160" },
- { PCI_PRODUCT_INTEL_WL_3165_1, "Intel Dual Band Wireless AC 3165" },
- { PCI_PRODUCT_INTEL_WL_3165_2, "Intel Dual Band Wireless AC 3165" },
- { PCI_PRODUCT_INTEL_WL_7260_1, "Intel Dual Band Wireless AC 7260" },
- { PCI_PRODUCT_INTEL_WL_7260_2, "Intel Dual Band Wireless AC 7260" },
- { PCI_PRODUCT_INTEL_WL_7265_1, "Intel Dual Band Wireless AC 7265" },
- { PCI_PRODUCT_INTEL_WL_7265_2, "Intel Dual Band Wireless AC 7265" },
- { PCI_PRODUCT_INTEL_WL_8260_1, "Intel Dual Band Wireless AC 8260" },
- { PCI_PRODUCT_INTEL_WL_8260_2, "Intel Dual Band Wireless AC 8260" },
+ { PCI_PRODUCT_INTEL_WL_3160_1, "Intel Dual Band Wireless AC 3160",
+ &iwm3160_cfg },
+ { PCI_PRODUCT_INTEL_WL_3160_2, "Intel Dual Band Wireless AC 3160",
+ &iwm3160_cfg },
+ { PCI_PRODUCT_INTEL_WL_3165_1, "Intel Dual Band Wireless AC 3165",
+ &iwm3165_cfg },
+ { PCI_PRODUCT_INTEL_WL_3165_2, "Intel Dual Band Wireless AC 3165",
+ &iwm3165_cfg },
+ { PCI_PRODUCT_INTEL_WL_7260_1, "Intel Dual Band Wireless AC 7260",
+ &iwm7260_cfg },
+ { PCI_PRODUCT_INTEL_WL_7260_2, "Intel Dual Band Wireless AC 7260",
+ &iwm7260_cfg },
+ { PCI_PRODUCT_INTEL_WL_7265_1, "Intel Dual Band Wireless AC 7265",
+ &iwm7265_cfg },
+ { PCI_PRODUCT_INTEL_WL_7265_2, "Intel Dual Band Wireless AC 7265",
+ &iwm7265_cfg },
+ { PCI_PRODUCT_INTEL_WL_8260_1, "Intel Dual Band Wireless AC 8260",
+ &iwm8260_cfg },
+ { PCI_PRODUCT_INTEL_WL_8260_2, "Intel Dual Band Wireless AC 8260",
+ &iwm8260_cfg },
};
static int
@@ -5964,34 +5975,20 @@ static int
iwm_dev_check(device_t dev)
{
struct iwm_softc *sc;
+ uint16_t devid;
+ int i;
sc = device_get_softc(dev);
- switch (pci_get_device(dev)) {
- case PCI_PRODUCT_INTEL_WL_3160_1:
- case PCI_PRODUCT_INTEL_WL_3160_2:
- sc->cfg = &iwm3160_cfg;
- return (0);
- case PCI_PRODUCT_INTEL_WL_3165_1:
- case PCI_PRODUCT_INTEL_WL_3165_2:
- sc->cfg = &iwm3165_cfg;
- return (0);
- case PCI_PRODUCT_INTEL_WL_7260_1:
- case PCI_PRODUCT_INTEL_WL_7260_2:
- sc->cfg = &iwm7260_cfg;
- return (0);
- case PCI_PRODUCT_INTEL_WL_7265_1:
- case PCI_PRODUCT_INTEL_WL_7265_2:
- sc->cfg = &iwm7265_cfg;
- return (0);
- case PCI_PRODUCT_INTEL_WL_8260_1:
- case PCI_PRODUCT_INTEL_WL_8260_2:
- sc->cfg = &iwm8260_cfg;
- return (0);
- default:
- device_printf(dev, "unknown adapter type\n");
- return ENXIO;
+ devid = pci_get_device(dev);
+ for (i = 0; i < nitems(iwm_devices); i++) {
+ if (iwm_devices[i].device == devid) {
+ sc->cfg = iwm_devices[i].cfg;
+ return (0);
+ }
}
+ device_printf(dev, "unknown adapter type\n");
+ return ENXIO;
}
/* PCI registers */
More information about the svn-src-stable-11
mailing list