summaryrefslogtreecommitdiffstats
path: root/sys/pccard
diff options
context:
space:
mode:
authorimp <imp@FreeBSD.org>2002-06-13 17:28:55 +0000
committerimp <imp@FreeBSD.org>2002-06-13 17:28:55 +0000
commit89a746a29dc8d07c5e18b9a23517ae6a4a7d6618 (patch)
treedb4d9ceb8b6678148c0689befebf3174e4d72d06 /sys/pccard
parent7571375fe03e7aa920477162c9ae7fbd1dc14c7c (diff)
downloadFreeBSD-src-89a746a29dc8d07c5e18b9a23517ae6a4a7d6618.zip
FreeBSD-src-89a746a29dc8d07c5e18b9a23517ae6a4a7d6618.tar.gz
hw.pcic.ignore_pci
Set this to 1 to ignore cardbus bridges and work entirely in legacy ISA mode. This may help some folks.
Diffstat (limited to 'sys/pccard')
-rw-r--r--sys/pccard/pcic_pci.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/sys/pccard/pcic_pci.c b/sys/pccard/pcic_pci.c
index ceca9e2..a063935 100644
--- a/sys/pccard/pcic_pci.c
+++ b/sys/pccard/pcic_pci.c
@@ -71,7 +71,7 @@ SYSCTL_INT(_hw_pcic, OID_AUTO, ignore_function_1, CTLFLAG_RD,
* The following should be a hint, so we can do it on a per device
* instance, but this is convenient. Do not set this unless pci
* routing doesn't work. It is purposely vague and undocumented
- * at the moment.
+ * at the moment. Sadly, this seems to be needed way too often.
*/
static int pcic_intr_path = (int)pcic_iw_pci;
TUNABLE_INT("hw.pcic.intr_path", &pcic_intr_path);
@@ -87,6 +87,12 @@ doing so will cause probelms. Often when no interrupts appear to be routed\n\
setting this tunable to 1 will resolve the problem. PCI Cards will almost\n\
always require this, while builtin bridges need it less often");
+static int pcic_ignore_pci = 0;
+TUNABLE_INT("hw.pcic.ignore_pci", &pcic_ignore_pci);
+SYSCTL_INT(_hw_pcic, OID_AUTO, ignore_pci, CTLFLAG_RD,
+ &pcic_ignore_pci, 0,
+ "When set, driver ignores pci cardbus bridges it would otherwise claim.");
+
static void pcic_pci_cardbus_init(device_t);
static pcic_intr_way_t pcic_pci_gen_func;
static pcic_intr_way_t pcic_pci_gen_csc;
@@ -999,6 +1005,8 @@ pcic_pci_probe(device_t dev)
struct resource *res;
int rid;
+ if (pcic_ignore_pci)
+ return (ENXIO);
device_id = pci_get_devid(dev);
desc = NULL;
itm = pcic_pci_lookup(device_id, &pcic_pci_devs[0]);
OpenPOWER on IntegriCloud