summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZhi Wang2017-10-10 11:24:26 +0200
committerZhenyu Wang2017-11-16 04:48:24 +0100
commit655c64efe36f199bea16f9ba7388c479d5feed5f (patch)
treee0f527edf4401cce948baf251ef1c4382ddce886
parentdrm/i915/gvt: Introduce page table type of current level in GTT type enumerat... (diff)
downloadkernel-qcow2-linux-655c64efe36f199bea16f9ba7388c479d5feed5f.tar.gz
kernel-qcow2-linux-655c64efe36f199bea16f9ba7388c479d5feed5f.tar.xz
kernel-qcow2-linux-655c64efe36f199bea16f9ba7388c479d5feed5f.zip
drm/i915/gvt: Introduce ops->set_present()
We need ops->set_present() during generating a new scratch page table entry. Signed-off-by: Zhi Wang <zhi.a.wang@intel.com>
-rw-r--r--drivers/gpu/drm/i915/gvt/gtt.c6
-rw-r--r--drivers/gpu/drm/i915/gvt/gtt.h1
2 files changed, 7 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/gvt/gtt.c b/drivers/gpu/drm/i915/gvt/gtt.c
index 74be5e628310..3d6008b116e5 100644
--- a/drivers/gpu/drm/i915/gvt/gtt.c
+++ b/drivers/gpu/drm/i915/gvt/gtt.c
@@ -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,
diff --git a/drivers/gpu/drm/i915/gvt/gtt.h b/drivers/gpu/drm/i915/gvt/gtt.h
index ab590278dcf1..f98c1c19b4cb 100644
--- a/drivers/gpu/drm/i915/gvt/gtt.h
+++ b/drivers/gpu/drm/i915/gvt/gtt.h
@@ -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);