[PATCH] M68k IRQ API updates [4/20]

Geert Uytterhoeven (geert@linux-m68k.org)
Mon, 12 May 2003 11:54:35 +0200


M68k Atari: Update to the new irq API (from Roman Zippel and me) [4/20]

--- linux-2.5.69/arch/m68k/atari/ataints.c Tue Mar 25 10:06:07 2003
+++ linux-m68k-2.5.69/arch/m68k/atari/ataints.c Tue May 6 13:50:49 2003
@@ -110,7 +110,7 @@
typedef void (*asm_irq_handler)(void);

struct irqhandler {
- void (*handler)(int, void *, struct pt_regs *);
+ irqreturn_t (*handler)(int, void *, struct pt_regs *);
void *dev_id;
};

@@ -404,12 +404,13 @@
}


-static void atari_call_irq_list( int irq, void *dev_id, struct pt_regs *fp )
+static irqreturn_t atari_call_irq_list( int irq, void *dev_id, struct pt_regs *fp )
{
irq_node_t *node;

for (node = (irq_node_t *)dev_id; node; node = node->next)
node->handler(irq, node->dev_id, fp);
+ return IRQ_HANDLED;
}


@@ -419,7 +420,7 @@
* If the addition was successful, it returns 0.
*/

-int atari_request_irq(unsigned int irq, void (*handler)(int, void *, struct pt_regs *),
+int atari_request_irq(unsigned int irq, irqreturn_t (*handler)(int, void *, struct pt_regs *),
unsigned long flags, const char *devname, void *dev_id)
{
int vector;
--- linux-2.5.69/arch/m68k/atari/config.c Thu Jan 2 12:53:55 2003
+++ linux-m68k-2.5.69/arch/m68k/atari/config.c Tue May 6 13:50:49 2003
@@ -60,7 +60,7 @@

/* atari specific irq functions */
extern void atari_init_IRQ (void);
-extern int atari_request_irq (unsigned int irq, void (*handler)(int, void *, struct pt_regs *),
+extern int atari_request_irq (unsigned int irq, irqreturn_t (*handler)(int, void *, struct pt_regs *),
unsigned long flags, const char *devname, void *dev_id);
extern void atari_free_irq (unsigned int irq, void *dev_id);
extern void atari_enable_irq (unsigned int);
@@ -72,7 +72,7 @@
#endif

/* atari specific timer functions (in time.c) */
-extern void atari_sched_init(void (*)(int, void *, struct pt_regs *));
+extern void atari_sched_init(irqreturn_t (*)(int, void *, struct pt_regs *));
extern unsigned long atari_gettimeoffset (void);
extern int atari_mste_hwclk (int, struct rtc_time *);
extern int atari_tt_hwclk (int, struct rtc_time *);
--- linux-2.5.69/arch/m68k/atari/stdma.c Thu Jan 2 12:53:55 2003
+++ linux-m68k-2.5.69/arch/m68k/atari/stdma.c Fri May 9 10:21:30 2003
@@ -43,8 +43,8 @@

static int stdma_locked = 0; /* the semaphore */
/* int func to be called */
-static void (*stdma_isr)(int, void *, struct pt_regs *) = NULL;
-static void *stdma_isr_data = NULL; /* data passed to isr */
+static irqreturn_t (*stdma_isr)(int, void *, struct pt_regs *) = NULL;
+static void *stdma_isr_data = NULL; /* data passed to isr */
static DECLARE_WAIT_QUEUE_HEAD(stdma_wait); /* wait queue for ST-DMA */


@@ -52,7 +52,7 @@

/***************************** Prototypes *****************************/

-static void stdma_int (int irq, void *dummy, struct pt_regs *fp);
+static irqreturn_t stdma_int (int irq, void *dummy, struct pt_regs *fp);

/************************* End of Prototypes **************************/

@@ -74,7 +74,8 @@
*
*/

-void stdma_lock(void (*handler)(int, void *, struct pt_regs *), void *data)
+void stdma_lock(irqreturn_t (*handler)(int, void *, struct pt_regs *),
+ void *data)
{
unsigned long flags;

@@ -187,8 +188,9 @@
*
*/

-static void stdma_int(int irq, void *dummy, struct pt_regs *fp)
+static irqreturn_t stdma_int(int irq, void *dummy, struct pt_regs *fp)
{
if (stdma_isr)
(*stdma_isr)(irq, stdma_isr_data, fp);
+ return IRQ_HANDLED;
}
--- linux-2.5.69/arch/m68k/atari/time.c Thu Jan 2 12:53:56 2003
+++ linux-m68k-2.5.69/arch/m68k/atari/time.c Tue May 6 13:50:49 2003
@@ -20,7 +20,7 @@
#include <asm/rtc.h>

void __init
-atari_sched_init(void (*timer_routine)(int, void *, struct pt_regs *))
+atari_sched_init(irqreturn_t (*timer_routine)(int, void *, struct pt_regs *))
{
/* set Timer C data Register */
mfp.tim_dt_c = INT_TICKS;
--- linux-2.5.69/include/asm-m68k/atari_stdma.h Wed Sep 25 09:47:41 1996
+++ linux-m68k-2.5.69/include/asm-m68k/atari_stdma.h Fri May 9 10:21:35 2003
@@ -8,7 +8,8 @@

/***************************** Prototypes *****************************/

-void stdma_lock(void (*handler)(int, void *, struct pt_regs *), void *data);
+void stdma_lock(irqreturn_t (*handler)(int, void *, struct pt_regs *),
+ void *data);
void stdma_release( void );
int stdma_others_waiting( void );
int stdma_islocked( void );
--- linux-2.5.69/include/asm-m68k/ide.h Sun May 11 12:15:01 2003
+++ linux-m68k-2.5.69/include/asm-m68k/ide.h Fri May 9 10:21:35 2003
@@ -155,7 +155,8 @@
}
}

-static __inline__ void ide_get_lock(void (*handler)(int, void *, struct pt_regs *), void *data)
+static __inline__ void
+ide_get_lock(irqreturn_t (*handler)(int, void *, struct pt_regs *), void *data)
{
if (MACH_IS_ATARI) {
if (falconide_intr_lock == 0) {

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/