diff options
Diffstat (limited to 'drivers/gpu/drm/tegra/hdmi.c')
-rw-r--r-- | drivers/gpu/drm/tegra/hdmi.c | 25 |
1 files changed, 6 insertions, 19 deletions
diff --git a/drivers/gpu/drm/tegra/hdmi.c b/drivers/gpu/drm/tegra/hdmi.c index ab4016412bbf..e060c7e6434d 100644 --- a/drivers/gpu/drm/tegra/hdmi.c +++ b/drivers/gpu/drm/tegra/hdmi.c | |||
@@ -149,7 +149,7 @@ struct tmds_config { | |||
149 | }; | 149 | }; |
150 | 150 | ||
151 | static const struct tmds_config tegra2_tmds_config[] = { | 151 | static const struct tmds_config tegra2_tmds_config[] = { |
152 | { /* 480p modes */ | 152 | { /* slow pixel clock modes */ |
153 | .pclk = 27000000, | 153 | .pclk = 27000000, |
154 | .pll0 = SOR_PLL_BG_V17_S(3) | SOR_PLL_ICHPMP(1) | | 154 | .pll0 = SOR_PLL_BG_V17_S(3) | SOR_PLL_ICHPMP(1) | |
155 | SOR_PLL_RESISTORSEL | SOR_PLL_VCOCAP(0) | | 155 | SOR_PLL_RESISTORSEL | SOR_PLL_VCOCAP(0) | |
@@ -163,21 +163,8 @@ static const struct tmds_config tegra2_tmds_config[] = { | |||
163 | DRIVE_CURRENT_LANE1(DRIVE_CURRENT_7_125_mA) | | 163 | DRIVE_CURRENT_LANE1(DRIVE_CURRENT_7_125_mA) | |
164 | DRIVE_CURRENT_LANE2(DRIVE_CURRENT_7_125_mA) | | 164 | DRIVE_CURRENT_LANE2(DRIVE_CURRENT_7_125_mA) | |
165 | DRIVE_CURRENT_LANE3(DRIVE_CURRENT_7_125_mA), | 165 | DRIVE_CURRENT_LANE3(DRIVE_CURRENT_7_125_mA), |
166 | }, { /* 720p modes */ | 166 | }, |
167 | .pclk = 74250000, | 167 | { /* high pixel clock modes */ |
168 | .pll0 = SOR_PLL_BG_V17_S(3) | SOR_PLL_ICHPMP(1) | | ||
169 | SOR_PLL_RESISTORSEL | SOR_PLL_VCOCAP(1) | | ||
170 | SOR_PLL_TX_REG_LOAD(3), | ||
171 | .pll1 = SOR_PLL_TMDS_TERM_ENABLE | SOR_PLL_PE_EN, | ||
172 | .pe_current = PE_CURRENT0(PE_CURRENT_6_0_mA) | | ||
173 | PE_CURRENT1(PE_CURRENT_6_0_mA) | | ||
174 | PE_CURRENT2(PE_CURRENT_6_0_mA) | | ||
175 | PE_CURRENT3(PE_CURRENT_6_0_mA), | ||
176 | .drive_current = DRIVE_CURRENT_LANE0(DRIVE_CURRENT_7_125_mA) | | ||
177 | DRIVE_CURRENT_LANE1(DRIVE_CURRENT_7_125_mA) | | ||
178 | DRIVE_CURRENT_LANE2(DRIVE_CURRENT_7_125_mA) | | ||
179 | DRIVE_CURRENT_LANE3(DRIVE_CURRENT_7_125_mA), | ||
180 | }, { /* 1080p modes */ | ||
181 | .pclk = UINT_MAX, | 168 | .pclk = UINT_MAX, |
182 | .pll0 = SOR_PLL_BG_V17_S(3) | SOR_PLL_ICHPMP(1) | | 169 | .pll0 = SOR_PLL_BG_V17_S(3) | SOR_PLL_ICHPMP(1) | |
183 | SOR_PLL_RESISTORSEL | SOR_PLL_VCOCAP(1) | | 170 | SOR_PLL_RESISTORSEL | SOR_PLL_VCOCAP(1) | |
@@ -479,7 +466,7 @@ static void tegra_hdmi_setup_avi_infoframe(struct tegra_hdmi *hdmi, | |||
479 | return; | 466 | return; |
480 | } | 467 | } |
481 | 468 | ||
482 | h_front_porch = mode->htotal - mode->hsync_end; | 469 | h_front_porch = mode->hsync_start - mode->hdisplay; |
483 | memset(&frame, 0, sizeof(frame)); | 470 | memset(&frame, 0, sizeof(frame)); |
484 | frame.r = HDMI_AVI_R_SAME; | 471 | frame.r = HDMI_AVI_R_SAME; |
485 | 472 | ||
@@ -634,8 +621,8 @@ static int tegra_output_hdmi_enable(struct tegra_output *output) | |||
634 | 621 | ||
635 | pclk = mode->clock * 1000; | 622 | pclk = mode->clock * 1000; |
636 | h_sync_width = mode->hsync_end - mode->hsync_start; | 623 | h_sync_width = mode->hsync_end - mode->hsync_start; |
637 | h_front_porch = mode->htotal - mode->hsync_end; | 624 | h_back_porch = mode->htotal - mode->hsync_end; |
638 | h_back_porch = mode->hsync_start - mode->hdisplay; | 625 | h_front_porch = mode->hsync_start - mode->hdisplay; |
639 | 626 | ||
640 | err = regulator_enable(hdmi->vdd); | 627 | err = regulator_enable(hdmi->vdd); |
641 | if (err < 0) { | 628 | if (err < 0) { |