• Yannick Heneault's avatar
    vgacon: check for efi machine · 554ec37a
    Yannick Heneault authored
    It seems there is a small problem of VGA palette corruption on EFI
    machine.  When the kernel initializes the architecture, it checks if the
    machine is a EFI machine and assumes that a VGA console can exist.
    
    When it initializes the console in vgacon_startup it checks if it can
    really use the VGA console.  I think this is where a check is missing.
    Currently, the function can fail if a VESA boot mode is detected but not if
    a EFI boot mode was used.
    
    Thus vgacon_startup() doesn't fail and initialize the video card for a real
    VGA mode.  This function changes the first 16entries of the VGA palette.
    
    When the efifb driver kicks in, the palette is not restored to default
    ramp value, thus the 16 first entry remain in a modified state.  The
    following patch prevent this corruption.
    Signed-off-by: default avatarYannick Heneault <yheneaul@matrox.com>
    Cc: Dave Airlie <airlied@linux.ie>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    554ec37a
vgacon.c 40.7 KB