unsigned long ret;
int tiled_windows_bw_multiplier;
unsigned long bpp;
+ unsigned in_w;
if (!WIN_IS_ENABLED(w))
return 0;
if (dfixed_trunc(w->w) == 0 || dfixed_trunc(w->h) == 0 ||
w->out_w == 0 || w->out_h == 0)
return 0;
+ if (w->flags & TEGRA_WIN_FLAG_SCAN_COLUMN)
+ /* rotated: PRESCALE_SIZE swapped, but WIN_SIZE is unchanged */
+ in_w = dfixed_trunc(w->h);
+ else
+ in_w = dfixed_trunc(w->w); /* normal output, not rotated */
tiled_windows_bw_multiplier =
tegra_mc_get_tiled_memory_bandwidth_multiplier();
#if defined(CONFIG_ARCH_TEGRA_2x_SOC) || defined(CONFIG_ARCH_TEGRA_3x_SOC)
(win_use_v_filter(dc, w) ? 2 : 1) *
#endif
- dfixed_trunc(w->w) / w->out_w * (WIN_IS_TILED(w) ?
+ in_w / w->out_w * (WIN_IS_TILED(w) ?
tiled_windows_bw_multiplier : 1);
#ifdef CONFIG_ARCH_TEGRA_2x_SOC