Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F148006692
D16594.id46305.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
18 KB
Referenced Files
None
Subscribers
None
D16594.id46305.diff
View Options
Index: sys/dev/oce/oce_if.c
===================================================================
--- sys/dev/oce/oce_if.c
+++ sys/dev/oce/oce_if.c
@@ -214,12 +214,6 @@
static devclass_t oce_devclass;
-DRIVER_MODULE(oce, pci, oce_driver, oce_devclass, 0, 0);
-MODULE_DEPEND(oce, pci, 1, 1, 1);
-MODULE_DEPEND(oce, ether, 1, 1, 1);
-MODULE_VERSION(oce, 1);
-
-
/* global vars */
const char component_revision[32] = {"///" COMPONENT_REVISION "///"};
@@ -242,6 +236,15 @@
(PCI_VENDOR_EMULEX << 16) | PCI_PRODUCT_SH
};
+
+DRIVER_MODULE(oce, pci, oce_driver, oce_devclass, 0, 0);
+MODULE_PNP_INFO("W32:vendor/device", pci, oce, supportedDevices,
+ sizeof(supportedDevices[0]), nitems(supportedDevices));
+MODULE_DEPEND(oce, pci, 1, 1, 1);
+MODULE_DEPEND(oce, ether, 1, 1, 1);
+MODULE_VERSION(oce, 1);
+
+
POCE_SOFTC softc_head = NULL;
POCE_SOFTC softc_tail = NULL;
Index: sys/dev/pci/pci_pci.c
===================================================================
--- sys/dev/pci/pci_pci.c
+++ sys/dev/pci/pci_pci.c
@@ -81,6 +81,11 @@
static int pcib_request_feature_default(device_t pcib, device_t dev,
enum pci_feature feature);
+struct pci_device_table pcib_devs[] = {
+ {PCI_CLASS(PCIC_BRIDGE), PCI_SUBCLASS(PCIS_BRIDGE_PCI),
+ PCI_DESCR("PCI-PCI bridge")}
+};
+
static device_method_t pcib_methods[] = {
/* Device interface */
DEVMETHOD(device_probe, pcib_probe),
@@ -132,6 +137,7 @@
DEFINE_CLASS_0(pcib, pcib_driver, pcib_methods, sizeof(struct pcib_softc));
DRIVER_MODULE(pcib, pci, pcib_driver, pcib_devclass, NULL, NULL);
+PCI_PNP_INFO(pcib_devs);
#if defined(NEW_PCIB) || defined(PCI_HP)
SYSCTL_DECL(_hw_pci);
@@ -1503,12 +1509,13 @@
static int
pcib_probe(device_t dev)
{
- if ((pci_get_class(dev) == PCIC_BRIDGE) &&
- (pci_get_subclass(dev) == PCIS_BRIDGE_PCI)) {
- device_set_desc(dev, "PCI-PCI bridge");
- return(-10000);
- }
- return(ENXIO);
+ const struct pci_device_table *pcibd;
+
+ pcibd = PCI_MATCH(dev, pcib_devs);
+ if (pcibd == NULL)
+ return (ENXIO);
+ device_set_desc(dev, pcibd->descr);
+ return (-10000);
}
void
Index: sys/dev/pci/pcivar.h
===================================================================
--- sys/dev/pci/pcivar.h
+++ sys/dev/pci/pcivar.h
@@ -301,6 +301,8 @@
.match_flag_subdevice = 1, .subdevice = (sd)
#define PCI_DEVID(did) \
PCI_DEV((uint16_t)did, (uint16_t)(did >> 16))
+#define PCI_VID(v) \
+ .match_flag_vendor = 1, .vendor = (v)
#define PCI_CLASS(x) \
.match_flag_class = 1, .class_id = (x)
#define PCI_SUBCLASS(x) \
Index: sys/dev/ppc/ppc_pci.c
===================================================================
--- sys/dev/ppc/ppc_pci.c
+++ sys/dev/ppc/ppc_pci.c
@@ -83,35 +83,42 @@
int rid;
};
-static struct pci_id pci_ids[] = {
- { 0x1020131f, "SIIG Cyber Parallel PCI (10x family)", 0x18 },
- { 0x2020131f, "SIIG Cyber Parallel PCI (20x family)", 0x10 },
- { 0x05111407, "Lava SP BIDIR Parallel PCI", 0x10 },
- { 0x80001407, "Lava Computers 2SP-PCI parallel port", 0x10 },
- { 0x84031415, "Oxford Semiconductor OX12PCI840 Parallel port", 0x10 },
- { 0x95131415, "Oxford Semiconductor OX16PCI954 Parallel port", 0x10 },
- { 0xc1101415, "Oxford Semiconductor OXPCIe952 Parallel port", 0x10 },
- { 0x98059710, "NetMos NM9805 1284 Printer port", 0x10 },
- { 0x98659710, "MosChip MCS9865 1284 Printer port", 0x10 },
- { 0x99009710, "MosChip MCS9900 PCIe to Peripheral Controller", 0x10 },
- { 0x99019710, "MosChip MCS9901 PCIe to Peripheral Controller", 0x10 },
- { 0xffff }
+struct pci_device_table ppc_devs[] = {
+ {PCI_DEVID(0x1020131f), PCI_DESCR("SIIG Cyber Parallel PCI (10x family)"),
+ .driver_data = 0x18},
+ {PCI_DEVID(0x2020131f), PCI_DESCR("SIIG Cyber Parallel PCI (20x family)"),
+ .driver_data = 0x10},
+ {PCI_DEVID(0x05111407), PCI_DESCR("Lava SP BIDIR Parallel PCI"),
+ .driver_data = 0x10},
+ {PCI_DEVID(0x80001407), PCI_DESCR("Lava Computers 2SP-PCI parallel port"),
+ .driver_data = 0x10},
+ {PCI_DEVID(0x84031415), PCI_DESCR("Oxford Semiconductor OX12PCI840 Parallel port"),
+ .driver_data = 0x10},
+ {PCI_DEVID(0x95131415), PCI_DESCR("Oxford Semiconductor OX16PCI954 Parallel port"),
+ .driver_data = 0x10},
+ {PCI_DEVID(0xc1101415), PCI_DESCR("Oxford Semiconductor OXPCIe952 Parallel port"),
+ .driver_data = 0x10},
+ {PCI_DEVID(0x98059710), PCI_DESCR("NetMos NM9805 1284 Printer port"),
+ .driver_data = 0x10},
+ {PCI_DEVID(0x98659710), PCI_DESCR("MosChip MCS9865 1284 Printer port"),
+ .driver_data = 0x10},
+ {PCI_DEVID(0x99009710), PCI_DESCR("MosChip MCS9900 PCIe to Peripheral Controller"),
+ .driver_data = 0x10},
+ {PCI_DEVID(0x99019710), PCI_DESCR("MosChip MCS9901 PCIe to Peripheral Controller"),
+ .driver_data = 0x10},
};
static int
ppc_pci_probe(device_t dev)
{
- struct pci_id *id;
- uint32_t type;
-
- type = pci_get_devid(dev);
- id = pci_ids;
- while (id->type != 0xffff && id->type != type)
- id++;
- if (id->type == 0xffff)
+ const struct pci_device_table *ppcd;
+
+ ppcd = PCI_MATCH(dev, ppc_devs)
+ if (ppcd == NULL)
return (ENXIO);
- device_set_desc(dev, id->desc);
- return (ppc_probe(dev, id->rid));
+ device_set_desc(dev, ppcd->descr);
+ return (ppc_probe(dev, ppcd->driver_data));
}
DRIVER_MODULE(ppc, pci, ppc_pci_driver, ppc_devclass, 0, 0);
+PCI_PNP_INFO(ppc_devs);
Index: sys/dev/qlxgb/qla_os.c
===================================================================
--- sys/dev/qlxgb/qla_os.c
+++ sys/dev/qlxgb/qla_os.c
@@ -90,6 +90,11 @@
static int qla_media_change(struct ifnet *ifp);
static void qla_media_status(struct ifnet *ifp, struct ifmediareq *ifmr);
+struct pci_device_table qla_pci_devs[] = {
+ {PCI_DEVID(PCI_QLOGIC_ISP8020),
+ PCI_DESCR("Qlogic ISP 80xx PCI CNA Adapter-Ethernet Function")}
+};
+
static device_method_t qla_pci_methods[] = {
/* Device interface */
DEVMETHOD(device_probe, qla_pci_probe),
@@ -105,6 +110,7 @@
static devclass_t qla80xx_devclass;
DRIVER_MODULE(qla80xx, pci, qla_pci_driver, qla80xx_devclass, 0, 0);
+PCI_PNP_INFO(qla_pci_devs);
MODULE_DEPEND(qla80xx, pci, 1, 1, 1);
MODULE_DEPEND(qla80xx, ether, 1, 1, 1);
@@ -127,22 +133,20 @@
static int
qla_pci_probe(device_t dev)
{
- switch ((pci_get_device(dev) << 16) | (pci_get_vendor(dev))) {
- case PCI_QLOGIC_ISP8020:
- snprintf(dev_str, sizeof(dev_str), "%s v%d.%d.%d",
- "Qlogic ISP 80xx PCI CNA Adapter-Ethernet Function",
- QLA_VERSION_MAJOR, QLA_VERSION_MINOR,
- QLA_VERSION_BUILD);
- device_set_desc(dev, dev_str);
- break;
- default:
- return (ENXIO);
- }
-
- if (bootverbose)
- printf("%s: %s\n ", __func__, dev_str);
-
- return (BUS_PROBE_DEFAULT);
+ const struct pci_device_table *qlad;
+ qlad = PCI_MATCH(dev, qla_pci_devs);
+ if (qlad == NULL)
+ return (ENXIO);
+ snprintf(dev_str, sizeof(dev_str), "%s v%d.%d.%d",
+ qlad->descr,
+ QLA_VERSION_MAJOR, QLA_VERSION_MINOR,
+ QLA_VERSION_BUILD);
+ device_set_desc(dev, dev_str);
+
+ if (bootverbose)
+ printf("%s: %s\n ", __func__, dev_str);
+
+ return (BUS_PROBE_DEFAULT);
}
static void
Index: sys/dev/qlxgbe/ql_os.c
===================================================================
--- sys/dev/qlxgbe/ql_os.c
+++ sys/dev/qlxgbe/ql_os.c
@@ -104,6 +104,11 @@
static void qla_destroy_fp_taskqueues(qla_host_t *ha);
static void qla_drain_fp_taskqueues(qla_host_t *ha);
+struct pci_device_table qla_pci_devs[] = {
+ {PCI_DEVID(PCI_QLOGIC_ISP8030),
+ PCI_DESCR("Qlogic ISP 83xx PCI CNA Adapter-Ethernet Function")}
+};
+
static device_method_t qla_pci_methods[] = {
/* Device interface */
DEVMETHOD(device_probe, qla_pci_probe),
@@ -119,6 +124,7 @@
static devclass_t qla83xx_devclass;
DRIVER_MODULE(qla83xx, pci, qla_pci_driver, qla83xx_devclass, 0, 0);
+PCI_PNP_INFO(qla_pci_devs);
MODULE_DEPEND(qla83xx, pci, 1, 1, 1);
MODULE_DEPEND(qla83xx, ether, 1, 1, 1);
@@ -139,25 +145,24 @@
static int
qla_pci_probe(device_t dev)
{
- switch ((pci_get_device(dev) << 16) | (pci_get_vendor(dev))) {
- case PCI_QLOGIC_ISP8030:
- snprintf(dev_str, sizeof(dev_str), "%s v%d.%d.%d",
- "Qlogic ISP 83xx PCI CNA Adapter-Ethernet Function",
- QLA_VERSION_MAJOR, QLA_VERSION_MINOR,
- QLA_VERSION_BUILD);
- snprintf(ver_str, sizeof(ver_str), "v%d.%d.%d",
- QLA_VERSION_MAJOR, QLA_VERSION_MINOR,
- QLA_VERSION_BUILD);
- device_set_desc(dev, dev_str);
- break;
- default:
- return (ENXIO);
- }
-
- if (bootverbose)
- printf("%s: %s\n ", __func__, dev_str);
-
- return (BUS_PROBE_DEFAULT);
+ const struct pci_device_table *qlad;
+
+ qlad = PCI_MATCH(dev, qla_pci_devs);
+ if (qlad == NULL)
+ return (ENXIO);
+ snprintf(dev_str, sizeof(dev_str), "%s v%d.%d.%d",
+ qlad->descr,
+ QLA_VERSION_MAJOR, QLA_VERSION_MINOR,
+ QLA_VERSION_BUILD);
+ snprintf(ver_str, sizeof(ver_str), "v%d.%d.%d",
+ QLA_VERSION_MAJOR, QLA_VERSION_MINOR,
+ QLA_VERSION_BUILD);
+ device_set_desc(dev, dev_str);
+
+ if (bootverbose)
+ printf("%s: %s\n ", __func__, dev_str);
+
+ return (BUS_PROBE_DEFAULT);
}
static void
Index: sys/dev/qlxge/qls_os.c
===================================================================
--- sys/dev/qlxge/qls_os.c
+++ sys/dev/qlxge/qls_os.c
@@ -97,6 +97,11 @@
static int qls_media_change(struct ifnet *ifp);
static void qls_media_status(struct ifnet *ifp, struct ifmediareq *ifmr);
+struct pci_device_table qla_pci_devs[] = {
+ {PCI_DEVID(PCI_QLOGIC_DEV8000),
+ PCI_DESCR("Qlogic ISP 8000 PCI CNA Adapter-Ethernet Function")}
+};
+
static device_method_t qla_pci_methods[] = {
/* Device interface */
DEVMETHOD(device_probe, qls_pci_probe),
@@ -112,6 +117,7 @@
static devclass_t qla8000_devclass;
DRIVER_MODULE(qla8000, pci, qla_pci_driver, qla8000_devclass, 0, 0);
+PCI_PNP_INFO(qla_pci_devs);
MODULE_DEPEND(qla8000, pci, 1, 1, 1);
MODULE_DEPEND(qla8000, ether, 1, 1, 1);
@@ -128,20 +134,19 @@
static int
qls_pci_probe(device_t dev)
{
- switch ((pci_get_device(dev) << 16) | (pci_get_vendor(dev))) {
- case PCI_QLOGIC_DEV8000:
- snprintf(dev_str, sizeof(dev_str), "%s v%d.%d.%d",
- "Qlogic ISP 8000 PCI CNA Adapter-Ethernet Function",
- QLA_VERSION_MAJOR, QLA_VERSION_MINOR,
- QLA_VERSION_BUILD);
- snprintf(ver_str, sizeof(ver_str), "v%d.%d.%d",
- QLA_VERSION_MAJOR, QLA_VERSION_MINOR,
- QLA_VERSION_BUILD);
- device_set_desc(dev, dev_str);
- break;
- default:
- return (ENXIO);
- }
+ const struct pci_device_table *qlsd;
+
+ qlsd = PCI_MATCH(dev, qla_pci_devs);
+ if (qlsd == NULL)
+ return (ENXIO);
+ snprintf(dev_str, sizeof(dev_str), "%s v%d.%d.%d",
+ qlsd->descr,
+ QLA_VERSION_MAJOR, QLA_VERSION_MINOR,
+ QLA_VERSION_BUILD);
+ snprintf(ver_str, sizeof(ver_str), "v%d.%d.%d",
+ QLA_VERSION_MAJOR, QLA_VERSION_MINOR,
+ QLA_VERSION_BUILD);
+ device_set_desc(dev, dev_str);
if (bootverbose)
printf("%s: %s\n ", __func__, dev_str);
Index: sys/dev/re/if_re.c
===================================================================
--- sys/dev/re/if_re.c
+++ sys/dev/re/if_re.c
@@ -176,29 +176,29 @@
/*
* Various supported device vendors/types and their names.
*/
-static const struct rl_type re_devs[] = {
- { DLINK_VENDORID, DLINK_DEVICEID_528T, 0,
- "D-Link DGE-528(T) Gigabit Ethernet Adapter" },
- { DLINK_VENDORID, DLINK_DEVICEID_530T_REVC, 0,
- "D-Link DGE-530(T) Gigabit Ethernet Adapter" },
- { RT_VENDORID, RT_DEVICEID_8139, 0,
- "RealTek 8139C+ 10/100BaseTX" },
- { RT_VENDORID, RT_DEVICEID_8101E, 0,
- "RealTek 810xE PCIe 10/100baseTX" },
- { RT_VENDORID, RT_DEVICEID_8168, 0,
- "RealTek 8168/8111 B/C/CP/D/DP/E/F/G PCIe Gigabit Ethernet" },
- { NCUBE_VENDORID, RT_DEVICEID_8168, 0,
- "TP-Link TG-3468 v2 (RTL8168) Gigabit Ethernet" },
- { RT_VENDORID, RT_DEVICEID_8169, 0,
- "RealTek 8169/8169S/8169SB(L)/8110S/8110SB(L) Gigabit Ethernet" },
- { RT_VENDORID, RT_DEVICEID_8169SC, 0,
- "RealTek 8169SC/8110SC Single-chip Gigabit Ethernet" },
- { COREGA_VENDORID, COREGA_DEVICEID_CGLAPCIGT, 0,
- "Corega CG-LAPCIGT (RTL8169S) Gigabit Ethernet" },
- { LINKSYS_VENDORID, LINKSYS_DEVICEID_EG1032, 0,
- "Linksys EG1032 (RTL8169S) Gigabit Ethernet" },
- { USR_VENDORID, USR_DEVICEID_997902, 0,
- "US Robotics 997902 (RTL8169S) Gigabit Ethernet" }
+struct pci_device_table re_devs[] = {
+ {PCI_DEV(DLINK_VENDORID, DLINK_DEVICEID_528T),
+ PCI_DESCR("D-Link DGE-528(T) Gigabit Ethernet Adapter"), .driver_data = 0},
+ {PCI_DEV(DLINK_VENDORID, DLINK_DEVICEID_530T_REVC),
+ PCI_DESCR("D-Link DGE-530(T) Gigabit Ethernet Adapter"), .driver_data = 0},
+ {PCI_DEV(RT_VENDORID, RT_DEVICEID_8139),
+ PCI_DESCR("RealTek 8139C+ 10/100BaseTX"), .driver_data = 0},
+ {PCI_DEV(RT_VENDORID, RT_DEVICEID_8101E),
+ PCI_DESCR("RealTek 810xE PCIe 10/100baseTX"), .driver_data = 0},
+ {PCI_DEV(RT_VENDORID, RT_DEVICEID_8168),
+ PCI_DESCR("RealTek 8168/8111 B/C/CP/D/DP/E/F/G PCIe Gigabit Ethernet"), .driver_data = 0},
+ {PCI_DEV(NCUBE_VENDORID, RT_DEVICEID_8168),
+ PCI_DESCR("TP-Link TG-3468 v2 (RTL8168) Gigabit Ethernet"), .driver_data = 0},
+ {PCI_DEV(RT_VENDORID, RT_DEVICEID_8169),
+ PCI_DESCR("RealTek 8169/8169S/8169SB(L)/8110S/8110SB(L) Gigabit Ethernet"), .driver_data = 0},
+ {PCI_DEV(RT_VENDORID, RT_DEVICEID_8169SC),
+ PCI_DESCR("RealTek 8169SC/8110SC Single-chip Gigabit Ethernet"), .driver_data = 0},
+ {PCI_DEV(COREGA_VENDORID, COREGA_DEVICEID_CGLAPCIGT),
+ PCI_DESCR("Corega CG-LAPCIGT (RTL8169S) Gigabit Ethernet"), .driver_data = 0},
+ {PCI_DEV(LINKSYS_VENDORID, LINKSYS_DEVICEID_EG1032),
+ PCI_DESCR("Linksys EG1032 (RTL8169S) Gigabit Ethernet"), .driver_data = 0},
+ {PCI_DEV(USR_VENDORID, USR_DEVICEID_997902),
+ PCI_DESCR("US Robotics 997902 (RTL8169S) Gigabit Ethernet"), .driver_data = 0}
};
static const struct rl_hwrev re_hwrevs[] = {
@@ -352,6 +352,7 @@
static devclass_t re_devclass;
DRIVER_MODULE(re, pci, re_driver, re_devclass, 0, 0);
+PCI_PNP_INFO(re_devs);
DRIVER_MODULE(miibus, re, miibus_driver, miibus_devclass, 0, 0);
#define EE_SET(x) \
@@ -934,10 +935,9 @@
static int
re_probe(device_t dev)
{
- const struct rl_type *t;
+ const struct pci_device_table *red;
uint16_t devid, vendor;
uint16_t revid, sdevid;
- int i;
vendor = pci_get_vendor(dev);
devid = pci_get_device(dev);
@@ -960,16 +960,12 @@
return (ENXIO);
}
}
-
- t = re_devs;
- for (i = 0; i < nitems(re_devs); i++, t++) {
- if (vendor == t->rl_vid && devid == t->rl_did) {
- device_set_desc(dev, t->rl_name);
- return (BUS_PROBE_DEFAULT);
- }
- }
-
- return (ENXIO);
+
+ red = PCI_MATCH(dev, re_devs);
+ if (red == NULL)
+ return (ENXIO);
+ device_set_desc(dev, red->descr);
+ return (BUS_PROBE_DEFAULT);
}
/*
Index: sys/dev/rp/rp_pci.c
===================================================================
--- sys/dev/rp/rp_pci.c
+++ sys/dev/rp/rp_pci.c
@@ -123,6 +123,11 @@
static rp_aiop2off_t rp_pci_aiop2off;
static rp_ctlmask_t rp_pci_ctlmask;
+struct pci_device_table rp_devs[] = {
+ {PCI_VID(RP_VENDOR_ID),
+ PCI_DESCR("RocketPort PCI")}
+};
+
/*
* The following functions are the pci-specific part
* of rp driver.
@@ -131,18 +136,13 @@
static int
rp_pciprobe(device_t dev)
{
- char *s;
-
- s = NULL;
- if (pci_get_vendor(dev) == RP_VENDOR_ID)
- s = "RocketPort PCI";
+ const struct pci_device_table *rpd;
- if (s != NULL) {
- device_set_desc(dev, s);
- return (BUS_PROBE_DEFAULT);
- }
-
- return (ENXIO);
+ rpd = PCI_MATCH(dev, rp_devs);
+ if (rpd == NULL)
+ return (ENXIO);
+ device_set_desc(dev, rpd->descr);
+ return (BUS_PROBE_DEFAULT);
}
static int
@@ -365,3 +365,5 @@
* rp can be attached to a pci bus.
*/
DRIVER_MODULE(rp, pci, rp_pcidriver, rp_devclass, 0, 0);
+PCI_PNP_INFO(rp_devs);
+
Index: sys/i386/i386/mp_clock.c
===================================================================
--- sys/i386/i386/mp_clock.c
+++ sys/i386/i386/mp_clock.c
@@ -55,6 +55,11 @@
static u_int32_t piix_timecounter_address;
static u_int piix_freq = 14318182/4;
+struct pci_device_table piix_devs[] = {
+ {PCI_DEVID(0x71138086),
+ PCI_DESCR("PIIX Timecounter")}
+};
+
static struct timecounter piix_timecounter = {
piix_get_timecount, /* get_timecount */
0, /* no poll_pps */
@@ -103,16 +108,14 @@
piix_probe(device_t dev)
{
u_int32_t d;
+ const struct pci_device_table *piid;
if (devclass_get_device(devclass_find("acpi"), 0) != NULL)
return (ENXIO);
- switch (pci_get_devid(dev)) {
- case 0x71138086:
- device_set_desc(dev, "PIIX Timecounter");
- break;
- default:
+ piid = PCI_MATCH(dev, piix_devs);
+ if (piid == NULL)
return (ENXIO);
- }
+ device_set_desc(dev, piid->descr);
d = pci_read_config(dev, PCIR_COMMAND, 2);
if (!(d & PCIM_CMD_PORTEN)) {
@@ -150,3 +153,5 @@
static devclass_t piix_devclass;
DRIVER_MODULE(piix, pci, piix_driver, piix_devclass, 0, 0);
+PCI_PNP_INFO(piix_devs);
+
Index: sys/x86/pci/pci_bus.c
===================================================================
--- sys/x86/pci/pci_bus.c
+++ sys/x86/pci/pci_bus.c
@@ -731,6 +731,11 @@
*/
static int pcibios_pcib_probe(device_t bus);
+struct pci_device_table pcibios_pci_devs[] = {
+ {PCI_CLASS(PCIC_BRIDGE), PCI_SUBCLASS(PCIS_BRIDGE_PCI),
+ PCI_DESCR("PCIBIOS PCI-PCI bridge")}
+};
+
static device_method_t pcibios_pcib_pci_methods[] = {
/* Device interface */
DEVMETHOD(device_probe, pcibios_pcib_probe),
@@ -743,25 +748,28 @@
static devclass_t pcib_devclass;
-DEFINE_CLASS_1(pcib, pcibios_pcib_driver, pcibios_pcib_pci_methods,
- sizeof(struct pcib_softc), pcib_driver);
-DRIVER_MODULE(pcibios_pcib, pci, pcibios_pcib_driver, pcib_devclass, 0, 0);
-ISA_PNP_INFO(pcibus_pnp_ids);
static int
pcibios_pcib_probe(device_t dev)
{
int bus;
+ const struct pci_device_table *pcibid;
- if ((pci_get_class(dev) != PCIC_BRIDGE) ||
- (pci_get_subclass(dev) != PCIS_BRIDGE_PCI))
+ pcibid = PCI_MATCH(dev, pcibios_pci_devs);
+ if (pcibid == NULL)
return (ENXIO);
bus = pci_read_config(dev, PCIR_SECBUS_1, 1);
if (bus == 0)
return (ENXIO);
if (!pci_pir_probe(bus, 1))
return (ENXIO);
- device_set_desc(dev, "PCIBIOS PCI-PCI bridge");
+ device_set_desc(dev, pcibid->descr);
return (-2000);
}
+
+DEFINE_CLASS_1(pcib, pcibios_pcib_driver, pcibios_pcib_pci_methods,
+ sizeof(struct pcib_softc), pcib_driver);
+DRIVER_MODULE(pcibios_pcib, pci, pcibios_pcib_driver, pcib_devclass, 0, 0);
+PCI_PNP_INFO(pcibios_pci_devs);
+ISA_PNP_INFO(pcibus_pnp_ids);
#endif
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Mon, Mar 16, 3:59 AM (7 h, 39 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29711908
Default Alt Text
D16594.id46305.diff (18 KB)
Attached To
Mode
D16594: Add PNP info to PCI attachments of PCIBIOS, PCIB, QLA, QLA80XX, QL, PIIX, RP, OCE, RE, PPC driver
Attached
Detach File
Event Timeline
Log In to Comment