OpenCloudOS-Kernel/drivers/gpu/drm/i915
Daniel J Blueman 498e720b96 drm/i915: Fix gen6 (SNB) missed BLT ring interrupts.
The failure appeared in dmesg as:

[drm:i915_hangcheck_ring_idle] *ERROR* Hangcheck timer elapsed... blt
ring idle [waiting on 35064155, at 35064155], missed IRQ?

This works around that problem on by making the blitter command
streamer write interrupt state to the Hardware Status Page when a
MI_USER_INTERRUPT command is decoded, which appears to force the seqno
out to memory before the interrupt happens.

v1->v2: Moved to prior interrupt handler installation and RMW flags as
per feedback.
v2->v3: Removed RMW of flags (by anholt)

Cc: stable@kernel.org
Signed-off-by: Daniel J Blueman <daniel.blueman@gmail.com>
Signed-off-by: Eric Anholt <eric@anholt.net>
Tested-by: Chris Wilson <chris@chris-wilson.co.uk> [v1]
Tested-by: Eric Anholt <eric@anholt.net> [v1,v3]
	   (incidence of the bug with a testcase went from avg 2/1000 to
	   0/12651 in the latest test run (plus more for v1))
Tested-by: Kenneth Graunke <kenneth@whitecape.org> [v1]
Tested-by: Robert Hooker <robert.hooker@canonical.com> [v1]
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=33394
Signed-off-by: Dave Airlie <airlied@redhat.com>
2011-06-18 08:25:16 +10:00
..
Makefile drm/i915: Split i915_gem_execbuffer into its own file. 2010-11-25 21:19:25 +00:00
dvo.h drm/i915: Subclass intel_encoder. 2010-08-09 11:24:28 -07:00
dvo_ch7xxx.c drm/i915: use GMBUS to manage i2c links 2010-09-18 15:46:19 +01:00
dvo_ch7017.c drm/i915/dvo: Report LVDS attached to ch701x as connected 2010-12-30 13:50:43 +00:00
dvo_ivch.c drm/i915: use GMBUS to manage i2c links 2010-09-18 15:46:19 +01:00
dvo_sil164.c drm/i915: use GMBUS to manage i2c links 2010-09-18 15:46:19 +01:00
dvo_tfp410.c drm/i915: use GMBUS to manage i2c links 2010-09-18 15:46:19 +01:00
i915_debugfs.c drm/i915: Only print out the actual number of fences for i915_error_state 2011-06-04 10:40:52 -07:00
i915_dma.c drm/i915: interrupt & vblank support for Ivy Bridge 2011-05-13 17:09:52 -07:00
i915_drv.c Merge branch 'drm-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 2011-05-24 12:06:40 -07:00
i915_drv.h drm/i915: Share the common force-audio property between connectors 2011-06-04 10:41:25 -07:00
i915_gem.c drm/i915: Don't leak in i915_gem_shmem_pread_slow() 2011-06-14 11:00:54 +10:00
i915_gem_debug.c drm/i915: Refine tracepoints 2011-02-07 14:59:18 +00:00
i915_gem_evict.c drm/i915: Refine tracepoints 2011-02-07 14:59:18 +00:00
i915_gem_execbuffer.c drm/i915: Disable pagefaults along execbuffer relocation fast path 2011-03-23 09:17:01 +00:00
i915_gem_gtt.c drm/i915: Rename agp_type to cache_level 2011-05-10 13:56:43 -07:00
i915_gem_tiling.c drm/i915: add swizzle/tiling support for Ivy Bridge 2011-05-13 17:05:43 -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: Fix gen6 (SNB) missed BLT ring interrupts. 2011-06-18 08:25:16 +10:00
i915_mem.c drm: Remove memory debugging infrastructure. 2009-06-18 13:00:33 -07:00
i915_reg.h drm/i915: split PCH clock gating init 2011-05-13 18:12:53 -07:00
i915_suspend.c drm/i915: split PCH clock gating init 2011-05-13 18:12:53 -07:00
i915_trace.h drm/i915: Refine tracepoints 2011-02-07 14:59:18 +00:00
i915_trace_points.c drm/i915: Add tracepoints 2009-09-23 01:05:21 +01:00
intel_acpi.c drm/i915: i915 cannot provide switcher services. 2010-12-08 15:40:44 +10:00
intel_bios.c drm: Verify debug message arguments 2011-04-28 14:53:21 +10:00
intel_bios.h Revert "drm/i915: Disable SSC for outputs other than LVDS or DP" 2011-02-22 15:55:28 +00:00
intel_crt.c drm/i915/crt: Explicitly return false if connected to a digital monitor 2011-06-04 10:41:06 -07:00
intel_display.c drm/i915: Replace ironlake_compute_wm0 with g4x_compute_wm0 2011-06-04 10:40:59 -07:00
intel_dp.c drm/i915: Share the common force-audio property between connectors 2011-06-04 10:41:25 -07:00
intel_drv.h drm/i915: Share the common force-audio property between connectors 2011-06-04 10:41:25 -07:00
intel_dvo.c drm/i915: cleanup per-pipe reg usage 2011-02-07 21:17:15 +00:00
intel_fb.c drm/i915: restore only the mode of this driver on lastclose (v2) 2011-04-27 17:51:59 +10:00
intel_hdmi.c drm/i915: Share the common force-audio property between connectors 2011-06-04 10:41:25 -07:00
intel_i2c.c Revert "drm/i915: Enable GMBUS for post-gen2 chipsets" 2011-06-17 09:22:01 +10:00
intel_lvds.c drm/i915: Add a no lvds quirk for the Asus EeeBox PC EB1007 2011-06-04 10:48:45 -07:00
intel_modes.c drm/i915: Share the common force-audio property between connectors 2011-06-04 10:41:25 -07:00
intel_opregion.c drm/i915: Use a symbolic constant for OpRegion lid state 2011-02-24 18:13:42 +00:00
intel_overlay.c drm/i915: Use a device flag for non-interruptible phases 2011-02-22 15:56:25 +00:00
intel_panel.c Merge commit '5359533801e3dd3abca5b7d3d985b0b33fd9fe8b' into drm-core-next 2011-03-16 11:34:41 +10:00
intel_ringbuffer.c drm/i915: clean up unused ring_get_irq/ring_put_irq functions 2011-05-16 12:54:16 -07:00
intel_ringbuffer.h drm/i915: proper use of forcewake 2011-05-10 13:56:45 -07:00
intel_sdvo.c drm/i915: Share the common force-audio property between connectors 2011-06-04 10:41:25 -07:00
intel_sdvo_regs.h Fix common misspellings 2011-03-31 11:26:23 -03:00
intel_tv.c drm/i915: Don't store temporary load-detect variables in the generic encoder 2011-05-10 13:19:15 -07:00