mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 23:24:38 +00:00
lcd: calculate line_length after lcd_ctrl_init()
When an LCD driver is actually driving a regular external display, e.g. an HDMI monitor, the display resolution might not be known until the display controller has initialized, i.e. during lcd_ctrl_init(). However, lcd.c calculates lcd_line_length before calling this function, thus relying on a hard-coded resolution in struct panel_info. Instead, defer this calculation until after lcd_ctrl_init() has had the chance to dynamically determine the resolution. This needs to happen before lcd_clear(), since the value is used there. grep indicates that no code outside lcd.c uses this lcd_line_length; in particular, no lcd_ctrl_init() implementations read it. Signed-off-by: Stephen Warren <swarren@wwwdotorg.org> Acked-by: Anatolij Gustschin <agust@denx.de>
This commit is contained in:
parent
3f397782ae
commit
6d3307195d
1 changed files with 2 additions and 2 deletions
|
@ -386,8 +386,6 @@ int drv_lcd_init (void)
|
|||
|
||||
lcd_base = (void *)(gd->fb_base);
|
||||
|
||||
lcd_get_size(&lcd_line_length);
|
||||
|
||||
lcd_init(lcd_base); /* LCD initialization */
|
||||
|
||||
/* Device initialization */
|
||||
|
@ -470,6 +468,8 @@ static int lcd_init(void *lcdbase)
|
|||
debug("[LCD] Initializing LCD frambuffer at %p\n", lcdbase);
|
||||
|
||||
lcd_ctrl_init(lcdbase);
|
||||
lcd_get_size(&lcd_line_length);
|
||||
lcd_line_length = (panel_info.vl_col * NBITS(panel_info.vl_bpix)) / 8;
|
||||
lcd_is_enabled = 1;
|
||||
lcd_clear();
|
||||
lcd_enable ();
|
||||
|
|
Loading…
Reference in a new issue