DPU < 7.0.0 has DPU_PINGPONG_DSC feature bit set to indicate it requires
both dpu_hw_pp_setup_dsc() and dpu_hw_pp_dsc_{enable,disable}() to be
executed to complete DSC configuration if DSC hardware block is present.
Hence test DPU_PINGPONG_DSC feature bit and assign DSC related functions
to the ops of PINGPONG block accordingly if DPU_PINGPONG_DSC bit is set.

Changes in v6:
-- split patches, this patch has function handles DPU_PINGPONG_DSC bit

Changes in v9:
-- the original code of assigning dsc related functions to the ops of pingpong
   block without testing the DPU_PINGPONG_DSC feature bit was restored back
   due to rebase error which defeat the purpose of this patch. Remove those
   error code.

Changes in v10:
-- change commit title
-- correct texts at changes in v9

Signed-off-by: Kuogee Hsieh <quic_khs...@quicinc.com>
Reviewed-by: Dmitry Baryshkov <dmitry.barysh...@linaro.org>
Reviewed-by: Marijn Suijten <marijn.suij...@somainline.org>
---
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.c 
b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.c
index 79e4576..437d9e6 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.c
@@ -291,9 +291,12 @@ static void _setup_pingpong_ops(struct dpu_hw_pingpong *c,
                c->ops.get_line_count = dpu_hw_pp_get_line_count;
                c->ops.disable_autorefresh = dpu_hw_pp_disable_autorefresh;
        }
-       c->ops.setup_dsc = dpu_hw_pp_setup_dsc;
-       c->ops.enable_dsc = dpu_hw_pp_dsc_enable;
-       c->ops.disable_dsc = dpu_hw_pp_dsc_disable;
+
+       if (test_bit(DPU_PINGPONG_DSC, &features)) {
+               c->ops.setup_dsc = dpu_hw_pp_setup_dsc;
+               c->ops.enable_dsc = dpu_hw_pp_dsc_enable;
+               c->ops.disable_dsc = dpu_hw_pp_dsc_disable;
+       }
 
        if (test_bit(DPU_PINGPONG_DITHER, &features))
                c->ops.setup_dither = dpu_hw_pp_setup_dither;
-- 
2.7.4

Reply via email to