linux/drivers/gpu/drm/i915
Eric Anholt e517a5e970 agp/intel: Fix the pre-9xx chipset flush.
Ever since we enabled GEM, the pre-9xx chipsets (particularly 865) have had
serious stability issues.  Back in May a wbinvd was added to the DRM to
work around much of the problem.  Some failure remained -- easily visible
by dragging a window around on an X -retro desktop, or by looking at bugzilla.

The chipset flush was on the right track -- hitting the right amount of
memory, and it appears to be the only way to flush on these chipsets, but the
flush page was mapped uncached.  As a result, the writes trying to clear the
writeback cache ended up bypassing the cache, and not flushing anything!  The
wbinvd would flush out other writeback data and often cause the data we wanted
to get flushed, but not always.  By removing the setting of the page to UC
and instead just clflushing the data we write to try to flush it, we get the
desired behavior with no wbinvd.

This exports clflush_cache_range(), which was laying around and happened to
basically match the code I was otherwise going to copy from the DRM.

Signed-off-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Brice Goglin <Brice.Goglin@ens-lyon.org>
Cc: stable@kernel.org
2009-09-11 11:39:23 -07:00
..
dvo.h drm/i915: Change I2C api to pass around i2c_adapters 2009-06-18 15:53:57 -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
i915_debugfs.c drm/i915: Pad ringbuffer with NOOPs before wrapping 2009-09-06 11:29:06 -07:00
i915_dma.c drm/i915: framebuffer compression for pre-GM45 2009-09-10 19:46:07 -07:00
i915_drv.c drm/i915: i915_modeset is signed 2009-09-04 13:05:39 -07:00
i915_drv.h drm/i915: framebuffer compression for pre-GM45 2009-09-10 19:46:07 -07:00
i915_gem.c agp/intel: Fix the pre-9xx chipset flush. 2009-09-11 11:39:23 -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: get the bridge device once. 2009-09-08 11:45:15 +10:00
i915_ioc32.c
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: framebuffer compression for pre-GM45 2009-09-10 19:46:07 -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: framebuffer compression for pre-GM45 2009-09-10 19:46:07 -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_dp_i2c.c drm/i915: Make driver less chatty 2009-07-01 18:13:34 -07:00
intel_drv.h drm/i915: framebuffer compression for pre-GM45 2009-09-10 19:46:07 -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: fix two issues with fb consolidation. 2009-08-31 10:33:29 +10: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: generate a KMS uevent at lid open/close time 2009-09-10 16:10:31 -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.c drm/i915: Add the missing clone_mask for SDVO-VGA(RGB1) 2009-09-10 11:30:54 -07:00
intel_sdvo_regs.h drm/i915: enable sdvo lvds scaling function. 2009-07-01 11:44: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