diff options
author | Midas Chien <midaschieh@google.com> | 2023-09-14 08:27:35 +0000 |
---|---|---|
committer | Midas Chien <midaschieh@google.com> | 2023-09-14 11:30:23 +0000 |
commit | 209fc208b5d54e33e494a4ebe3024c37ab081309 (patch) | |
tree | 0cffe4b1eb63daa6ec7e70bab30b8e21c81dedfd | |
parent | 437eb3738e93b50af6eff9f7cf4044751ad9e402 (diff) | |
download | display-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.c | 11 |
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__); |