diff options
author | Long Ling <longling@google.com> | 2021-01-22 19:26:07 -0800 |
---|---|---|
committer | Long Ling <longling@google.com> | 2021-02-02 15:50:54 -0800 |
commit | 844af445dbf05fdbf56b3f2e32b8b1203d22dc6a (patch) | |
tree | c615f70a535860e53ae5aa1e2cd1d4b54b609929 /samsung/exynos_drm_fb.c | |
parent | d069d89e7cd026a1d6b0998d68275ab7d858c6f8 (diff) | |
download | display-844af445dbf05fdbf56b3f2e32b8b1203d22dc6a.tar.gz |
samsung: sync ghbm mipi commands with frame transmit
Start an asynchronous work to send the global hbm mipi commands once
the frame starts transmitting.
Bug: 177676718
Change-Id: I377815ae0c545d9054842e2bcc5fb4f25621ea5c
Signed-off-by: Long Ling <longling@google.com>
Diffstat (limited to 'samsung/exynos_drm_fb.c')
-rw-r--r-- | samsung/exynos_drm_fb.c | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/samsung/exynos_drm_fb.c b/samsung/exynos_drm_fb.c index 75fc692..abec1d4 100644 --- a/samsung/exynos_drm_fb.c +++ b/samsung/exynos_drm_fb.c @@ -527,20 +527,6 @@ static void exynos_atomic_commit_tail(struct drm_atomic_state *old_state) drm_atomic_helper_commit_modeset_enables(dev, old_state); DPU_ATRACE_END("modeset"); - for_each_oldnew_connector_in_state(old_state, connector, - old_conn_state, new_conn_state, i) { - if (!new_conn_state->writeback_job && is_exynos_drm_connector(connector)) { - struct exynos_drm_connector *exynos_connector = - to_exynos_connector(connector); - const struct exynos_drm_connector_helper_funcs *funcs = - exynos_connector->helper_private; - - funcs->atomic_commit(exynos_connector, - to_exynos_connector_state(old_conn_state), - to_exynos_connector_state(new_conn_state)); - } - } - DPU_ATRACE_BEGIN("commit_planes"); drm_atomic_helper_commit_planes(dev, old_state, DRM_PLANE_COMMIT_ACTIVE_ONLY); @@ -592,6 +578,20 @@ static void exynos_atomic_commit_tail(struct drm_atomic_state *old_state) } } + for_each_oldnew_connector_in_state(old_state, connector, + old_conn_state, new_conn_state, i) { + if (!new_conn_state->writeback_job && is_exynos_drm_connector(connector)) { + struct exynos_drm_connector *exynos_connector = + to_exynos_connector(connector); + const struct exynos_drm_connector_helper_funcs *funcs = + exynos_connector->helper_private; + + funcs->atomic_commit(exynos_connector, + to_exynos_connector_state(old_conn_state), + to_exynos_connector_state(new_conn_state)); + } + } + exynos_atomic_bts_post_update(dev, old_state); for_each_new_crtc_in_state(old_state, crtc, new_crtc_state, i) { |