From: Xi Zhang <[email protected]>

Cleanup hw_pp->ops.setup_dither with NULL for all PINGPONGs,
matching the way it was setup during enable.

Signed-off-by: Xi Zhang <[email protected]>
---
 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c 
b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
index 0ab151369c99..7d092398fc99 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
@@ -1320,7 +1320,7 @@ static void _dpu_encoder_virt_enable_helper(struct 
drm_encoder *drm_enc)
        if (dpu_enc->disp_info.intf_type == INTF_DSI &&
                        !WARN_ON(dpu_enc->num_phys_encs == 0)) {
                unsigned bpc = dpu_enc->connector->display_info.bpc;
-               for (i = 0; i < MAX_CHANNELS_PER_ENC; i++) {
+               for (i = 0; i < ARRAY_SIZE(dpu_enc->hw_pp); i++) {
                        if (!dpu_enc->hw_pp[i])
                                continue;
                        _dpu_encoder_setup_dither(dpu_enc->hw_pp[i], bpc);
@@ -2303,8 +2303,10 @@ void dpu_encoder_helper_phys_cleanup(struct 
dpu_encoder_phys *phys_enc)
                }
        }
 
-       if (phys_enc->hw_pp && phys_enc->hw_pp->ops.setup_dither)
-               phys_enc->hw_pp->ops.setup_dither(phys_enc->hw_pp, NULL);
+       if (dpu_enc->disp_info.intf_type == INTF_DSI)
+               for (i = 0; i < ARRAY_SIZE(dpu_enc->hw_pp); i++)
+                       if (dpu_enc->hw_pp[i] && 
dpu_enc->hw_pp[i]->ops.setup_dither)
+                               
dpu_enc->hw_pp[i]->ops.setup_dither(dpu_enc->hw_pp[i], NULL);
 
        if (dpu_enc->cwb_mask)
                dpu_encoder_helper_phys_setup_cwb(phys_enc, false);

-- 
2.55.0


Reply via email to