[PATCH 3/4] drm/exynos: fix interlace resolutions for exynos5420

김승우 sw0312.kim at samsung.com
Wed Jun 19 15:34:28 EST 2013


Hi Rahul,

This patch looks good to me.

On 2013년 06월 18일 21:49, Rahul Sharma wrote:
> Modified code for calculating hdmi IP register values from drm timing
> values. The modification is based on the inputs from hw team and specifically
> proposed for 1440x576i and 1440x480i. But same changes holds good for other
> interlaced resolutions also.
> 
> Signed-off-by: Rahul Sharma <rahul.sharma at samsung.com>

Acked-by: Seung-Woo Kim <sw0312.kim at samsung.com>

> ---
>  drivers/gpu/drm/exynos/exynos_hdmi.c |   14 ++++++++------
>  1 file changed, 8 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c b/drivers/gpu/drm/exynos/exynos_hdmi.c
> index 8752171..2f807d5 100644
> --- a/drivers/gpu/drm/exynos/exynos_hdmi.c
> +++ b/drivers/gpu/drm/exynos/exynos_hdmi.c
> @@ -1557,8 +1557,7 @@ static void hdmi_v14_mode_set(struct hdmi_context *hdata,
>  			(m->vsync_start - m->vdisplay) / 2);
>  		hdmi_set_reg(core->v2_blank, 2, m->vtotal / 2);
>  		hdmi_set_reg(core->v1_blank, 2, (m->vtotal - m->vdisplay) / 2);
> -		hdmi_set_reg(core->v_blank_f0, 2, (m->vtotal +
> -			((m->vsync_end - m->vsync_start) * 4) + 5) / 2);
> +		hdmi_set_reg(core->v_blank_f0, 2, m->vtotal - m->vdisplay / 2);
>  		hdmi_set_reg(core->v_blank_f1, 2, m->vtotal);
>  		hdmi_set_reg(core->v_sync_line_aft_2, 2, (m->vtotal / 2) + 7);
>  		hdmi_set_reg(core->v_sync_line_aft_1, 2, (m->vtotal / 2) + 2);
> @@ -1568,7 +1567,10 @@ static void hdmi_v14_mode_set(struct hdmi_context *hdata,
>  			(m->htotal / 2) + (m->hsync_start - m->hdisplay));
>  		hdmi_set_reg(tg->vact_st, 2, (m->vtotal - m->vdisplay) / 2);
>  		hdmi_set_reg(tg->vact_sz, 2, m->vdisplay / 2);
> -		hdmi_set_reg(tg->vact_st2, 2, 0x249);/* Reset value + 1*/
> +		hdmi_set_reg(tg->vact_st2, 2, m->vtotal - m->vdisplay / 2);
> +		hdmi_set_reg(tg->vsync2, 2, (m->vtotal / 2) + 1);
> +		hdmi_set_reg(tg->vsync_bot_hdmi, 2, (m->vtotal / 2) + 1);
> +		hdmi_set_reg(tg->field_bot_hdmi, 2, (m->vtotal / 2) + 1);
>  		hdmi_set_reg(tg->vact_st3, 2, 0x0);
>  		hdmi_set_reg(tg->vact_st4, 2, 0x0);
>  	} else {
> @@ -1590,6 +1592,9 @@ static void hdmi_v14_mode_set(struct hdmi_context *hdata,
>  		hdmi_set_reg(tg->vact_st2, 2, 0x248); /* Reset value */
>  		hdmi_set_reg(tg->vact_st3, 2, 0x47b); /* Reset value */
>  		hdmi_set_reg(tg->vact_st4, 2, 0x6ae); /* Reset value */
> +		hdmi_set_reg(tg->vsync2, 2, 0x233); /* Reset value */
> +		hdmi_set_reg(tg->vsync_bot_hdmi, 2, 0x233); /* Reset value */
> +		hdmi_set_reg(tg->field_bot_hdmi, 2, 0x233); /* Reset value */
>  	}
>  
>  	/* Following values & calculations are same irrespective of mode type */
> @@ -1621,12 +1626,9 @@ static void hdmi_v14_mode_set(struct hdmi_context *hdata,
>  	hdmi_set_reg(tg->hact_sz, 2, m->hdisplay);
>  	hdmi_set_reg(tg->v_fsz, 2, m->vtotal);
>  	hdmi_set_reg(tg->vsync, 2, 0x1);
> -	hdmi_set_reg(tg->vsync2, 2, 0x233); /* Reset value */
>  	hdmi_set_reg(tg->field_chg, 2, 0x233); /* Reset value */
>  	hdmi_set_reg(tg->vsync_top_hdmi, 2, 0x1); /* Reset value */
> -	hdmi_set_reg(tg->vsync_bot_hdmi, 2, 0x233); /* Reset value */
>  	hdmi_set_reg(tg->field_top_hdmi, 2, 0x1); /* Reset value */
> -	hdmi_set_reg(tg->field_bot_hdmi, 2, 0x233); /* Reset value */
>  	hdmi_set_reg(tg->tg_3d, 1, 0x0);
>  }
>  
> 

-- 
Seung-Woo Kim
Samsung Software R&D Center
--



More information about the devicetree-discuss mailing list