Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F145665439
D15996.id44565.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
19 KB
Referenced Files
None
Subscribers
None
D15996.id44565.diff
View Options
Index: sys/dev/arcmsr/arcmsr.c
===================================================================
--- sys/dev/arcmsr/arcmsr.c
+++ sys/dev/arcmsr/arcmsr.c
@@ -213,6 +213,96 @@
static d_close_t arcmsr_close;
static d_ioctl_t arcmsr_ioctl;
+static struct arcmsr_dev {
+ uint16_t vendorid;
+ uint32_t deviceid;
+ uint16_t subdeviceid;
+ char *description;
+} arcmsr_devs[] = {
+ {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1110, 0,
+ "Areca SATA 3G Host Adapter RAID Controller"},
+ {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1200, 0,
+ "Areca SATA 3G Host Adapter RAID Controller"},
+ {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1201, 0,
+ "Areca SATA 3G Host Adapter RAID Controller"},
+ {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1210, 0,
+ "Areca SATA 3G Host Adapter RAID Controller"},
+ {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1120, 0,
+ "Areca SATA 3G Host Adapter RAID Controller RAID6 capable"},
+ {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1130, 0,
+ "Areca SATA 3G Host Adapter RAID Controller RAID6 capable"},
+ {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1160, 0,
+ "Areca SATA 3G Host Adapter RAID Controller RAID6 capable"},
+ {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1170, 0,
+ "Areca SATA 3G Host Adapter RAID Controller RAID6 capable"},
+ {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1220, 0,
+ "Areca SATA 3G Host Adapter RAID Controller RAID6 capable"},
+ {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1230, 0,
+ "Areca SATA 3G Host Adapter RAID Controller RAID6 capable"},
+ {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1231, 0,
+ "Areca SATA 3G Host Adapter RAID Controller RAID6 capable"},
+ {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1260, 0,
+ "Areca SATA 3G Host Adapter RAID Controller RAID6 capable"},
+ {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1261, 0,
+ "Areca SATA 3G Host Adapter RAID Controller RAID6 capable"},
+ {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1270, 0,
+ "Areca SATA 3G Host Adapter RAID Controller RAID6 capable"},
+ {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1280, 0,
+ "Areca SATA 3G Host Adapter RAID Controller RAID6 capable"},
+ {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1212, 0,
+ "Areca SAS 3G Host Adapter RAID Controller RAID6 capable"},
+ {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1222, 0,
+ "Areca SAS 3G Host Adapter RAID Controller RAID6 capable"},
+ {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1380, 0,
+ "Areca SAS 3G Host Adapter RAID Controller RAID6 capable"},
+ {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1381, 0,
+ "Areca SAS 3G Host Adapter RAID Controller RAID6 capable"},
+ {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1680, 0,
+ "Areca SAS 3G Host Adapter RAID Controller RAID6 capable"},
+ {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1681, 0,
+ "Areca SAS 3G Host Adapter RAID Controller RAID6 capable"},
+ {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1880, 0,
+ "Areca SAS 6G Host Adapter RAID Controller RAID6 capable"},
+ {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1882, 0,
+ "Areca SAS 6G Host Adapter RAID Controller RAID6 capable"},
+ {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1213, 0,
+ "Areca SAS 6G Host Adapter RAID Controller RAID6 capable"},
+ {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1223, 0,
+ "Areca SAS 6G Host Adapter RAID Controller RAID6 capable"},
+ {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1880, ARECA_SUB_DEV_ID_1883,
+ "Areca SAS 12G Host Adapter RAID Controller RAID6 capable"},
+ {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1882, ARECA_SUB_DEV_ID_1883,
+ "Areca SAS 12G Host Adapter RAID Controller RAID6 capable"},
+ {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1213, ARECA_SUB_DEV_ID_1883,
+ "Areca SAS 12G Host Adapter RAID Controller RAID6 capable"},
+ {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1223, ARECA_SUB_DEV_ID_1883,
+ "Areca SAS 12G Host Adapter RAID Controller RAID6 capable"},
+ {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1880, ARECA_SUB_DEV_ID_1216,
+ "Areca SAS 12G Host Adapter RAID Controller RAID6 capable"},
+ {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1882, ARECA_SUB_DEV_ID_1216,
+ "Areca SAS 12G Host Adapter RAID Controller RAID6 capable"},
+ {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1213, ARECA_SUB_DEV_ID_1216,
+ "Areca SAS 12G Host Adapter RAID Controller RAID6 capable"},
+ {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1223, ARECA_SUB_DEV_ID_1216,
+ "Areca SAS 12G Host Adapter RAID Controller RAID6 capable"},
+ {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1880, ARECA_SUB_DEV_ID_1226,
+ "Areca SAS 12G Host Adapter RAID Controller RAID6 capable"},
+ {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1882, ARECA_SUB_DEV_ID_1226,
+ "Areca SAS 12G Host Adapter RAID Controller RAID6 capable"},
+ {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1213, ARECA_SUB_DEV_ID_1226,
+ "Areca SAS 12G Host Adapter RAID Controller RAID6 capable"},
+ {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1223, ARECA_SUB_DEV_ID_1226,
+ "Areca SAS 12G Host Adapter RAID Controller RAID6 capable"},
+ {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1884, 0,
+ "Areca SAS 12G Host Adapter RAID Controller RAID6 capable"},
+ {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1214, 0,
+ "Areca SATA 6G Host Adapter RAID Controller RAID6 capable"},
+ {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1203, 0,
+ "Areca SATA 6G Host Adapter RAID Controller RAID6 capable"},
+ {0, 0, 0, 0},
+};
+
+
static device_method_t arcmsr_methods[]={
DEVMETHOD(device_probe, arcmsr_probe),
DEVMETHOD(device_attach, arcmsr_attach),
@@ -234,6 +324,8 @@
static devclass_t arcmsr_devclass;
DRIVER_MODULE(arcmsr, pci, arcmsr_driver, arcmsr_devclass, 0, 0);
+MODULE_PNP_INFO("U16:vendor;U32:device;U16:subdevice;D:#", pci, arcmsr,
+ arcmsr_devs, sizeof(arcmsr_devs[0]), nitems(arcmsr_devs) - 1);
MODULE_DEPEND(arcmsr, pci, 1, 1, 1);
MODULE_DEPEND(arcmsr, cam, 1, 1, 1);
#ifndef BUS_DMA_COHERENT
Index: sys/dev/buslogic/bt_pci.c
===================================================================
--- sys/dev/buslogic/bt_pci.c
+++ sys/dev/buslogic/bt_pci.c
@@ -56,6 +56,18 @@
#define PCI_DEVICE_ID_BUSLOGIC_MULTIMASTER_NC 0x0140104Bul
#define PCI_DEVICE_ID_BUSLOGIC_FLASHPOINT 0x8130104Bul
+static struct bt_dev {
+ uint16_t vendorid;
+ uint32_t deviceid;
+ const char *description;
+} bt_devs[] = {
+ {0x104B, PCI_DEVICE_ID_BUSLOGIC_MULTIMASTER,
+ "Buslogic Multi-Master SCSI Host Adapter"},
+ {0x104B, PCI_DEVICE_ID_BUSLOGIC_MULTIMASTER_NC,
+ "Buslogic Multi-Master SCSI Host Adapter"},
+ {0, 0, 0},
+};
+
static int
bt_pci_alloc_resources(device_t dev)
{
@@ -106,17 +118,21 @@
static int
bt_pci_probe(device_t dev)
{
- switch (pci_get_devid(dev)) {
- case PCI_DEVICE_ID_BUSLOGIC_MULTIMASTER:
- case PCI_DEVICE_ID_BUSLOGIC_MULTIMASTER_NC:
- {
- struct bt_softc *bt = device_get_softc(dev);
- pci_info_data_t pci_info;
- int error;
-
- error = bt_pci_alloc_resources(dev);
- if (error)
- return (error);
+ const struct bt_dev *btd;
+ uint32_t did;
+ size_t i;
+ did = pci_get_devid(dev);
+
+ for(i=0; i<nitems(bt_devs) - 1; i++) {
+ btd = &bt_devs[i];
+ if(btd->deviceid == did){
+ struct bt_softc *bt = device_get_softc(dev);
+ pci_info_data_t pci_info;
+ int error;
+
+ error = bt_pci_alloc_resources(dev);
+ if (error)
+ return (error);
/*
* Determine if an ISA compatible I/O port has been
@@ -124,33 +140,30 @@
* be probed by our ISA probe. If the PCI I/O port
* was not set to the compatibility port, disable it.
*/
- error = bt_cmd(bt, BOP_INQUIRE_PCI_INFO,
+ error = bt_cmd(bt, BOP_INQUIRE_PCI_INFO,
/*param*/NULL, /*paramlen*/0,
(u_int8_t*)&pci_info, sizeof(pci_info),
DEFAULT_CMD_TIMEOUT);
- if (error == 0
- && pci_info.io_port < BIO_DISABLED) {
- bt_mark_probed_bio(pci_info.io_port);
- if (rman_get_start(bt->port) !=
- bt_iop_from_bio(pci_info.io_port)) {
- u_int8_t new_addr;
-
- new_addr = BIO_DISABLED;
- bt_cmd(bt, BOP_MODIFY_IO_ADDR,
- /*param*/&new_addr,
- /*paramlen*/1, /*reply_buf*/NULL,
- /*reply_len*/0,
- DEFAULT_CMD_TIMEOUT);
+ if (error == 0
+ && pci_info.io_port < BIO_DISABLED) {
+ bt_mark_probed_bio(pci_info.io_port);
+ if (rman_get_start(bt->port) !=
+ bt_iop_from_bio(pci_info.io_port)) {
+ u_int8_t new_addr;
+
+ new_addr = BIO_DISABLED;
+ bt_cmd(bt, BOP_MODIFY_IO_ADDR,
+ /*param*/&new_addr,
+ /*paramlen*/1, /*reply_buf*/NULL,
+ /*reply_len*/0,
+ DEFAULT_CMD_TIMEOUT);
}
- }
- bt_pci_release_resources(dev);
- device_set_desc(dev, "Buslogic Multi-Master SCSI Host Adapter");
- return (BUS_PROBE_DEFAULT);
+ }
+ bt_pci_release_resources(dev);
+ device_set_desc(dev, btd->description);
+ return (BUS_PROBE_DEFAULT);
}
- default:
- break;
}
-
return (ENXIO);
}
@@ -218,4 +231,6 @@
static devclass_t bt_devclass;
DRIVER_MODULE(bt, pci, bt_pci_driver, bt_devclass, 0, 0);
+MODULE_PNP_INFO("U16:vendor;U32:device", pci, bt, bt_devs,
+ sizeof(bt_devs[0]), nitems(bt_devs) - 1);
MODULE_DEPEND(bt, pci, 1, 1, 1);
Index: sys/dev/de/if_de.c
===================================================================
--- sys/dev/de/if_de.c
+++ sys/dev/de/if_de.c
@@ -161,6 +161,21 @@
static void tulip_dma_map_rxbuf(void *, bus_dma_segment_t *, int,
bus_size_t, int);
+static struct de_dev {
+ uint16_t vendorid;
+ uint16_t deviceid;
+ uint8_t revid;
+ const char *description;
+} de_devs[] = {
+ {DEC_VENDORID, CHIPID_21040, 0, "Digital 21040 Ethernet"},
+ {DEC_VENDORID, CHIPID_21041, 0, "Digital 21041 Ethernet"},
+ {DEC_VENDORID, CHIPID_21140, 0, "Digital 21140 Fast Ethernet"},
+ {DEC_VENDORID, CHIPID_21140, 0x20, "Digital 21140A Fast Ethernet"},
+ {DEC_VENDORID, CHIPID_21142, 0, "Digital 21142 Fast Ethernet"},
+ {DEC_VENDORID, CHIPID_21142, 0x20, "Digital 21143 Fast Ethernet"},
+ {0, 0, 0, 0},
+};
+
static void
tulip_dma_map_addr(void *arg, bus_dma_segment_t *segs, int nseg, int error)
{
@@ -4908,6 +4923,8 @@
static devclass_t tulip_devclass;
DRIVER_MODULE(de, pci, tulip_pci_driver, tulip_devclass, 0, 0);
+MODULE_PNP_INFO("U16:vendor;U16:device", pci, de, de_devs,
+ sizeof(de_devs[0]), nitems(de_devs) - 1);
#ifdef DDB
void tulip_dumpring(int unit, int ring);
Index: sys/dev/hifn/hifn7751.c
===================================================================
--- sys/dev/hifn/hifn7751.c
+++ sys/dev/hifn/hifn7751.c
@@ -106,6 +106,21 @@
static int hifn_freesession(device_t, u_int64_t);
static int hifn_process(device_t, struct cryptop *, int);
+static struct hifn_dev {
+ uint16_t vendorid;
+ uint16_t deviceid;
+} hifn_devs[] = {
+ {PCI_VENDOR_INVERTEX, PCI_PRODUCT_INVERTEX_AEON},
+ {PCI_VENDOR_HIFN, PCI_PRODUCT_HIFN_7751},
+ {PCI_VENDOR_HIFN, PCI_PRODUCT_HIFN_7951},
+ {PCI_VENDOR_HIFN, PCI_PRODUCT_HIFN_7955},
+ {PCI_VENDOR_HIFN, PCI_PRODUCT_HIFN_7956},
+ {PCI_VENDOR_HIFN, PCI_PRODUCT_HIFN_7811},
+ {PCI_VENDOR_NETSEC, PCI_PRODUCT_NETSEC_7751},
+ {0, 0},
+};
+
+
static device_method_t hifn_methods[] = {
/* Device interface */
DEVMETHOD(device_probe, hifn_probe),
@@ -130,6 +145,8 @@
static devclass_t hifn_devclass;
DRIVER_MODULE(hifn, pci, hifn_driver, hifn_devclass, 0, 0);
+MODULE_PNP_INFO("U16:vendor;U16:device", pci, hifn, hifn_devs,
+ sizeof(hifn_devs[0]), nitems(hifn_devs) - 1);
MODULE_DEPEND(hifn, crypto, 1, 1, 1);
#ifdef HIFN_RNDTEST
MODULE_DEPEND(hifn, rndtest, 1, 1, 1);
Index: sys/dev/hptiop/hptiop.c
===================================================================
--- sys/dev/hptiop/hptiop.c
+++ sys/dev/hptiop/hptiop.c
@@ -1805,7 +1805,45 @@
sizeof(struct hpt_iop_hba)
};
+static struct hptiop_dev {
+ uint16_t vendorid;
+ uint16_t deviceid;
+ const char *description;
+ struct hptiop_adapter_ops *ops;
+} hptiop_devs[] = {
+ {0x1103, 0x4520, "RocketRAID 4520 SAS Controller", &hptiop_mvfrey_ops},
+ {0x1103, 0x4521, "RocketRAID 4521 SAS Controller", &hptiop_mvfrey_ops},
+ {0x1103, 0x4522, "RocketRAID 4522 SAS Controller", &hptiop_mvfrey_ops},
+ {0x1103, 0x3620, "RocketRAID 3620 SATA Controller", &hptiop_mvfrey_ops},
+ {0x1103, 0x3622, "RocketRAID 3622 SATA Controller", &hptiop_mvfrey_ops},
+ {0x1103, 0x3640, "RocketRAID 3640 SATA Controller", &hptiop_mvfrey_ops},
+ {0x1103, 0x4210, "RocketRAID 4210 SAS Controller", &hptiop_itl_ops},
+ {0x1103, 0x4211, "RocketRAID 4211 SAS Controller", &hptiop_itl_ops},
+ {0x1103, 0x4310, "RocketRAID 4310 SAS Controller", &hptiop_itl_ops},
+ {0x1103, 0x4311, "RocketRAID 4311 SAS Controller", &hptiop_itl_ops},
+ {0x1103, 0x4320, "RocketRAID 4320 SAS Controller", &hptiop_itl_ops},
+ {0x1103, 0x4321, "RocketRAID 4321 SAS Controller", &hptiop_itl_ops},
+ {0x1103, 0x4322, "RocketRAID 4322 SAS Controller", &hptiop_itl_ops},
+ {0x1103, 0x3220, "RocketRAID 3220 SATA Controller", &hptiop_itl_ops},
+ {0x1103, 0x3320, "RocketRAID 3320 SATA Controller", &hptiop_itl_ops},
+ {0x1103, 0x3410, "RocketRAID 3410 SATA Controller", &hptiop_itl_ops},
+ {0x1103, 0x3520, "RocketRAID 3520 SATA Controller", &hptiop_itl_ops},
+ {0x1103, 0x3510, "RocketRAID 3510 SATA Controller", &hptiop_itl_ops},
+ {0x1103, 0x3511, "RocketRAID 3511 SATA Controller", &hptiop_itl_ops},
+ {0x1103, 0x3521, "RocketRAID 3521 SATA Controller", &hptiop_itl_ops},
+ {0x1103, 0x3522, "RocketRAID 3522 SATA Controller", &hptiop_itl_ops},
+ {0x1103, 0x3530, "RocketRAID 3530 SATA Controller", &hptiop_itl_ops},
+ {0x1103, 0x3540, "RocketRAID 3540 SATA Controller", &hptiop_itl_ops},
+ {0x1103, 0x3560, "RocketRAID 3560 SATA Controller", &hptiop_itl_ops},
+ {0x1103, 0x3020, "RocketRAID 3020 SATA Controller", &hptiop_mv_ops},
+ {0x1103, 0x3120, "RocketRAID 3120 SATA Controller", &hptiop_mv_ops},
+ {0x1103, 0x3122, "RocketRAID 3122 SATA Controller", &hptiop_mv_ops},
+ {0, 0, 0, 0},
+};
+
DRIVER_MODULE(hptiop, pci, hptiop_pci_driver, hptiop_devclass, 0, 0);
+MODULE_PNP_INFO("U16:vendor;U16:device", pci, hptiop, hptiop_devs,
+ sizeof(hptiop_devs), nitems(hptiop_devs) - 1);
MODULE_DEPEND(hptiop, cam, 1, 1, 1);
static int hptiop_probe(device_t dev)
Index: sys/dev/imcsmb/imcsmb_pci.c
===================================================================
--- sys/dev/imcsmb/imcsmb_pci.c
+++ sys/dev/imcsmb/imcsmb_pci.c
@@ -129,22 +129,23 @@
};
static struct imcsmb_pci_device {
- uint16_t id;
+ uint16_t vendorid;
+ uint16_t deviceid;
char *name;
} imcsmb_pci_devices[] = {
- {IMCSMB_PCI_DEV_ID_IMC0_SBX,
+ {PCI_VENDOR_INTEL, IMCSMB_PCI_DEV_ID_IMC0_SBX,
"Intel Sandybridge Xeon iMC 0 SMBus controllers" },
- {IMCSMB_PCI_DEV_ID_IMC0_IBX,
+ {PCI_VENDOR_INTEL, IMCSMB_PCI_DEV_ID_IMC0_IBX,
"Intel Ivybridge Xeon iMC 0 SMBus controllers" },
- {IMCSMB_PCI_DEV_ID_IMC0_HSX,
+ {PCI_VENDOR_INTEL, IMCSMB_PCI_DEV_ID_IMC0_HSX,
"Intel Haswell Xeon iMC 0 SMBus controllers" },
- {IMCSMB_PCI_DEV_ID_IMC1_HSX,
+ {PCI_VENDOR_INTEL, IMCSMB_PCI_DEV_ID_IMC1_HSX,
"Intel Haswell Xeon iMC 1 SMBus controllers" },
- {IMCSMB_PCI_DEV_ID_IMC0_BDX,
+ {PCI_VENDOR_INTEL, IMCSMB_PCI_DEV_ID_IMC0_BDX,
"Intel Broadwell Xeon iMC 0 SMBus controllers" },
- {IMCSMB_PCI_DEV_ID_IMC1_BDX,
+ {PCI_VENDOR_INTEL, IMCSMB_PCI_DEV_ID_IMC1_BDX,
"Intel Broadwell Xeon iMC 1 SMBus controllers" },
- {0, NULL},
+ {0, 0, NULL},
};
/* Device methods. */
@@ -249,7 +250,7 @@
for (pci_device = imcsmb_pci_devices;
pci_device->name != NULL;
pci_device++) {
- if (pci_dev_id == pci_device->id) {
+ if (pci_dev_id == pci_device->deviceid) {
device_set_desc(dev, pci_device->name);
rc = BUS_PROBE_DEFAULT;
goto out;
@@ -339,6 +340,8 @@
};
DRIVER_MODULE(imcsmb_pci, pci, imcsmb_pci_driver, imcsmb_pci_devclass, 0, 0);
+MODULE_PNP_INFO("U16:vendor;U16:device", pci, imcsmb_pci, imcsmb_pci_devices,
+ sizeof(imcsmb_pci_devices[0]), nitems(imcsmb_pci_devices) - 1);
MODULE_DEPEND(imcsmb_pci, pci, 1, 1, 1);
MODULE_VERSION(imcsmb_pci, 1);
Index: sys/dev/pccbb/pccbb_pci.c
===================================================================
--- sys/dev/pccbb/pccbb_pci.c
+++ sys/dev/pccbb/pccbb_pci.c
@@ -983,4 +983,6 @@
};
DRIVER_MODULE(cbb, pci, cbb_driver, cbb_devclass, 0, 0);
+MODULE_PNP_INFO("W32:vendor/device", pci, cbb, yc_chipsets,
+ sizeof(yc_chipsets[0]), nitems(yc_chipsets) - 1);
MODULE_DEPEND(cbb, exca, 1, 1, 1);
Index: sys/dev/pci/fixup_pci.c
===================================================================
--- sys/dev/pci/fixup_pci.c
+++ sys/dev/pci/fixup_pci.c
@@ -55,6 +55,15 @@
static void fixwsc_natoma(device_t dev);
static void fixc1_nforce2(device_t dev);
+static struct fixup_pci_dev {
+ uint32_t devid;
+ const char *description;
+} fixup_pci_devs[] = {
+ {0x12378086, "Intel 82440FX (Natoma)"},
+ {0x01e010de, "nVidia nForce2"},
+ {0, 0},
+};
+
static device_method_t fixup_pci_methods[] = {
/* Device interface */
DEVMETHOD(device_probe, fixup_pci_probe),
@@ -71,6 +80,8 @@
static devclass_t fixup_pci_devclass;
DRIVER_MODULE(fixup_pci, pci, fixup_pci_driver, fixup_pci_devclass, 0, 0);
+MODULE_PNP_INFO("W32:vendor/device", pci, fixup_pci, fixup_pci_devs,
+ sizeof(fixup_pci_devs[0]), nitems(fixup_pci_devs) - 1);
static int
fixup_pci_probe(device_t dev)
Index: sys/dev/sound/pci/emu10k1.c
===================================================================
--- sys/dev/sound/pci/emu10k1.c
+++ sys/dev/sound/pci/emu10k1.c
@@ -157,6 +157,29 @@
#define A_EXTOUT_ADC_CAP_L 0x16
#define A_EXTOUT_ADC_CAP_R 0x17
+static struct emu_pci_dev {
+ uint16_t vendorid;
+ uint32_t deviceid;
+ uint8_t rev;
+ const char *description;
+} emu_pci_devs[] = {
+ {0x1102, EMU10K1_PCI_ID, 0, "Creative EMU10K1"},
+ {0x1102, EMU10K2_PCI_ID, 0, "Creative Audigy (EMU10K2)"},
+ {0x1102, EMU10K2_PCI_ID, 0x04, "Creative Audigy 2 (EMU10K2)"},
+ {0x1102, EMU10K3_PCI_ID, 0, "Creative Audigy 2 (EMU10K3)"},
+ {0, 0, 0, 0},
+};
+
+static struct emujoy_pci_dev {
+ uint16_t vendorid;
+ uint32_t deviceid;
+ const char *description;
+} emujoy_pci_devs[] = {
+ {0x1102, 0x70021102, "Creative EMU10K1 Joystick"},
+ {0x1102, 0x70031102, "Creative EMU10K2 Joystick"},
+ {0, 0, 0},
+};
+
struct emu_memblk {
SLIST_ENTRY(emu_memblk) link;
void *buf;
@@ -2200,6 +2223,8 @@
};
DRIVER_MODULE(snd_emu10k1, pci, emu_driver, pcm_devclass, NULL, NULL);
+MODULE_PNP_INFO("U16:vendor;U32:device", pci, snd_emu101k1,
+ emu_pci_devs, sizeof(emu_pci_devs[0]), nitems(emu_pci_devs) - 1);
MODULE_DEPEND(snd_emu10k1, sound, SOUND_MINVER, SOUND_PREFVER, SOUND_MAXVER);
MODULE_VERSION(snd_emu10k1, 1);
MODULE_DEPEND(snd_emu10k1, midi, 1, 1, 1);
@@ -2256,3 +2281,5 @@
static devclass_t emujoy_devclass;
DRIVER_MODULE(emujoy, pci, emujoy_driver, emujoy_devclass, NULL, NULL);
+MODULE_PNP_INFO("U32:device", pci, emujoy, emujoy_pci_devs,
+ sizeof(emujoy_pci_devs[0]), nitems(emujoy_pci_devs) - 1);
Index: sys/sparc64/ebus/ebus.c
===================================================================
--- sys/sparc64/ebus/ebus.c
+++ sys/sparc64/ebus/ebus.c
@@ -200,6 +200,16 @@
BUS_PASS_BUS + 1);
MODULE_DEPEND(ebus, nexus, 1, 1, 1);
+static struct ebus_pci_dev {
+ uint16_t vendorid;
+ uint16_t deviceid;
+ const char *description;
+} ebus_pci_devs[] = {
+ {0x108e, 0x1000, "PCI-EBus2 bridge"},
+ {0x108e, 0x1100, "PCI-EBus3 bridge"},
+ {0, 0, 0},
+}
+
static device_method_t ebus_pci_methods[] = {
/* Device interface */
DEVMETHOD(device_probe, ebus_pci_probe),
@@ -240,6 +250,8 @@
EARLY_DRIVER_MODULE(ebus, pci, ebus_pci_driver, ebus_devclass, 0, 0,
BUS_PASS_BUS);
+MODULE_PNP_INFO("U16:vendor;U16:device", pci, ebus, ebus_pci_devs,
+ sizeof(ebus_pci_devs[0]), nitems(ebus_pci_devs) - 1);
MODULE_DEPEND(ebus, pci, 1, 1, 1);
MODULE_VERSION(ebus, 1);
@@ -260,19 +272,25 @@
static int
ebus_pci_probe(device_t dev)
{
+ const struct ebus_pci_dev *ebd;
+ uint16_t did;
+ size_t i;
+ did = pci_get_device(dev);
if (pci_get_class(dev) != PCIC_BRIDGE ||
pci_get_vendor(dev) != 0x108e ||
strcmp(ofw_bus_get_name(dev), "ebus") != 0)
return (ENXIO);
-
- if (pci_get_device(dev) == 0x1000)
- device_set_desc(dev, "PCI-EBus2 bridge");
- else if (pci_get_device(dev) == 0x1100)
- device_set_desc(dev, "PCI-EBus3 bridge");
- else
- return (ENXIO);
- return (BUS_PROBE_GENERIC);
+
+ for(i=0; i<nitems(ebus_pci_devs) - 1; i++){
+ ebd = &ebus_pci_devs[i];
+ if (did == ebd->deviceid){
+ device_set_desc(dev, ebd->description);
+ return (BUS_PROBE_GENERIC);
+ }
+
+ }
+ return (ENXIO);
}
static int
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Mon, Feb 23, 8:36 PM (17 h, 58 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28963193
Default Alt Text
D15996.id44565.diff (19 KB)
Attached To
Mode
D15996: Add PNP info to PCI attachment of arcmsr, bt, cbb, de, ebus, emujoy, fixup_pci, hifn, hptiop, imcsmb, snd_emu10k1 (emu_pci) drivers
Attached
Detach File
Event Timeline
Log In to Comment