diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2017-02-26 15:34:42 -0500 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2017-02-26 15:34:42 -0500 |
commit | 8e22e1b3499a446df48c2b26667ca36c55bf864c (patch) | |
tree | 5329f98b3eb3c95a9dcbab0fa4f9b6e62f0e788d /drivers/gpu/drm/msm/msm_atomic.c | |
parent | 00d3c14f14d51babd8aeafd5fa734ccf04f5ca3d (diff) | |
parent | 64a577196d66b44e37384bc5c4d78c61f59d5b2a (diff) |
Merge airlied/drm-next into drm-misc-next
Backmerge the main pull request to sync up with all the newly landed
drivers. Otherwise we'll have chaos even before 4.12 started in
earnest.
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Diffstat (limited to 'drivers/gpu/drm/msm/msm_atomic.c')
-rw-r--r-- | drivers/gpu/drm/msm/msm_atomic.c | 26 |
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 | */ | ||
154 | int msm_atomic_check(struct drm_device *dev, | 162 | int 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 | ||