drm/i915: Check that plane/pipe is disabled before removing the fb
authorChris Wilson <chris@chris-wilson.co.uk>
Mon, 16 Jan 2012 23:01:13 +0000 (23:01 +0000)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 17 Jan 2012 10:07:06 +0000 (11:07 +0100)
commit931872fceabacf2d4f8b6fbd51611c167e83164c
treec90897b37ba97704ee667ced04431eb5e2d095e2
parentf3953dcb98bad1c3badf451bcf41bf83ae2ce542
drm/i915: Check that plane/pipe is disabled before removing the fb

Staring at an error state such as:

PGTBL_ER: 0x00000400
    Display B: Invalid tiling
fence[0] = 05001001
    valid, x-tiled, pitch: 512, start: 0x05000000, size: 1048576
Pinned [2]:
  00000000   131072 0001 0001 00000000 P uncached
  00020000  4096000 0041 0000 00000000 P uncached (name: 1)
Plane [1]:
  CNTR: c0000000 # enabled | gamma
  STRIDE: 00001400
  SIZE: 03ff04ff
  POS: 00000000
  ADDR: 05000000

Suggests that we did not clear the DSPBCNTR prior to unpinning the
framebuffer and reusing the GTT space. Impossible! Unless our DPMS
bookkeeping ran afoul again...

In the meantime add an assertion that the plane is decoupled from the
framebuffer prior to release.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Acked-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_display.c