exynos_fb: Remove usage of static defines
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 40 lines · Ajay Kumar
Previously, we used to statically assign values for
vl_col,vl_rowandvl_bpixusing #defines likeLCD_XRES,LCD_YRESandLCD_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 removeLCD_XRESandLCD_YRESfrom the main config file.Signed-off-by Ajay Kumar <[email protected]>--- arch/arm/include/asm/arch-exynos/system.h | 1 + board/samsung/common/board.c | 15 +++++++++++++++ drivers/video/exynos_fb.c | 20 ++++++-------------- include/configs/exynos5250-dt.h | 2 -- 4 files changed, 22 insertions(+), 16 deletions(-)arch/arm/include/asm/arch-exynos/system.h +1
-0@@ -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 */ board/samsung/common/board.c +1
-0@@ -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 <power/max77686_pmic.h> @@ -135,6 +136,20 @@ int board_early_init_f(void)#ifdef CONFIG_SYS_I2C_INIT_BOARD
board/samsung/common/board.c int board_early_init_f(void) · line 146
Quoted 10 lines
board/samsung/common/board.c +8
-0board_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. +*/
please fix indentation.
Quoted 21 lines
board/samsung/common/board.c +6
-0+ err =exynos_lcd_early_init (gd->fdt_blob); +if (err) { +debug ("LCD early init failed\n" ); +return err; + } +#endif return err; }#endif drivers/video/exynos_fb.c +0
-4@@ -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()
drivers/video/exynos_fb.c DECLARE_GLOBAL_DATA_PTR; · line 34
Quoted 10 lines
drivers/video/exynos_fb.c +3
-5-* 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.
Quoted 31 lines
drivers/video/exynos_fb.c +3
-5+ .vl_col = -1, };#endif @@ -159,7 +154,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 );@@ -303,10 +298,7 @@ void lcd_ctrl_init(void *lcdbase)set_system_display_ctrl ();set_lcd_clk (); -#ifdef CONFIG_OF_CONTROL -if (exynos_fimd_parse_dt (gd->fdt_blob)) -debug ("Can't get proper panel info\n" ); -#else +#ifndef CONFIG_OF_CONTROL /* initialize parameters which is specific to panel. */ init_panel_info (&panel_info);#endif include/configs/exynos5250-dt.h +0
-0
include/configs/exynos5250-dt.h line 55
Quoted 8 lines
include/configs/exynos5250-dt.h +0
-2@@ -50,8 +50,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 #endif /* __CONFIG_5250_H */
Thanks,
Minkyu Kang.