* [PATCH] vgacon: checking for efi machine
@ 2011-01-06 16:10 Yannick Heneault
0 siblings, 0 replies; only message in thread
From: Yannick Heneault @ 2011-01-06 16:10 UTC (permalink / raw)
To: linux kernel mailing list, akpm; +Cc: airlied, hpa
It seems there is a small problem of VGA palette corruption on EFI machine. When the kernel initializes the architecture, it checks if themachine is a EFI machine and assumes that a VGA console can exist. When it initialize the console in vgacon_startup it checks if itcan really use the VGA console. I think this is where a check ismissing. Currently, the function can fail if a VESA boot mode isdetected but not if a EFI boot mode was used. Thus, the function vgacon_startup doesn't fail and initialize thevideo card for a real VGA mode. This function change the first 16entries of the VGA palette. When the efifb driver kick-in, the paletteis not restored to default ramp value, thus the 16 first entry remain ina modified state. The following patch prevent this corruption.
Signed-off-by: Yannick Heneault<yheneaul@matrox.com>
---
diff -Nur linux-2.6.37-ori/drivers/video/console/vgacon.c linux-2.6.37/drivers/video/console/vgacon.c
--- linux-2.6.37-ori/drivers/video/console/vgacon.c 2011-01-04 19:50:19.000000000 -0500
+++ linux-2.6.37/drivers/video/console/vgacon.c 2011-01-06 10:38:24.713590593 -0500
@@ -375,7 +375,8 @@
u16 saved1, saved2;
volatile u16 *p;
- if (screen_info.orig_video_isVGA == VIDEO_TYPE_VLFB) {
+ if (screen_info.orig_video_isVGA == VIDEO_TYPE_VLFB ||
+ screen_info.orig_video_isVGA == VIDEO_TYPE_EFI) {
no_vga:
#ifdef CONFIG_DUMMY_CONSOLE
conswitchp =&dummy_con;
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2011-01-06 16:39 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-01-06 16:10 [PATCH] vgacon: checking for efi machine Yannick Heneault
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.