From 798f058dfb06878696e18465393f95edc0710bd3 Mon Sep 17 00:00:00 2001 From: Anjaneya Prasad Musunuri Date: Thu, 16 Sep 2021 20:05:03 +0530 Subject: [PATCH] disp: msm: sde: handle partial update transitions in rounded corner This change clear cached ROIs when rounded corner feature is disabled to ensure full frame ROI for first frame when feature is enabled again. This change depends on HAL change to disable PU for one frame when RC mask config is set. Change-Id: I4c48ccd3f64409d1b0fa19f0e6f92eab5f86d099 Signed-off-by: Anjaneya Prasad Musunuri --- msm/sde/sde_hw_rc.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/msm/sde/sde_hw_rc.c b/msm/sde/sde_hw_rc.c index 4fa75372ce..1ba7338c86 100644 --- a/msm/sde/sde_hw_rc.c +++ b/msm/sde/sde_hw_rc.c @@ -773,6 +773,7 @@ int sde_hw_rc_check_pu_roi(struct sde_hw_dspp *hw_dspp, void *cfg) roi_list = hw_cfg->payload; if (!roi_list) { SDE_DEBUG("full frame update\n"); + memset(&empty_roi_list, 0, sizeof(struct msm_roi_list)); roi_list = &empty_roi_list; } @@ -835,6 +836,7 @@ int sde_hw_rc_setup_pu_roi(struct sde_hw_dspp *hw_dspp, void *cfg) roi_list = hw_cfg->payload; if (!roi_list) { SDE_DEBUG("full frame update\n"); + memset(&empty_roi_list, 0, sizeof(struct msm_roi_list)); roi_list = &empty_roi_list; } @@ -904,6 +906,9 @@ int sde_hw_rc_setup_mask(struct sde_hw_dspp *hw_dspp, void *cfg) memset(RC_STATE(hw_dspp).last_rc_mask_cfg, 0, sizeof(struct drm_msm_rc_mask_cfg)); RC_STATE(hw_dspp).mask_programmed = false; + memset(RC_STATE(hw_dspp).last_roi_list, 0, + sizeof(struct msm_roi_list)); + RC_STATE(hw_dspp).roi_programmed = false; return 0; }