summaryrefslogtreecommitdiffstats
path: root/sys/pccard/pcic_isa.c
diff options
context:
space:
mode:
authorimp <imp@FreeBSD.org>2001-05-28 02:53:02 +0000
committerimp <imp@FreeBSD.org>2001-05-28 02:53:02 +0000
commit476e3d24e2f2e209b5a8f8b090f341decf72bcc6 (patch)
tree896bc928d7846a9a7e5c9e26e5a0de8a4d70447e /sys/pccard/pcic_isa.c
parent315d04216a024b672d86764ea09a860493672bb5 (diff)
downloadFreeBSD-src-476e3d24e2f2e209b5a8f8b090f341decf72bcc6.zip
FreeBSD-src-476e3d24e2f2e209b5a8f8b090f341decf72bcc6.tar.gz
Turns out that one bit isn't enough. Introduce two new fields
csc_route and func_route to hold the way that each interrupt is routed. csc is Card Status Change in the datasheets and standard, but is called "Management Interrupt" in FreeBSDese. There are three types of interrupt routing: ISA parallel, PCI parallel and ISA serial (some chipsets support other types as well, but I don't plan on supporting them). When we try to allocate an interrupt, and the type for that interrupt is pci_parallel, allow it to be shared by oring in RF_SHAREABLE to the flags argument. Introduce pcic_alloc_resource to allow this to happen.
Diffstat (limited to 'sys/pccard/pcic_isa.c')
-rw-r--r--sys/pccard/pcic_isa.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/pccard/pcic_isa.c b/sys/pccard/pcic_isa.c
index 5e18bb2..9856461 100644
--- a/sys/pccard/pcic_isa.c
+++ b/sys/pccard/pcic_isa.c
@@ -284,6 +284,8 @@ pcic_isa_attach(device_t dev)
}
sc->iorid = rid;
sc->iores = r;
+ sc->csc_route = isa_parallel;
+ sc->func_route = isa_parallel;
return (pcic_attach(dev));
}
@@ -298,7 +300,7 @@ static device_method_t pcic_methods[] = {
/* Bus interface */
DEVMETHOD(bus_print_child, bus_generic_print_child),
- DEVMETHOD(bus_alloc_resource, bus_generic_alloc_resource),
+ DEVMETHOD(bus_alloc_resource, pcic_alloc_resource),
DEVMETHOD(bus_release_resource, bus_generic_release_resource),
DEVMETHOD(bus_activate_resource, pcic_activate_resource),
DEVMETHOD(bus_deactivate_resource, pcic_deactivate_resource),
OpenPOWER on IntegriCloud