[PATCH] vgacon: Return the upper half of 512 character fonts

Stefan Bader stefan.bader at canonical.com
Wed Apr 22 20:08:14 UTC 2009


Stefan Bader wrote:
> Bug: #355057
> 
Accepted into -mm

> Uwe Geuder noted that he gets random bitmaps on a text console if he tried
> to type extended characters (like the e acute). For him everything above
> unicode 0xa0 was corrupted.
> 
> After some digging there seems to be a little culprit in vgacon since the
> beginning of ages (well git). The function vgacon_font_get will store the
> number of characters correctly in font->charcount but then calls to
> vgacon_do_font_op(..., 0, 0). Which means only the lower 256 characters are
> actually stored to the fontdata. The rest is left untouched. So the next time
> that saved data is used, the garbled font appears. This happens on every
> switch between text consoles.
> 
> Signed-off-by: Stefan Bader <stefan.bader at canonical.com>
> Tested-by: Uwe Geuder <ubuntuLp-ugeuder at sneakemail.com>
> ---
>  drivers/video/console/vgacon.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/video/console/vgacon.c b/drivers/video/console/vgacon.c
> index d012edd..38e86b8 100644
> --- a/drivers/video/console/vgacon.c
> +++ b/drivers/video/console/vgacon.c
> @@ -1282,7 +1282,7 @@ static int vgacon_font_get(struct vc_data *c, struct console_font *font)
>  	font->charcount = vga_512_chars ? 512 : 256;
>  	if (!font->data)
>  		return 0;
> -	return vgacon_do_font_op(&state, font->data, 0, 0);
> +	return vgacon_do_font_op(&state, font->data, 0, vga_512_chars);
>  }
>  
>  #else


-- 

When all other means of communication fail, try words!






More information about the kernel-team mailing list