drm/i915: A hotfix for making aliasing PPGTT work for GVT-g
authorZhi Wang <zhi.a.wang@intel.com>
Wed, 8 Feb 2017 13:03:33 +0000 (21:03 +0800)
committerJani Nikula <jani.nikula@intel.com>
Thu, 16 Feb 2017 09:59:12 +0000 (11:59 +0200)
This patch makes PPGTT page table non-shrinkable when using aliasing PPGTT
mode. It's just a temporary solution for making GVT-g work.

Fixes: 2ce5179fe826 ("drm/i915/gtt: Free unused lower-level page tables")
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Cc: Michal Winiarski <michal.winiarski@intel.com>
Cc: Michel Thierry <michel.thierry@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Daniel Vetter <daniel.vetter@intel.com>
Cc: Zhenyu Wang <zhenyuw@linux.intel.com>
Cc: Zhiyuan Lv <zhiyuan.lv@intel.com>
Signed-off-by: Zhi Wang <zhi.a.wang@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1486559013-25251-2-git-send-email-zhi.a.wang@intel.com
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: <stable@vger.kernel.org> # v4.10
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
(cherry picked from commit e81ecb5e31db6c2a259d694738cf620d9fa70861)
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/i915_gem_gtt.c

index 30d8dbd04f0b7da2aafb55176488b575e1b965af..2801a4d5632491787009c4ae62130dc732215136 100644 (file)
@@ -755,9 +755,10 @@ static bool gen8_ppgtt_clear_pt(struct i915_address_space *vm,
        GEM_BUG_ON(pte_end > GEN8_PTES);
 
        bitmap_clear(pt->used_ptes, pte, num_entries);
-
-       if (bitmap_empty(pt->used_ptes, GEN8_PTES))
-               return true;
+       if (USES_FULL_PPGTT(vm->i915)) {
+               if (bitmap_empty(pt->used_ptes, GEN8_PTES))
+                       return true;
+       }
 
        pt_vaddr = kmap_px(pt);