summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorChao Xu <cxu@nvidia.com>2011-07-28 17:32:27 -0700
committerVarun Colbert <vcolbert@nvidia.com>2011-09-26 12:05:21 -0700
commitd3408e77c3e73d460b2e667b09d059a6c27d33a3 (patch)
tree56bc863c25d32b47a225fac479f8e105c0063966 /drivers
parentaad4540fd7be5cfc595f3c0d16e6a96666301d85 (diff)
video: tegra: dc: Update dc for simulation.
- Enable interrupt on simulator. - Remove timeout for sync windows event wait. Change-Id: I157ea100d42f4ae0b0f142d024da886b044be7ba Reviewed-on: http://git-master/r/52993 Tested-by: Chao Xu <cxu@nvidia.com> Reviewed-by: Mark Stadler <mastadler@nvidia.com> Reviewed-by: Scott Williams <scwilliams@nvidia.com> Reviewed-by: Jon Mayo <jmayo@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/video/tegra/dc/dc.c22
1 files changed, 15 insertions, 7 deletions
diff --git a/drivers/video/tegra/dc/dc.c b/drivers/video/tegra/dc/dc.c
index 9eb8b5fc324c..d8a36bc1c7be 100644
--- a/drivers/video/tegra/dc/dc.c
+++ b/drivers/video/tegra/dc/dc.c
@@ -1100,9 +1100,11 @@ int tegra_dc_update_windows(struct tegra_dc_win *windows[], int n)
if (update_blend) {
tegra_dc_set_blending(dc, &dc->blend);
for (i = 0; i < DC_N_WINDOWS; i++) {
- if (!no_vsync)
- dc->windows[i].dirty = 1;
- update_mask |= WIN_A_ACT_REQ << i;
+ if (WIN_IS_ENABLED(windows[i])) {
+ if (!no_vsync)
+ dc->windows[i].dirty = 1;
+ update_mask |= WIN_A_ACT_REQ << i;
+ }
}
}
@@ -1185,9 +1187,15 @@ int tegra_dc_sync_windows(struct tegra_dc_win *windows[], int n)
if (!windows[0]->dc->enabled)
return -EFAULT;
+#ifdef CONFIG_TEGRA_SIMULATION_PLATFORM
+ /* Don't want to timeout on simulator */
+ return wait_event_interruptible(windows[0]->dc->wq,
+ tegra_dc_windows_are_clean(windows, n));
+#else
return wait_event_interruptible_timeout(windows[0]->dc->wq,
tegra_dc_windows_are_clean(windows, n),
HZ);
+#endif
}
EXPORT_SYMBOL(tegra_dc_sync_windows);
@@ -1433,7 +1441,7 @@ static inline void print_mode(struct tegra_dc *dc,
static inline void enable_dc_irq(unsigned int irq)
{
-#ifdef CONFIG_TEGRA_SILICON_PLATFORM
+#ifndef CONFIG_TEGRA_FPGA_PLATFORM
enable_irq(irq);
#else
/* Always disable DC interrupts on FPGA. */
@@ -1955,7 +1963,7 @@ static void tegra_dc_continuous_irq(struct tegra_dc *dc, unsigned long status)
static irqreturn_t tegra_dc_irq(int irq, void *ptr)
{
-#ifdef CONFIG_TEGRA_SILICON_PLATFORM
+#ifndef CONFIG_TEGRA_FPGA_PLATFORM
struct tegra_dc *dc = ptr;
unsigned long status;
unsigned long val;
@@ -2001,9 +2009,9 @@ static irqreturn_t tegra_dc_irq(int irq, void *ptr)
tegra_dc_continuous_irq(dc, status);
return IRQ_HANDLED;
-#else /* CONFIG_TEGRA_SILICON_PLATFORM */
+#else /* CONFIG_TEGRA_FPGA_PLATFORM */
return IRQ_NONE;
-#endif /* !CONFIG_TEGRA_SILICON_PLATFORM */
+#endif /* !CONFIG_TEGRA_FPGA_PLATFORM */
}
static void tegra_dc_set_color_control(struct tegra_dc *dc)