summaryrefslogtreecommitdiff
path: root/sys/dev/rp
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2005-03-25 03:10:51 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2005-03-25 03:10:51 +0000
commit04f716a436c3b362dbe601b2026119ef3894e06a (patch)
tree273711a5955d52e3d0587d18a9e7ab63376ef343 /sys/dev/rp
parent379ba8532208d0efa642069d41f2519b7f455aa5 (diff)
Notes
Diffstat (limited to 'sys/dev/rp')
-rw-r--r--sys/dev/rp/rp_pci.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/sys/dev/rp/rp_pci.c b/sys/dev/rp/rp_pci.c
index 223cd83ea570..f7a080c96ca7 100644
--- a/sys/dev/rp/rp_pci.c
+++ b/sys/dev/rp/rp_pci.c
@@ -67,6 +67,7 @@ __FBSDID("$FreeBSD$");
#define RP_DEVICE_ID_4J 0x0007
#define RP_DEVICE_ID_6M 0x000C
#define RP_DEVICE_ID_4M 0x000D
+#define RP_DEVICE_ID_UPCI_8O 0x0805
/**************************************************************************
MUDBAC remapped for PCI
@@ -129,7 +130,7 @@ rp_pciprobe(device_t dev)
char *s;
s = NULL;
- if ((pci_get_devid(dev) & 0xffff) == RP_VENDOR_ID)
+ if (pci_get_vendor(dev) == RP_VENDOR_ID)
s = "RocketPort PCI";
if (s != NULL) {
@@ -177,7 +178,14 @@ rp_pciattach(device_t dev)
ctlp->bus_ctlp = NULL;
- ctlp->io_rid[0] = 0x10;
+ switch (pci_get_device(dev)) {
+ case RP_DEVICE_ID_UPCI_8O:
+ ctlp->io_rid[0] = PCIR_BAR(2);
+ break;
+ default:
+ ctlp->io_rid[0] = PCIR_BAR(0);
+ break;
+ }
ctlp->io[0] = bus_alloc_resource_any(dev, SYS_RES_IOPORT,
&ctlp->io_rid[0], RF_ACTIVE);
if(ctlp->io[0] == NULL) {
@@ -188,7 +196,7 @@ rp_pciattach(device_t dev)
num_aiops = sPCIInitController(ctlp,
MAX_AIOPS_PER_BOARD, 0,
- FREQ_DIS, 0, (pci_get_devid(dev) >> 16) & 0xffff);
+ FREQ_DIS, 0, pci_get_device(dev));
num_ports = 0;
for(aiop=0; aiop < num_aiops; aiop++) {