[U-Boot] [PATCH V3 1/9] exynos_fb: Remove usage of static defines
Minkyu Kang
promsoft at gmail.com
Sat Jul 26 11:34:03 CEST 2014
Dear Ajay Kumar,
On 4 July 2014 22:19, Ajay Kumar <ajaykumar.rs at 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.rs at samsung.com>
> Acked-by: Simon Glass <sjg at chromium.org>
> Tested-by: Simon Glass <sjg at 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
More information about the U-Boot
mailing list