From 99764a49624bdf18cfd4618a8c8c195d620a7992 Mon Sep 17 00:00:00 2001 From: Vick Yu Date: Mon, 23 Apr 2012 17:12:50 +0800 Subject: video: tegra: hdmi: avoid border color impact To avoid border color making limited range test of MHL certification failed. Bug 966615 Bug 969243 Signed-off-by: Vick Yu Change-Id: I5c9659358a1c8dac9c6a5194bbc6f59b8230f116 Reviewed-on: http://git-master/r/100552 (cherry picked from commit 20774a3db055630ba0e59669e2e7cbd412f03178) Reviewed-on: http://git-master/r/102377 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Youngjin Kim Tested-by: Youngjin Kim Reviewed-by: Bharat Nihalani Reviewed-by: Donghan Ryu Reviewed-by: Jon Mayo --- drivers/video/tegra/dc/hdmi.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/drivers/video/tegra/dc/hdmi.c b/drivers/video/tegra/dc/hdmi.c index dc688136b7f4..cd745c0a878b 100644 --- a/drivers/video/tegra/dc/hdmi.c +++ b/drivers/video/tegra/dc/hdmi.c @@ -2029,6 +2029,11 @@ static void tegra_dc_hdmi_setup_avi_infoframe(struct tegra_dc *dc, bool dvi) avi.r = HDMI_AVI_R_SAME; + if ((dc->mode.h_active == 720) && ((dc->mode.v_active == 480) || (dc->mode.v_active == 576))) + tegra_dc_writel(dc, 0x00101010, DC_DISP_BORDER_COLOR); + else + tegra_dc_writel(dc, 0x00000000, DC_DISP_BORDER_COLOR); + if (dc->mode.v_active == 480) { if (dc->mode.h_active == 640) { avi.m = HDMI_AVI_M_4_3; @@ -2224,10 +2229,16 @@ static void tegra_dc_hdmi_enable(struct tegra_dc *dc) VSYNC_WINDOW_ENABLE, HDMI_NV_PDISP_HDMI_VSYNC_WINDOW); - tegra_hdmi_writel(hdmi, - (dc->ndev->id ? HDMI_SRC_DISPLAYB : HDMI_SRC_DISPLAYA) | - ARM_VIDEO_RANGE_LIMITED, - HDMI_NV_PDISP_INPUT_CONTROL); + if ((dc->mode.h_active == 720) && ((dc->mode.v_active == 480) || (dc->mode.v_active == 576))) + tegra_hdmi_writel(hdmi, + (dc->ndev->id ? HDMI_SRC_DISPLAYB : HDMI_SRC_DISPLAYA) | + ARM_VIDEO_RANGE_FULL, + HDMI_NV_PDISP_INPUT_CONTROL); + else + tegra_hdmi_writel(hdmi, + (dc->ndev->id ? HDMI_SRC_DISPLAYB : HDMI_SRC_DISPLAYA) | + ARM_VIDEO_RANGE_LIMITED, + HDMI_NV_PDISP_INPUT_CONTROL); clk_disable(hdmi->disp1_clk); clk_disable(hdmi->disp2_clk); -- cgit v1.2.3