From 154f37f92d9146a45b8e3f32f20d25b558a256ac Mon Sep 17 00:00:00 2001 From: Amine Najahi Date: Mon, 19 Apr 2021 14:13:42 -0400 Subject: [PATCH] disp: msm: sde: handle empty list of ROI in rounded corner Currently, RC is assuming that partial update callback functions will not be called when there is a full frame update and that CP framework will return early instead. This assumption had to be changed to support full frame transition for CP features such as demura and SPR and now the responsibility is up to each feature to handle this corner case. This change is returning early in PU callback function if the payload buffer is 0. Change-Id: I478888fb036e642d5274a2cccc4d5378e62d6afa Signed-off-by: Amine Najahi --- msm/sde/sde_hw_rc.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/msm/sde/sde_hw_rc.c b/msm/sde/sde_hw_rc.c index 903fa1c434..cbb6554b8b 100644 --- a/msm/sde/sde_hw_rc.c +++ b/msm/sde/sde_hw_rc.c @@ -769,6 +769,12 @@ int sde_hw_rc_check_pu_roi(struct sde_hw_dspp *hw_dspp, void *cfg) return -EINVAL; } + roi_list = hw_cfg->payload; + if (!roi_list) { + SDE_DEBUG("empty list of roi\n"); + return 0; + } + rc_mask_cfg = RC_STATE(hw_dspp).last_rc_mask_cfg; mask_programmed = RC_STATE(hw_dspp).mask_programmed; @@ -784,7 +790,6 @@ int sde_hw_rc_check_pu_roi(struct sde_hw_dspp *hw_dspp, void *cfg) return rc; } - roi_list = hw_cfg->payload; sde_kms_rect_merge_rectangles(roi_list, &merged_roi); rc = _sde_hw_rc_get_ajusted_roi(hw_cfg, &merged_roi, &rc_roi); if (rc) { @@ -825,6 +830,12 @@ int sde_hw_rc_setup_pu_roi(struct sde_hw_dspp *hw_dspp, void *cfg) return -EINVAL; } + roi_list = hw_cfg->payload; + if (!roi_list) { + SDE_DEBUG("empty list of roi\n"); + return 0; + } + rc_mask_cfg = RC_STATE(hw_dspp).last_rc_mask_cfg; mask_programmed = RC_STATE(hw_dspp).mask_programmed; @@ -834,7 +845,6 @@ int sde_hw_rc_setup_pu_roi(struct sde_hw_dspp *hw_dspp, void *cfg) return SDE_HW_RC_PU_SKIP_OP; } - roi_list = hw_cfg->payload; sde_kms_rect_merge_rectangles(roi_list, &merged_roi); rc = _sde_hw_rc_get_ajusted_roi(hw_cfg, &merged_roi, &rc_roi); if (rc) {