diff options
author | Ken Lin <lyenting@google.com> | 2023-11-28 06:50:52 +0000 |
---|---|---|
committer | Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> | 2023-11-29 13:09:19 +0000 |
commit | aa4912b5e85db790fe4983da0284bbe00c3df163 (patch) | |
tree | 21649a9a9a7e93614efc5896d9f4321606921d61 | |
parent | 1e61db6317bd3116f9c93d4aa1b42b6539790470 (diff) | |
download | shusky-aa4912b5e85db790fe4983da0284bbe00c3df163.tar.gz |
panel: hk3: prevent blocking system notifications in critical paths
sysfs_notify involve multiple locks so we cannot do it in critical paths
- Remove te2 sysfs_notify
- Move bl state and brightness sysfs_notify asychronously
Bug: 313287886
Test: Reboot successfully
Change-Id: Id041096b794dc27189c159ea43bc92bd3af86742
Signed-off-by: Ken Lin <lyenting@google.com>
-rw-r--r-- | display/panel-google-hk3.c | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/display/panel-google-hk3.c b/display/panel-google-hk3.c index 74748e0..5731c4e 100644 --- a/display/panel-google-hk3.c +++ b/display/panel-google-hk3.c @@ -919,12 +919,7 @@ static void hk3_update_refresh_mode(struct exynos_panel *ctx, ctx->panel_idle_vrefresh = idle_vrefresh; hk3_update_panel_feat(ctx, vrefresh, false); - /* TODO: (b/303738012) perform notifications asyncly for P24*/ - /* Prevent sysfs_notify from resolution switch */ - if (ctx->mode_in_progress == MODE_RES_AND_RR_IN_PROGRESS) - schedule_work(&ctx->state_notify); - else - backlight_state_changed(ctx->bl); + schedule_work(&ctx->state_notify); dev_dbg(ctx->dev, "%s: display state is notified\n", __func__); } @@ -1033,7 +1028,7 @@ static bool hk3_set_self_refresh(struct exynos_panel *ctx, bool enable) if (pmode->exynos_mode.is_lp_mode) { /* set 1Hz while self refresh is active, otherwise clear it */ ctx->panel_idle_vrefresh = enable ? 1 : 0; - backlight_state_changed(ctx->bl); + schedule_work(&ctx->state_notify); return false; } @@ -2763,7 +2758,6 @@ const struct exynos_panel_desc google_hk3 = { .num_binned_lp = ARRAY_SIZE(hk3_binned_lp), .is_panel_idle_supported = true, .no_lhbm_rr_constraints = true, - .use_async_notify = true, .panel_func = &hk3_drm_funcs, .exynos_panel_func = &hk3_exynos_funcs, .lhbm_effective_delay_frames = 1, |