Dear Ajay Kumar,
On 4 July 2014 22:19, Ajay Kumar <ajaykumar...@samsung.com> wrote: > Previously, we used to statically assign values for vl_col, vl_row and > vl_bpix using #defines like LCD_XRES, LCD_YRES and LCD_COLOR16. > > Introducing the function exynos_lcd_early_init() would take care of this > assignment on the fly by parsing FIMD DT properties, thereby allowing us > to remove LCD_XRES and LCD_YRES from the main config file. > > Signed-off-by: Ajay Kumar <ajaykumar...@samsung.com> > Acked-by: Simon Glass <s...@chromium.org> > Tested-by: Simon Glass <s...@chromium.org> > --- > arch/arm/include/asm/arch-exynos/system.h | 1 + > board/samsung/common/board.c | 15 +++++++++++++++ > drivers/video/exynos_fb.c | 17 +++++------------ > include/configs/exynos5250-dt.h | 2 -- > include/configs/s5pc210_universal.h | 3 --- > include/configs/trats.h | 3 --- > include/configs/trats2.h | 3 --- > 7 files changed, 21 insertions(+), 23 deletions(-) > > diff --git a/arch/arm/include/asm/arch-exynos/system.h > b/arch/arm/include/asm/arch-exynos/system.h > index 7e2057c..4968d3d 100644 > --- a/arch/arm/include/asm/arch-exynos/system.h > +++ b/arch/arm/include/asm/arch-exynos/system.h > @@ -39,5 +39,6 @@ struct exynos5_sysreg { > > void set_usbhost_mode(unsigned int mode); > void set_system_display_ctrl(void); > +int exynos_lcd_early_init(const void *blob); > > #endif /* _EXYNOS4_SYSTEM_H */ > diff --git a/board/samsung/common/board.c b/board/samsung/common/board.c > index 9dc7c83..1f6f0a0 100644 > --- a/board/samsung/common/board.c > +++ b/board/samsung/common/board.c > @@ -20,6 +20,7 @@ > #include <asm/arch/mmc.h> > #include <asm/arch/pinmux.h> > #include <asm/arch/power.h> > +#include <asm/arch/system.h> > #include <power/pmic.h> > #include <asm/arch/sromc.h> > #include <lcd.h> > @@ -148,6 +149,20 @@ int board_early_init_f(void) > board_i2c_init(gd->fdt_blob); > #endif > > +#if defined(CONFIG_OF_CONTROL) && defined(CONFIG_EXYNOS_FB) > +/* > + * board_init_f(arch/arm/lib/board.c) calls lcd_setmem() which needs > + * panel_info.vl_col, panel_info.vl_row and panel_info.vl_bpix, to reserve > + * FB memory at a very early stage. So, we need to fill panel_info.vl_col, > + * panel_info.vl_row and panel_info.vl_bpix before lcd_setmem() is called. > + */ > + err = exynos_lcd_early_init(gd->fdt_blob); > + if (err) { > + debug("LCD early init failed\n"); > + return err; > + } > +#endif > + > return exynos_early_init_f(); > } > #endif > diff --git a/drivers/video/exynos_fb.c b/drivers/video/exynos_fb.c > index e1e0d80..bc478a9 100644 > --- a/drivers/video/exynos_fb.c > +++ b/drivers/video/exynos_fb.c > @@ -27,17 +27,12 @@ DECLARE_GLOBAL_DATA_PTR; > > static unsigned int panel_width, panel_height; > > -/* > - * board_init_f(arch/arm/lib/board.c) calls lcd_setmem() which needs > - * panel_info.vl_col, panel_info.vl_row and panel_info.vl_bpix to reserve > - * FB memory at a very early stage, i.e even before exynos_fimd_parse_dt() > - * is called. So, we are forced to statically assign it. > - */ > #ifdef CONFIG_OF_CONTROL > vidinfo_t panel_info = { > - .vl_col = LCD_XRES, > - .vl_row = LCD_YRES, > - .vl_bpix = LCD_COLOR16, > + /* Insert a value here so that we don't end up in the BSS > + * Reference: drivers/video/tegra.c > + */ > Wrong comment style. Please fix it. > + .vl_col = -1, > }; > #endif > > @@ -141,7 +136,7 @@ static void lcd_panel_on(vidinfo_t *vid) > } > > #ifdef CONFIG_OF_CONTROL > -int exynos_fimd_parse_dt(const void *blob) > +int exynos_lcd_early_init(const void *blob) > { > unsigned int node; > node = fdtdec_next_compatible(blob, 0, COMPAT_SAMSUNG_EXYNOS_FIMD); > @@ -286,8 +281,6 @@ void lcd_ctrl_init(void *lcdbase) > set_lcd_clk(); > > #ifdef CONFIG_OF_CONTROL > - if (exynos_fimd_parse_dt(gd->fdt_blob)) > - debug("Can't get proper panel info\n"); > #ifdef CONFIG_EXYNOS_MIPI_DSIM > exynos_init_dsim_platform_data(&panel_info); > #endif > diff --git a/include/configs/exynos5250-dt.h > b/include/configs/exynos5250-dt.h > index 74e72a5..c24984b 100644 > --- a/include/configs/exynos5250-dt.h > +++ b/include/configs/exynos5250-dt.h > @@ -61,8 +61,6 @@ > #ifdef CONFIG_LCD > #define CONFIG_EXYNOS_FB > #define CONFIG_EXYNOS_DP > -#define LCD_XRES 2560 > -#define LCD_YRES 1600 > #define LCD_BPP LCD_COLOR16 > #endif > > Thanks, Minkyu Kang. -- from. prom. www.promsoft.net
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot