summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorimp <imp@FreeBSD.org>2002-01-15 06:46:59 +0000
committerimp <imp@FreeBSD.org>2002-01-15 06:46:59 +0000
commitec363a654937df9a2fd6fc5b9acdd5a94864a2ad (patch)
treee0c3be1a3ae151e09022be0de3e0f012e603753f
parent68ef2c33964f060544c2228aef4b62bd79b37666 (diff)
downloadFreeBSD-src-ec363a654937df9a2fd6fc5b9acdd5a94864a2ad.zip
FreeBSD-src-ec363a654937df9a2fd6fc5b9acdd5a94864a2ad.tar.gz
Make PCI_ALLOW_UNSUPPORTED_IO_RANGE an option until the ISA address
problem is fixed at the bridge level. This is needed for some newer laptops that have the cardbus bridge not on pci0.
-rw-r--r--sys/conf/options1
-rw-r--r--sys/dev/pci/pci_pci.c5
2 files changed, 6 insertions, 0 deletions
diff --git a/sys/conf/options b/sys/conf/options
index 066911f..ef111b5 100644
--- a/sys/conf/options
+++ b/sys/conf/options
@@ -417,6 +417,7 @@ MSGBUF_SIZE opt_msgbuf.h
# PCI related options
PCI_QUIET opt_pci.h
PCI_ENABLE_IO_MODES opt_pci.h
+PCI_ALLOW_UNSUPPORTED_IO_RANGE opt_pci.h
# NFS options
NFS_MINATTRTIMO opt_nfs.h
diff --git a/sys/dev/pci/pci_pci.c b/sys/dev/pci/pci_pci.c
index 0a4be2d..166f490 100644
--- a/sys/dev/pci/pci_pci.c
+++ b/sys/dev/pci/pci_pci.c
@@ -45,6 +45,7 @@
#include <pci/pcireg.h>
#include "pcib_if.h"
+#include "opt_pci.h"
/*
* Bridge-specific data.
@@ -281,6 +282,10 @@ pcib_alloc_resource(device_t dev, device_t child, int type, int *rid,
*/
switch (type) {
case SYS_RES_IOPORT:
+ if (start < sc->iobase)
+ start = sc->iobase;
+ if (end > sc->iolimit && start < end)
+ end = sc->iolimit;
if ((start < sc->iobase) || (end > sc->iolimit)) {
device_printf(dev, "device %s%d requested unsupported I/O range 0x%lx-0x%lx"
" (decoding 0x%x-0x%x)\n",
OpenPOWER on IntegriCloud