|
@@ -12562,8 +12562,16 @@ static int intel_atomic_commit(struct drm_device *dev,
|
|
|
* FIXME doing watermarks and fb cleanup from a vblank worker
|
|
|
* (assuming we had any) would solve these problems.
|
|
|
*/
|
|
|
- if (INTEL_GEN(dev_priv) < 9)
|
|
|
- state->legacy_cursor_update = false;
|
|
|
+ if (INTEL_GEN(dev_priv) < 9 && state->legacy_cursor_update) {
|
|
|
+ struct intel_crtc_state *new_crtc_state;
|
|
|
+ struct intel_crtc *crtc;
|
|
|
+ int i;
|
|
|
+
|
|
|
+ for_each_new_intel_crtc_in_state(intel_state, crtc, new_crtc_state, i)
|
|
|
+ if (new_crtc_state->wm.need_postvbl_update ||
|
|
|
+ new_crtc_state->update_wm_post)
|
|
|
+ state->legacy_cursor_update = false;
|
|
|
+ }
|
|
|
|
|
|
ret = intel_atomic_prepare_commit(dev, state);
|
|
|
if (ret) {
|