diff options
author | Chao Xu <cxu@nvidia.com> | 2011-07-28 17:32:27 -0700 |
---|---|---|
committer | Varun Colbert <vcolbert@nvidia.com> | 2011-09-26 12:05:21 -0700 |
commit | d3408e77c3e73d460b2e667b09d059a6c27d33a3 (patch) | |
tree | 56bc863c25d32b47a225fac479f8e105c0063966 /drivers | |
parent | aad4540fd7be5cfc595f3c0d16e6a96666301d85 (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.c | 22 |
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) |