aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/i915')
-rw-r--r--drivers/gpu/drm/i915/i915_gem.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index e4408daf8cef..e2421869a40c 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -2423,6 +2423,16 @@ i915_gem_clflush_object(struct drm_gem_object *obj)
2423 if (obj_priv->pages == NULL) 2423 if (obj_priv->pages == NULL)
2424 return; 2424 return;
2425 2425
2426 /* XXX: The 865 in particular appears to be weird in how it handles
2427 * cache flushing. We haven't figured it out, but the
2428 * clflush+agp_chipset_flush doesn't appear to successfully get the
2429 * data visible to the PGU, while wbinvd + agp_chipset_flush does.
2430 */
2431 if (IS_I865G(obj->dev)) {
2432 wbinvd();
2433 return;
2434 }
2435
2426 drm_clflush_pages(obj_priv->pages, obj->size / PAGE_SIZE); 2436 drm_clflush_pages(obj_priv->pages, obj->size / PAGE_SIZE);
2427} 2437}
2428 2438