exynos_fb: Remove usage of static defines
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@samsung.com> Acked-by: Simon Glass <sjg@chromium.org> Tested-by: Simon Glass <sjg@chromium.org> Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
This commit is contained in:
parent
b09200639d
commit
f0017175e3
@ -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 */
|
||||
|
@ -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>
|
||||
@ -149,6 +150,21 @@ int board_early_init_f(void)
|
||||
#ifdef CONFIG_SYS_I2C_INIT_BOARD
|
||||
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
|
||||
|
@ -27,17 +27,13 @@ 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
|
||||
*/
|
||||
.vl_col = -1,
|
||||
};
|
||||
#endif
|
||||
|
||||
@ -141,7 +137,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 +282,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
|
||||
|
@ -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
|
||||
|
||||
|
@ -247,7 +247,4 @@ int universal_spi_read(void);
|
||||
#define CONFIG_VIDEO_BMP_GZIP
|
||||
#define CONFIG_SYS_VIDEO_LOGO_MAX_SIZE ((500 * 160 * 4) + 54)
|
||||
|
||||
#define LCD_XRES 480
|
||||
#define LCD_YRES 800
|
||||
|
||||
#endif /* __CONFIG_H */
|
||||
|
@ -261,7 +261,4 @@
|
||||
#define CONFIG_VIDEO_BMP_GZIP
|
||||
#define CONFIG_SYS_VIDEO_LOGO_MAX_SIZE ((500 * 160 * 4) + 54)
|
||||
|
||||
#define LCD_XRES 720
|
||||
#define LCD_YRES 1280
|
||||
|
||||
#endif /* __CONFIG_H */
|
||||
|
@ -241,7 +241,4 @@ int get_soft_i2c_sda_pin(void);
|
||||
#define CONFIG_VIDEO_BMP_GZIP
|
||||
#define CONFIG_SYS_VIDEO_LOGO_MAX_SIZE ((500 * 160 * 4) + 54)
|
||||
|
||||
#define LCD_XRES 720
|
||||
#define LCD_YRES 1280
|
||||
|
||||
#endif /* __CONFIG_H */
|
||||
|
Loading…
Reference in New Issue
Block a user