summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/ipu-v3
diff options
context:
space:
mode:
authorPhilipp Zabel <p.zabel@pengutronix.de>2019-08-14 10:53:30 +0200
committerPhilipp Zabel <p.zabel@pengutronix.de>2019-08-19 16:25:30 +0200
commit4d24376370fbfc87231d54434a683f2913abcce4 (patch)
treec8b4714f70c5cbebb147adb58c3a71d054506d1a /drivers/gpu/ipu-v3
parentgpu: ipu-v3: image-convert: move tile burst alignment out of loop (diff)
downloadlinux-4d24376370fbfc87231d54434a683f2913abcce4.tar.xz
linux-4d24376370fbfc87231d54434a683f2913abcce4.zip
gpu: ipu-v3: image-convert: only sample into the next tile if necessary
The first pixel of the next tile is only sampled by the hardware if the fractional input position corresponding to the last written output pixel is not an integer position. Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Diffstat (limited to 'drivers/gpu/ipu-v3')
-rw-r--r--drivers/gpu/ipu-v3/ipu-image-convert.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/gpu/ipu-v3/ipu-image-convert.c b/drivers/gpu/ipu-v3/ipu-image-convert.c
index 1a466611ad48..eeca50d9a1ee 100644
--- a/drivers/gpu/ipu-v3/ipu-image-convert.c
+++ b/drivers/gpu/ipu-v3/ipu-image-convert.c
@@ -1151,7 +1151,7 @@ static void calc_tile_resize_coefficients(struct ipu_image_convert_ctx *ctx)
* burst size.
*/
last_output = resized_width - 1;
- if (closest)
+ if (closest && ((last_output * resize_coeff_h) % 8192))
last_output++;
in_width = round_up(
(DIV_ROUND_UP(last_output * resize_coeff_h, 8192) + 1)
@@ -1208,7 +1208,7 @@ static void calc_tile_resize_coefficients(struct ipu_image_convert_ctx *ctx)
* IDMAC restrictions.
*/
last_output = resized_height - 1;
- if (closest)
+ if (closest && ((last_output * resize_coeff_v) % 8192))
last_output++;
in_height = round_up(
(DIV_ROUND_UP(last_output * resize_coeff_v, 8192) + 1)