linux/drivers/gpu/drm/i915
Chris Wilson 0ef82af725 drm/i915: Pad ringbuffer with NOOPs before wrapping
According to the docs, the ringbuffer is not allowed to wrap in the middle
of an instruction.

G45 PRM, Vol 1b, p101:
  While the “free space” wrap may allow commands to be wrapped around the
  end of the Ring Buffer, the wrap should only occur between commands.
  Padding (with NOP) may be required to follow this restriction.

Do as commanded.

[Having seen bug reports where there is evidence of split commands, but
apparently the GPU has continued on merrily before a bizarre and untimely
death, this may or may not fix a few random hangs.]

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
CC: Eric Anholt <eric@anholt.net>
Signed-off-by: Eric Anholt <eric@anholt.net>
2009-09-06 11:29:06 -07:00
..
dvo_ch7xxx.c drm/i915: Change I2C api to pass around i2c_adapters 2009-06-18 15:53:57 -07:00
dvo_ch7017.c drm/i915: Change I2C api to pass around i2c_adapters 2009-06-18 15:53:57 -07:00
dvo_ivch.c drm/i915: Change I2C api to pass around i2c_adapters 2009-06-18 15:53:57 -07:00
dvo_sil164.c drm/i915: Change I2C api to pass around i2c_adapters 2009-06-18 15:53:57 -07:00
dvo_tfp410.c drm/i915: Change I2C api to pass around i2c_adapters 2009-06-18 15:53:57 -07:00
dvo.h drm/i915: Change I2C api to pass around i2c_adapters 2009-06-18 15:53:57 -07:00
i915_debugfs.c drm/i915: Pad ringbuffer with NOOPs before wrapping 2009-09-06 11:29:06 -07:00
i915_dma.c drm/i915: Pad ringbuffer with NOOPs before wrapping 2009-09-06 11:29:06 -07:00
i915_drv.c drm/i915: i915_modeset is signed 2009-09-04 13:05:39 -07:00
i915_drv.h drm/i915: Pad ringbuffer with NOOPs before wrapping 2009-09-06 11:29:06 -07:00
i915_gem_debug.c drm/i915: Catch up to obj_priv->page_list rename in disabled debug code. 2009-06-22 20:19:39 -07:00
i915_gem_tiling.c drm/i915: fix tiling on IGDNG 2009-09-04 13:05:44 -07:00
i915_gem.c drm/i915: Pad ringbuffer with NOOPs before wrapping 2009-09-06 11:29:06 -07:00
i915_ioc32.c drm: reorganise drm tree to be more future proof. 2008-07-14 10:45:01 +10:00
i915_irq.c drm/i915: Support IGD EOS 2009-09-04 13:05:30 -07:00
i915_mem.c drm: Remove memory debugging infrastructure. 2009-06-18 13:00:33 -07:00
i915_opregion.c ACPI: Add the reference count to avoid unloading ACPI video bus twice 2009-06-23 23:38:41 -04:00
i915_reg.h drm/i915: fix tiling on IGDNG 2009-09-04 13:05:44 -07:00
i915_suspend.c drm/i915: add dynamic clock frequency control 2009-09-04 13:05:38 -07:00
intel_bios.c drm/i915: add dynamic clock frequency control 2009-09-04 13:05:38 -07:00
intel_bios.h drm/i915: Add eDP support on IGDNG mobile chip 2009-07-29 15:16:19 -07:00
intel_crt.c drm/i915: Support IGD EOS 2009-09-04 13:05:30 -07:00
intel_display.c drm/i915: do dynamic clock freq control only in kernel modesetting 2009-09-04 13:05:46 -07:00
intel_dp_i2c.c drm/i915: Make driver less chatty 2009-07-01 18:13:34 -07:00
intel_dp.c drm/i915: Set crtc/clone mask in different output devices 2009-08-24 17:01:33 -07:00
intel_dp.h drm/i915: Add Display Port support 2009-06-18 15:54:07 -07:00
intel_drv.h drm/i915: add dynamic clock frequency control 2009-09-04 13:05:38 -07:00
intel_dvo.c drm/i915: Set crtc/clone mask in different output devices 2009-08-24 17:01:33 -07:00
intel_fb.c drm/i915: Make driver less chatty 2009-07-01 18:13:34 -07:00
intel_hdmi.c drm/i915: Set crtc/clone mask in different output devices 2009-08-24 17:01:33 -07:00
intel_i2c.c drm/i915: add dynamic clock frequency control 2009-09-04 13:05:38 -07:00
intel_lvds.c drm/i915: Set crtc/clone mask in different output devices 2009-08-24 17:01:33 -07:00
intel_modes.c drm/i915: Change I2C api to pass around i2c_adapters 2009-06-18 15:53:57 -07:00
intel_sdvo_regs.h drm/i915: enable sdvo lvds scaling function. 2009-07-01 11:44:45 -07:00
intel_sdvo.c drm/I915: Use the CRT DDC to get the EDID for DVI-connector on Mac 2009-09-04 13:05:45 -07:00
intel_tv.c drm/i915: select TV format according to connector type 2009-09-04 13:05:10 -07:00
Makefile drm/i915: Move i915_gem_debugfs.c to i915_debugfs.c 2009-09-04 13:05:08 -07:00