[U-Boot] [PATCH V5 REPOST 3/7] lcd: calculate line_length after lcd_ctrl_init()

Albert ARIBAUD albert.u.boot at aribaud.net
Wed Mar 20 16:46:48 CET 2013


Hi Stephen,

On Tue, 15 Jan 2013 19:26:55 -0700, Stephen Warren
<swarren at wwwdotorg.org> wrote:

> 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 at wwwdotorg.org>
> Acked-by: Anatolij Gustschin <agust at denx.de>
> --
> v5: No change; merged patch series.
> v4: Adjusted to addition of lcd_get_size() function. Rebased.
> v3: No change.
> ---
>  common/lcd.c |    4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/common/lcd.c b/common/lcd.c
> index 66d4f94..9fa4e5c 100644
> --- a/common/lcd.c
> +++ b/common/lcd.c
> @@ -384,8 +384,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 */
> @@ -468,6 +466,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 ();

Applied to u-boot-arm/master, thanks!

Amicalement,
-- 
Albert.


More information about the U-Boot mailing list