linux/drivers/gpu/drm/i915
Daniel Vetter b45305fce5 drm/i915: Implement workaround for broken CS tlb on i830/845
Now that Chris Wilson demonstrated that the key for stability on early
gen 2 is to simple _never_ exchange the physical backing storage of
batch buffers I've tried a stab at a kernel solution. Doesn't look too
nefarious imho, now that I don't try to be too clever for my own good
any more.

v2: After discussing the various techniques, we've decided to always blit
batches on the suspect devices, but allow userspace to opt out of the
kernel workaround assume full responsibility for providing coherent
batches. The principal reason is that avoiding the blit does improve
performance in a few key microbenchmarks and also in cairo-trace
replays.

Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
[danvet:
- Drop the hunk which uses HAS_BROKEN_CS_TLB to implement the ring
  wrap w/a. Suggested by Chris Wilson.
- Also add the ACTHD check from Chris Wilson for the error state
  dumping, so that we still catch batches when userspace opts out of
  the w/a.]
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-12-17 17:27:02 +01:00
..
dvo.h Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2012-10-03 23:29:23 -07:00
dvo_ch7xxx.c drm/i915/dvo-ch7xxx: fix get_hw_state 2012-10-12 10:59:11 +02:00
dvo_ch7017.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_ivch.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_ns2501.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_sil164.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_tfp410.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
i915_debugfs.c drm/i915: Close race between processing unpin task and queueing the flip 2012-12-06 14:09:37 +01:00
i915_dma.c drm/i915: Implement workaround for broken CS tlb on i830/845 2012-12-17 17:27:02 +01:00
i915_drv.c drm/i915: add lpt_init_pch_refclk 2012-12-10 11:14:29 +01:00
i915_drv.h drm/i915: Implement workaround for broken CS tlb on i830/845 2012-12-17 17:27:02 +01:00
i915_gem.c drm/i915: Decouple the object from the unbound list before freeing pages 2012-12-03 17:22:16 +01:00
i915_gem_context.c drm/i915: Preallocate next seqno before touching the ring 2012-11-29 11:43:52 +01:00
i915_gem_debug.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
i915_gem_dmabuf.c Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2012-10-03 23:29:23 -07:00
i915_gem_evict.c Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2012-10-03 23:29:23 -07:00
i915_gem_execbuffer.c drm/i915: Implement workaround for broken CS tlb on i830/845 2012-12-17 17:27:02 +01:00
i915_gem_gtt.c drm/i915: Fix missed needs_dmar setting 2012-12-13 21:40:24 +01:00
i915_gem_stolen.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
i915_gem_tiling.c Merge branch 'drm-intel-fixes' of git://people.freedesktop.org/~danvet/drm-intel into drm-next 2012-10-07 21:13:54 +10:00
i915_ioc32.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
i915_irq.c drm/i915: Implement workaround for broken CS tlb on i830/845 2012-12-17 17:27:02 +01:00
i915_reg.h drm/i915: Implement WaSetupGtModeTdRowDispatch 2012-12-17 17:22:25 +01:00
i915_suspend.c drm/i915: Remove save/restore of physical HWS_PGA register 2012-11-21 17:45:02 +01:00
i915_sysfs.c drm/i915: fixup l3 parity sysfs access check 2012-12-05 19:10:20 +01:00
i915_trace.h drm/i915: Allow DRM_ROOT_ONLY|DRM_MASTER to submit privileged batchbuffers 2012-10-17 21:06:59 +02:00
i915_trace_points.c drm/i915: [sparse] trivial sparse fixes 2012-04-18 10:34:49 +02:00
intel_acpi.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
intel_bios.c drm/i915: Only check for valid PP_{ON, OFF}_DELAYS on pre ILK hardware 2012-11-21 17:45:01 +01:00
intel_bios.h UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
intel_crt.c drm/i915: set the LPT FDI RX polarity reversal bit when needed 2012-12-10 11:14:29 +01:00
intel_ddi.c drm/i915: set the LPT FDI RX polarity reversal bit when needed 2012-12-10 11:14:29 +01:00
intel_display.c drm/i915: disable cpt phase pointer fdi rx workaround 2012-12-10 21:53:49 +01:00
intel_dp.c drm/i915: drm_connector_property -> drm_object_property 2012-11-21 22:12:26 +01:00
intel_drv.h drm/i915: reject modes the LPT FDI receiver can't handle 2012-12-08 14:00:35 +01:00
intel_dvo.c Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2012-10-03 23:29:23 -07:00
intel_fb.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
intel_hdmi.c drm/i915: set the VIC of the mode on the AVI InfoFrame 2012-11-29 11:42:38 +01:00
intel_i2c.c drm/i915/i2c: Track users of GMBUS force-bit 2012-11-13 16:10:04 +01:00
intel_lvds.c drm/i915: force restore on lid open 2012-11-29 11:43:52 +01:00
intel_modes.c drm/i915: drm_connector_property -> drm_object_property 2012-11-21 22:12:26 +01:00
intel_opregion.c Linux 3.7-rc2 2012-10-22 14:34:51 +02:00
intel_overlay.c drm/i915: fix overlay on i830M 2012-10-23 12:57:50 +02:00
intel_panel.c drm/i915: do not access BLC_PWM_CTL2 on pre-gen4 hardware 2012-12-04 22:30:25 +01:00
intel_pm.c drm/i915: Implement WaSetupGtModeTdRowDispatch 2012-12-17 17:22:25 +01:00
intel_ringbuffer.c drm/i915: Implement workaround for broken CS tlb on i830/845 2012-12-17 17:27:02 +01:00
intel_ringbuffer.h drm/i915: Implement workaround for broken CS tlb on i830/845 2012-12-17 17:27:02 +01:00
intel_sdvo.c drm/i915: Increase the response time for slow SDVO devices 2012-11-29 11:42:38 +01:00
intel_sdvo_regs.h drm/i915: clear the entire sdvo infoframe buffer 2012-10-24 15:12:48 +02:00
intel_sprite.c drm/i915: Bad pixel formats can't reach the sprite code 2012-11-11 23:51:14 +01:00
intel_tv.c drm/i915: drm_connector_property -> drm_object_property 2012-11-21 22:12:26 +01:00
Makefile drm/i915: Support for ns2501-DVO 2012-07-25 18:23:48 +02:00