summaryrefslogtreecommitdiff
path: root/drivers/video
diff options
context:
space:
mode:
authorErik Gilling <konkers@android.com>2011-02-18 16:24:37 -0800
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:36:59 -0800
commit2d0db4a643c2891dd06798ce4d301f9e8d0d9af0 (patch)
tree650576250d1f616cf6c1f0cf1ddd4d04d9def9a7 /drivers/video
parentef35f7ba0dae574b7b424bc999ffb5c355be797c (diff)
video: tegra: de-assert reset after clocks are turned on
In underflow recovery, if the clocks are not enabled when the dc is brought out of reset writes to the DC will sometimes hang. Change-Id: If37de79f755196550018f94080ab2beed84ca326 Signed-off-by: Erik Gilling <konkers@android.com>
Diffstat (limited to 'drivers/video')
-rw-r--r--drivers/video/tegra/dc/dc.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/video/tegra/dc/dc.c b/drivers/video/tegra/dc/dc.c
index cee7f2543323..2531233b5ddc 100644
--- a/drivers/video/tegra/dc/dc.c
+++ b/drivers/video/tegra/dc/dc.c
@@ -1024,6 +1024,9 @@ static bool _tegra_dc_enable(struct tegra_dc *dc)
clk_enable(dc->clk);
clk_enable(dc->emc_clk);
+ tegra_periph_reset_deassert(dc->clk);
+ msleep(10);
+
enable_irq(dc->irq);
tegra_dc_init(dc);
@@ -1094,10 +1097,10 @@ static void tegra_dc_reset_worker(struct work_struct *work)
msleep(100);
tegra_periph_reset_assert(dc->clk);
- msleep(100);
- tegra_periph_reset_deassert(dc->clk);
+ /* _tegra_dc_enable deasserts reset */
_tegra_dc_enable(dc);
+
mutex_unlock(&dc->lock);
}