From: <aot...@us...> - 2004-06-16 15:32:45
|
Update of /cvsroot/gc-linux/linux/arch/ppc/platforms In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8670/arch/ppc/platforms Modified Files: gc-dvdcover.c Log Message: - Don't re-enable an IRQ we didn't disable in the first place; from dmesg: "enable_irq(2) unbalanced" - Whitespace fixups. Index: gc-dvdcover.c =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/ppc/platforms/gc-dvdcover.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- gc-dvdcover.c 3 Jun 2004 15:19:44 -0000 1.3 +++ gc-dvdcover.c 16 Jun 2004 15:32:36 -0000 1.4 @@ -30,7 +30,6 @@ #include <linux/interrupt.h> #include <asm/io.h> -#include <asm/irq.h> #define DVD_IRQ 2 @@ -60,28 +59,27 @@ static int gc_dvdcover_init(void) { - unsigned long outval; + unsigned long outval; + int err; - /* clear pending DI interrupts and mask new ones */ - /* this prevents an annoying bug while we lack a complete DVD driver */ - outval = GC_DI_DISR_BRKINT | GC_DI_DISR_TCINT | - GC_DI_DISR_DEINT; - outval &= ~(GC_DI_DISR_BRKINTMASK | GC_DI_DISR_TCINTMASK | - GC_DI_DISR_DEINTMASK); - writel(outval, GC_DI_DISR); + /* clear pending DI interrupts and mask new ones */ + /* this prevents an annoying bug while we lack a complete DVD driver */ + outval = GC_DI_DISR_BRKINT | GC_DI_DISR_TCINT | GC_DI_DISR_DEINT; + outval &= ~(GC_DI_DISR_BRKINTMASK | GC_DI_DISR_TCINTMASK | + GC_DI_DISR_DEINTMASK); + writel(outval, GC_DI_DISR); + + err = request_irq(DVD_IRQ, gc_dvdcover_handler, 0, "GameCube DVD Cover", 0); + if (err) + return err; + + writel(readl(GAMECUBE_DICVR) | 2, GAMECUBE_DICVR); - if (request_irq(DVD_IRQ, gc_dvdcover_handler, 0, "GameCube DVD Cover", 0) < 0) { - printk(KERN_ERR "gc_dvdcover: Request irq%d failed\n", DVD_IRQ); - } else { - enable_irq(DVD_IRQ); - writel(readl(GAMECUBE_DICVR) | 2, GAMECUBE_DICVR); - } return 0; } static void gc_dvdcover_exit(void) { - disable_irq(DVD_IRQ); free_irq(DVD_IRQ, 0); } |