summaryrefslogtreecommitdiff
path: root/samsung/panel/panel-samsung-drv.c
diff options
context:
space:
mode:
authorWilliam Tai <williamtai@google.com>2022-05-06 16:11:01 +0800
committerWilliam Tai <williamtai@google.com>2022-05-10 08:27:30 +0800
commit9c449652bfb0b5d59867320f876f8723f1e1a23e (patch)
tree677662859738cd4b648ff58b41be9ae0e3767b11 /samsung/panel/panel-samsung-drv.c
parent5bc34496b07e37b1d86c94b0fe902bea20d20aa7 (diff)
downloaddisplay-9c449652bfb0b5d59867320f876f8723f1e1a23e.tar.gz
panel: avoid ghbm/lhbm/bl updates during lp mode
Avoid ghbm/lhbm/bl updates during lp mode. Bug: 230560869 Test: finger unlock manual test Signed-off-by: William Tai <williamtai@google.com> Change-Id: I2da74b0e23b3e7397bd4316bff624215e3c2abb9
Diffstat (limited to 'samsung/panel/panel-samsung-drv.c')
-rw-r--r--samsung/panel/panel-samsung-drv.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/samsung/panel/panel-samsung-drv.c b/samsung/panel/panel-samsung-drv.c
index 1f686b9..3ce8832 100644
--- a/samsung/panel/panel-samsung-drv.c
+++ b/samsung/panel/panel-samsung-drv.c
@@ -1689,7 +1689,7 @@ static void exynos_panel_set_cabc(struct exynos_panel *ctx, enum exynos_cabc_mod
static void exynos_panel_pre_commit_properties(
struct exynos_panel *ctx,
- const struct exynos_drm_connector_state *conn_state)
+ struct exynos_drm_connector_state *conn_state)
{
const struct exynos_panel_funcs *exynos_panel_func = ctx->desc->exynos_panel_func;
struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
@@ -1699,10 +1699,20 @@ static void exynos_panel_pre_commit_properties(
if (!conn_state->pending_update_flags)
return;
+ dev_info(ctx->dev, "%s: mipi_sync(0x%lx) pending_update_flags(0x%x)\n", __func__,
+ conn_state->mipi_sync, conn_state->pending_update_flags);
DPU_ATRACE_BEGIN(__func__);
mipi_sync = conn_state->mipi_sync &
(MIPI_CMD_SYNC_LHBM | MIPI_CMD_SYNC_GHBM | MIPI_CMD_SYNC_BL);
+ if ((conn_state->mipi_sync & (MIPI_CMD_SYNC_LHBM | MIPI_CMD_SYNC_GHBM)) &&
+ ctx->current_mode->exynos_mode.is_lp_mode) {
+ conn_state->pending_update_flags &=
+ ~(HBM_FLAG_LHBM_UPDATE | HBM_FLAG_GHBM_UPDATE | HBM_FLAG_BL_UPDATE);
+ dev_warn(ctx->dev, "%s: avoid LHBM/GHBM/BL updates during lp mode\n",
+ __func__);
+ }
+
if (mipi_sync) {
exynos_panel_check_mipi_sync_timing(conn_state->base.crtc,
ctx->current_mode, ctx);