Allow platform specific isa interrupt setup & teardown routines in
preparation for sable/lynx support
This commit is contained in:
parent
72741b445a
commit
521ff6f1b9
@ -47,6 +47,7 @@
|
||||
*
|
||||
*/
|
||||
struct device; /* XXX */
|
||||
struct resource; /* XXX */
|
||||
|
||||
extern struct platform {
|
||||
/*
|
||||
@ -75,6 +76,10 @@ extern struct platform {
|
||||
void (*pci_intr_disable) __P((int));
|
||||
void (*pci_intr_enable) __P((int));
|
||||
int (*pci_setup_ide_intr) __P((int chan, void (*fn)(void*), void *arg));
|
||||
int (*isa_setup_intr) __P((struct device *, struct device *,
|
||||
struct resource *, int, void *, void *, void **));
|
||||
int (*isa_teardown_intr) __P((struct device *, struct device *,
|
||||
struct resource *, void *));
|
||||
} platform;
|
||||
|
||||
/*
|
||||
|
@ -42,6 +42,7 @@
|
||||
#include <machine/intr.h>
|
||||
#include <machine/intrcnt.h>
|
||||
#include <machine/resource.h>
|
||||
#include <machine/cpuconf.h>
|
||||
|
||||
static struct rman isa_irq_rman;
|
||||
static struct rman isa_drq_rman;
|
||||
@ -298,7 +299,11 @@ isa_setup_intr(device_t dev, device_t child,
|
||||
{
|
||||
struct isa_intr *ii;
|
||||
int error;
|
||||
|
||||
|
||||
if (platform.isa_setup_intr)
|
||||
return platform.isa_setup_intr(dev, child, irq, flags,
|
||||
intr, arg, cookiep);
|
||||
|
||||
error = rman_activate_resource(irq);
|
||||
if (error)
|
||||
return error;
|
||||
@ -334,6 +339,11 @@ isa_teardown_intr(device_t dev, device_t child,
|
||||
{
|
||||
struct isa_intr *ii = cookie;
|
||||
|
||||
if (platform.isa_teardown_intr) {
|
||||
platform.isa_teardown_intr(dev, child, irq, cookie);
|
||||
return 0;
|
||||
}
|
||||
|
||||
alpha_teardown_intr(ii->ih);
|
||||
isa_intr_disable(irq->r_start);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user