drm/i915: Revert async unpin and nonblocking atomic commit
This reverts the following patches:
0734454fe7b58241f355262c7581e3de03704c8c drm/i915: Allow nonblocking update of pageflips.
be14b8d842c2fa311ec268ee7c0657040f59fd5d drm/i915: Check for unpin correctness.
78250d7331261c8191a0c903fb8222ff6f017c38 Reapply "drm/i915: Avoid stalling on pending flips for legacy cursor updates"
c9e7ab93006b6f2e2df2bb8fd602fa5d8d3a9286 drm/i915: Make unpin async.
71be3424ecdbdb6248452e15404f93633b368582 drm/i915: Prepare connectors for nonblocking checks.
cacd10bba6729b5f1d9215303a9f84f8f29da919 drm/i915: Pass atomic states to fbc update functions.
cc6c15b8f4e060d612134cfd5ecd555cc82b221e drm/i915: Remove reset_counter from intel_crtc.
da3982e43f8a1ce602e5e0050bae2006a41e114d drm/i915: Remove queue_flip pointer.
7fee2a59c5dfd68967e273b1c18f95c65b5d709a drm/i915: Remove use_mmio_flip kernel parameter.
91bd67fa14767b7790a482255c69c596e154d814 drm/i915: Remove cs based page flip support.
0275fea6bb1cfa8f6662156f725cdbd3b96b8ff7 drm/i915: Rework intel_crtc_page_flip to be almost atomic, v3.
c8e08fdc00707d5b4919a7cb2715fcb69d0fb761 drm/i915: Add the exclusive fence to plane_state.
9d1ba90be9a2f21ca372bc7bde8be5461b8b180e drm/i915: Convert flip_work to a list.
6e1e1df00ba21270fa5f6524f013a6c798f893e1 drm/i915: Allow mmio updates on all platforms, v2.
9a9698fad8cefe58114a956418821896f840a01f Revert "drm/i915: Avoid stalling on pending flips for legacy cursor updates"
"drm/i915: Allow nonblocking update of pageflips" should have been
split up, misses a proper commit message and seems to cause issues in
the legacy page_flip path as demonstrated by kms_flip.
"drm/i915: Make unpin async" doesn't handle the unthrottled cursor
updates correctly, leading to an apparent pin count leak. This is
caught by the WARN_ON in i915_gem_object_do_pin which screams if we
have more than DRM_I915_GEM_OBJECT_MAX_PIN_COUNT pins.
Unfortuantely we can't just revert these two because this patch series
came with a built-in bisect breakage in the form of temporarily
removing the unthrottled cursor update hack for legacy cursor ioctl.
Therefore there's no other option than to revert the entire pile :(
There's one tiny conflict in intel_drv.h due to other patches, nothing
serious.
Normally I'd wait a bit longer with doing a maintainer revert, but
since the minimal set of patches we need to revert (due to the bisect
breakage) is so big, time is running out fast. And very soon
(especially after a few attempts at fixing issues) it'll be really
hard to revert things cleanly.
Lessons learned:
- Not a good idea to rush the review (done by someone fairly new to
the area) and not make sure domain experts had a chance to read it.
- Patches should be properly split up. I only looked at the two
patches that should be reverted in detail, but both look like the
mix up different things in one patch.
- Patches really should have proper commit messages. Especially when
doing more than one thing, and especially when touching critical and
tricky core code.
- Building a patch series and r-b stamping it when it has a built-in
bisect breakage is not a good idea.
- I also think we need to stop building up technical debt by
postponing atomic igt testcases even longer. I think it's clear that
there's enough corner cases in this beast that we really need to
have the testcases _before_ the next step lands.
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Patrik Jakobsson <patrik.jakobsson@linux.intel.com>
Cc: John Harrison <John.C.Harrison@Intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Acked-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Acked-by: Dave Airlie <airlied@redhat.com>
Acked-by: Jani Nikula <jani.nikula@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>