diff options
| author | Geert Uytterhoeven <geert@linux-m68k.org> | 2003-07-25 19:37:01 -0700 |
|---|---|---|
| committer | Jens Axboe <axboe@suse.de> | 2003-07-25 19:37:01 -0700 |
| commit | b0dd1d9b693d9bf8177660c49fb4802d899a4839 (patch) | |
| tree | 0d81eda4217686bc6f66c9b6830df0f6ab38704c | |
| parent | 5dd971667ba010e05a315fb0d9b231f79825452a (diff) | |
[PATCH] M68k IRQ API updates
M68k: A few missing updates to the new irq API:
- Q40/Q60 keyboard
- Q40/Q60 floppy
- Sun-3x floppy
| -rw-r--r-- | drivers/input/serio/q40kbd.c | 4 | ||||
| -rw-r--r-- | include/asm-m68k/floppy.h | 13 | ||||
| -rw-r--r-- | include/asm-m68k/sun3xflop.h | 12 |
3 files changed, 18 insertions, 11 deletions
diff --git a/drivers/input/serio/q40kbd.c b/drivers/input/serio/q40kbd.c index b638b2672040..021763a3e6be 100644 --- a/drivers/input/serio/q40kbd.c +++ b/drivers/input/serio/q40kbd.c @@ -66,12 +66,14 @@ static struct serio q40kbd_port = .close = q40kbd_close, }; -static void q40kbd_interrupt(int irq, void *dev_id, struct pt_regs *regs) +static irqreturn_t q40kbd_interrupt(int irq, void *dev_id, + struct pt_regs *regs) { if (Q40_IRQ_KEYB_MASK & master_inb(INTERRUPT_REG)) serio_interrupt(&q40kbd_port, master_inb(KEYCODE_REG), 0, regs); master_outb(-1, KEYBOARD_UNLOCK_REG); + return IRQ_HANDLED; } static int __init q40kbd_init(void) diff --git a/include/asm-m68k/floppy.h b/include/asm-m68k/floppy.h index 73f67e4e2b47..a94c271ecbfa 100644 --- a/include/asm-m68k/floppy.h +++ b/include/asm-m68k/floppy.h @@ -17,7 +17,8 @@ #include <linux/vmalloc.h> -asmlinkage void floppy_hardint(int irq, void *dev_id, struct pt_regs * regs); +asmlinkage irqreturn_t floppy_hardint(int irq, void *dev_id, + struct pt_regs *regs); /* constants... */ @@ -183,7 +184,8 @@ static void fd_disable_dma(void) /* this is the only truly Q40 specific function */ -asmlinkage void floppy_hardint(int irq, void *dev_id, struct pt_regs * regs) +asmlinkage irqreturn_t floppy_hardint(int irq, void *dev_id, + struct pt_regs *regs) { register unsigned char st; @@ -197,7 +199,7 @@ asmlinkage void floppy_hardint(int irq, void *dev_id, struct pt_regs * regs) #endif if(!doing_pdma) { floppy_interrupt(irq, dev_id, regs); - return; + return IRQ_HANDLED; } #ifdef TRACE_FLPY_INT @@ -232,7 +234,7 @@ asmlinkage void floppy_hardint(int irq, void *dev_id, struct pt_regs * regs) calls++; #endif if(st == 0x20) - return; + return IRQ_HANDLED; if(!(st & 0x20)) { virtual_dma_residue += virtual_dma_count; virtual_dma_count=0; @@ -245,12 +247,13 @@ asmlinkage void floppy_hardint(int irq, void *dev_id, struct pt_regs * regs) #endif doing_pdma = 0; floppy_interrupt(irq, dev_id, regs); - return; + return IRQ_HANDLED; } #ifdef TRACE_FLPY_INT if(!virtual_dma_count) dma_wait++; #endif + return IRQ_HANDLED; } #define EXTRA_FLOPPY_PARAMS diff --git a/include/asm-m68k/sun3xflop.h b/include/asm-m68k/sun3xflop.h index 10db3451f5c7..6c65cc39b39e 100644 --- a/include/asm-m68k/sun3xflop.h +++ b/include/asm-m68k/sun3xflop.h @@ -113,7 +113,8 @@ static void sun3x_82072_fd_outb(unsigned char value, int port) } -asmlinkage void sun3xflop_hardint(int irq, void *dev_id, struct pt_regs * regs) +asmlinkage irqreturn_t sun3xflop_hardint(int irq, void *dev_id, + struct pt_regs * regs) { register unsigned char st; @@ -127,7 +128,7 @@ asmlinkage void sun3xflop_hardint(int irq, void *dev_id, struct pt_regs * regs) #endif if(!doing_pdma) { floppy_interrupt(irq, dev_id, regs); - return; + return IRQ_HANDLED; } // printk("doing pdma\n");// st %x\n", sun_fdc->status_82072); @@ -151,7 +152,7 @@ asmlinkage void sun3xflop_hardint(int irq, void *dev_id, struct pt_regs * regs) if((st & 0x80) == 0) { virtual_dma_count = lcount; virtual_dma_addr = lptr; - return; + return IRQ_HANDLED; } if((st & 0x20) == 0) @@ -176,7 +177,7 @@ asmlinkage void sun3xflop_hardint(int irq, void *dev_id, struct pt_regs * regs) #endif // printk("st=%02x\n", st); if(st == 0x20) - return; + return IRQ_HANDLED; if(!(st & 0x20)) { virtual_dma_residue += virtual_dma_count; virtual_dma_count=0; @@ -191,7 +192,7 @@ asmlinkage void sun3xflop_hardint(int irq, void *dev_id, struct pt_regs * regs) #endif floppy_interrupt(irq, dev_id, regs); - return; + return IRQ_HANDLED; } @@ -199,6 +200,7 @@ asmlinkage void sun3xflop_hardint(int irq, void *dev_id, struct pt_regs * regs) if(!virtual_dma_count) dma_wait++; #endif + return IRQ_HANDLED; } static int sun3xflop_request_irq(void) |
