summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPixelBot AutoMerger <android-nexus-securitybot@system.gserviceaccount.com>2023-12-10 18:45:00 -0800
committerSecurityBot <android-nexus-securitybot@system.gserviceaccount.com>2023-12-10 18:45:00 -0800
commit9e5b31c981f575d35a6f64e0d04ccb550e88ac35 (patch)
treedcbc9a04a36e55790ebe4b01ed15aea7cbeccbb5
parent5407232f88d90f53b499a282efbfd1303bb902c8 (diff)
parent5f5123b5f206683679ecf132779703c5bc2f76ec (diff)
downloaddisplay-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.c24
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;
}