aboutsummaryrefslogtreecommitdiff
path: root/sys/alpha/pci
diff options
context:
space:
mode:
authorSøren Schmidt <sos@FreeBSD.org>2000-02-18 20:57:33 +0000
committerSøren Schmidt <sos@FreeBSD.org>2000-02-18 20:57:33 +0000
commit47351d277488fe766a8a451c35caf331d27740b6 (patch)
tree2480cf62be131e247f03f6ef145afc658f2fca36 /sys/alpha/pci
parentc2edcb1a5c64032cb143d9e5e7df398e77fce77d (diff)
Notes
Diffstat (limited to 'sys/alpha/pci')
-rw-r--r--sys/alpha/pci/pcibus.c37
1 files changed, 23 insertions, 14 deletions
diff --git a/sys/alpha/pci/pcibus.c b/sys/alpha/pci/pcibus.c
index b668c827759f..a137558aedc1 100644
--- a/sys/alpha/pci/pcibus.c
+++ b/sys/alpha/pci/pcibus.c
@@ -140,22 +140,31 @@ alpha_platform_assign_pciintr(pcicfgregs *cfg)
platform.pci_intr_map((void *)cfg);
}
+struct resource *
+alpha_platform_alloc_ide_intr(int chan)
+{
+ int irqs[2] = { 14, 15 };
+ return isa_alloc_intr(0, 0, irqs[chan]);
+}
+
int
-alpha_platform_setup_ide_intr(int chan, driver_intr_t *fn, void *arg)
+alpha_platform_release_ide_intr(int chan, struct resource *res)
{
- if (platform.pci_setup_ide_intr)
- return platform.pci_setup_ide_intr(chan, fn, arg);
- else {
- int irqs[2] = { 14, 15 };
- void *junk;
- struct resource *res;
- res = isa_alloc_intr(0, 0, irqs[chan]);
- if (res)
- return isa_setup_intr(0, 0, res, INTR_TYPE_BIO,
- fn, arg, &junk);
- else
- return ENOMEM;
- }
+ return isa_release_intr(0, 0, res);
+}
+
+int
+alpha_platform_setup_ide_intr(struct resource *res,
+ driver_intr_t *fn, void *arg,
+ void **cookiep)
+{
+ return isa_setup_intr(0, 0, res, INTR_TYPE_BIO, fn, arg, cookiep);
+}
+
+int
+alpha_platform_teardown_ide_intr(struct resource *res, void *cookie)
+{
+ return isa_teardown_intr(0, 0, res, cookie);
}
static struct rman irq_rman, port_rman, mem_rman;