--- drivers/video/atafb.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) --- a/drivers/video/atafb.c +++ b/drivers/video/atafb.c @@ -614,7 +614,7 @@ static int tt_encode_fix(struct fb_fix_s fix->xpanstep = 0; fix->ypanstep = 1; fix->ywrapstep = 0; - fix->line_length = 0; + fix->line_length = par->next_line; fix->accel = FB_ACCEL_ATARIBLITT; return 0; } @@ -917,8 +917,10 @@ static int falcon_encode_fix(struct fb_f /* Is this ok or should it be DIRECTCOLOR? */ fix->visual = FB_VISUAL_TRUECOLOR; fix->xpanstep = 2; + /* FIXME: cfb driver needs line_length */ + fix->line_length = (par->hw.falcon.line_width + par->hw.falcon.line_offset) * par->hw.falcon.bpp / 8; + printk(KERN_INFO "atafb: falcon_encode_fix -- line_length = %d\n", fix->line_length); } - fix->line_length = 0; fix->accel = FB_ACCEL_ATARIBLITT; return 0; } @@ -1852,7 +1854,7 @@ static int stste_encode_fix(struct fb_fi fix->ypanstep = 0; } fix->ywrapstep = 0; - fix->line_length = 0; + fix->line_length = par->next_line; fix->accel = FB_ACCEL_ATARIBLITT; return 0; } @@ -2169,7 +2171,7 @@ static int ext_encode_fix(struct fb_fix_ fix->xpanstep = 0; fix->ypanstep = 0; fix->ywrapstep = 0; - fix->line_length = 0; + fix->line_length = par->next_line; return 0; } @@ -2551,6 +2553,7 @@ static void atafb_fillrect(struct fb_inf #ifdef ATAFB_FALCON if (info->var.bits_per_pixel == 16) { +printk("fix->line_length = %u, cfb_fillrect\n", info->fix.line_length); cfb_fillrect(info, rect); return; } @@ -2592,6 +2595,7 @@ static void atafb_copyarea(struct fb_inf #ifdef ATAFB_FALCON if (info->var.bits_per_pixel == 16) { +printk("fix->line_length = %u, cfb_copyarea\n", info->fix.line_length); cfb_copyarea(info, area); return; } @@ -2645,6 +2649,7 @@ static void atafb_imageblit(struct fb_in #ifdef ATAFB_FALCON if (info->var.bits_per_pixel == 16) { +printk("fix->line_length = %u, cfb_imageblit\n", info->fix.line_length); cfb_imageblit(info, image); return; }