diff options
author | Midas Chien <midaschieh@google.com> | 2023-12-18 09:36:10 +0000 |
---|---|---|
committer | Midas Chien <midaschieh@google.com> | 2024-01-15 07:28:45 +0000 |
commit | 391228726184fb8eea50f71cc1cf86e66428b990 (patch) | |
tree | 55c2c6aaea953b5552e4bbb63d9a6b3cd9a2a1fb | |
parent | 2e4c6ac15c779ab990c82a5b2da83c7fccb257dc (diff) | |
download | felix-391228726184fb8eea50f71cc1cf86e66428b990.tar.gz |
panel: ana6707: add vrefresh range
Bug: 315424658
Test: switch display state, resolution and refresh rate
Change-Id: Icf2e707756c7383777dcb1b3a5bbf0be968477a2
Signed-off-by: Midas Chien <midaschieh@google.com>
-rw-r--r-- | display/panel-samsung-ana6707-f10.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/display/panel-samsung-ana6707-f10.c b/display/panel-samsung-ana6707-f10.c index 83e671a..2dc7fc2 100644 --- a/display/panel-samsung-ana6707-f10.c +++ b/display/panel-samsung-ana6707-f10.c @@ -914,7 +914,7 @@ static bool ana6707_f10_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); + notify_panel_mode_changed(ctx); return false; } @@ -940,7 +940,7 @@ static bool ana6707_f10_set_self_refresh(struct exynos_panel *ctx, bool enable) } ctx->panel_idle_vrefresh = ctx->self_refresh_active ? spanel->hw_idle_vrefresh : 0; - backlight_state_changed(ctx->bl); + notify_panel_mode_changed(ctx); return false; } @@ -1011,7 +1011,7 @@ static bool ana6707_f10_set_self_refresh(struct exynos_panel *ctx, bool enable) } EXYNOS_DCS_WRITE_TABLE(ctx, lock_cmd_f0); - backlight_state_changed(ctx->bl); + notify_panel_mode_changed(ctx); DPU_ATRACE_END(__func__); @@ -1160,6 +1160,14 @@ static const struct exynos_display_underrun_param underrun_param = { .te_var = 1, }; +static const int ana6707_vrefresh_range[] = { + 1, 10, 30, 60, 120 +}; + +static const int ana6707_lp_vrefresh_range[] = { + 1, 30 +}; + static const struct drm_dsc_config ana6707_f10_dsc_cfg = { .initial_dec_delay = 0x31A, /* pps18_19 */ .scale_increment_interval = 0x387, /* pps22_23 */ @@ -1421,8 +1429,12 @@ const struct exynos_panel_desc samsung_ana6707_f10 = { .min_luminance = 5, .modes = ana6707_f10_modes, .num_modes = ARRAY_SIZE(ana6707_f10_modes), + .vrefresh_range = ana6707_vrefresh_range, + .vrefresh_range_count = ARRAY_SIZE(ana6707_vrefresh_range), .off_cmd_set = &ana6707_f10_off_cmd_set, .lp_mode = &ana6707_f10_lp_mode, + .lp_vrefresh_range = ana6707_lp_vrefresh_range, + .lp_vrefresh_range_count = ARRAY_SIZE(ana6707_lp_vrefresh_range), .lp_cmd_set = &ana6707_f10_lp_cmd_set, .binned_lp = ana6707_f10_binned_lp, .num_binned_lp = ARRAY_SIZE(ana6707_f10_binned_lp), |