All of lore.kernel.org
 help / color / mirror / Atom feed
From: Minkyu Kang <mk7.kang@samsung.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] Fwd: Re: [PATCH V2 1/7] exynos_fb: Remove usage of static defines
Date: Thu, 02 Jan 2014 09:40:28 +0900	[thread overview]
Message-ID: <52C4B57C.1090005@samsung.com> (raw)
In-Reply-To: <52C28456.6020303@samsung.com>

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.

           reply	other threads:[~2014-01-02  0:40 UTC|newest]

Thread overview: expand[flat|nested]  mbox.gz  Atom feed
 [parent not found: <52C28456.6020303@samsung.com>]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=52C4B57C.1090005@samsung.com \
    --to=mk7.kang@samsung.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.