linux/drivers/gpu/drm/i915
Chris Wilson e78d73b16b drm/i915: Wake-up wait_request() from elapsed hang-check (v2)
If our watchdog fires and we see that the GPU is idle, but that we
are still waiting on an interrupt, forcibly wake-up the waiter.

i915_do_wait_request() should not be racy, yet there are persistent
reports that 945GM hangs whilst the GPU is idle. This implies that the
hardware is not quite as coherent as the documentation claims - a write
followed by a flush is supposed to be coherent in main memory before the
flush is retired and the irq is emitted. This seems to be a sensible and
elegant guard to force the wait to timeout.

v2: Daniel Vetter pointed out that a warning would be useful to explain
why the machine appeared to stall.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Eric Anholt <eric@anholt.net>
2010-08-09 11:24:36 -07:00
..
dvo_ch7xxx.c drm/i915: Remove dead KMS encoder save/restore code. 2010-04-12 09:23:30 -07:00
dvo_ch7017.c drm/i915: Remove dead KMS encoder save/restore code. 2010-04-12 09:23:30 -07:00
dvo_ivch.c drm/i915: Remove dead KMS encoder save/restore code. 2010-04-12 09:23:30 -07:00
dvo_sil164.c drm/i915: Remove dead KMS encoder save/restore code. 2010-04-12 09:23:30 -07:00
dvo_tfp410.c drm/i915: Use RSEN instead of HTPLG for tfp410 monitor detection. 2010-06-04 16:39:59 -07:00
dvo.h drm/i915: Subclass intel_encoder. 2010-08-09 11:24:28 -07:00
i915_debugfs.c drm/i915: Capture the overlay status upon a GPU hang. 2010-08-09 11:24:31 -07:00
i915_dma.c drm/agp/i915: trim stolen space to 32M 2010-08-01 19:58:57 -07:00
i915_drv.c drm/i915: Refactor i915_gem_retire_requests() 2010-08-01 19:52:57 -07:00
i915_drv.h drm/i915: Apply i830 errata for cursor alignment 2010-08-09 11:24:36 -07:00
i915_gem_debug.c drm/i915: drop pointer to drm_gem_object 2010-04-20 13:23:14 +10:00
i915_gem_evict.c drm/i915: Implement fair lru eviction across both rings. (v2) 2010-08-09 11:24:32 -07:00
i915_gem_tiling.c drm/i915: Remove the WARN when failing to set tiling. 2010-08-01 19:03:46 -07:00
i915_gem.c drm/i915: Apply i830 errata for cursor alignment 2010-08-09 11:24:36 -07:00
i915_ioc32.c drm: convert drm_ioctl to unlocked_ioctl 2009-12-18 11:22:31 +10:00
i915_irq.c drm/i915: Wake-up wait_request() from elapsed hang-check (v2) 2010-08-09 11:24:36 -07:00
i915_mem.c
i915_opregion.c drm/i915/opregion: Use ASLE response codes defined in 0.1 2010-08-09 11:24:34 -07:00
i915_reg.h drm/i915: Do not clobber the contents of TRANS_DP_CTL when enabling. 2010-08-09 11:24:28 -07:00
i915_suspend.c drm/i915: Add frame buffer compression support on Ironlake mobile 2010-08-01 19:03:44 -07:00
i915_trace_points.c drm/i915: Add tracepoints 2009-09-23 01:05:21 +01:00
i915_trace.h drm/i915: add tracepoints for flip requests & completions 2010-07-02 14:04:14 +10:00
intel_bios.c drm/i915: Honor sync polarity from VBT panel timing descriptors 2010-06-01 10:19:37 -07:00
intel_bios.h drm/i915: parse eDP panel color depth from VBT block 2010-01-15 14:12:47 -08:00
intel_crt.c drm/i915: Ensure that while(INREG()) are bounded (v2) 2010-08-09 11:24:35 -07:00
intel_display.c drm/i915: Apply i830 errata for cursor alignment 2010-08-09 11:24:36 -07:00
intel_dp.c drm/i915: Ensure that while(INREG()) are bounded (v2) 2010-08-09 11:24:35 -07:00
intel_drv.h drm/i915: Only update i845/i865 CURBASE when disabled (v2) 2010-08-09 11:24:36 -07:00
intel_dvo.c drm/i915: Subclass intel_encoder. 2010-08-09 11:24:28 -07:00
intel_fb.c drm/i915: use new fb debug hooks 2010-08-05 09:22:31 -05:00
intel_hdmi.c drm/i915: Subclass intel_encoder. 2010-08-09 11:24:28 -07:00
intel_i2c.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
intel_lvds.c drm/i915: Ensure that while(INREG()) are bounded (v2) 2010-08-09 11:24:35 -07:00
intel_modes.c Merge remote branch 'anholt/drm-intel-next' of /home/airlied/kernel/drm-next into drm-core-next 2010-04-20 13:11:45 +10:00
intel_overlay.c drm/i915: Apply i830 errata for cursor alignment 2010-08-09 11:24:36 -07:00
intel_panel.c drm/i915: Enable aspect/centering panel fitting for Ironlake. 2010-08-09 11:24:34 -07:00
intel_ringbuffer.c drm/i915/ringbuffer: Set ring->gem_buffer = NULL on init unwind 2010-08-09 11:24:35 -07:00
intel_ringbuffer.h drm/i915: Use a common seqno for all rings. 2010-08-09 11:24:32 -07:00
intel_sdvo_regs.h drm/i915/sdvo: Add missing TV filters 2010-08-09 11:24:29 -07:00
intel_sdvo.c drm/i915/sdvo: Markup a few constant strings. 2010-08-09 11:24:33 -07:00
intel_tv.c drm/i915: Subclass intel_encoder. 2010-08-09 11:24:28 -07:00
Makefile drm/i915: Enable aspect/centering panel fitting for Ironlake. 2010-08-09 11:24:34 -07:00