From: Philipp Zabel
Date: Wed, 14 Aug 2019 08:53:30 +0000 (+0200)
Subject: gpu: ipu-v3: image-convert: only sample into the next tile if necessary
X-Git-Tag: v5.4-rc1~106^2~10^2
X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4d24376370fbfc87231d54434a683f2913abcce4;p=thirdparty%2Flinux.git
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
---
diff --git a/drivers/gpu/ipu-v3/ipu-image-convert.c b/drivers/gpu/ipu-v3/ipu-image-convert.c
index 1a466611ad48e..eeca50d9a1ee4 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)