OSDN Git Service

drm/i915/gvt: Introduce ops->set_present()
authorZhi Wang <zhi.a.wang@intel.com>
Tue, 10 Oct 2017 09:24:26 +0000 (17:24 +0800)
committerZhenyu Wang <zhenyuw@linux.intel.com>
Thu, 16 Nov 2017 03:48:24 +0000 (11:48 +0800)
We need ops->set_present() during generating a new scratch page table
entry.

Signed-off-by: Zhi Wang <zhi.a.wang@intel.com>
drivers/gpu/drm/i915/gvt/gtt.c
drivers/gpu/drm/i915/gvt/gtt.h

index 74be5e6..3d6008b 100644 (file)
@@ -397,6 +397,11 @@ static void gtt_entry_clear_present(struct intel_gvt_gtt_entry *e)
        e->val64 &= ~BIT(0);
 }
 
+static void gtt_entry_set_present(struct intel_gvt_gtt_entry *e)
+{
+       e->val64 |= BIT(0);
+}
+
 /*
  * Per-platform GMA routines.
  */
@@ -426,6 +431,7 @@ static struct intel_gvt_gtt_pte_ops gen8_gtt_pte_ops = {
        .get_entry = gtt_get_entry64,
        .set_entry = gtt_set_entry64,
        .clear_present = gtt_entry_clear_present,
+       .set_present = gtt_entry_set_present,
        .test_present = gen8_gtt_test_present,
        .test_pse = gen8_gtt_test_pse,
        .get_pfn = gen8_gtt_get_pfn,
index ab59027..f98c1c1 100644 (file)
@@ -62,6 +62,7 @@ struct intel_gvt_gtt_pte_ops {
                         struct intel_vgpu *vgpu);
        bool (*test_present)(struct intel_gvt_gtt_entry *e);
        void (*clear_present)(struct intel_gvt_gtt_entry *e);
+       void (*set_present)(struct intel_gvt_gtt_entry *e);
        bool (*test_pse)(struct intel_gvt_gtt_entry *e);
        void (*set_pfn)(struct intel_gvt_gtt_entry *e, unsigned long pfn);
        unsigned long (*get_pfn)(struct intel_gvt_gtt_entry *e);