Revert "drm/i915: Switch planes from transitional helpers to full atomic helpers"
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Mon, 2 Mar 2015 15:35:20 +0000 (16:35 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 17 Mar 2015 21:29:51 +0000 (22:29 +0100)
commit5f84f068125826b9efadcbbe35a79b0e7b7b6432
tree3fbd32ea098eb088bf9f8eb0bf878fbe5b72a285
parent732dae0c2f734e798a3e8d75841e704de96cebd6
Revert "drm/i915: Switch planes from transitional helpers to full atomic helpers"

This reverts commit 9c9901c55ac9890be63a6e98e425c12179fd8818.

We've been a bit too optimistic with this one here :(

The trouble is that internally we're still using these plane
update/disable hooks. Which was totally ok pre-atomic since the drm
core did all the book-keeping updating and these just mostly updated
hw state. But with atomic there's lots more going on, and it causes
heaps of trouble with the load detect code.

This one specifically cause a deadlock since both the load detect code
and the nested plane atomic helper functions tried to grab the same
locks. It only blows up because of the evil tricks though we play with
the implicit ww acquire context.

Applying this revert unearths the NULL deref on already freed
framebuffer objects reported as a regression in 4.0 by various people.

Fixing this will be fairly invasive, hence revert even for the
4.1-next queue.

Cc: Matt Roper <matthew.d.roper@intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Paul Bolle <pebolle@tiscali.nl>
Acked-by: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
drivers/gpu/drm/i915/intel_display.c