[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