summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Mayo <jmayo@nvidia.com>2011-01-06 19:07:55 -0800
committerYu-Huan Hsu <yhsu@nvidia.com>2011-01-10 11:59:38 -0800
commit633a7967cad4454327572f85fbdf5cd88eb68b78 (patch)
tree9f30b5b3adbbc832c55babcc92702461170acc9e
parent000f1dc44bb0a0c16158fa9de497f4848d99fa12 (diff)
[ARM] tegra: hdmi hotplug fixed
modified tegra_dc_enable and tegra_dc_detect sequence for working hotplug detection. HDMI enable pin needs to be enabled before EDID detect function is used. The enable bails out early if pclk(pixel clock) is 0, but pclk cannot be configured until modes are loaded by EDID detect function. Bug 727054 Change-Id: I2d02b82374c131ccbdb8e4e8f43e46840fbae06b Reviewed-on: http://git-master/r/15197 Reviewed-by: Jonathan Mayo <jmayo@nvidia.com> Tested-by: Jonathan Mayo <jmayo@nvidia.com> Reviewed-by: Peter Zu <pzu@nvidia.com> Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
-rw-r--r--drivers/video/tegra/dc/dc.c6
-rw-r--r--drivers/video/tegra/dc/hdmi.c2
2 files changed, 5 insertions, 3 deletions
diff --git a/drivers/video/tegra/dc/dc.c b/drivers/video/tegra/dc/dc.c
index 3cee56e8b412..1777de0f0215 100644
--- a/drivers/video/tegra/dc/dc.c
+++ b/drivers/video/tegra/dc/dc.c
@@ -1030,14 +1030,14 @@ static void tegra_dc_init(struct tegra_dc *dc)
static bool _tegra_dc_enable(struct tegra_dc *dc)
{
+ if (dc->out && dc->out->enable)
+ dc->out->enable();
+
if (dc->mode.pclk == 0)
return false;
tegra_dc_io_start(dc);
- if (dc->out && dc->out->enable)
- dc->out->enable();
-
tegra_dc_setup_clk(dc, dc->clk);
clk_enable(dc->clk);
diff --git a/drivers/video/tegra/dc/hdmi.c b/drivers/video/tegra/dc/hdmi.c
index 4cd36dc8a858..323c93e553c2 100644
--- a/drivers/video/tegra/dc/hdmi.c
+++ b/drivers/video/tegra/dc/hdmi.c
@@ -497,6 +497,8 @@ static void tegra_dc_hdmi_detect_worker(struct work_struct *work)
container_of(to_delayed_work(work), struct tegra_dc_hdmi_data, work);
struct tegra_dc *dc = hdmi->dc;
+ tegra_dc_enable(dc);
+
if (!tegra_dc_hdmi_detect(dc)) {
tegra_dc_disable(dc);
tegra_fb_update_monspecs(dc->fb, NULL, NULL);