From 44770dced937d3b2cb54f7bd09ecc0e50d398f02 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 26 May 2009 18:46:16 -0700 Subject: [PATCH] --- yaml --- r: 145359 b: refs/heads/master c: cfa16a0de5392c54db553ec2233a7110e4b4da7a h: refs/heads/master i: 145357: 5ed1f37053da3cfea18b0290208b50c78c9bafa9 145355: 138f06a2755a6bebab6241bbf67035d668508c91 145351: b4ce5b6f7e23d92c699860aa2949dfee4d6b7df5 145343: 96813971286eeb989f2c76f2ba0e2b8fea5c9464 v: v3 --- [refs] | 2 +- trunk/drivers/gpu/drm/i915/i915_gem.c | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 1548e06c934c..ff61520d2623 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e76a16deb8785317a23cca7204331af053e0fb4e +refs/heads/master: cfa16a0de5392c54db553ec2233a7110e4b4da7a diff --git a/trunk/drivers/gpu/drm/i915/i915_gem.c b/trunk/drivers/gpu/drm/i915/i915_gem.c index e4408daf8cef..e2421869a40c 100644 --- a/trunk/drivers/gpu/drm/i915/i915_gem.c +++ b/trunk/drivers/gpu/drm/i915/i915_gem.c @@ -2423,6 +2423,16 @@ i915_gem_clflush_object(struct drm_gem_object *obj) if (obj_priv->pages == NULL) return; + /* XXX: The 865 in particular appears to be weird in how it handles + * cache flushing. We haven't figured it out, but the + * clflush+agp_chipset_flush doesn't appear to successfully get the + * data visible to the PGU, while wbinvd + agp_chipset_flush does. + */ + if (IS_I865G(obj->dev)) { + wbinvd(); + return; + } + drm_clflush_pages(obj_priv->pages, obj->size / PAGE_SIZE); }