]> git.kernelconcepts.de Git - karo-tx-linux.git/commit
vgacon/vt: clear buffer attributes when we load a 512 character font (v2)
authorDave Airlie <airlied@redhat.com>
Thu, 24 Jan 2013 04:14:19 +0000 (14:14 +1000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 28 Feb 2013 13:38:34 +0000 (05:38 -0800)
commitcc8641df0963f820e7462aa0f4e761808f6cc683
treead14a9a93a15d7051410fbc7502db996ea48e69a
parent24a12bf7b45cbe990cd93ad36f4115f656ffa494
vgacon/vt: clear buffer attributes when we load a 512 character font (v2)

commit 2a2483072393b27f4336ab068a1f48ca19ff1c1e upstream.

When we switch from 256->512 byte font rendering mode, it means the
current contents of the screen is being reinterpreted. The bit that holds
the high bit of the 9-bit font, may have been previously set, and thus
the new font misrenders.

The problem case we see is grub2 writes spaces with the bit set, so it
ends up with data like 0x820, which gets reinterpreted into 0x120 char
which the font translates into G with a circumflex. This flashes up on
screen at boot and is quite ugly.

A current side effect of this patch though is that any rendering on the
screen changes color to a slightly darker color, but at least the screen
no longer corrupts.

v2: as suggested by hpa, always clear the attribute space, whether we
are are going to or from 512 chars.

Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/vt/vt.c
drivers/video/console/vgacon.c
include/linux/vt_kern.h