summaryrefslogtreecommitdiffstats
path: root/sys/alpha/pci/pcibus.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/alpha/pci/pcibus.c')
-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 b668c82..a137558 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;
OpenPOWER on IntegriCloud