summaryrefslogtreecommitdiff
path: root/sys/dev/pci/ppb.c
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@cvs.openbsd.org>2009-05-15 21:51:59 +0000
committerMark Kettenis <kettenis@cvs.openbsd.org>2009-05-15 21:51:59 +0000
commit80987be514eb74e84fe7bc91f5333a1cf7b2b914 (patch)
treeea7fc5ca695c07d18cfdfe2f54765744e04208cf /sys/dev/pci/ppb.c
parentb0ae5b509558c66a70f0e199f40b9521542e19e3 (diff)
On the Intel 82801BAM Hub-to-PCI, pass the main PCI io and mmio extents if
there are no windows enabled. Restores CardBus functionality on some machines with Intel chipsets.
Diffstat (limited to 'sys/dev/pci/ppb.c')
-rw-r--r--sys/dev/pci/ppb.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/sys/dev/pci/ppb.c b/sys/dev/pci/ppb.c
index d5e066b43e0..6b9b39c2606 100644
--- a/sys/dev/pci/ppb.c
+++ b/sys/dev/pci/ppb.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ppb.c,v 1.32 2009/05/05 14:16:17 kettenis Exp $ */
+/* $OpenBSD: ppb.c,v 1.33 2009/05/15 21:51:58 kettenis Exp $ */
/* $NetBSD: ppb.c,v 1.16 1997/06/06 23:48:05 thorpej Exp $ */
/*
@@ -227,6 +227,19 @@ ppbattach(struct device *parent, struct device *self, void *aux)
}
}
+ /*
+ * The Intel 82801BAM Hub-to-PCI can decode subtractively.
+ * XXX We probably should handle subtractive decode bridges
+ * in general.
+ */
+ if (PCI_VENDOR(pa->pa_id) == PCI_VENDOR_INTEL &&
+ PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_INTEL_82801BAM_HPB) {
+ if (sc->sc_ioex == NULL)
+ sc->sc_ioex = pa->pa_ioex;
+ if (sc->sc_memex == NULL)
+ sc->sc_memex = pa->pa_memex;
+ }
+
attach:
/*
* Attach the PCI bus that hangs off of it.