Scaling is not implemented for some type of scalers (QSEED2 and RGB) but
it was unintentionally re-enabled with change below. The remaining
condition in dpu_plane_atomic_check_pipe is not enough because it only
checks for length of scaler block (which is present). This patch adds a
additional check for setup_scaler operation.

Fixes: 8f15005783b8 ("drm/msm/dpu: move scaling limitations out of the 
hw_catalog")
Signed-off-by: Vladimir Lypak <[email protected]>
---
 drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c 
b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
index 
d198a65a2c5fef5fbdebc9c383a4b08bc71b8bf3..6effe0fa4837284a1f038e4907c4c91d239aeb8b
 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
@@ -740,7 +740,7 @@ static int dpu_plane_atomic_check_pipe(struct dpu_plane 
*pdpu,
         * We already have verified scaling against platform limitations.
         * Now check if the SSPP supports scaling at all.
         */
-       if (!sblk->scaler_blk.len &&
+       if (!(sblk->scaler_blk.len && pipe->sspp->ops.setup_scaler) &&
            ((drm_rect_width(&new_plane_state->src) >> 16 !=
              drm_rect_width(&new_plane_state->dst)) ||
             (drm_rect_height(&new_plane_state->src) >> 16 !=

-- 
2.51.0

Reply via email to