From: <he...@us...> - 2005-01-06 20:17:11
|
Update of /cvsroot/gc-linux/linux/drivers/video In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31528/drivers/video Modified Files: gcnfb.c Log Message: Add __iomem annotations. Rearrange a bit the init function so that we setup the interrupt handler before enabling interrupts. Fix copyright dates. Index: gcnfb.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/video/gcnfb.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- gcnfb.c 15 Nov 2004 01:16:29 -0000 1.8 +++ gcnfb.c 6 Jan 2005 20:16:53 -0000 1.9 @@ -2,9 +2,9 @@ * drivers/video/gcnfb.c * * Nintendo GameCube "Flipper" chipset frame buffer driver - * Copyright (C) 2004 The GameCube Linux Team + * Copyright (C) 2004-2005 The GameCube Linux Team * Copyright (C) 2004 Michael Steil <mi...@c6...> - * Copyright (C) 2004 Todd Jeffreys <to...@vo...> + * Copyright (C) 2004,2005 Todd Jeffreys <to...@vo...> * * Based on vesafb (c) 1998 Gerd Knorr <kr...@go...> * @@ -144,10 +144,10 @@ #define VI_IRQ 8 -#define VI_DI0 0xCC002030 -#define VI_DI1 0xCC002034 -#define VI_DI2 0xCC002038 -#define VI_DI3 0xCC00203C +#define VI_DI0 ((void __iomem *)0xcc002030) +#define VI_DI1 ((void __iomem *)0xcc002034) +#define VI_DI2 ((void __iomem *)0xcc002038) +#define VI_DI3 ((void __iomem *)0xcc00203C) #define VI_DI_INT (1 << 31) #define VI_DI_ENB (1 << 28) @@ -156,10 +156,10 @@ #define VI_DI_HCT_SHIFT 0 #define VI_DI_HCT_MASK 0x000003FF -#define VI_VISEL 0xCC00206E +#define VI_VISEL ((void __iomem *)0xcc00206e) #define VI_VISEL_PROGRESSIVE (1 << 0) -static volatile u32 *vi_regs = (volatile u32 *)0xCC002000; +static volatile u32 *vi_regs = (volatile u32 __iomem *)0xcc002000; static u32 pseudo_palette[17]; @@ -780,8 +780,11 @@ goto err_alloc_cmap; } - /* setup the framebuffer address */ - gcnfb_restorefb(&gcnfb_info); + if (request_irq + (VI_IRQ, gcnfb_vi_irq_handler, SA_INTERRUPT, "VI Line", 0)) { + printk(KERN_ERR "Unable to register IRQ %u\n", VI_IRQ); + goto err_request_irq; + } /* now register us */ if (register_framebuffer(&gcnfb_info) < 0) { @@ -789,10 +792,8 @@ goto err_register_framebuffer; } - if (request_irq - (VI_IRQ, gcnfb_vi_irq_handler, SA_INTERRUPT, "VI Line", 0)) { - printk(KERN_ERR "Unable to register IRQ %u\n", VI_IRQ); - } + /* setup the framebuffer address */ + gcnfb_restorefb(&gcnfb_info); if ((err = gcngx_init(&gcnfb_info))) { goto err_gcngx_init; @@ -804,9 +805,10 @@ return 0; err_gcngx_init: - free_irq(VI_IRQ, 0); unregister_framebuffer(&gcnfb_info); err_register_framebuffer: + free_irq(VI_IRQ, 0); +err_request_irq: fb_dealloc_cmap(&gcnfb_info.cmap); err_alloc_cmap: iounmap(gcnfb_info.screen_base); |