Skip to contentSkip to conversation

own driver crashes + patch

PATCH Yves Jäger 1 participant 1 message Aug 8, 2002 Framebuffer layer

lore
Share & tools
lore
#0 lore raw

Hi all,

I'm writing a Framebuffer driver for an embedded system that contains an LCD display and and Toshiba T6963 controller.

I had the problem, that my driver crashed because the screensize (126x64) is lower than the boot-logo (80x80). And this parameter is not checked in fbcon.c

To see a Kernel with the virtual framebuffer crash, apply the patch vfb.diff and enable the Virtual Framebuffer in your configuration and kernel command line.

The workaround is shown in file fbcon-2.4.18.patch.
I'm not sure if that is the right place to check the boot-logo size. Perhaps somebody has a better idea.

Best regards
Yves Jaeger

vfb.c.new renamed from vfb.c +1 -1
@@ -62,7 +62,7 @@
 
 static struct fb_var_screeninfo vfb_default = {
     /* 640x480, 8 bpp */
-    640, 480, 640, 480, 0, 0, 8, 0,
+    128, 64, 128, 64, 0, 0, 1, 0,
     {0, 8, 0}, {0, 8, 0}, {0, 8, 0}, {0, 0, 0},
     0, 0, -1, -1, 0, 20000, 64, 64, 32, 32, 64, 2,
     0, FB_VMODE_NONINTERLACED
drivers/video/fbcon.c +8 -2
diff -ru linux/drivers/video/fbcon.c linux-2.4.18-t6963/drivers/video/fbcon.c
@@ -754,8 +754,14 @@
     }
 	
     if (logo) {
-	logo_shown = -2;
-    	conp->vc_top = logo_lines;
+	if (logo_lines > conp->vc_bottom)
+	{
+		logo_shown = -1;
+		printk(KERN_INFO "fbcon_startup: disable boot-logo (boot-logo bigger than screen).\n");
+	} else {
+		logo_shown = -2;
+		conp->vc_top = logo_lines;
+	}
     }
     
     if (con == fg_console && softback_buf) {