disp: msm: sde: handle LTM switch in and out of dual pipe merge mode

When LTM is switching on/off, merge_mode bit value gets toggled between
0x1 (dual pipe merge configuration) and 0x0 (single pipe configuration).
It is illegal to reconfigure LTM to/from dual-pipe merge mode before
both LTM instances have completed their current workloads. This change
adds support to disable merge_mode one frame after histogram is disabled
to make sure both hardware instances are completely idle and avoid
corrupted histogram data collection.

Change-Id: I9a6b5cbfb69e8af7936749e57fe7c8f7c2703b95
Signed-off-by: Ping Li <pingli@codeaurora.org>
This commit is contained in:
Ping Li
2021-02-16 22:53:24 -08:00
父節點 e12be40f65
當前提交 9dc60208de
共有 8 個文件被更改,包括 76 次插入3 次删除

查看文件

@@ -247,6 +247,7 @@ static void dspp_ltm(struct sde_hw_dspp *c)
c->ops.setup_ltm_hist_buffer =
sde_setup_dspp_ltm_hist_bufferv1;
c->ops.ltm_read_intr_status = sde_ltm_read_intr_status;
c->ops.clear_ltm_merge_mode = sde_ltm_clear_merge_mode;
} else {
c->ops.setup_ltm_init = NULL;
c->ops.setup_ltm_roi = NULL;
@@ -255,6 +256,7 @@ static void dspp_ltm(struct sde_hw_dspp *c)
c->ops.setup_ltm_hist_ctrl = NULL;
c->ops.setup_ltm_hist_buffer = NULL;
c->ops.ltm_read_intr_status = NULL;
c->ops.clear_ltm_merge_mode = NULL;
}
if (!ret && c->cap->sblk->ltm.version ==
SDE_COLOR_PROCESS_VER(0x1, 0x1))