X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fparisc%2Fgsc.h;h=a3dc456709d799be9f3949a1d915ded99eafd3ac;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=cd05a1fad17bbd3f3de8322987be18373acdcb44;hpb=87fc8d1bb10cd459024a742c6a10961fefcef18f;p=linux-2.6.git diff --git a/drivers/parisc/gsc.h b/drivers/parisc/gsc.h index cd05a1fad..a3dc45670 100644 --- a/drivers/parisc/gsc.h +++ b/drivers/parisc/gsc.h @@ -25,22 +25,23 @@ struct gsc_irq { int irq; /* virtual IRQ */ }; -struct busdevice { +struct gsc_asic { struct parisc_device *gsc; unsigned long hpa; char *name; int version; int type; - int parent_irq; int eim; - struct irq_region *busdev_region; + int global_irq[32]; }; -/* short cut to keep the compiler happy */ -#define BUSDEV_DEV(x) ((struct busdevice *) (x)) +int gsc_common_setup(struct parisc_device *parent, struct gsc_asic *gsc_asic); +int gsc_alloc_irq(struct gsc_irq *dev); /* dev needs an irq */ +int gsc_claim_irq(struct gsc_irq *dev, int irq); /* dev needs this irq */ +int gsc_assign_irq(struct hw_interrupt_type *type, void *data); +int gsc_find_local_irq(unsigned int irq, int *global_irq, int limit); +void gsc_fixup_irqs(struct parisc_device *parent, void *ctrl, + void (*choose)(struct parisc_device *child, void *ctrl)); +void gsc_asic_assign_irq(struct gsc_asic *asic, int local_irq, int *irqp); -int gsc_common_irqsetup(struct parisc_device *parent, struct busdevice *busdev); -extern int gsc_alloc_irq(struct gsc_irq *dev); /* dev needs an irq */ -extern int gsc_claim_irq(struct gsc_irq *dev, int irq); /* dev needs this irq */ - -irqreturn_t busdev_barked(int busdev_irq, void *dev, struct pt_regs *regs); +irqreturn_t gsc_asic_intr(int irq, void *dev, struct pt_regs *regs);