diff options
author | PixelBot AutoMerger <android-nexus-securitybot@system.gserviceaccount.com> | 2023-12-10 18:45:00 -0800 |
---|---|---|
committer | SecurityBot <android-nexus-securitybot@system.gserviceaccount.com> | 2023-12-10 18:45:00 -0800 |
commit | 9e5b31c981f575d35a6f64e0d04ccb550e88ac35 (patch) | |
tree | dcbc9a04a36e55790ebe4b01ed15aea7cbeccbb5 | |
parent | 5407232f88d90f53b499a282efbfd1303bb902c8 (diff) | |
parent | 5f5123b5f206683679ecf132779703c5bc2f76ec (diff) | |
download | display-9e5b31c981f575d35a6f64e0d04ccb550e88ac35.tar.gz |
Merge android13-gs-pixel-5.10-24Q1 into android13-gs-pixel-5.10
SBMerger: 571992243
Change-Id: I03bd9c1308bf66b11e1bdbe3ceddac0a7247ee45
Signed-off-by: SecurityBot <android-nexus-securitybot@system.gserviceaccount.com>
-rw-r--r-- | samsung/panel/panel-samsung-s6e3hc3.c | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/samsung/panel/panel-samsung-s6e3hc3.c b/samsung/panel/panel-samsung-s6e3hc3.c index 5c1f5a9..485c0fd 100644 --- a/samsung/panel/panel-samsung-s6e3hc3.c +++ b/samsung/panel/panel-samsung-s6e3hc3.c @@ -533,8 +533,12 @@ static bool s6e3hc3_set_self_refresh(struct exynos_panel *ctx, bool enable) return false; /* self refresh is not supported in lp mode since that always makes use of early exit */ - if (pmode->exynos_mode.is_lp_mode) + if (pmode->exynos_mode.is_lp_mode) { + /* set 10Hz while self refresh is active, otherwise clear it */ + ctx->panel_idle_vrefresh = enable ? 10 : 0; + backlight_state_changed(ctx->bl); return false; + } idle_vrefresh = s6e3hc3_get_min_idle_vrefresh(ctx, pmode); @@ -543,13 +547,17 @@ static bool s6e3hc3_set_self_refresh(struct exynos_panel *ctx, bool enable) * if idle mode is on inactivity, may need to update the target fps for auto mode, * or switch to manual mode if idle should be disabled (idle_vrefresh=0) */ - if ((pmode->idle_mode == IDLE_MODE_ON_INACTIVITY) && - (spanel->auto_mode_vrefresh != idle_vrefresh)) { - dev_dbg(ctx->dev, - "early exit update needed for mode: %s (idle_vrefresh: %d)\n", - pmode->mode.name, idle_vrefresh); - s6e3hc3_update_refresh_mode(ctx, pmode, idle_vrefresh); - return true; + if (pmode->idle_mode == IDLE_MODE_ON_INACTIVITY) { + /* simply update idle vrefresh follow by self refresh */ + ctx->panel_idle_vrefresh = enable ? idle_vrefresh : 0; + backlight_state_changed(ctx->bl); + if (spanel->auto_mode_vrefresh != idle_vrefresh) { + dev_dbg(ctx->dev, + "early exit update needed for mode: %s (idle_vrefresh: %d)\n", + pmode->mode.name, idle_vrefresh); + s6e3hc3_update_refresh_mode(ctx, pmode, idle_vrefresh); + return true; + } } return false; } |