Commit 8b8cec1e authored by Antonino Daplas's avatar Antonino Daplas Committed by Linus Torvalds

[PATCH] fbcon: fix display artifacts

Fixed display artifacts present in the space reserved for the boot logo.
Use attributes of the background erase character instead of hardcoding the
color to zero.
Signed-off-by: default avatarAntonino A. Daplas <adaplas@pol.net>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent f5dea755
......@@ -1759,6 +1759,17 @@ static int fbcon_switch(struct vc_data *vc)
if (vt_cons[vc->vc_num]->vc_mode == KD_TEXT)
accel_clear_margins(vc, info, 0);
if (logo_shown == -2) {
struct fb_fillrect rect;
int bgshift = (vc->vc_hi_font_mask) ? 13 : 12;
logo_shown = fg_console;
rect.color = attr_bgcol_ec(bgshift, vc);
rect.rop = ROP_COPY;
rect.dx = rect.dy = 0;
rect.width = info->var.xres;
rect.height = logo_lines * vc->vc_font.height;
info->fbops->fb_fillrect(info, &rect);
logo_shown = fg_console;
/* This is protected above by initmem_freed */
fb_show_logo(info);
......
......@@ -721,7 +721,6 @@ int fb_show_logo(struct fb_info *info)
u32 *palette = NULL, *saved_pseudo_palette = NULL;
unsigned char *logo_new = NULL;
struct fb_image image;
struct fb_fillrect rect;
int x;
/* Return if the frame buffer is not mapped or suspended */
......@@ -767,12 +766,6 @@ int fb_show_logo(struct fb_info *info)
image.height = fb_logo.logo->height;
image.dy = 0;
rect.dx = 0;
rect.dy = 0;
rect.color = 0;
rect.width = info->var.xres;
rect.height = fb_logo.logo->height;
info->fbops->fb_fillrect(info, &rect);
for (x = 0; x < num_online_cpus() * (fb_logo.logo->width + 8) &&
x <= info->var.xres-fb_logo.logo->width; x += (fb_logo.logo->width + 8)) {
image.dx = x;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment