diff options
author | Adrian Salido <salidoa@google.com> | 2021-01-22 17:53:56 -0800 |
---|---|---|
committer | TreeHugger Robot <treehugger-gerrit@google.com> | 2021-02-16 18:28:32 +0000 |
commit | c98d772e947e4db5482fc583b26b5c5969a9dc5a (patch) | |
tree | 4f1ff73941924ef2aa74fb0f280e8fa248280a72 /samsung/exynos_drm_dsim.c | |
parent | 7a0b289f79cc6da152ed5c372ae75cba637e6e3c (diff) | |
download | display-c98d772e947e4db5482fc583b26b5c5969a9dc5a.tar.gz |
drm: samsung: replace tui private mode flag
With private flags getting deprecated, replace the usage of TUI mode
flag with the use of crtc state flags such that:
* self_refresh_active: indicates that panel should remain in self
refresh mode with regulators/power on
* bypass: decon should remain in bypass mode with power on
Bug: 165347448
Bug: 178988232
Change-Id: I2b708ec102477dd97495b821922d0d5a1ff80066
Signed-off-by: Adrian Salido <salidoa@google.com>
Diffstat (limited to 'samsung/exynos_drm_dsim.c')
-rw-r--r-- | samsung/exynos_drm_dsim.c | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/samsung/exynos_drm_dsim.c b/samsung/exynos_drm_dsim.c index e805efd..0e0a184 100644 --- a/samsung/exynos_drm_dsim.c +++ b/samsung/exynos_drm_dsim.c @@ -108,13 +108,6 @@ static struct drm_crtc *drm_encoder_get_new_crtc(struct drm_encoder *encoder, return conn_state->crtc; } -static bool dsim_encoder_in_tui(struct drm_encoder *encoder, struct drm_atomic_state *state) -{ - const struct drm_crtc *crtc = drm_encoder_get_new_crtc(encoder, state); - - return crtc && exynos_crtc_in_tui(crtc->state); -} - static void dsim_dump(struct dsim_device *dsim) { struct dsim_regs regs; @@ -263,10 +256,12 @@ static void _dsim_enable(struct dsim_device *dsim) static void dsim_encoder_enable(struct drm_encoder *encoder, struct drm_atomic_state *state) { struct dsim_device *dsim = encoder_to_dsim(encoder); + struct drm_crtc *crtc = drm_encoder_get_new_crtc(encoder, state); + struct drm_crtc_state *old_crtc_state = drm_atomic_get_old_crtc_state(state, crtc); _dsim_enable(dsim); - if (!dsim_encoder_in_tui(encoder, state)) + if (!old_crtc_state || !old_crtc_state->self_refresh_active) dsim_set_te_pinctrl(dsim, 1); } @@ -340,10 +335,12 @@ static void _dsim_disable(struct dsim_device *dsim) static void dsim_encoder_disable(struct drm_encoder *encoder, struct drm_atomic_state *state) { struct dsim_device *dsim = encoder_to_dsim(encoder); + const struct drm_crtc *crtc = drm_encoder_get_new_crtc(encoder, state); + const bool self_refresh_active = crtc && crtc->state && crtc->state->self_refresh_active; _dsim_disable(dsim); - if (!dsim_encoder_in_tui(encoder, state)) + if (!self_refresh_active) dsim_set_te_pinctrl(dsim, 0); } |