All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] Fwd: Re: [PATCH V2 1/7] exynos_fb: Remove usage of static defines
       [not found] <52C28456.6020303@samsung.com>
@ 2014-01-02  0:40 ` Minkyu Kang
  0 siblings, 0 replies; only message in thread
From: Minkyu Kang @ 2014-01-02  0:40 UTC (permalink / raw)
  To: u-boot

On 12/11/13 21:27, Ajay Kumar 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@samsung.com>
> ---
>  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(-)
> 
> 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 cc83724..2536457 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 <power/max77686_pmic.h>
> @@ -135,6 +136,20 @@ 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.
> + */

please fix indentation.

> +	err = exynos_lcd_early_init(gd->fdt_blob);
> +	if (err) {
> +		debug("LCD early init failed\n");
> +		return err;
> +	}
> +#endif
>  	return err;
>  }
>  #endif
> diff --git a/drivers/video/exynos_fb.c b/drivers/video/exynos_fb.c
> index 7d4c6e0..69899a1 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.

> +	.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
> diff --git a/include/configs/exynos5250-dt.h b/include/configs/exynos5250-dt.h
> index 689919d..508962c 100644
> --- a/include/configs/exynos5250-dt.h
> +++ b/include/configs/exynos5250-dt.h
> @@ -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.

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2014-01-02  0:40 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <52C28456.6020303@samsung.com>
2014-01-02  0:40 ` [U-Boot] Fwd: Re: [PATCH V2 1/7] exynos_fb: Remove usage of static defines Minkyu Kang

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.