diff options
author | Gaurav Sarode <gsarode@nvidia.com> | 2011-07-12 17:21:10 +0530 |
---|---|---|
committer | Varun Colbert <vcolbert@nvidia.com> | 2011-07-19 16:27:08 -0700 |
commit | 4043a07832686f945a4558052e33706fff493e05 (patch) | |
tree | 133f4a63dc700739bc10e031e3600bece2ae33a0 /drivers | |
parent | 6555e61cd6cbe71516086f002bdd6b0bb88d62a6 (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.c | 11 |
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); |