summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorGaurav Sarode <gsarode@nvidia.com>2011-07-12 17:21:10 +0530
committerVarun Colbert <vcolbert@nvidia.com>2011-07-19 16:27:08 -0700
commit4043a07832686f945a4558052e33706fff493e05 (patch)
tree133f4a63dc700739bc10e031e3600bece2ae33a0 /drivers
parent6555e61cd6cbe71516086f002bdd6b0bb88d62a6 (diff)
video: tegra: dc: Fix no_vsync hang issue.
no_vsync was causing random hangs due to unwanted interrupts were enabled on default. Fix bug 801463 Change-Id: I8dabf4b9b7b98cd64f2caff94efe949e2768bdd2 Reviewed-on: http://git-master/r/40616 Reviewed-by: Varun Colbert <vcolbert@nvidia.com> Tested-by: Varun Colbert <vcolbert@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/video/tegra/dc/dc.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/video/tegra/dc/dc.c b/drivers/video/tegra/dc/dc.c
index 9e78bb657b3e..cd6e0c683cf2 100644
--- a/drivers/video/tegra/dc/dc.c
+++ b/drivers/video/tegra/dc/dc.c
@@ -955,12 +955,15 @@ int tegra_dc_update_windows(struct tegra_dc_win *windows[], int n)
if (!no_vsync) {
val = tegra_dc_readl(dc, DC_CMD_INT_ENABLE);
- val |= FRAME_END_INT;
+ val |= (FRAME_END_INT | V_BLANK_INT | WIN_A_UF_INT | \
+ WIN_B_UF_INT | WIN_C_UF_INT);
tegra_dc_writel(dc, val, DC_CMD_INT_ENABLE);
+ } else {
+ val = tegra_dc_readl(dc, DC_CMD_INT_ENABLE);
+ val &= ~(FRAME_END_INT | V_BLANK_INT | WIN_A_UF_INT | \
+ WIN_B_UF_INT | WIN_C_UF_INT);
- val = tegra_dc_readl(dc, DC_CMD_INT_MASK);
- val |= FRAME_END_INT;
- tegra_dc_writel(dc, val, DC_CMD_INT_MASK);
+ tegra_dc_writel(dc, val, DC_CMD_INT_ENABLE);
}
tegra_dc_writel(dc, update_mask, DC_CMD_STATE_CONTROL);