Page MenuHomeFreeBSD

D16363.id45593.diff
No OneTemporary

D16363.id45593.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/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/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/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
Fri, Jan 30, 10:24 PM (15 h, 13 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28104833
Default Alt Text
D16363.id45593.diff (9 KB)

Event Timeline