[PATCH 1/8] apus: irq API updates
Roman Zippel
zippel at linux-m68k.org
Sun Sep 25 08:41:46 EST 2005
Update the apus interrupt functions to the new irq API
---
arch/ppc/amiga/amiints.c | 19 +++++++++++++------
arch/ppc/amiga/cia.c | 3 ++-
2 files changed, 15 insertions(+), 7 deletions(-)
Index: linux/arch/ppc/amiga/amiints.c
===================================================================
--- linux.orig/arch/ppc/amiga/amiints.c 2005-09-23 16:20:11.000000000 +0200
+++ linux/arch/ppc/amiga/amiints.c 2005-09-23 16:20:18.000000000 +0200
@@ -67,9 +67,10 @@ static const unsigned char ami_servers[A
static short ami_ablecount[AMI_IRQS];
-static void ami_badint(int irq, void *dev_id, struct pt_regs *fp)
+static irqreturn_t ami_badint(int irq, void *dev_id, struct pt_regs *fp)
{
/* num_spurious += 1;*/
+ return IRQ_NONE;
}
/*
@@ -206,7 +207,7 @@ void amiga_do_irq_list(int irq, struct p
* The builtin Amiga hardware interrupt handlers.
*/
-static void ami_int1(int irq, void *dev_id, struct pt_regs *fp)
+static irqreturn_t ami_int1(int irq, void *dev_id, struct pt_regs *fp)
{
unsigned short ints = custom.intreqr & custom.intenar;
@@ -227,9 +228,10 @@ static void ami_int1(int irq, void *dev_
custom.intreq = IF_SOFT;
amiga_do_irq(IRQ_AMIGA_SOFT, fp);
}
+ return IRQ_HANDLED;
}
-static void ami_int3(int irq, void *dev_id, struct pt_regs *fp)
+static irqreturn_t ami_int3(int irq, void *dev_id, struct pt_regs *fp)
{
unsigned short ints = custom.intreqr & custom.intenar;
@@ -248,9 +250,11 @@ static void ami_int3(int irq, void *dev_
/* if a vertical blank interrupt */
if (ints & IF_VERTB)
amiga_do_irq_list(IRQ_AMIGA_VERTB, fp);
+
+ return IRQ_HANDLED;
}
-static void ami_int4(int irq, void *dev_id, struct pt_regs *fp)
+static irqreturn_t ami_int4(int irq, void *dev_id, struct pt_regs *fp)
{
unsigned short ints = custom.intreqr & custom.intenar;
@@ -277,9 +281,10 @@ static void ami_int4(int irq, void *dev_
custom.intreq = IF_AUD3;
amiga_do_irq(IRQ_AMIGA_AUD3, fp);
}
+ return IRQ_HANDLED;
}
-static void ami_int5(int irq, void *dev_id, struct pt_regs *fp)
+static irqreturn_t ami_int5(int irq, void *dev_id, struct pt_regs *fp)
{
unsigned short ints = custom.intreqr & custom.intenar;
@@ -294,11 +299,13 @@ static void ami_int5(int irq, void *dev_
custom.intreq = IF_DSKSYN;
amiga_do_irq(IRQ_AMIGA_DSKSYN, fp);
}
+ return IRQ_HANDLED;
}
-static void ami_int7(int irq, void *dev_id, struct pt_regs *fp)
+static irqreturn_t ami_int7(int irq, void *dev_id, struct pt_regs *fp)
{
panic ("level 7 interrupt received\n");
+ return IRQ_NONE;
}
#ifdef CONFIG_APUS
Index: linux/arch/ppc/amiga/cia.c
===================================================================
--- linux.orig/arch/ppc/amiga/cia.c 2005-09-23 16:20:11.000000000 +0200
+++ linux/arch/ppc/amiga/cia.c 2005-09-23 16:20:18.000000000 +0200
@@ -134,7 +134,7 @@ unsigned char cia_able_irq(unsigned int
return cia_able_irq_private(base, mask);
}
-static void cia_handler(int irq, void *dev_id, struct pt_regs *fp)
+static irqreturn_t cia_handler(int irq, void *dev_id, struct pt_regs *fp)
{
struct ciabase *base = (struct ciabase *)dev_id;
irq_desc_t *desc;
@@ -156,6 +156,7 @@ static void cia_handler(int irq, void *d
desc++;
}
amiga_do_irq_list(base->server_irq, fp);
+ return IRQ_HANDLED;
}
void __init cia_init_IRQ(struct ciabase *base)
More information about the Linuxppc-dev
mailing list