From: <he...@us...> - 2005-01-06 20:04:33
|
Update of /cvsroot/gc-linux/linux/arch/ppc/platforms In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28158/arch/ppc/platforms Modified Files: gcn-dvdcover.c Log Message: Use __iomem annotations. Fix module license. Slightly arrange the code, no functional changes. Update copyright dates. Index: gcn-dvdcover.c =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/ppc/platforms/gcn-dvdcover.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- gcn-dvdcover.c 19 Oct 2004 23:36:54 -0000 1.1 +++ gcn-dvdcover.c 6 Jan 2005 20:04:20 -0000 1.2 @@ -2,8 +2,9 @@ * arch/ppc/platforms/gcn-dvdcover.c * * Nintendo GameCube DVD cover driver + * Copyright (C) 2004-2005 The GameCube Linux Team * Copyright (C) 2004 Stefan Esser - * Copyright (C) 2004 The GameCube Linux Team + * Copyright (C) 2004,2005 Albert Herranz * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -21,7 +22,8 @@ #define DVD_IRQ 2 -#define DI_DISR 0xcc006000 /* DI Status Register */ +/* DI Status Register */ +#define DI_DISR ((void __iomem *)0xcc006000) #define DI_DISR_BRKINT (1<<6) #define DI_DISR_BRKINTMASK (1<<5) #define DI_DISR_TCINT (1<<4) @@ -30,14 +32,17 @@ #define DI_DISR_DEINTMASK (1<<1) #define DI_DISR_BRK (1<<0) -#define DI_DICVR 0xcc006004 /* DI Cover Register */ +/* DI Cover Register */ +#define DI_DICVR ((void __iomem *)0xcc006004) #define DI_DICVR_CVRINT (1<<2) #define DI_DICVR_CVRINTMASK (1<<1) #define DI_DICVR_CVR (1<<0) -#define DI_DICMDBUF0 0xcc006008 /* DI Command Buffer 0 */ +/* DI Command Buffer 0 */ +#define DI_DICMDBUF0 ((void __iomem *)0xcc006008) -#define DI_DICR 0xcc00601c /* DI Control Register */ +/* DI Control Register */ +#define DI_DICR ((void __iomem *)0xcc00601c) #define DI_DICR_RW (1<<2) #define DI_DICR_DMA (1<<1) #define DI_DICR_TSTART (1<<0) @@ -51,12 +56,19 @@ MODULE_DESCRIPTION(DRV_DESCRIPTION); MODULE_AUTHOR(DRV_AUTHOR); -MODULE_LICENSE(GPL); +MODULE_LICENSE("GPL"); #define PFX DRV_MODULE_NAME ": " #define di_printk(level, format, arg...) \ printk(level PFX format , ## arg) +typedef enum { + OPENED = 0, + CLOSED, + UNKNOWN, +} gcn_dvdcover_state_t; + +gcn_dvdcover_state_t gcn_dvdcover_state = UNKNOWN; /** * @@ -66,12 +78,16 @@ { unsigned long reason = readl(DI_DICVR); + gcn_dvdcover_state = (readl(DI_DICVR) & DI_DICVR_CVR)? + OPENED:CLOSED; + + di_printk(KERN_INFO, "DVD cover was %s.\n", + (gcn_dvdcover_state == OPENED) ? + "opened" : "closed"); + /* handle only DVD cover interrupts here */ if (reason & DI_DICVR_CVRINT) { writel(reason | DI_DICVR_CVRINT, DI_DICVR); - di_printk(KERN_INFO, "DVD cover was %s.\n", - (reason & DI_DICVR_CVR) ? "opened" : "closed"); - return IRQ_HANDLED; } return IRQ_NONE; |