Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/netbsd-7]: src/sys/external/bsd/drm2/dist/drm/i915 Pull up following rev...



details:   https://anonhg.NetBSD.org/src/rev/e5edb26c6bf1
branches:  netbsd-7
changeset: 798496:e5edb26c6bf1
user:      snj <snj%NetBSD.org@localhost>
date:      Wed Nov 05 17:57:13 2014 +0000

description:
Pull up following revision(s) (requested by sborrill in ticket #178):
        sys/external/bsd/drm2/dist/drm/i915/i915_gem.c: revision 1.18
When moving an object to inactive, make sure that we first flush it from
the GTT domain in case it belonged there. Also, fix some compilation issues
when turning on WATCH_GTT and WATCH_LISTS, although this is a lost cause;
most of the code has rotted beyond repair.

diffstat:

 sys/external/bsd/drm2/dist/drm/i915/i915_gem.c |  13 +++++++++++--
 1 files changed, 11 insertions(+), 2 deletions(-)

diffs (40 lines):

diff -r 589f732b04ec -r e5edb26c6bf1 sys/external/bsd/drm2/dist/drm/i915/i915_gem.c
--- a/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c    Wed Nov 05 17:52:10 2014 +0000
+++ b/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c    Wed Nov 05 17:57:13 2014 +0000
@@ -58,6 +58,7 @@
 #include <linux/time.h>
 #include <linux/err.h>
 #include <linux/bitops.h>
+#include <linux/printk.h>
 #include <asm/param.h>
 #include <asm/page.h>
 
@@ -2826,10 +2827,18 @@
 static void
 i915_gem_object_move_to_inactive(struct drm_i915_gem_object *obj)
 {
-       struct drm_i915_private *dev_priv = obj->base.dev->dev_private;
+       struct drm_device *dev = obj->base.dev;
+       struct drm_i915_private *dev_priv = dev->dev_private;
        struct i915_address_space *vm;
        struct i915_vma *vma;
 
+       if ((obj->base.write_domain & I915_GEM_DOMAIN_GTT) != 0) {
+#if 0
+               printk(KERN_ERR "%s: %p 0x%x flushing gtt\n", __func__, obj,
+                       obj->base.write_domain);
+#endif
+               i915_gem_object_flush_gtt_write_domain(obj);
+       }
        BUG_ON(obj->base.write_domain & ~I915_GEM_GPU_DOMAINS);
        BUG_ON(!obj->active);
 
@@ -3934,7 +3943,7 @@
        struct drm_i915_gem_object *obj;
        int err = 0;
 
-       list_for_each_entry(obj, &dev_priv->mm.gtt_list, global_list) {
+       list_for_each_entry(obj, &dev_priv->mm.bound_list, global_list) {
                if (obj->gtt_space == NULL) {
                        printk(KERN_ERR "object found on GTT list with no space reserved\n");
                        err++;



Home | Main Index | Thread Index | Old Index