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
