linux/drivers/gpu/drm/i915
Kenneth Graunke 3a69ddd6f8 drm/i915: Set the Stencil Cache eviction policy to non-LRA mode.
Clearing bit 5 of CACHE_MODE_0 is necessary to prevent GPU hangs in
OpenGL programs such as Google MapsGL, Google Earth, and gzdoom when
using separate stencil buffers.  Without it, the GPU tries to use the
LRA eviction policy, which isn't supported.  This was supposed to be off
by default, but seems to be on for many machines.

This cannot be done in gen6_init_clock_gating with most of the other
workaround bits; the render ring needs to exist.  Otherwise, the
register write gets dropped on the floor (one printk will show it
changed, but a second printk immediately following shows the value
reverts to the old one).

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=47535
Cc: stable@vger.kernel.org
Cc: Rob Castle <futuredub@gmail.com>
Cc: Eric Appleman <erappleman@gmail.com>
Cc: aaron667@gmx.net
Cc: Keith Packard <keithp@keithp.com>
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2012-04-28 08:05:15 +01:00
..
dvo_ch7xxx.c Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
dvo_ch7017.c Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
dvo_ivch.c Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
dvo_sil164.c Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
dvo_tfp410.c Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
dvo.h drm/i915: Subclass intel_encoder. 2010-08-09 11:24:28 -07:00
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_debug.c drm/i915: drop KM_USER0 argument to k(un)map_atomic 2011-10-20 15:26:37 -07:00
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: fix integer overflow in i915_gem_do_execbuffer() 2012-04-23 22:32:15 +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 drm/i915: swizzling support for snb/ivb 2012-02-08 23:16:24 +01:00
i915_gem.c VM: add "vm_mmap()" helper function 2012-04-20 17:29:13 -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: Record the position of the request upon error 2012-02-15 14:27:18 +01:00
i915_reg.h drm/i915: Set the Stencil Cache eviction policy to non-LRA mode. 2012-04-28 08:05:15 +01:00
i915_suspend.c drm/i915: Re-enable gen7 RC6 and GPU turbo after resume. 2012-01-24 13:25:10 -08:00
i915_trace_points.c drm/i915: Add tracepoints 2009-09-23 01:05:21 +01:00
i915_trace.h Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
intel_acpi.c drm/i915: Silence _DSM errors 2012-01-16 21:08:19 +01:00
intel_bios.c drm/i915: quirk away broken OpRegion VBT 2012-04-01 12:29:44 +02:00
intel_bios.h drm/i915: VBT Parser cleanup for eDP block 2012-01-13 08:37:44 -08:00
intel_crt.c drm/i915: fixup load-detect on enabled, but not active pipe 2012-04-22 11:12:13 +02:00
intel_display.c drm/i915: Do not set "Enable Panel Fitter" on SNB pageflips 2012-04-18 10:30:47 +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: don't clobber the special upscaling lvds timings 2012-04-16 09:21:55 +02:00
intel_dvo.c drm/i915: fixup interlaced vertical timings confusion, part 1 2012-02-10 17:24:06 +01:00
intel_fb.c drm/i915: Hold mode_config lock whilst changing mode for lastclose() 2012-04-16 20:37:38 +02:00
intel_hdmi.c drm/i915: add a "force-dvi" HDMI audio mode 2012-02-14 10:03:18 +01:00
intel_i2c.c Revert "drm/i915: reenable gmbus on gen3+ again" 2012-04-11 12:11:23 +02:00
intel_lvds.c drm/i915: don't clobber the special upscaling lvds timings 2012-04-16 09:21:55 +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 Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
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 drm/i915: don't clobber the special upscaling lvds timings 2012-04-16 09:21:55 +02:00
intel_ringbuffer.c drm/i915: Set the Stencil Cache eviction policy to non-LRA mode. 2012-04-28 08:05:15 +01: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_regs.h misc latin1 to utf8 conversions 2012-01-02 13:04:55 +01:00
intel_sdvo.c drm/i915: handle input/output sdvo timings separately in mode_set 2012-04-26 18:56:26 +02:00
intel_sprite.c drm/i915: Removed IVB forced enable of sprite dest key. 2012-04-09 21:53:20 +02:00
intel_tv.c drm/i915: fixup interlaced vertical timings confusion, part 1 2012-02-10 17:24:06 +01:00
Makefile drm/i915: kill i915_mem.c 2012-01-17 20:01:01 +01:00