X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;ds=sidebyside;f=drivers%2Fvideo%2Famifb.c;h=99c538f201a46ba416823f8e9115f414c2afdfce;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=baa4fa06becc4067cc4912a80e5d06a4c5a80053;hpb=87fc8d1bb10cd459024a742c6a10961fefcef18f;p=linux-2.6.git diff --git a/drivers/video/amifb.c b/drivers/video/amifb.c index baa4fa06b..99c538f20 100644 --- a/drivers/video/amifb.c +++ b/drivers/video/amifb.c @@ -1239,8 +1239,6 @@ int __init amifb_setup(char *options) if (!strcmp(this_opt, "inverse")) { amifb_inverse = 1; fb_invert_cmaps(); - } else if (!strcmp(this_opt, "off")) { - amifb_video_off(); } else if (!strcmp(this_opt, "ilbm")) amifb_ilbm = 1; else if (!strncmp(this_opt, "monitorcap:", 11)) @@ -2260,26 +2258,15 @@ int __init amifb_init(void) #ifndef MODULE char *option = NULL; - if (fb_get_options("amifb", &option)) + if (fb_get_options("amifb", &option)) { + amifb_video_off(); return -ENODEV; + } amifb_setup(option); #endif if (!MACH_IS_AMIGA || !AMIGAHW_PRESENT(AMI_VIDEO)) return -ENXIO; - /* - * TODO: where should we put this? The DMI Resolver doesn't have a - * frame buffer accessible by the CPU - */ - -#ifdef CONFIG_GSP_RESOLVER - if (amifb_resolver){ - custom.dmacon = DMAF_MASTER | DMAF_RASTER | DMAF_COPPER | - DMAF_BLITTER | DMAF_SPRITE; - return 0; - } -#endif - /* * We request all registers starting from bplpt[0] */ @@ -2482,6 +2469,7 @@ static void amifb_deinit(void) static int amifb_blank(int blank, struct fb_info *info) { do_blank = blank ? blank : -1; + return 0; } @@ -2956,21 +2944,11 @@ static int ami_encode_var(struct fb_var_screeninfo *var, var->bits_per_pixel = par->bpp; var->grayscale = 0; - if (IS_AGA) { - var->red.offset = 0; - var->red.length = 8; - var->red.msb_right = 0; - } else { - if (clk_shift == TAG_SHRES) { - var->red.offset = 0; - var->red.length = 2; - var->red.msb_right = 0; - } else { - var->red.offset = 0; - var->red.length = 4; - var->red.msb_right = 0; - } - } + var->red.offset = 0; + var->red.msb_right = 0; + var->red.length = par->bpp; + if (par->bplcon0 & BPC0_HAM) + var->red.length -= 2; var->blue = var->green = var->red; var->transp.offset = 0; var->transp.length = 0; @@ -3270,20 +3248,20 @@ static void ami_do_blank(void) custom.dmacon = DMAF_RASTER | DMAF_SPRITE; red = green = blue = 0; if (!IS_OCS && do_blank > 1) { - switch (do_blank-1) { - case VESA_VSYNC_SUSPEND: + switch (do_blank) { + case FB_BLANK_VSYNC_SUSPEND: custom.hsstrt = hsstrt2hw(par->hsstrt); custom.hsstop = hsstop2hw(par->hsstop); custom.vsstrt = vsstrt2hw(par->vtotal+4); custom.vsstop = vsstop2hw(par->vtotal+4); break; - case VESA_HSYNC_SUSPEND: + case FB_BLANK_HSYNC_SUSPEND: custom.hsstrt = hsstrt2hw(par->htotal+16); custom.hsstop = hsstop2hw(par->htotal+16); custom.vsstrt = vsstrt2hw(par->vsstrt); custom.vsstop = vsstrt2hw(par->vsstop); break; - case VESA_POWERDOWN: + case FB_BLANK_POWERDOWN: custom.hsstrt = hsstrt2hw(par->htotal+16); custom.hsstop = hsstop2hw(par->htotal+16); custom.vsstrt = vsstrt2hw(par->vtotal+4);