aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/msm/msm_atomic.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/msm/msm_atomic.c')
-rw-r--r--drivers/gpu/drm/msm/msm_atomic.c26
1 files changed, 15 insertions, 11 deletions
diff --git a/drivers/gpu/drm/msm/msm_atomic.c b/drivers/gpu/drm/msm/msm_atomic.c
index 30b5d23e53b4..9633a68b14d7 100644
--- a/drivers/gpu/drm/msm/msm_atomic.c
+++ b/drivers/gpu/drm/msm/msm_atomic.c
@@ -93,11 +93,6 @@ static void msm_atomic_wait_for_commit_done(struct drm_device *dev,
93 if (!crtc->state->enable) 93 if (!crtc->state->enable)
94 continue; 94 continue;
95 95
96 /* Legacy cursor ioctls are completely unsynced, and userspace
97 * relies on that (by doing tons of cursor updates). */
98 if (old_state->legacy_cursor_update)
99 continue;
100
101 kms->funcs->wait_for_crtc_commit_done(kms, crtc); 96 kms->funcs->wait_for_crtc_commit_done(kms, crtc);
102 } 97 }
103} 98}
@@ -151,20 +146,29 @@ static void commit_worker(struct work_struct *work)
151 complete_commit(container_of(work, struct msm_commit, work), true); 146 complete_commit(container_of(work, struct msm_commit, work), true);
152} 147}
153 148
149/*
150 * this func is identical to the drm_atomic_helper_check, but we keep this
151 * because we might eventually need to have a more finegrained check
152 * sequence without using the atomic helpers.
153 *
154 * In the past, we first called drm_atomic_helper_check_planes, and then
155 * drm_atomic_helper_check_modeset. We needed this because the MDP5 plane's
156 * ->atomic_check could update ->mode_changed for pixel format changes.
157 * This, however isn't needed now because if there is a pixel format change,
158 * we just assign a new hwpipe for it with a new SMP allocation. We might
159 * eventually hit a condition where we would need to do a full modeset if
160 * we run out of planes. There, we'd probably need to set mode_changed.
161 */
154int msm_atomic_check(struct drm_device *dev, 162int msm_atomic_check(struct drm_device *dev,
155 struct drm_atomic_state *state) 163 struct drm_atomic_state *state)
156{ 164{
157 int ret; 165 int ret;
158 166
159 /* 167 ret = drm_atomic_helper_check_modeset(dev, state);
160 * msm ->atomic_check can update ->mode_changed for pixel format
161 * changes, hence must be run before we check the modeset changes.
162 */
163 ret = drm_atomic_helper_check_planes(dev, state);
164 if (ret) 168 if (ret)
165 return ret; 169 return ret;
166 170
167 ret = drm_atomic_helper_check_modeset(dev, state); 171 ret = drm_atomic_helper_check_planes(dev, state);
168 if (ret) 172 if (ret)
169 return ret; 173 return ret;
170 174