summaryrefslogtreecommitdiff
path: root/samsung/exynos_drm_fb.c
diff options
context:
space:
mode:
authorLong Ling <longling@google.com>2021-01-22 19:26:07 -0800
committerLong Ling <longling@google.com>2021-02-02 15:50:54 -0800
commit844af445dbf05fdbf56b3f2e32b8b1203d22dc6a (patch)
treec615f70a535860e53ae5aa1e2cd1d4b54b609929 /samsung/exynos_drm_fb.c
parentd069d89e7cd026a1d6b0998d68275ab7d858c6f8 (diff)
downloaddisplay-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.c28
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) {