Commit fdab239f authored by Geert Uytterhoeven's avatar Geert Uytterhoeven Committed by Linus Torvalds

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

M68k mac drivers: Update to the new irq API (from Roman Zippel and me) [16/20]
parent 0b0c67c7
......@@ -77,7 +77,7 @@ static volatile unsigned char *via;
static int macii_init_via(void);
static void macii_start(void);
static void macii_interrupt(int irq, void *arg, struct pt_regs *regs);
static irqreturn_t macii_interrupt(int irq, void *arg, struct pt_regs *regs);
static void macii_retransmit(int);
static void macii_queue_poll(void);
......@@ -151,7 +151,7 @@ int macii_init(void)
if (err) return err;
err = request_irq(IRQ_MAC_ADB, macii_interrupt, IRQ_FLG_LOCK, "ADB",
macii_interrupt);
macii_interrupt);
if (err) return err;
macii_state = idle;
......@@ -410,7 +410,7 @@ static void macii_start(void)
* Note: As of 21/10/97, the MacII ADB part works including timeout detection
* and retransmit (Talk to the last active device).
*/
void macii_interrupt(int irq, void *arg, struct pt_regs *regs)
static irqreturn_t macii_interrupt(int irq, void *arg, struct pt_regs *regs)
{
int x, adbdir;
unsigned long flags;
......@@ -423,7 +423,7 @@ void macii_interrupt(int irq, void *arg, struct pt_regs *regs)
if (driver_running) {
local_irq_restore(flags);
return;
return IRQ_NONE;
}
driver_running = 1;
......@@ -649,4 +649,5 @@ void macii_interrupt(int irq, void *arg, struct pt_regs *regs)
/* reset mutex and interrupts */
driver_running = 0;
local_irq_restore(flags);
return IRQ_HANDLED;
}
......@@ -84,7 +84,7 @@ static int maciisi_init(void);
static int maciisi_send_request(struct adb_request* req, int sync);
static void maciisi_sync(struct adb_request *req);
static int maciisi_write(struct adb_request* req);
static void maciisi_interrupt(int irq, void* arg, struct pt_regs* regs);
static irqreturn_t maciisi_interrupt(int irq, void* arg, struct pt_regs* regs);
static void maciisi_input(unsigned char *buf, int nb, struct pt_regs *regs);
static int maciisi_init_via(void);
static void maciisi_poll(void);
......@@ -414,7 +414,7 @@ maciisi_poll(void)
/* Shift register interrupt - this is *supposed* to mean that the
register is either full or empty. In practice, I have no idea what
it means :( */
static void
static irqreturn_t
maciisi_interrupt(int irq, void* arg, struct pt_regs* regs)
{
int status;
......@@ -436,7 +436,7 @@ maciisi_interrupt(int irq, void* arg, struct pt_regs* regs)
/* Shouldn't happen, we hope */
printk(KERN_ERR "maciisi_interrupt: called without interrupt flag set\n");
local_irq_restore(flags);
return;
return IRQ_NONE;
}
/* Clear the interrupt */
......@@ -635,6 +635,7 @@ maciisi_interrupt(int irq, void* arg, struct pt_regs* regs)
printk("maciisi_interrupt: unknown maciisi_state %d?\n", maciisi_state);
}
local_irq_restore(flags);
return IRQ_HANDLED;
}
static void
......
......@@ -107,7 +107,7 @@ struct notifier_block *sleep_notifier_list;
static int pmu_probe(void);
static int pmu_init(void);
static void pmu_start(void);
static void pmu_interrupt(int irq, void *arg, struct pt_regs *regs);
static irqreturn_t pmu_interrupt(int irq, void *arg, struct pt_regs *regs);
static int pmu_send_request(struct adb_request *req, int sync);
static int pmu_autopoll(int devs);
void pmu_poll(void);
......@@ -572,7 +572,7 @@ pmu_poll()
local_irq_restore(flags);
}
static void
static irqreturn_t
pmu_interrupt(int irq, void *dev_id, struct pt_regs *regs)
{
struct adb_request *req;
......@@ -688,6 +688,7 @@ pmu_interrupt(int irq, void *dev_id, struct pt_regs *regs)
printk("pmu_interrupt: exit state %d acr %02X, b %02X data_index %d/%d adb_int_pending %d\n",
pmu_state, (uint) via1[ACR], (uint) via2[B], data_index, data_len, adb_int_pending);
#endif
return IRQ_HANDLED;
}
static void
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment