Page MenuHomeFreeBSD

D16363.diff
No OneTemporary

D16363.diff

Index: sys/dev/bktr/bktr_os.c
===================================================================
--- sys/dev/bktr/bktr_os.c
+++ sys/dev/bktr/bktr_os.c
@@ -211,23 +211,17 @@
static int bktr_shutdown( device_t dev );
static void bktr_intr(void *arg) { common_bktr_intr(arg); }
-static struct bktr_dev {
- uint16_t vendorid;
- uint16_t deviceid;
- uint8_t rev;
- const char *description;
-} bktr_devs[] = {
- {PCI_VENDOR_BROOKTREE, PCI_PRODUCT_BROOKTREE_BT848, 0x12,
- "BrookTree 848A"},
- {PCI_VENDOR_BROOKTREE, PCI_PRODUCT_BROOKTREE_BT848, 0,
- "BrookTree 848"},
- {PCI_VENDOR_BROOKTREE, PCI_PRODUCT_BROOKTREE_BT849, 0,
- "BrookTree 849A"},
- {PCI_VENDOR_BROOKTREE, PCI_PRODUCT_BROOKTREE_BT878, 0,
- "BrookTree 878"},
- {PCI_VENDOR_BROOKTREE, PCI_PRODUCT_BROOKTREE_BT879, 0,
- "BrookTree 879"},
- {0, 0, 0, NULL},
+struct pci_device_table bktr_devs[] = {
+ {PCI_DEV(PCI_VENDOR_BROOKTREE, PCI_PRODUCT_BROOKTREE_BT848), PCI_REVID(0x12),
+ PCI_DESCR("BrookTree 848A")},
+ {PCI_DEV(PCI_VENDOR_BROOKTREE, PCI_PRODUCT_BROOKTREE_BT848),
+ PCI_DESCR("BrookTree 848")},
+ {PCI_DEV(PCI_VENDOR_BROOKTREE, PCI_PRODUCT_BROOKTREE_BT849),
+ PCI_DESCR("BrookTree 849A")},
+ {PCI_DEV(PCI_VENDOR_BROOKTREE, PCI_PRODUCT_BROOKTREE_BT878),
+ PCI_DESCR("BrookTree 878")},
+ {PCI_DEV(PCI_VENDOR_BROOKTREE, PCI_PRODUCT_BROOKTREE_BT879),
+ PCI_DESCR("BrookTree 879")}
};
static device_method_t bktr_methods[] = {
@@ -293,8 +287,7 @@
MODULE_DEPEND(bktr, smbus, SMBUS_MINVER, SMBUS_MODVER, SMBUS_MAXVER);
#endif
DRIVER_MODULE(bktr, pci, bktr_driver, bktr_devclass, 0, 0);
-MODULE_PNP_INFO("U16:vendor;U16:device", pci, bktr, bktr_devs,
- sizeof(bktr_devs[0]), nitems(bktr_devs) - 1);
+PCI_PNP_INFO(bktr_devs);
MODULE_DEPEND(bktr, bktr_mem, 1,1,1);
MODULE_VERSION(bktr, 1);
@@ -305,38 +298,13 @@
static int
bktr_probe( device_t dev )
{
- unsigned int type = pci_get_devid(dev);
- unsigned int rev = pci_get_revid(dev);
- const struct bktr_dev *bktd;
- uint16_t vid;
- uint16_t did;
- size_t i;
-
- vid = PCI_VENDOR(type);
- did = PCI_PRODUCT(type);
-
- // XXX merge conflicts. Need to convert to PCI_MATCH instead.
- if (BKTR_PCI_VENDOR(type) == PCI_VENDOR_BROOKTREE)
- {
- switch (BKTR_PCI_PRODUCT(type)) {
- case PCI_PRODUCT_BROOKTREE_BT848:
- if (rev == 0x12)
- device_set_desc(dev, "BrookTree 848A");
- else
- device_set_desc(dev, "BrookTree 848");
- return BUS_PROBE_DEFAULT;
- case PCI_PRODUCT_BROOKTREE_BT849:
- device_set_desc(dev, "BrookTree 849A");
- return BUS_PROBE_DEFAULT;
- case PCI_PRODUCT_BROOKTREE_BT878:
- device_set_desc(dev, "BrookTree 878");
- return BUS_PROBE_DEFAULT;
- case PCI_PRODUCT_BROOKTREE_BT879:
- device_set_desc(dev, "BrookTree 879");
- return BUS_PROBE_DEFAULT;
- }
- }
- return ENXIO;
+ const struct pci_device_table *bktd;
+
+ bktd = PCI_MATCH(dev, bktr_devs);
+ if (bktd == NULL)
+ return (ENXIO);
+ device_set_desc(dev, bktd->descr);
+ return (BUS_PROBE_DEFAULT);
}
Index: sys/dev/dpt/dpt_pci.c
===================================================================
--- sys/dev/dpt/dpt_pci.c
+++ sys/dev/dpt/dpt_pci.c
@@ -64,7 +64,7 @@
struct pci_device_table dpt_devs[] = {
{PCI_DEV(DPT_VENDOR_ID, DPT_DEVICE_ID),
- PCI_DESCR("DPT Caching SCSI RAID Controller")},
+ PCI_DESCR("DPT Caching SCSI RAID Controller")}
};
static int
@@ -75,7 +75,7 @@
dpd = PCI_MATCH(dev, dpt_devs);
if (dpd == NULL)
return (ENXIO);
- device_set_desc(dev, dpd->description);
+ device_set_desc(dev, dpd->descr);
return (BUS_PROBE_DEFAULT);
}
Index: sys/dev/le/if_le_pci.c
===================================================================
--- sys/dev/le/if_le_pci.c
+++ sys/dev/le/if_le_pci.c
@@ -122,6 +122,13 @@
static device_resume_t le_pci_resume;
static device_suspend_t le_pci_suspend;
+struct pci_device_table le_devs[] = {
+ {PCI_DEV(AMD_VENDOR, AMD_PCNET_PCI),
+ PCI_DESCR("AMD PCnet-PCI")},
+ {PCI_DEV(AMD_VENDOR, AMD_PCNET_HOME),
+ PCI_DESCR("AMD PCnet-Home")}
+};
+
static device_method_t le_pci_methods[] = {
/* Device interface */
DEVMETHOD(device_probe, le_pci_probe),
@@ -137,6 +144,7 @@
DEFINE_CLASS_0(le, le_pci_driver, le_pci_methods, sizeof(struct le_pci_softc));
DRIVER_MODULE(le, pci, le_pci_driver, le_devclass, 0, 0);
+PCI_PNP_INFO(le_devs);
MODULE_DEPEND(le, ether, 1, 1, 1);
static const int le_home_supmedia[] = {
@@ -276,22 +284,13 @@
static int
le_pci_probe(device_t dev)
{
+ const struct pci_device_table *led;
- if (pci_get_vendor(dev) != AMD_VENDOR)
- return (ENXIO);
-
- switch (pci_get_device(dev)) {
- case AMD_PCNET_PCI:
- device_set_desc(dev, "AMD PCnet-PCI");
- /* Let pcn(4) win. */
- return (BUS_PROBE_LOW_PRIORITY);
- case AMD_PCNET_HOME:
- device_set_desc(dev, "AMD PCnet-Home");
- /* Let pcn(4) win. */
- return (BUS_PROBE_LOW_PRIORITY);
- default:
+ led = PCI_MATCH(dev, le_devs);
+ if (led == NULL)
return (ENXIO);
- }
+ device_set_desc(dev, led->descr);
+ return (BUS_PROBE_LOW_PRIORITY);
}
static int
Index: sys/dev/liquidio/lio_main.c
===================================================================
--- sys/dev/liquidio/lio_main.c
+++ sys/dev/liquidio/lio_main.c
@@ -145,28 +145,36 @@
uint8_t index;
};
-static struct lio_vendor_info lio_pci_tbl[] = {
+struct pci_device_table lio_pci_tbl[] = {
/* CN2350 10G */
- {PCI_VENDOR_ID_CAVIUM, LIO_CN23XX_PF_VID, LIO_CN2350_10G_SUBDEVICE,
- 0x02, 0},
+ {PCI_DEV(PCI_VENDOR_ID_CAVIUM, LIO_CN23XX_PF_VID),
+ .match_flag_subdevice = 1, .subdevice = (LIO_CN2350_10G_SUBDEVICE),
+ PCI_REVID(0x02), .unused (0),
+ PCI_DESCR("LiquidIO 2350 10GbE Server Adapter")},
/* CN2350 10G */
- {PCI_VENDOR_ID_CAVIUM, LIO_CN23XX_PF_VID, LIO_CN2350_10G_SUBDEVICE1,
- 0x02, 0},
+ {PCI_DEV(PCI_VENDOR_ID_CAVIUM, LIO_CN23XX_PF_VID),
+ .match_flag_subdevice = 1, .subdevice = (LIO_CN2350_10G_SUBDEVICE1),
+ PCI_REVID(0x02), .unused(0),
+ PCI_DESCR("LiquidIO 2350 10GbE Server Adapter")},
/* CN2360 10G */
- {PCI_VENDOR_ID_CAVIUM, LIO_CN23XX_PF_VID, LIO_CN2360_10G_SUBDEVICE,
- 0x02, 1},
+ {PCI_DEV(PCI_VENDOR_ID_CAVIUM, LIO_CN23XX_PF_VID),
+ .match_flag_subdevice = 1, .subdevice = (LIO_CN2360_10G_SUBDEVICE),
+ PCI_REVID(0x02), .unused(1),
+ PCI_DESCR("LiquidIO 2360 10GbE Server Adapter")},
/* CN2350 25G */
- {PCI_VENDOR_ID_CAVIUM, LIO_CN23XX_PF_VID, LIO_CN2350_25G_SUBDEVICE,
- 0x02, 2},
+ {PCI_DEV(PCI_VENDOR_ID_CAVIUM, LIO_CN23XX_PF_VID),
+ .match_flag_subdevice = 1, .subdevice = (LIO_CN2350_25G_SUBDEVICE),
+ PCI_REVID(0x02), .unused(2),
+ PCI_DESCR("LiquidIO 2350 25GbE Server Adapter")},
/* CN2360 25G */
- {PCI_VENDOR_ID_CAVIUM, LIO_CN23XX_PF_VID, LIO_CN2360_25G_SUBDEVICE,
- 0x02, 3},
-
- {0, 0, 0, 0, 0}
+ {PCI_DEV(PCI_VENDOR_ID_CAVIUM, LIO_CN23XX_PF_VID),
+ .match_flag_subdevice = 1, .subdevice = (LIO_CN2360_25G_SUBDEVICE),
+ PCI_REVID(0x02), .unused(3),
+ PCI_DESCR("LiquidIO 2360 25GbE Server Adapter")}
};
static char *lio_strings[] = {
@@ -195,38 +203,16 @@
static int
lio_probe(device_t dev)
{
- struct lio_vendor_info *tbl;
-
- uint16_t vendor_id;
- uint16_t device_id;
- uint16_t subdevice_id;
- uint8_t revision_id;
+ const struct pci_device_table *liod;
char device_ver[256];
- vendor_id = pci_get_vendor(dev);
- if (vendor_id != PCI_VENDOR_ID_CAVIUM)
+ liod = PCI_MATCH(dev, lio_pci_tbl);
+ if (liod == NULL)
return (ENXIO);
-
- device_id = pci_get_device(dev);
- subdevice_id = pci_get_subdevice(dev);
- revision_id = pci_get_revid(dev);
-
- tbl = lio_pci_tbl;
- while (tbl->vendor_id) {
- if ((vendor_id == tbl->vendor_id) &&
- (device_id == tbl->device_id) &&
- (subdevice_id == tbl->subdevice_id) &&
- (revision_id == tbl->revision_id)) {
- sprintf(device_ver, "%s, Version - %s",
- lio_strings[tbl->index], LIO_VERSION);
- device_set_desc_copy(dev, device_ver);
- return (BUS_PROBE_DEFAULT);
- }
-
- tbl++;
- }
-
- return (ENXIO);
+ sprintf(device_ver, "%s, Version - %s",
+ lio_strings[liod->unused], LIO_VERSION);
+ device_set_desc_copy(dev, device_ver);
+ return (BUS_PROBE_DEFAULT);
}
static int
@@ -414,6 +400,7 @@
devclass_t lio_devclass;
DRIVER_MODULE(lio, pci, lio_driver, lio_devclass, lio_event, 0);
+PCI_PNP_INFO(lio_pci_tbl);
MODULE_DEPEND(lio, pci, 1, 1, 1);
MODULE_DEPEND(lio, ether, 1, 1, 1);
Index: sys/dev/mly/mly.c
===================================================================
--- sys/dev/mly/mly.c
+++ sys/dev/mly/mly.c
@@ -147,10 +147,6 @@
sizeof(struct mly_softc)
};
-static devclass_t mly_devclass;
-DRIVER_MODULE(mly, pci, mly_pci_driver, mly_devclass, 0, 0);
-MODULE_DEPEND(mly, pci, 1, 1, 1);
-MODULE_DEPEND(mly, cam, 1, 1, 1);
static struct cdevsw mly_cdevsw = {
.d_version = D_VERSION,
@@ -183,6 +179,15 @@
{0, 0, 0, 0, 0, 0}
};
+
+static devclass_t mly_devclass;
+DRIVER_MODULE(mly, pci, mly_pci_driver, mly_devclass, 0, 0);
+MODULE_PNP_INFO("U16:vendor;U16:device;U16:subvendor;U16:subdevice", pci, mly,
+ mly_identifiers, sizeof(mly_identifiers[0]), nitems(mly_identifiers) - 1);
+MODULE_DEPEND(mly, pci, 1, 1, 1);
+MODULE_DEPEND(mly, cam, 1, 1, 1);
+
+
/********************************************************************************
* Compare the provided PCI device with the list we support.
*/
Index: sys/dev/mn/if_mn.c
===================================================================
--- sys/dev/mn/if_mn.c
+++ sys/dev/mn/if_mn.c
@@ -73,6 +73,8 @@
#define NMN 4
#endif
+#define SIEMENS_VENDOR_ID 0x110a
+
/* From: PEB 20321 data sheet, p187, table 22 */
struct m32xreg {
u_int32_t conf, cmd, stat, imask;
@@ -190,6 +192,11 @@
static ng_rcvdata_t ngmn_rcvdata;
static ng_disconnect_t ngmn_disconnect;
+struct pci_device_table mn_devs[] = {
+ {PCI_DEV(SIEMENS_VENDOR_ID, 0x2101),
+ PCI_DESCR("Munich32X E1/T1 HDLC Controller")}
+};
+
static struct ng_type mntypestruct = {
.version = NG_ABI_VERSION,
.name = NG_MN_NODE_TYPE,
@@ -1262,7 +1269,7 @@
static int
mn_probe (device_t self)
{
- u_int id = pci_get_devid(self);
+ const struct pci_device_table *mnd;
if (sizeof (struct m32xreg) != 256) {
printf("MN: sizeof(struct m32xreg) = %zd, should have been 256\n", sizeof (struct m32xreg));
@@ -1277,10 +1284,10 @@
return (ENXIO);
}
- if (id != 0x2101110a)
+ mnd = PCI_MATCH(self, mn_devs);
+ if (mnd == NULL)
return (ENXIO);
-
- device_set_desc_copy(self, "Munich32X E1/T1 HDLC Controller");
+ device_set_desc_copy(self, mnd->descr);
return (BUS_PROBE_DEFAULT);
}
@@ -1431,3 +1438,5 @@
static devclass_t mn_devclass;
DRIVER_MODULE(mn, pci, mn_driver, mn_devclass, 0, 0);
+PCI_PNP_INFO(mn_devs);
+
Index: sys/dev/mpr/mpr_pci.c
===================================================================
--- sys/dev/mpr/mpr_pci.c
+++ sys/dev/mpr/mpr_pci.c
@@ -88,9 +88,6 @@
sizeof(struct mpr_softc)
};
-static devclass_t mpr_devclass;
-DRIVER_MODULE(mpr, pci, mpr_pci_driver, mpr_devclass, 0, 0);
-MODULE_DEPEND(mpr, cam, 1, 1, 1);
struct mpr_ident {
uint16_t vendor;
@@ -154,6 +151,14 @@
{ 0, 0, 0, 0, 0, NULL }
};
+
+static devclass_t mpr_devclass;
+DRIVER_MODULE(mpr, pci, mpr_pci_driver, mpr_devclass, 0, 0);
+MODULE_PNP_INFO("U16:vendor;U16:device;U16:subvendor;U16:subdevice;D:#", pci, mpr,
+ mpr_identifiers, sizeof(mpr_identifiers[0]), nitems(mpr_identifiers) - 1);
+
+MODULE_DEPEND(mpr, cam, 1, 1, 1);
+
static struct mpr_ident *
mpr_find_ident(device_t dev)
{
Index: sys/dev/mps/mps_pci.c
===================================================================
--- sys/dev/mps/mps_pci.c
+++ sys/dev/mps/mps_pci.c
@@ -88,10 +88,6 @@
sizeof(struct mps_softc)
};
-static devclass_t mps_devclass;
-DRIVER_MODULE(mps, pci, mps_pci_driver, mps_devclass, 0, 0);
-MODULE_DEPEND(mps, cam, 1, 1, 1);
-
struct mps_ident {
uint16_t vendor;
uint16_t device;
@@ -147,6 +143,10 @@
{ 0, 0, 0, 0, 0, NULL }
};
+static devclass_t mps_devclass;
+DRIVER_MODULE(mps, pci, mps_pci_driver, mps_devclass, 0, 0);
+MODULE_PNP_INFO("U16:vendor;U16:device;U16:subvendor;U16:subdevice", pci, mps,
+ mps_identifiers, sizeof(mps_identifiers[0]), nitems(mps_identifiers) - 1);
static struct mps_ident *
mps_find_ident(device_t dev)
{
Index: sys/dev/mrsas/mrsas.c
===================================================================
--- sys/dev/mrsas/mrsas.c
+++ sys/dev/mrsas/mrsas.c
@@ -66,7 +66,6 @@
static void mrsas_ich_startup(void *arg);
static struct mrsas_mgmt_info mrsas_mgmt_info;
-static struct mrsas_ident *mrsas_find_ident(device_t);
static int mrsas_setup_msix(struct mrsas_softc *sc);
static int mrsas_allocate_msix(struct mrsas_softc *sc);
static void mrsas_shutdown_ctlr(struct mrsas_softc *sc, u_int32_t opcode);
@@ -174,23 +173,21 @@
* PCI device struct and table
*
*/
-typedef struct mrsas_ident {
- uint16_t vendor;
- uint16_t device;
- uint16_t subvendor;
- uint16_t subdevice;
- const char *desc;
-} MRSAS_CTLR_ID;
-
-MRSAS_CTLR_ID device_table[] = {
- {0x1000, MRSAS_TBOLT, 0xffff, 0xffff, "AVAGO Thunderbolt SAS Controller"},
- {0x1000, MRSAS_INVADER, 0xffff, 0xffff, "AVAGO Invader SAS Controller"},
- {0x1000, MRSAS_FURY, 0xffff, 0xffff, "AVAGO Fury SAS Controller"},
- {0x1000, MRSAS_INTRUDER, 0xffff, 0xffff, "AVAGO Intruder SAS Controller"},
- {0x1000, MRSAS_INTRUDER_24, 0xffff, 0xffff, "AVAGO Intruder_24 SAS Controller"},
- {0x1000, MRSAS_CUTLASS_52, 0xffff, 0xffff, "AVAGO Cutlass_52 SAS Controller"},
- {0x1000, MRSAS_CUTLASS_53, 0xffff, 0xffff, "AVAGO Cutlass_53 SAS Controller"},
- {0, 0, 0, 0, NULL}
+struct pci_device_table mrsas_devs[] = {
+ {PCI_DEV(0x1000, MRSAS_TBOLT), PCI_SUBDEV(0xffff, 0xffff),
+ PCI_DESCR("AVAGO Thunderbolt SAS Controller")},
+ {PCI_DEV(0x1000, MRSAS_INVADER), PCI_SUBDEV(0xffff, 0xffff),
+ PCI_DESCR("AVAGO Invader SAS Controller")},
+ {PCI_DEV(0x1000, MRSAS_FURY), PCI_SUBDEV(0xffff, 0xffff),
+ PCI_DESCR("AVAGO Fury SAS Controller")},
+ {PCI_DEV(0x1000, MRSAS_INTRUDER), PCI_SUBDEV(0xffff, 0xffff),
+ PCI_DESCR("AVAGO Intruder SAS Controller")},
+ {PCI_DEV(0x1000, MRSAS_INTRUDER_24), PCI_SUBDEV(0xffff, 0xffff),
+ PCI_DESCR("AVAGO Intruder_24 SAS Controller")},
+ {PCI_DEV(0x1000, MRSAS_CUTLASS_52), PCI_SUBDEV(0xffff, 0xffff),
+ PCI_DESCR("AVAGO Cutlass_52 SAS Controller")},
+ {PCI_DEV(0x1000, MRSAS_CUTLASS_53), PCI_SUBDEV(0xffff, 0xffff),
+ PCI_DESCR("AVAGO Cutlass_53 SAS Controller")}
};
/*
@@ -324,40 +321,24 @@
* PCI Support Functions
*
*/
-static struct mrsas_ident *
-mrsas_find_ident(device_t dev)
-{
- struct mrsas_ident *pci_device;
-
- for (pci_device = device_table; pci_device->vendor != 0; pci_device++) {
- if ((pci_device->vendor == pci_get_vendor(dev)) &&
- (pci_device->device == pci_get_device(dev)) &&
- ((pci_device->subvendor == pci_get_subvendor(dev)) ||
- (pci_device->subvendor == 0xffff)) &&
- ((pci_device->subdevice == pci_get_subdevice(dev)) ||
- (pci_device->subdevice == 0xffff)))
- return (pci_device);
- }
- return (NULL);
-}
static int
mrsas_probe(device_t dev)
{
static u_int8_t first_ctrl = 1;
- struct mrsas_ident *id;
+ const struct pci_device_table *mrsd;
- if ((id = mrsas_find_ident(dev)) != NULL) {
- if (first_ctrl) {
- printf("AVAGO MegaRAID SAS FreeBSD mrsas driver version: %s\n",
- MRSAS_VERSION);
- first_ctrl = 0;
- }
- device_set_desc(dev, id->desc);
- /* between BUS_PROBE_DEFAULT and BUS_PROBE_LOW_PRIORITY */
- return (-30);
- }
- return (ENXIO);
+ mrsd = PCI_MATCH(dev, mrsas_devs);
+ if (mrsd == NULL)
+ return (ENXIO);
+ if (first_ctrl) {
+ printf("AVAGO MegaRAID SAS FreeBSD mrsas driver version: %s\n",
+ MRSAS_VERSION);
+ first_ctrl = 0;
+ }
+ device_set_desc(dev, mrsd->descr);
+ /* between BUS_PROBE_DEFAULT and BUS_PROBE_LOW_PRIORITY */
+ return (-30);
}
/*
@@ -4598,4 +4579,5 @@
static devclass_t mrsas_devclass;
DRIVER_MODULE(mrsas, pci, mrsas_driver, mrsas_devclass, 0, 0);
+PCI_PNP_INFO(mrsas_devs);
MODULE_DEPEND(mrsas, cam, 1, 1, 1);
Index: sys/dev/msk/if_msk.c
===================================================================
--- sys/dev/msk/if_msk.c
+++ sys/dev/msk/if_msk.c
@@ -165,79 +165,75 @@
/*
* Devices supported by this driver.
*/
-static const struct msk_product {
- uint16_t msk_vendorid;
- uint16_t msk_deviceid;
- const char *msk_name;
-} msk_products[] = {
- { VENDORID_SK, DEVICEID_SK_YUKON2,
- "SK-9Sxx Gigabit Ethernet" },
- { VENDORID_SK, DEVICEID_SK_YUKON2_EXPR,
- "SK-9Exx Gigabit Ethernet"},
- { VENDORID_MARVELL, DEVICEID_MRVL_8021CU,
- "Marvell Yukon 88E8021CU Gigabit Ethernet" },
- { VENDORID_MARVELL, DEVICEID_MRVL_8021X,
- "Marvell Yukon 88E8021 SX/LX Gigabit Ethernet" },
- { VENDORID_MARVELL, DEVICEID_MRVL_8022CU,
- "Marvell Yukon 88E8022CU Gigabit Ethernet" },
- { VENDORID_MARVELL, DEVICEID_MRVL_8022X,
- "Marvell Yukon 88E8022 SX/LX Gigabit Ethernet" },
- { VENDORID_MARVELL, DEVICEID_MRVL_8061CU,
- "Marvell Yukon 88E8061CU Gigabit Ethernet" },
- { VENDORID_MARVELL, DEVICEID_MRVL_8061X,
- "Marvell Yukon 88E8061 SX/LX Gigabit Ethernet" },
- { VENDORID_MARVELL, DEVICEID_MRVL_8062CU,
- "Marvell Yukon 88E8062CU Gigabit Ethernet" },
- { VENDORID_MARVELL, DEVICEID_MRVL_8062X,
- "Marvell Yukon 88E8062 SX/LX Gigabit Ethernet" },
- { VENDORID_MARVELL, DEVICEID_MRVL_8035,
- "Marvell Yukon 88E8035 Fast Ethernet" },
- { VENDORID_MARVELL, DEVICEID_MRVL_8036,
- "Marvell Yukon 88E8036 Fast Ethernet" },
- { VENDORID_MARVELL, DEVICEID_MRVL_8038,
- "Marvell Yukon 88E8038 Fast Ethernet" },
- { VENDORID_MARVELL, DEVICEID_MRVL_8039,
- "Marvell Yukon 88E8039 Fast Ethernet" },
- { VENDORID_MARVELL, DEVICEID_MRVL_8040,
- "Marvell Yukon 88E8040 Fast Ethernet" },
- { VENDORID_MARVELL, DEVICEID_MRVL_8040T,
- "Marvell Yukon 88E8040T Fast Ethernet" },
- { VENDORID_MARVELL, DEVICEID_MRVL_8042,
- "Marvell Yukon 88E8042 Fast Ethernet" },
- { VENDORID_MARVELL, DEVICEID_MRVL_8048,
- "Marvell Yukon 88E8048 Fast Ethernet" },
- { VENDORID_MARVELL, DEVICEID_MRVL_4361,
- "Marvell Yukon 88E8050 Gigabit Ethernet" },
- { VENDORID_MARVELL, DEVICEID_MRVL_4360,
- "Marvell Yukon 88E8052 Gigabit Ethernet" },
- { VENDORID_MARVELL, DEVICEID_MRVL_4362,
- "Marvell Yukon 88E8053 Gigabit Ethernet" },
- { VENDORID_MARVELL, DEVICEID_MRVL_4363,
- "Marvell Yukon 88E8055 Gigabit Ethernet" },
- { VENDORID_MARVELL, DEVICEID_MRVL_4364,
- "Marvell Yukon 88E8056 Gigabit Ethernet" },
- { VENDORID_MARVELL, DEVICEID_MRVL_4365,
- "Marvell Yukon 88E8070 Gigabit Ethernet" },
- { VENDORID_MARVELL, DEVICEID_MRVL_436A,
- "Marvell Yukon 88E8058 Gigabit Ethernet" },
- { VENDORID_MARVELL, DEVICEID_MRVL_436B,
- "Marvell Yukon 88E8071 Gigabit Ethernet" },
- { VENDORID_MARVELL, DEVICEID_MRVL_436C,
- "Marvell Yukon 88E8072 Gigabit Ethernet" },
- { VENDORID_MARVELL, DEVICEID_MRVL_436D,
- "Marvell Yukon 88E8055 Gigabit Ethernet" },
- { VENDORID_MARVELL, DEVICEID_MRVL_4370,
- "Marvell Yukon 88E8075 Gigabit Ethernet" },
- { VENDORID_MARVELL, DEVICEID_MRVL_4380,
- "Marvell Yukon 88E8057 Gigabit Ethernet" },
- { VENDORID_MARVELL, DEVICEID_MRVL_4381,
- "Marvell Yukon 88E8059 Gigabit Ethernet" },
- { VENDORID_DLINK, DEVICEID_DLINK_DGE550SX,
- "D-Link 550SX Gigabit Ethernet" },
- { VENDORID_DLINK, DEVICEID_DLINK_DGE560SX,
- "D-Link 560SX Gigabit Ethernet" },
- { VENDORID_DLINK, DEVICEID_DLINK_DGE560T,
- "D-Link 560T Gigabit Ethernet" }
+struct pci_device_table msk_devs[] = {
+ {PCI_DEV(VENDORID_SK, DEVICEID_SK_YUKON2),
+ PCI_DESCR("SK-9Sxx Gigabit Ethernet")},
+ {PCI_DEV(VENDORID_SK, DEVICEID_SK_YUKON2_EXPR),
+ PCI_DESCR("SK-9Exx Gigabit Ethernet")},
+ {PCI_DEV(VENDORID_MARVELL, DEVICEID_MRVL_8021CU),
+ PCI_DESCR("Marvell Yukon 88E8021CU Gigabit Ethernet")},
+ {PCI_DEV(VENDORID_MARVELL, DEVICEID_MRVL_8021X),
+ PCI_DESCR("Marvell Yukon 88E8021 SX/LX Gigabit Ethernet")},
+ {PCI_DEV(VENDORID_MARVELL, DEVICEID_MRVL_8022CU),
+ PCI_DESCR("Marvell Yukon 88E8022CU Gigabit Ethernet")},
+ {PCI_DEV(VENDORID_MARVELL, DEVICEID_MRVL_8022X),
+ PCI_DESCR("Marvell Yukon 88E8022 SX/LX Gigabit Ethernet")},
+ {PCI_DEV(VENDORID_MARVELL, DEVICEID_MRVL_8061CU),
+ PCI_DESCR("Marvell Yukon 88E8061CU Gigabit Ethernet")},
+ {PCI_DEV(VENDORID_MARVELL, DEVICEID_MRVL_8061X),
+ PCI_DESCR("Marvell Yukon 88E8061 SX/LX Gigabit Ethernet")},
+ {PCI_DEV(VENDORID_MARVELL, DEVICEID_MRVL_8062CU),
+ PCI_DESCR("Marvell Yukon 88E8062CU Gigabit Ethernet")},
+ {PCI_DEV(VENDORID_MARVELL, DEVICEID_MRVL_8062X),
+ PCI_DESCR("Marvell Yukon 88E8062 SX/LX Gigabit Ethernet")},
+ {PCI_DEV(VENDORID_MARVELL, DEVICEID_MRVL_8035),
+ PCI_DESCR("Marvell Yukon 88E8035 Fast Ethernet")},
+ {PCI_DEV(VENDORID_MARVELL, DEVICEID_MRVL_8036),
+ PCI_DESCR("Marvell Yukon 88E8036 Fast Ethernet")},
+ {PCI_DEV(VENDORID_MARVELL, DEVICEID_MRVL_8038),
+ PCI_DESCR("Marvell Yukon 88E8038 Fast Ethernet")},
+ {PCI_DEV(VENDORID_MARVELL, DEVICEID_MRVL_8039),
+ PCI_DESCR("Marvell Yukon 88E8039 Fast Ethernet")},
+ {PCI_DEV(VENDORID_MARVELL, DEVICEID_MRVL_8040),
+ PCI_DESCR("Marvell Yukon 88E8040 Fast Ethernet")},
+ {PCI_DEV(VENDORID_MARVELL, DEVICEID_MRVL_8040T),
+ PCI_DESCR("Marvell Yukon 88E8040T Fast Ethernet")},
+ {PCI_DEV(VENDORID_MARVELL, DEVICEID_MRVL_8042),
+ PCI_DESCR("Marvell Yukon 88E8042 Fast Ethernet")},
+ {PCI_DEV(VENDORID_MARVELL, DEVICEID_MRVL_8048),
+ PCI_DESCR("Marvell Yukon 88E8048 Fast Ethernet")},
+ {PCI_DEV(VENDORID_MARVELL, DEVICEID_MRVL_4361),
+ PCI_DESCR("Marvell Yukon 88E8050 Gigabit Ethernet")},
+ {PCI_DEV(VENDORID_MARVELL, DEVICEID_MRVL_4360),
+ PCI_DESCR("Marvell Yukon 88E8052 Gigabit Ethernet")},
+ {PCI_DEV(VENDORID_MARVELL, DEVICEID_MRVL_4362),
+ PCI_DESCR("Marvell Yukon 88E8053 Gigabit Ethernet")},
+ {PCI_DEV(VENDORID_MARVELL, DEVICEID_MRVL_4363),
+ PCI_DESCR("Marvell Yukon 88E8055 Gigabit Ethernet")},
+ {PCI_DEV(VENDORID_MARVELL, DEVICEID_MRVL_4364),
+ PCI_DESCR("Marvell Yukon 88E8056 Gigabit Ethernet")},
+ {PCI_DEV(VENDORID_MARVELL, DEVICEID_MRVL_4365),
+ PCI_DESCR("Marvell Yukon 88E8070 Gigabit Ethernet")},
+ {PCI_DEV(VENDORID_MARVELL, DEVICEID_MRVL_436A),
+ PCI_DESCR("Marvell Yukon 88E8058 Gigabit Ethernet")},
+ {PCI_DEV(VENDORID_MARVELL, DEVICEID_MRVL_436B),
+ PCI_DESCR("Marvell Yukon 88E8071 Gigabit Ethernet")},
+ {PCI_DEV(VENDORID_MARVELL, DEVICEID_MRVL_436C),
+ PCI_DESCR("Marvell Yukon 88E8072 Gigabit Ethernet")},
+ {PCI_DEV(VENDORID_MARVELL, DEVICEID_MRVL_436D),
+ PCI_DESCR("Marvell Yukon 88E8055 Gigabit Ethernet")},
+ {PCI_DEV(VENDORID_MARVELL, DEVICEID_MRVL_4370),
+ PCI_DESCR("Marvell Yukon 88E8075 Gigabit Ethernet")},
+ {PCI_DEV(VENDORID_MARVELL, DEVICEID_MRVL_4380),
+ PCI_DESCR("Marvell Yukon 88E8057 Gigabit Ethernet")},
+ {PCI_DEV(VENDORID_MARVELL, DEVICEID_MRVL_4381),
+ PCI_DESCR("Marvell Yukon 88E8059 Gigabit Ethernet")},
+ {PCI_DEV(VENDORID_DLINK, DEVICEID_DLINK_DGE550SX),
+ PCI_DESCR("D-Link 550SX Gigabit Ethernet")},
+ {PCI_DEV(VENDORID_DLINK, DEVICEID_DLINK_DGE560SX),
+ PCI_DESCR("D-Link 560SX Gigabit Ethernet")},
+ {PCI_DEV(VENDORID_DLINK, DEVICEID_DLINK_DGE560T),
+ PCI_DESCR("D-Link 560T Gigabit Ethernet")}
};
static const char *model_name[] = {
@@ -375,6 +371,7 @@
static devclass_t msk_devclass;
DRIVER_MODULE(mskc, pci, mskc_driver, mskc_devclass, NULL, NULL);
+PCI_PNP_INFO(msk_devs);
DRIVER_MODULE(msk, mskc, msk_driver, msk_devclass, NULL, NULL);
DRIVER_MODULE(miibus, msk, miibus_driver, miibus_devclass, NULL, NULL);
@@ -1182,21 +1179,13 @@
static int
mskc_probe(device_t dev)
{
- const struct msk_product *mp;
- uint16_t vendor, devid;
- int i;
-
- vendor = pci_get_vendor(dev);
- devid = pci_get_device(dev);
- mp = msk_products;
- for (i = 0; i < nitems(msk_products); i++, mp++) {
- if (vendor == mp->msk_vendorid && devid == mp->msk_deviceid) {
- device_set_desc(dev, mp->msk_name);
- return (BUS_PROBE_DEFAULT);
- }
- }
+ const struct pci_device_table *mskd;
- return (ENXIO);
+ mskd = PCI_MATCH(dev, msk_devs);
+ if (mskd == NULL)
+ return (ENXIO);
+ device_set_desc(dev, mskd->descr);
+ return (BUS_PROBE_DEFAULT);
}
static int
Index: sys/dev/mvs/mvs_pci.c
===================================================================
--- sys/dev/mvs/mvs_pci.c
+++ sys/dev/mvs/mvs_pci.c
@@ -521,6 +521,8 @@
sizeof(struct mvs_controller)
};
DRIVER_MODULE(mvs, pci, mvs_driver, mvs_devclass, 0, 0);
+MODULE_PNP_INFO("W32:vendor/device", pci, mvs, mvs_ids,
+ sizeof(mvs_ids[0]), nitems(mvs_ids) - 1);
MODULE_VERSION(mvs, 1);
MODULE_DEPEND(mvs, cam, 1, 1, 1);
Index: sys/dev/mxge/if_mxge.c
===================================================================
--- sys/dev/mxge/if_mxge.c
+++ sys/dev/mxge/if_mxge.c
@@ -133,6 +133,21 @@
DEVMETHOD_END
};
+struct pci_device_table mxge_devs[] = {
+ {PCI_DEV(MXGE_PCI_VENDOR_MYRICOM, MXGE_PCI_DEVICE_Z8E),
+ PCI_REVID(MXGE_PCI_REV_Z8E), PCI_DESCR("Myri10G-PCIE-8A")},
+ {PCI_DEV(MXGE_PCI_VENDOR_MYRICOM, MXGE_PCI_DEVICE_Z8E),
+ PCI_REVID(MXGE_PCI_REV_Z8ES), PCI_DESCR("Myri10G-PCIE-8B")},
+ {PCI_DEV(MXGE_PCI_VENDOR_MYRICOM, MXGE_PCI_DEVICE_Z8E_9),
+ PCI_REVID(MXGE_PCI_REV_Z8E), PCI_DESCR("Myri10G-PCIE-8A")},
+ {PCI_DEV(MXGE_PCI_VENDOR_MYRICOM, MXGE_PCI_DEVICE_Z8E_9),
+ PCI_REVID(MXGE_PCI_REV_Z8ES), PCI_DESCR("Myri10G-PCIE-8B")},
+ {PCI_DEV(MXGE_PCI_VENDOR_MYRICOM, MXGE_PCI_DEVICE_Z8E),
+ PCI_DESCR("Myri10G-PCIE-8??")},
+ {PCI_DEV(MXGE_PCI_VENDOR_MYRICOM, MXGE_PCI_DEVICE_Z8E_9),
+ PCI_DESCR("Myri10G-PCIE-8??")},
+}
+
static driver_t mxge_driver =
{
"mxge",
@@ -144,6 +159,7 @@
/* Declare ourselves to be a child of the PCI bus.*/
DRIVER_MODULE(mxge, pci, mxge_driver, mxge_devclass, 0, 0);
+PCI_PNP_INFO(mxge_devs);
MODULE_DEPEND(mxge, firmware, 1, 1, 1);
MODULE_DEPEND(mxge, zlib, 1, 1, 1);
@@ -156,29 +172,18 @@
static int
mxge_probe(device_t dev)
{
+ const struct pci_device_table *mxgd;
int rev;
-
- if ((pci_get_vendor(dev) == MXGE_PCI_VENDOR_MYRICOM) &&
- ((pci_get_device(dev) == MXGE_PCI_DEVICE_Z8E) ||
- (pci_get_device(dev) == MXGE_PCI_DEVICE_Z8E_9))) {
- rev = pci_get_revid(dev);
- switch (rev) {
- case MXGE_PCI_REV_Z8E:
- device_set_desc(dev, "Myri10G-PCIE-8A");
- break;
- case MXGE_PCI_REV_Z8ES:
- device_set_desc(dev, "Myri10G-PCIE-8B");
- break;
- default:
- device_set_desc(dev, "Myri10G-PCIE-8??");
- device_printf(dev, "Unrecognized rev %d NIC\n",
- rev);
- break;
- }
- return 0;
- }
- return ENXIO;
+ mxgd = PCI_MATCH(dev, mxge_devs);
+ if (mxgd == NULL)
+ return (ENXIO);
+ rev = pci_get_revid(dev);
+ device_set_desc(dev, mxgd->descr);
+ if !(rev == MXGE_PCI_REV_Z8E || MXGE_PCI_REV_Z8ES)
+ device_printf(dev, "Unrecognized rev %d NIC\n",
+ rev);
+ return 0;
}
static void
Index: sys/dev/my/if_my.c
===================================================================
--- sys/dev/my/if_my.c
+++ sys/dev/my/if_my.c
@@ -163,6 +163,8 @@
static devclass_t my_devclass;
DRIVER_MODULE(my, pci, my_driver, my_devclass, 0, 0);
+MODULE_PNP_INFO("U16:vendor;U16:device;D:#", pci, my, my_devs,
+ sizeof(my_devs[0]), nitems(my_devs) - 1);
MODULE_DEPEND(my, pci, 1, 1, 1);
MODULE_DEPEND(my, ether, 1, 1, 1);

File Metadata

Mime Type
text/plain
Expires
Sun, Mar 15, 11:02 PM (13 h, 35 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29739988
Default Alt Text
D16363.diff (26 KB)

Event Timeline