summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMidas Chien <midaschieh@google.com>2023-09-14 08:27:35 +0000
committerMidas Chien <midaschieh@google.com>2023-09-14 11:30:23 +0000
commit209fc208b5d54e33e494a4ebe3024c37ab081309 (patch)
tree0cffe4b1eb63daa6ec7e70bab30b8e21c81dedfd
parent437eb3738e93b50af6eff9f7cf4044751ad9e402 (diff)
downloaddisplay-209fc208b5d54e33e494a4ebe3024c37ab081309.tar.gz
display: nt37290: update refresh rate when enabling panel
When mode setting is required before panel initialization, the mode is set when enabling the panel. In addition to changing the resolution, we also need to update the refresh rate. Bug: 297581026 Test: boot, on/off, AoD in/out, refresh rate switch Change-Id: Ic5d7e76bca286324c703075ed8db79ec76c2872d Signed-off-by: Midas Chien <midaschieh@google.com>
-rw-r--r--samsung/panel/panel-boe-nt37290.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/samsung/panel/panel-boe-nt37290.c b/samsung/panel/panel-boe-nt37290.c
index e0f3e1a..337ff61 100644
--- a/samsung/panel/panel-boe-nt37290.c
+++ b/samsung/panel/panel-boe-nt37290.c
@@ -984,10 +984,15 @@ static int nt37290_enable(struct drm_panel *panel)
exynos_panel_send_cmd_set(ctx,
is_fhd ? &nt37290_dsc_fhd_cmd_set : &nt37290_dsc_wqhd_cmd_set);
- if (pmode->exynos_mode.is_lp_mode)
+ if (pmode->exynos_mode.is_lp_mode) {
nt37290_set_lp_mode(ctx, pmode);
- else if (needs_reset || ctx->panel_state == PANEL_STATE_BLANK)
- EXYNOS_DCS_WRITE_TABLE(ctx, display_on);
+ } else {
+ if (!needs_reset)
+ nt37290_change_frequency(ctx, pmode);
+
+ if (needs_reset || ctx->panel_state == PANEL_STATE_BLANK)
+ EXYNOS_DCS_WRITE_TABLE(ctx, display_on);
+ }
DPU_ATRACE_END(__func__);