linux/drivers/gpu/drm/i915
Daniel Vetter 15a13bbdff drm/i915: clear fencing tracking state when retiring requests
This fixes a resume regression introduced in

commit 7dd4906586
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Mar 21 10:48:18 2012 +0000

    drm/i915: Mark untiled BLT commands as fenced on gen2/3

which fixed fencing tracking for untiled blt commands.

A side effect of that patch was that now also untiled objects have a
non-zero obj->last_fenced_seqno to track when a fence can be set up
after a pipelined tiling change. Unfortunately this was only cleared
by the fence setup and teardown code, resulting in tons of untiled but
inactive objects with non-zero last_fenced_seqno.

Now after resume we completely reset the seqno tracking, both on the
driver side (by setting dev_priv->next_seqno = 1) and on the hw side
(by allocating a new hws page, which contains the seqnos). Hilarity
and indefinite waits ensued from the stale seqnos in
obj->last_fenced_seqno from before the suspend.

The fix is to properly clear the fencing tracking state like we
already do for the normal gpu rendering while moving objects off the
active list.

Reported-and-tested-by: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: Jiri Slaby <jslaby@suse.cz>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-04-12 09:02:37 +02:00
..
dvo.h
dvo_ch7xxx.c
dvo_ch7017.c
dvo_ivch.c
dvo_sil164.c
dvo_tfp410.c
i915_debugfs.c simple_open: automatically convert to simple_open() 2012-04-05 15:25:50 -07:00
i915_dma.c drm/i915: don't leak struct_mutex lock on ppgtt init failures 2012-04-03 10:25:33 +02:00
i915_drv.c drm/i915: make rc6 module parameter read-only 2012-04-11 21:36:38 +02:00
i915_drv.h drm/i915: disable ppgtt on snb when dmar is enabled 2012-04-02 15:59:07 +02:00
i915_gem.c drm/i915: clear fencing tracking state when retiring requests 2012-04-12 09:02:37 +02:00
i915_gem_debug.c
i915_gem_evict.c drm/i915: No need to search again after retiring requests 2012-02-27 17:37:13 +01:00
i915_gem_execbuffer.c drm/i915: Mark untiled BLT commands as fenced on gen2/3 2012-04-01 12:26:05 +02:00
i915_gem_gtt.c drm/i915: properly restore the ppgtt page directory on resume 2012-04-01 12:25:29 +02:00
i915_gem_tiling.c
i915_ioc32.c
i915_irq.c drm/i915: Record the position of the request upon error 2012-02-15 14:27:18 +01:00
i915_reg.h drm/i915: implement ColorBlt w/a 2012-04-11 12:16:53 +02:00
i915_suspend.c
i915_trace.h
i915_trace_points.c
intel_acpi.c
intel_bios.c drm/i915: quirk away broken OpRegion VBT 2012-04-01 12:29:44 +02:00
intel_bios.h
intel_crt.c
intel_display.c drm/i915: implement ColorBlt w/a 2012-04-11 12:16:53 +02:00
intel_dp.c drm/i915: properly compute dp dithering for user-created modes 2012-04-10 19:23:02 +02:00
intel_drv.h drm/i915: suspend fbdev device around suspend/hibernate 2012-03-29 07:44:27 +01:00
intel_dvo.c
intel_fb.c drm/i915: suspend fbdev device around suspend/hibernate 2012-03-29 07:44:27 +01:00
intel_hdmi.c
intel_i2c.c Revert "drm/i915: reenable gmbus on gen3+ again" 2012-04-11 12:11:23 +02:00
intel_lvds.c drm/i915: no-lvds quirk on MSI DC500 2012-04-03 10:44:05 +02:00
intel_modes.c drm/i915: use DDC_ADDR instead of hard-coding it 2012-03-21 10:20:38 +00:00
intel_opregion.c
intel_overlay.c Revert "drivers/gpu/drm/i915/intel_overlay.c needs seq_file.h" 2012-02-16 10:31:23 +01:00
intel_panel.c
intel_ringbuffer.c drm/i915/ringbuffer: Exclude last 2 cachlines of ring on 845g 2012-04-11 12:14:24 +02:00
intel_ringbuffer.h drm/i915: Record the tail at each request and use it to estimate the head 2012-02-15 14:26:03 +01:00
intel_sdvo.c drm/i915: use the new hdmi_force_audio enum more 2012-02-27 17:45:36 +01:00
intel_sdvo_regs.h
intel_sprite.c drm/i915: Removed IVB forced enable of sprite dest key. 2012-04-09 21:53:20 +02:00
intel_tv.c
Makefile