X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fvideo%2Fneofb.c;h=6ce5ba85c9c7b00cfe0df9e0a015d8a52201a052;hb=44c40f29869a02dd430beb7fed0b6ca7d8ef5e54;hp=3b3f84f34cb29625ee9e6b63d691d29f71ecf49c;hpb=8d40237c730b8be87c1b80a5d96b9c603fefa829;p=linux-2.6.git diff --git a/drivers/video/neofb.c b/drivers/video/neofb.c index 3b3f84f34..6ce5ba85c 100644 --- a/drivers/video/neofb.c +++ b/drivers/video/neofb.c @@ -100,18 +100,18 @@ static char *mode_option __initdata = NULL; MODULE_AUTHOR("(c) 2001-2002 Denis Oliver Kropp "); MODULE_LICENSE("GPL"); MODULE_DESCRIPTION("FBDev driver for NeoMagic PCI Chips"); -module_param(internal, bool, 0); +MODULE_PARM(internal, "i"); MODULE_PARM_DESC(internal, "Enable output on internal LCD Display."); -module_param(external, bool, 0); +MODULE_PARM(external, "i"); MODULE_PARM_DESC(external, "Enable output on external CRT."); -module_param(libretto, bool, 0); +MODULE_PARM(libretto, "i"); MODULE_PARM_DESC(libretto, "Force Libretto 100/110 800x480 LCD."); -module_param(nostretch, bool, 0); +MODULE_PARM(nostretch, "i"); MODULE_PARM_DESC(nostretch, "Disable stretching of modes smaller than LCD."); -module_param(nopciburst, bool, 0); +MODULE_PARM(nopciburst, "i"); MODULE_PARM_DESC(nopciburst, "Disable PCI burst mode."); -module_param(mode_option, charp, 0); +MODULE_PARM(mode_option, "s"); MODULE_PARM_DESC(mode_option, "Preferred video mode ('640x480-8@60', etc)"); #endif @@ -493,7 +493,7 @@ static inline int neo2200_sync(struct fb_info *info) struct neofb_par *par = (struct neofb_par *) info->par; int waitcycles; - while (readl(&par->neo2200->bltStat) & 1) + while (par->neo2200->bltStat & 1) waitcycles++; return 0; } @@ -531,7 +531,7 @@ static inline void neo2200_accel_init(struct fb_info *info, struct fb_var_screeninfo *var) { struct neofb_par *par = (struct neofb_par *) info->par; - Neo2200 __iomem *neo2200 = par->neo2200; + Neo2200 *neo2200 = par->neo2200; u32 bltMod, pitch; neo2200_sync(info); @@ -556,8 +556,8 @@ static inline void neo2200_accel_init(struct fb_info *info, return; } - writel(bltMod << 16, &neo2200->bltStat); - writel((pitch << 16) | pitch, &neo2200->pitch); + neo2200->bltStat = bltMod << 16; + neo2200->pitch = (pitch << 16) | pitch; } /* --------------------------------------------------------------------- */ @@ -1340,7 +1340,7 @@ int neofb_blank(int blank_mode, struct fb_info *info) int seqflags, lcdflags, dpmsflags, reg; switch (blank_mode) { - case FB_BLANK_POWERDOWN: /* powerdown - both sync lines down */ + case 4: /* powerdown - both sync lines down */ seqflags = VGA_SR01_SCREEN_OFF; /* Disable sequencer */ lcdflags = 0; /* LCD off */ dpmsflags = NEO_GR01_SUPPRESS_HSYNC | @@ -1358,22 +1358,22 @@ int neofb_blank(int blank_mode, struct fb_info *info) } #endif break; - case FB_BLANK_HSYNC_SUSPEND: /* hsync off */ + case 3: /* hsync off */ seqflags = VGA_SR01_SCREEN_OFF; /* Disable sequencer */ lcdflags = 0; /* LCD off */ dpmsflags = NEO_GR01_SUPPRESS_HSYNC; break; - case FB_BLANK_VSYNC_SUSPEND: /* vsync off */ + case 2: /* vsync off */ seqflags = VGA_SR01_SCREEN_OFF; /* Disable sequencer */ lcdflags = 0; /* LCD off */ dpmsflags = NEO_GR01_SUPPRESS_VSYNC; break; - case FB_BLANK_NORMAL: /* just blank screen (backlight stays on) */ + case 1: /* just blank screen (backlight stays on) */ seqflags = VGA_SR01_SCREEN_OFF; /* Disable sequencer */ lcdflags = par->PanelDispCntlReg1 & 0x02; /* LCD normal */ dpmsflags = 0; /* no hsync/vsync suppression */ break; - case FB_BLANK_UNBLANK: /* unblank */ + case 0: /* unblank */ seqflags = 0; /* Enable sequencer */ lcdflags = par->PanelDispCntlReg1 & 0x02; /* LCD normal */ dpmsflags = 0x00; /* no hsync/vsync suppression */ @@ -1418,27 +1418,27 @@ neo2200_fillrect(struct fb_info *info, const struct fb_fillrect *rect) neo2200_wait_fifo(info, 4); /* set blt control */ - writel(NEO_BC3_FIFO_EN | - NEO_BC0_SRC_IS_FG | NEO_BC3_SKIP_MAPPING | - // NEO_BC3_DST_XY_ADDR | - // NEO_BC3_SRC_XY_ADDR | - rop, &par->neo2200->bltCntl); + par->neo2200->bltCntl = NEO_BC3_FIFO_EN | + NEO_BC0_SRC_IS_FG | NEO_BC3_SKIP_MAPPING | + // NEO_BC3_DST_XY_ADDR | + // NEO_BC3_SRC_XY_ADDR | + rop; switch (info->var.bits_per_pixel) { case 8: - writel(rect->color, &par->neo2200->fgColor); + par->neo2200->fgColor = rect->color; break; case 16: case 24: - writel(((u32 *) (info->pseudo_palette))[rect->color], - &par->neo2200->fgColor); + par->neo2200->fgColor = + ((u32 *) (info->pseudo_palette))[rect->color]; break; } - writel(dst * ((info->var.bits_per_pixel + 7) >> 3), - &par->neo2200->dstStart); - writel((rect->height << 16) | (rect->width & 0xffff), - &par->neo2200->xyExt); + par->neo2200->dstStart = + dst * ((info->var.bits_per_pixel + 7) >> 3); + par->neo2200->xyExt = + (rect->height << 16) | (rect->width & 0xffff); } static void @@ -1466,12 +1466,12 @@ neo2200_copyarea(struct fb_info *info, const struct fb_copyarea *area) neo2200_wait_fifo(info, 4); /* set blt control */ - writel(bltCntl, &par->neo2200->bltCntl); + par->neo2200->bltCntl = bltCntl; - writel(src, &par->neo2200->srcStart); - writel(dst, &par->neo2200->dstStart); - writel((area->height << 16) | (area->width & 0xffff), - &par->neo2200->xyExt); + par->neo2200->srcStart = src; + par->neo2200->dstStart = dst; + par->neo2200->xyExt = + (area->height << 16) | (area->width & 0xffff); } static void @@ -1509,31 +1509,32 @@ neo2200_imageblit(struct fb_info *info, const struct fb_image *image) switch (info->var.bits_per_pixel) { case 8: - writel(image->fg_color, &par->neo2200->fgColor); - writel(image->bg_color, &par->neo2200->bgColor); + par->neo2200->fgColor = image->fg_color; + par->neo2200->bgColor = image->bg_color; break; case 16: case 24: - writel(((u32 *) (info->pseudo_palette))[image->fg_color], - &par->neo2200->fgColor); - writel(((u32 *) (info->pseudo_palette))[image->bg_color], - &par->neo2200->bgColor); + par->neo2200->fgColor = + ((u32 *) (info->pseudo_palette))[image->fg_color]; + par->neo2200->bgColor = + ((u32 *) (info->pseudo_palette))[image->bg_color]; break; } - writel(NEO_BC0_SYS_TO_VID | + par->neo2200->bltCntl = NEO_BC0_SYS_TO_VID | NEO_BC3_SKIP_MAPPING | bltCntl_flags | // NEO_BC3_DST_XY_ADDR | - 0x0c0000, &par->neo2200->bltCntl); + 0x0c0000; - writel(0, &par->neo2200->srcStart); + par->neo2200->srcStart = 0; // par->neo2200->dstStart = (image->dy << 16) | (image->dx & 0xffff); - writel(((image->dx & 0xffff) * (info->var.bits_per_pixel >> 3) + - image->dy * info->fix.line_length), &par->neo2200->dstStart); - writel((image->height << 16) | (image->width & 0xffff), - &par->neo2200->xyExt); + par->neo2200->dstStart = + ((image->dx & 0xffff) * (info->var.bits_per_pixel >> 3) + + image->dy * info->fix.line_length); + par->neo2200->xyExt = + (image->height << 16) | (image->width & 0xffff); - memcpy_toio(par->mmio_vbase + 0x100000, image->data, data_len); + memcpy(par->mmio_vbase + 0x100000, image->data, data_len); } static void @@ -1764,7 +1765,7 @@ static int __devinit neo_map_video(struct fb_info *info, #endif /* Clear framebuffer, it's all white in memory after boot */ - memset_io(info->screen_base, 0, info->fix.smem_len); + memset(info->screen_base, 0, info->fix.smem_len); /* Allocate Cursor drawing pad. info->fix.smem_len -= PAGE_SIZE; @@ -1945,7 +1946,7 @@ static int __devinit neo_init_hw(struct fb_info *info) maxWidth = 1280; maxHeight = 1024; /* ???? */ - par->neo2200 = (Neo2200 __iomem *) par->mmio_vbase; + par->neo2200 = (Neo2200 *) par->mmio_vbase; break; case FB_ACCEL_NEOMAGIC_NM2230: videoRam = 3008; @@ -1956,7 +1957,7 @@ static int __devinit neo_init_hw(struct fb_info *info) maxWidth = 1280; maxHeight = 1024; /* ???? */ - par->neo2200 = (Neo2200 __iomem *) par->mmio_vbase; + par->neo2200 = (Neo2200 *) par->mmio_vbase; break; case FB_ACCEL_NEOMAGIC_NM2360: videoRam = 4096; @@ -1967,7 +1968,7 @@ static int __devinit neo_init_hw(struct fb_info *info) maxWidth = 1280; maxHeight = 1024; /* ???? */ - par->neo2200 = (Neo2200 __iomem *) par->mmio_vbase; + par->neo2200 = (Neo2200 *) par->mmio_vbase; break; case FB_ACCEL_NEOMAGIC_NM2380: videoRam = 6144; @@ -1978,7 +1979,7 @@ static int __devinit neo_init_hw(struct fb_info *info) maxWidth = 1280; maxHeight = 1024; /* ???? */ - par->neo2200 = (Neo2200 __iomem *) par->mmio_vbase; + par->neo2200 = (Neo2200 *) par->mmio_vbase; break; } /*