drm/msm/dpu: rewrite scaler and CSC presense checks
authorDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Fri, 1 Dec 2023 23:40:32 +0000 (01:40 +0200)
committerDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Tue, 5 Dec 2023 00:37:07 +0000 (03:37 +0300)
In order to check whether the SSPP block has scaler and CSC subblocks
the funcion dpu_plane_atomic_check_pipe() uses macros which enumerate
all possible scaler and CSC features. Replace those checks with the
scaler and CSC subblock length checks in order to be able to drop those
two macros.

Suggested-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Patchwork: https://patchwork.freedesktop.org/patch/570113/
Link: https://lore.kernel.org/r/20231201234234.2065610-9-dmitry.baryshkov@linaro.org
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.h
drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c

index b094ea23ad32573c0ae227d77a22d4d2a869b537..28e7d53bd1918e69652e9c0ce62feec6d7fb6676 100644 (file)
@@ -21,21 +21,6 @@ struct dpu_hw_sspp;
 #define DPU_SSPP_ROT_90                        BIT(3)
 #define DPU_SSPP_SOLID_FILL            BIT(4)
 
-/**
- * Define all scaler feature bits in catalog
- */
-#define DPU_SSPP_SCALER (BIT(DPU_SSPP_SCALER_RGB) | \
-                        BIT(DPU_SSPP_SCALER_QSEED2) | \
-                        BIT(DPU_SSPP_SCALER_QSEED3) | \
-                        BIT(DPU_SSPP_SCALER_QSEED3LITE) | \
-                        BIT(DPU_SSPP_SCALER_QSEED4))
-
-/*
- * Define all CSC feature bits in catalog
- */
-#define DPU_SSPP_CSC_ANY (BIT(DPU_SSPP_CSC) | \
-                         BIT(DPU_SSPP_CSC_10BIT))
-
 /**
  * Component indices
  */
index 1e0da38c6f2a53b5cc7dd61261c240f44b937fb0..93365332bdac2873308cd04d66caaebed590e084 100644 (file)
@@ -774,8 +774,8 @@ static int dpu_plane_atomic_check_pipe(struct dpu_plane *pdpu,
        min_src_size = DPU_FORMAT_IS_YUV(fmt) ? 2 : 1;
 
        if (DPU_FORMAT_IS_YUV(fmt) &&
-           (!(pipe->sspp->cap->features & DPU_SSPP_SCALER) ||
-            !(pipe->sspp->cap->features & DPU_SSPP_CSC_ANY))) {
+           (!pipe->sspp->cap->sblk->scaler_blk.len ||
+            !pipe->sspp->cap->sblk->csc_blk.len)) {
                DPU_DEBUG_PLANE(pdpu,
                                "plane doesn't have scaler/csc for yuv\n");
                return -EINVAL;