From 603dd346293249552c5478fb115ed3650f03151d Mon Sep 17 00:00:00 2001 From: Krishna Manikandan Date: Fri, 1 May 2020 17:06:25 +0530 Subject: [PATCH] disp: msm: sde: avoid wb commit before cwb disable Add support to detect if a writeback commit is received while cwb commit is going on. Allow writeback commit only once the cwb commit is completed and cwb is disabled. Change-Id: I020659ed63f9ff660a905938a92a6ed6d07a4917 Signed-off-by: Krishna Manikandan --- msm/sde/sde_encoder_phys_wb.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/msm/sde/sde_encoder_phys_wb.c b/msm/sde/sde_encoder_phys_wb.c index 7a27d76da09e..6b377fc63fac 100644 --- a/msm/sde/sde_encoder_phys_wb.c +++ b/msm/sde/sde_encoder_phys_wb.c @@ -722,6 +722,7 @@ static int sde_encoder_phys_wb_atomic_check( struct sde_rect wb_roi; const struct drm_display_mode *mode = &crtc_state->mode; int rc; + bool clone_mode_curr = false; SDE_DEBUG("[atomic_check:%d,\"%s\",%d,%d]\n", hw_wb->idx - WB_0, mode->name, @@ -737,8 +738,15 @@ static int sde_encoder_phys_wb_atomic_check( return -EINVAL; } + clone_mode_curr = phys_enc->in_clone_mode; + _sde_enc_phys_wb_detect_cwb(phys_enc, crtc_state); + if (clone_mode_curr && !phys_enc->in_clone_mode) { + SDE_ERROR("WB commit before CWB disable\n"); + return -EINVAL; + } + memset(&wb_roi, 0, sizeof(struct sde_rect)); rc = sde_wb_connector_state_get_output_roi(conn_state, &wb_roi);