• Dave Airlie's avatar
    vgacon/vt: clear buffer attributes when we load a 512 character font (v2) · 2a248307
    Dave Airlie authored
    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.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
    2a248307
vgacon.c 40.8 KB