Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F147971246
D16363.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
26 KB
Referenced Files
None
Subscribers
None
D16363.diff
View Options
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
Details
Attached
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)
Attached To
Mode
D16363: Add PNP info to PCI attachments of LE, LIO, MPR, MVS, MY drivers
Attached
Detach File
Event Timeline
Log In to Comment