Hello, here a patch to fix up the start up sequence. This new sequence allow you to correctly enable the LCD controller even if the bootloader has already did it. The patch also fixes up a wrong indentation issue. Ciao, Rodolfo Signed-off-by: Rodolfo Giometti <giometti@xxxxxxxx> -- GNU/Linux Solutions e-mail: giometti@xxxxxxxxxxxx Linux Device Driver giometti@xxxxxxxxx Embedded Systems giometti@xxxxxxxx UNIX programming phone: +39 349 2432127
diff --git a/drivers/video/au1100fb.c b/drivers/video/au1100fb.c index 1b9ad17..f9fcc65 100644 --- a/drivers/video/au1100fb.c +++ b/drivers/video/au1100fb.c @@ -167,7 +167,7 @@ int au1100fb_setmode(struct au1100fb_dev info->fix.visual = FB_VISUAL_TRUECOLOR; info->fix.line_length = info->var.xres_virtual << 1; /* depth=16 */ - } + } } else { /* mono */ info->fix.visual = FB_VISUAL_MONO10; @@ -180,16 +180,11 @@ int au1100fb_setmode(struct au1100fb_dev /* Determine BPP mode and format */ fbdev->regs->lcd_control = fbdev->panel->control_base; - - fbdev->regs->lcd_intenable = 0; - fbdev->regs->lcd_intstatus = 0; - fbdev->regs->lcd_horztiming = fbdev->panel->horztiming; - fbdev->regs->lcd_verttiming = fbdev->panel->verttiming; - fbdev->regs->lcd_clkcontrol = fbdev->panel->clkcontrol_base; - + fbdev->regs->lcd_intenable = 0; + fbdev->regs->lcd_intstatus = 0; fbdev->regs->lcd_dmaaddr0 = LCD_DMA_SA_N(fbdev->fb_phys); if (panel_is_dual(fbdev->panel)) { @@ -217,7 +212,8 @@ int au1100fb_setmode(struct au1100fb_dev fbdev->regs->lcd_pwmhi = 0; /* Resume controller */ - au1100fb_fb_blank(VESA_NO_BLANKING, &fbdev->info); + mdelay(10); + au1100fb_fb_blank(VESA_NO_BLANKING, info); return 0; }