diff options
author | Maarten Lankhorst <maarten.lankhorst@linux.intel.com> | 2016-05-17 09:08:02 -0400 |
---|---|---|
committer | Maarten Lankhorst <maarten.lankhorst@linux.intel.com> | 2016-05-19 08:39:14 -0400 |
commit | 95c2ccdc82d520f59ae3b6fdc097b63c9b7082bb (patch) | |
tree | 9f68807418eb75414107268fc01c18be64e0d3fb | |
parent | a6747b7304a9d66758a196d885dab8bbfa5e7d1f (diff) |
Reapply "drm/i915: Avoid stalling on pending flips for legacy cursor updates"
This reapplies commit acf4e84d6167317ff21be5c03e1ea76ea5783701.
With async unpin this should no longer break.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1463490484-19540-20-git-send-email-maarten.lankhorst@linux.intel.com
Reviewed-by: Patrik Jakobsson <patrik.jakobsson@linux.intel.com>
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index daee426d4fc0..7bb1015c33d4 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c | |||
@@ -12928,12 +12928,14 @@ static int intel_atomic_prepare_commit(struct drm_device *dev, | |||
12928 | struct intel_crtc *intel_crtc = to_intel_crtc(crtc); | 12928 | struct intel_crtc *intel_crtc = to_intel_crtc(crtc); |
12929 | struct intel_flip_work *work; | 12929 | struct intel_flip_work *work; |
12930 | 12930 | ||
12931 | ret = intel_crtc_wait_for_pending_flips(crtc); | 12931 | if (!state->legacy_cursor_update) { |
12932 | if (ret) | 12932 | ret = intel_crtc_wait_for_pending_flips(crtc); |
12933 | return ret; | 12933 | if (ret) |
12934 | return ret; | ||
12934 | 12935 | ||
12935 | if (atomic_read(&intel_crtc->unpin_work_count) >= 2) | 12936 | if (atomic_read(&intel_crtc->unpin_work_count) >= 2) |
12936 | flush_workqueue(dev_priv->wq); | 12937 | flush_workqueue(dev_priv->wq); |
12938 | } | ||
12937 | 12939 | ||
12938 | /* test if we need to update something */ | 12940 | /* test if we need to update something */ |
12939 | if (!needs_work(crtc_state)) | 12941 | if (!needs_work(crtc_state)) |