Hi list, There is a short period of white screen after kernel boots. It is due to that the glamo driver is initializing and the backlight is already turned on by u-boot:
... [ 0.865000] glamo3362 glamo3362.0: Detected Glamo core 3650 Revision 0002 (49 -> screen turns white in glamo_init_script [ 0.905000] glamo3362 glamo3362.0: Glamo core now 49119232Hz CPU / 81887232Hz [ 0.905000] Detected S-Media IRQ# pullup, enabling interrupt [ 1.005000] glamo-spi-gpio glamo-spi-gpio.0: registering c039bb50: jbt6k74 [ 1.035000] SMEDIA Glamo frame buffer driver (C) 2007 Openmoko, Inc. -> screen turns black after glamofb_set_par [ 1.640000] Console: switching to colour frame buffer device 80x58 ... My idea is to avoid re-initialization if uboot has already done it. Is it sound ok? BTW, the glamofb initializes the 4MB memory allocated to it during initialization. It takes about 0.5 seconds. The attached patch cuts it down to 0.1 seconds by only initializing the part used for framebuffer. Please help review. -- Regards, olv
>From a54bd9e2376337320c36965830fd3167c4063356 Mon Sep 17 00:00:00 2001 From: Chia-I Wu <[EMAIL PROTECTED]> Date: Fri, 31 Oct 2008 22:04:23 +0800 Subject: [PATCH] glamofb: Initialize only visible part of the memory. It takes lots of time (0.5 seconds) to initialize the whole memory. As only the visible part matters, we could just initialize that part. Signed-off-by: Chia-I Wu <[EMAIL PROTECTED]> --- drivers/mfd/glamo/glamo-fb.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/drivers/mfd/glamo/glamo-fb.c b/drivers/mfd/glamo/glamo-fb.c index 5cd6e05..90e2bd7 100644 --- a/drivers/mfd/glamo/glamo-fb.c +++ b/drivers/mfd/glamo/glamo-fb.c @@ -830,7 +830,10 @@ static int __init glamofb_probe(struct platform_device *pdev) fbinfo->var.hsync_len = mach_info->hsync_len; fbinfo->var.vsync_len = mach_info->vsync_len; - memset(fbinfo->screen_base, 0, fbinfo->fix.smem_len); + memset(fbinfo->screen_base, 0, + mach_info->xres.max * + mach_info->yres.max * + mach_info->bpp.max / 8); glamo_engine_enable(mach_info->glamo, GLAMO_ENGINE_LCD); glamo_engine_reset(mach_info->glamo, GLAMO_ENGINE_LCD); -- 1.5.6.3
