aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoonas Lahtinen <joonas.lahtinen@linux.intel.com>2019-05-07 08:29:14 -0400
committerJoonas Lahtinen <joonas.lahtinen@linux.intel.com>2019-05-07 08:29:15 -0400
commit23372cce8fe7ee98a6458fd3d035a55b87f0c6fe (patch)
treea4e9a0efdf9d929cbdf90edc934cfbe0b0ceb331
parent2564fe708b580c1ef12b2b527ab6e8afe11ad444 (diff)
parent75fdb811d93c8aa4a9f73b63db032b1e6a8668ef (diff)
Merge tag 'gvt-next-fixes-2019-05-07' of https://github.com/intel/gvt-linux into drm-intel-next-fixes
gvt-next-fixes-2019-05-07 - Revert MCHBAR save range change for BXT regression (Yakui) - Align display dmabuf size for bytes instead of error-prone pages (Xiong) - Fix one context MMIO save/restore after RCS0 name change (Colin) - Misc klocwork warning/errors fixes (Aleksei) Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> From: Zhenyu Wang <zhenyu.z.wang@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20190507090558.GE12913@zhen-hp.sh.intel.com
-rw-r--r--drivers/gpu/drm/i915/gvt/debugfs.c4
-rw-r--r--drivers/gpu/drm/i915/gvt/dmabuf.c19
-rw-r--r--drivers/gpu/drm/i915/gvt/gtt.c15
-rw-r--r--drivers/gpu/drm/i915/gvt/gtt.h16
-rw-r--r--drivers/gpu/drm/i915/gvt/handlers.c4
-rw-r--r--drivers/gpu/drm/i915/gvt/mmio_context.c1
-rw-r--r--drivers/gpu/drm/i915/gvt/reg.h3
-rw-r--r--drivers/gpu/drm/i915/gvt/scheduler.c2
8 files changed, 31 insertions, 33 deletions
diff --git a/drivers/gpu/drm/i915/gvt/debugfs.c b/drivers/gpu/drm/i915/gvt/debugfs.c
index 2ec89bcb59f1..8a9606f91e68 100644
--- a/drivers/gpu/drm/i915/gvt/debugfs.c
+++ b/drivers/gpu/drm/i915/gvt/debugfs.c
@@ -196,9 +196,9 @@ DEFINE_SIMPLE_ATTRIBUTE(vgpu_scan_nonprivbb_fops,
196int intel_gvt_debugfs_add_vgpu(struct intel_vgpu *vgpu) 196int intel_gvt_debugfs_add_vgpu(struct intel_vgpu *vgpu)
197{ 197{
198 struct dentry *ent; 198 struct dentry *ent;
199 char name[10] = ""; 199 char name[16] = "";
200 200
201 sprintf(name, "vgpu%d", vgpu->id); 201 snprintf(name, 16, "vgpu%d", vgpu->id);
202 vgpu->debugfs = debugfs_create_dir(name, vgpu->gvt->debugfs_root); 202 vgpu->debugfs = debugfs_create_dir(name, vgpu->gvt->debugfs_root);
203 if (!vgpu->debugfs) 203 if (!vgpu->debugfs)
204 return -ENOMEM; 204 return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/gvt/dmabuf.c b/drivers/gpu/drm/i915/gvt/dmabuf.c
index 4e1e425189ba..41c8ebc60c63 100644
--- a/drivers/gpu/drm/i915/gvt/dmabuf.c
+++ b/drivers/gpu/drm/i915/gvt/dmabuf.c
@@ -45,6 +45,7 @@ static int vgpu_gem_get_pages(
45 int i, ret; 45 int i, ret;
46 gen8_pte_t __iomem *gtt_entries; 46 gen8_pte_t __iomem *gtt_entries;
47 struct intel_vgpu_fb_info *fb_info; 47 struct intel_vgpu_fb_info *fb_info;
48 u32 page_num;
48 49
49 fb_info = (struct intel_vgpu_fb_info *)obj->gvt_info; 50 fb_info = (struct intel_vgpu_fb_info *)obj->gvt_info;
50 if (WARN_ON(!fb_info)) 51 if (WARN_ON(!fb_info))
@@ -54,14 +55,15 @@ static int vgpu_gem_get_pages(
54 if (unlikely(!st)) 55 if (unlikely(!st))
55 return -ENOMEM; 56 return -ENOMEM;
56 57
57 ret = sg_alloc_table(st, fb_info->size, GFP_KERNEL); 58 page_num = obj->base.size >> PAGE_SHIFT;
59 ret = sg_alloc_table(st, page_num, GFP_KERNEL);
58 if (ret) { 60 if (ret) {
59 kfree(st); 61 kfree(st);
60 return ret; 62 return ret;
61 } 63 }
62 gtt_entries = (gen8_pte_t __iomem *)dev_priv->ggtt.gsm + 64 gtt_entries = (gen8_pte_t __iomem *)dev_priv->ggtt.gsm +
63 (fb_info->start >> PAGE_SHIFT); 65 (fb_info->start >> PAGE_SHIFT);
64 for_each_sg(st->sgl, sg, fb_info->size, i) { 66 for_each_sg(st->sgl, sg, page_num, i) {
65 sg->offset = 0; 67 sg->offset = 0;
66 sg->length = PAGE_SIZE; 68 sg->length = PAGE_SIZE;
67 sg_dma_address(sg) = 69 sg_dma_address(sg) =
@@ -158,7 +160,7 @@ static struct drm_i915_gem_object *vgpu_create_gem(struct drm_device *dev,
158 return NULL; 160 return NULL;
159 161
160 drm_gem_private_object_init(dev, &obj->base, 162 drm_gem_private_object_init(dev, &obj->base,
161 info->size << PAGE_SHIFT); 163 roundup(info->size, PAGE_SIZE));
162 i915_gem_object_init(obj, &intel_vgpu_gem_ops); 164 i915_gem_object_init(obj, &intel_vgpu_gem_ops);
163 165
164 obj->read_domains = I915_GEM_DOMAIN_GTT; 166 obj->read_domains = I915_GEM_DOMAIN_GTT;
@@ -206,11 +208,12 @@ static int vgpu_get_plane_info(struct drm_device *dev,
206 struct intel_vgpu_fb_info *info, 208 struct intel_vgpu_fb_info *info,
207 int plane_id) 209 int plane_id)
208{ 210{
209 struct drm_i915_private *dev_priv = to_i915(dev);
210 struct intel_vgpu_primary_plane_format p; 211 struct intel_vgpu_primary_plane_format p;
211 struct intel_vgpu_cursor_plane_format c; 212 struct intel_vgpu_cursor_plane_format c;
212 int ret, tile_height = 1; 213 int ret, tile_height = 1;
213 214
215 memset(info, 0, sizeof(*info));
216
214 if (plane_id == DRM_PLANE_TYPE_PRIMARY) { 217 if (plane_id == DRM_PLANE_TYPE_PRIMARY) {
215 ret = intel_vgpu_decode_primary_plane(vgpu, &p); 218 ret = intel_vgpu_decode_primary_plane(vgpu, &p);
216 if (ret) 219 if (ret)
@@ -267,8 +270,7 @@ static int vgpu_get_plane_info(struct drm_device *dev,
267 return -EINVAL; 270 return -EINVAL;
268 } 271 }
269 272
270 info->size = (info->stride * roundup(info->height, tile_height) 273 info->size = info->stride * roundup(info->height, tile_height);
271 + PAGE_SIZE - 1) >> PAGE_SHIFT;
272 if (info->size == 0) { 274 if (info->size == 0) {
273 gvt_vgpu_err("fb size is zero\n"); 275 gvt_vgpu_err("fb size is zero\n");
274 return -EINVAL; 276 return -EINVAL;
@@ -278,11 +280,6 @@ static int vgpu_get_plane_info(struct drm_device *dev,
278 gvt_vgpu_err("Not aligned fb address:0x%llx\n", info->start); 280 gvt_vgpu_err("Not aligned fb address:0x%llx\n", info->start);
279 return -EFAULT; 281 return -EFAULT;
280 } 282 }
281 if (((info->start >> PAGE_SHIFT) + info->size) >
282 ggtt_total_entries(&dev_priv->ggtt)) {
283 gvt_vgpu_err("Invalid GTT offset or size\n");
284 return -EFAULT;
285 }
286 283
287 if (!intel_gvt_ggtt_validate_range(vgpu, info->start, info->size)) { 284 if (!intel_gvt_ggtt_validate_range(vgpu, info->start, info->size)) {
288 gvt_vgpu_err("invalid gma addr\n"); 285 gvt_vgpu_err("invalid gma addr\n");
diff --git a/drivers/gpu/drm/i915/gvt/gtt.c b/drivers/gpu/drm/i915/gvt/gtt.c
index c2f7d20f6346..08c74e65836b 100644
--- a/drivers/gpu/drm/i915/gvt/gtt.c
+++ b/drivers/gpu/drm/i915/gvt/gtt.c
@@ -811,7 +811,7 @@ static int reclaim_one_ppgtt_mm(struct intel_gvt *gvt);
811 811
812/* Allocate shadow page table without guest page. */ 812/* Allocate shadow page table without guest page. */
813static struct intel_vgpu_ppgtt_spt *ppgtt_alloc_spt( 813static struct intel_vgpu_ppgtt_spt *ppgtt_alloc_spt(
814 struct intel_vgpu *vgpu, intel_gvt_gtt_type_t type) 814 struct intel_vgpu *vgpu, enum intel_gvt_gtt_type type)
815{ 815{
816 struct device *kdev = &vgpu->gvt->dev_priv->drm.pdev->dev; 816 struct device *kdev = &vgpu->gvt->dev_priv->drm.pdev->dev;
817 struct intel_vgpu_ppgtt_spt *spt = NULL; 817 struct intel_vgpu_ppgtt_spt *spt = NULL;
@@ -861,7 +861,7 @@ err_free_spt:
861 861
862/* Allocate shadow page table associated with specific gfn. */ 862/* Allocate shadow page table associated with specific gfn. */
863static struct intel_vgpu_ppgtt_spt *ppgtt_alloc_spt_gfn( 863static struct intel_vgpu_ppgtt_spt *ppgtt_alloc_spt_gfn(
864 struct intel_vgpu *vgpu, intel_gvt_gtt_type_t type, 864 struct intel_vgpu *vgpu, enum intel_gvt_gtt_type type,
865 unsigned long gfn, bool guest_pde_ips) 865 unsigned long gfn, bool guest_pde_ips)
866{ 866{
867 struct intel_vgpu_ppgtt_spt *spt; 867 struct intel_vgpu_ppgtt_spt *spt;
@@ -936,7 +936,7 @@ static int ppgtt_invalidate_spt_by_shadow_entry(struct intel_vgpu *vgpu,
936{ 936{
937 struct intel_gvt_gtt_pte_ops *ops = vgpu->gvt->gtt.pte_ops; 937 struct intel_gvt_gtt_pte_ops *ops = vgpu->gvt->gtt.pte_ops;
938 struct intel_vgpu_ppgtt_spt *s; 938 struct intel_vgpu_ppgtt_spt *s;
939 intel_gvt_gtt_type_t cur_pt_type; 939 enum intel_gvt_gtt_type cur_pt_type;
940 940
941 GEM_BUG_ON(!gtt_type_is_pt(get_next_pt_type(e->type))); 941 GEM_BUG_ON(!gtt_type_is_pt(get_next_pt_type(e->type)));
942 942
@@ -1076,6 +1076,9 @@ static struct intel_vgpu_ppgtt_spt *ppgtt_populate_spt_by_guest_entry(
1076 } else { 1076 } else {
1077 int type = get_next_pt_type(we->type); 1077 int type = get_next_pt_type(we->type);
1078 1078
1079 if (!gtt_type_is_pt(type))
1080 goto err;
1081
1079 spt = ppgtt_alloc_spt_gfn(vgpu, type, ops->get_pfn(we), ips); 1082 spt = ppgtt_alloc_spt_gfn(vgpu, type, ops->get_pfn(we), ips);
1080 if (IS_ERR(spt)) { 1083 if (IS_ERR(spt)) {
1081 ret = PTR_ERR(spt); 1084 ret = PTR_ERR(spt);
@@ -1855,7 +1858,7 @@ static void vgpu_free_mm(struct intel_vgpu_mm *mm)
1855 * Zero on success, negative error code in pointer if failed. 1858 * Zero on success, negative error code in pointer if failed.
1856 */ 1859 */
1857struct intel_vgpu_mm *intel_vgpu_create_ppgtt_mm(struct intel_vgpu *vgpu, 1860struct intel_vgpu_mm *intel_vgpu_create_ppgtt_mm(struct intel_vgpu *vgpu,
1858 intel_gvt_gtt_type_t root_entry_type, u64 pdps[]) 1861 enum intel_gvt_gtt_type root_entry_type, u64 pdps[])
1859{ 1862{
1860 struct intel_gvt *gvt = vgpu->gvt; 1863 struct intel_gvt *gvt = vgpu->gvt;
1861 struct intel_vgpu_mm *mm; 1864 struct intel_vgpu_mm *mm;
@@ -2309,7 +2312,7 @@ int intel_vgpu_emulate_ggtt_mmio_write(struct intel_vgpu *vgpu,
2309} 2312}
2310 2313
2311static int alloc_scratch_pages(struct intel_vgpu *vgpu, 2314static int alloc_scratch_pages(struct intel_vgpu *vgpu,
2312 intel_gvt_gtt_type_t type) 2315 enum intel_gvt_gtt_type type)
2313{ 2316{
2314 struct intel_vgpu_gtt *gtt = &vgpu->gtt; 2317 struct intel_vgpu_gtt *gtt = &vgpu->gtt;
2315 struct intel_gvt_gtt_pte_ops *ops = vgpu->gvt->gtt.pte_ops; 2318 struct intel_gvt_gtt_pte_ops *ops = vgpu->gvt->gtt.pte_ops;
@@ -2594,7 +2597,7 @@ struct intel_vgpu_mm *intel_vgpu_find_ppgtt_mm(struct intel_vgpu *vgpu,
2594 * Zero on success, negative error code if failed. 2597 * Zero on success, negative error code if failed.
2595 */ 2598 */
2596struct intel_vgpu_mm *intel_vgpu_get_ppgtt_mm(struct intel_vgpu *vgpu, 2599struct intel_vgpu_mm *intel_vgpu_get_ppgtt_mm(struct intel_vgpu *vgpu,
2597 intel_gvt_gtt_type_t root_entry_type, u64 pdps[]) 2600 enum intel_gvt_gtt_type root_entry_type, u64 pdps[])
2598{ 2601{
2599 struct intel_vgpu_mm *mm; 2602 struct intel_vgpu_mm *mm;
2600 2603
diff --git a/drivers/gpu/drm/i915/gvt/gtt.h b/drivers/gpu/drm/i915/gvt/gtt.h
index 32c573aea494..42d0394f0de2 100644
--- a/drivers/gpu/drm/i915/gvt/gtt.h
+++ b/drivers/gpu/drm/i915/gvt/gtt.h
@@ -95,8 +95,8 @@ struct intel_gvt_gtt {
95 unsigned long scratch_mfn; 95 unsigned long scratch_mfn;
96}; 96};
97 97
98typedef enum { 98enum intel_gvt_gtt_type {
99 GTT_TYPE_INVALID = -1, 99 GTT_TYPE_INVALID = 0,
100 100
101 GTT_TYPE_GGTT_PTE, 101 GTT_TYPE_GGTT_PTE,
102 102
@@ -124,7 +124,7 @@ typedef enum {
124 GTT_TYPE_PPGTT_PML4_PT, 124 GTT_TYPE_PPGTT_PML4_PT,
125 125
126 GTT_TYPE_MAX, 126 GTT_TYPE_MAX,
127} intel_gvt_gtt_type_t; 127};
128 128
129enum intel_gvt_mm_type { 129enum intel_gvt_mm_type {
130 INTEL_GVT_MM_GGTT, 130 INTEL_GVT_MM_GGTT,
@@ -148,7 +148,7 @@ struct intel_vgpu_mm {
148 148
149 union { 149 union {
150 struct { 150 struct {
151 intel_gvt_gtt_type_t root_entry_type; 151 enum intel_gvt_gtt_type root_entry_type;
152 /* 152 /*
153 * The 4 PDPs in ring context. For 48bit addressing, 153 * The 4 PDPs in ring context. For 48bit addressing,
154 * only PDP0 is valid and point to PML4. For 32it 154 * only PDP0 is valid and point to PML4. For 32it
@@ -169,7 +169,7 @@ struct intel_vgpu_mm {
169}; 169};
170 170
171struct intel_vgpu_mm *intel_vgpu_create_ppgtt_mm(struct intel_vgpu *vgpu, 171struct intel_vgpu_mm *intel_vgpu_create_ppgtt_mm(struct intel_vgpu *vgpu,
172 intel_gvt_gtt_type_t root_entry_type, u64 pdps[]); 172 enum intel_gvt_gtt_type root_entry_type, u64 pdps[]);
173 173
174static inline void intel_vgpu_mm_get(struct intel_vgpu_mm *mm) 174static inline void intel_vgpu_mm_get(struct intel_vgpu_mm *mm)
175{ 175{
@@ -233,7 +233,7 @@ struct intel_vgpu_ppgtt_spt {
233 struct intel_vgpu *vgpu; 233 struct intel_vgpu *vgpu;
234 234
235 struct { 235 struct {
236 intel_gvt_gtt_type_t type; 236 enum intel_gvt_gtt_type type;
237 bool pde_ips; /* for 64KB PTEs */ 237 bool pde_ips; /* for 64KB PTEs */
238 void *vaddr; 238 void *vaddr;
239 struct page *page; 239 struct page *page;
@@ -241,7 +241,7 @@ struct intel_vgpu_ppgtt_spt {
241 } shadow_page; 241 } shadow_page;
242 242
243 struct { 243 struct {
244 intel_gvt_gtt_type_t type; 244 enum intel_gvt_gtt_type type;
245 bool pde_ips; /* for 64KB PTEs */ 245 bool pde_ips; /* for 64KB PTEs */
246 unsigned long gfn; 246 unsigned long gfn;
247 unsigned long write_cnt; 247 unsigned long write_cnt;
@@ -267,7 +267,7 @@ struct intel_vgpu_mm *intel_vgpu_find_ppgtt_mm(struct intel_vgpu *vgpu,
267 u64 pdps[]); 267 u64 pdps[]);
268 268
269struct intel_vgpu_mm *intel_vgpu_get_ppgtt_mm(struct intel_vgpu *vgpu, 269struct intel_vgpu_mm *intel_vgpu_get_ppgtt_mm(struct intel_vgpu *vgpu,
270 intel_gvt_gtt_type_t root_entry_type, u64 pdps[]); 270 enum intel_gvt_gtt_type root_entry_type, u64 pdps[]);
271 271
272int intel_vgpu_put_ppgtt_mm(struct intel_vgpu *vgpu, u64 pdps[]); 272int intel_vgpu_put_ppgtt_mm(struct intel_vgpu *vgpu, u64 pdps[]);
273 273
diff --git a/drivers/gpu/drm/i915/gvt/handlers.c b/drivers/gpu/drm/i915/gvt/handlers.c
index 18f01eeb2510..90673fca792f 100644
--- a/drivers/gpu/drm/i915/gvt/handlers.c
+++ b/drivers/gpu/drm/i915/gvt/handlers.c
@@ -1206,7 +1206,7 @@ static int pvinfo_mmio_read(struct intel_vgpu *vgpu, unsigned int offset,
1206 1206
1207static int handle_g2v_notification(struct intel_vgpu *vgpu, int notification) 1207static int handle_g2v_notification(struct intel_vgpu *vgpu, int notification)
1208{ 1208{
1209 intel_gvt_gtt_type_t root_entry_type = GTT_TYPE_PPGTT_ROOT_L4_ENTRY; 1209 enum intel_gvt_gtt_type root_entry_type = GTT_TYPE_PPGTT_ROOT_L4_ENTRY;
1210 struct intel_vgpu_mm *mm; 1210 struct intel_vgpu_mm *mm;
1211 u64 *pdps; 1211 u64 *pdps;
1212 1212
@@ -3303,7 +3303,7 @@ void intel_gvt_clean_mmio_info(struct intel_gvt *gvt)
3303/* Special MMIO blocks. */ 3303/* Special MMIO blocks. */
3304static struct gvt_mmio_block mmio_blocks[] = { 3304static struct gvt_mmio_block mmio_blocks[] = {
3305 {D_SKL_PLUS, _MMIO(CSR_MMIO_START_RANGE), 0x3000, NULL, NULL}, 3305 {D_SKL_PLUS, _MMIO(CSR_MMIO_START_RANGE), 0x3000, NULL, NULL},
3306 {D_ALL, MCHBAR_MIRROR_REG_BASE, 0x4000, NULL, NULL}, 3306 {D_ALL, _MMIO(MCHBAR_MIRROR_BASE_SNB), 0x40000, NULL, NULL},
3307 {D_ALL, _MMIO(VGT_PVINFO_PAGE), VGT_PVINFO_SIZE, 3307 {D_ALL, _MMIO(VGT_PVINFO_PAGE), VGT_PVINFO_SIZE,
3308 pvinfo_mmio_read, pvinfo_mmio_write}, 3308 pvinfo_mmio_read, pvinfo_mmio_write},
3309 {D_ALL, LGC_PALETTE(PIPE_A, 0), 1024, NULL, NULL}, 3309 {D_ALL, LGC_PALETTE(PIPE_A, 0), 1024, NULL, NULL},
diff --git a/drivers/gpu/drm/i915/gvt/mmio_context.c b/drivers/gpu/drm/i915/gvt/mmio_context.c
index e7e14c842be4..edf6d646eb25 100644
--- a/drivers/gpu/drm/i915/gvt/mmio_context.c
+++ b/drivers/gpu/drm/i915/gvt/mmio_context.c
@@ -132,6 +132,7 @@ static struct engine_mmio gen9_engine_mmio_list[] __cacheline_aligned = {
132 132
133 {RCS0, GEN9_GAMT_ECO_REG_RW_IA, 0x0, false}, /* 0x4ab0 */ 133 {RCS0, GEN9_GAMT_ECO_REG_RW_IA, 0x0, false}, /* 0x4ab0 */
134 {RCS0, GEN9_CSFE_CHICKEN1_RCS, 0xffff, false}, /* 0x20d4 */ 134 {RCS0, GEN9_CSFE_CHICKEN1_RCS, 0xffff, false}, /* 0x20d4 */
135 {RCS0, _MMIO(0x20D8), 0xffff, true}, /* 0x20d8 */
135 136
136 {RCS0, GEN8_GARBCNTL, 0x0, false}, /* 0xb004 */ 137 {RCS0, GEN8_GARBCNTL, 0x0, false}, /* 0xb004 */
137 {RCS0, GEN7_FF_THREAD_MODE, 0x0, false}, /* 0x20a0 */ 138 {RCS0, GEN7_FF_THREAD_MODE, 0x0, false}, /* 0x20a0 */
diff --git a/drivers/gpu/drm/i915/gvt/reg.h b/drivers/gpu/drm/i915/gvt/reg.h
index 3de5b643b266..33aaa14bfdde 100644
--- a/drivers/gpu/drm/i915/gvt/reg.h
+++ b/drivers/gpu/drm/i915/gvt/reg.h
@@ -126,7 +126,4 @@
126#define RING_GFX_MODE(base) _MMIO((base) + 0x29c) 126#define RING_GFX_MODE(base) _MMIO((base) + 0x29c)
127#define VF_GUARDBAND _MMIO(0x83a4) 127#define VF_GUARDBAND _MMIO(0x83a4)
128 128
129/* define the effective range of MCHBAR register on Sandybridge+ */
130#define MCHBAR_MIRROR_REG_BASE _MMIO(MCHBAR_MIRROR_BASE_SNB + 0x4000)
131
132#endif 129#endif
diff --git a/drivers/gpu/drm/i915/gvt/scheduler.c b/drivers/gpu/drm/i915/gvt/scheduler.c
index 8998fa5ab198..7c99bbc3e2b8 100644
--- a/drivers/gpu/drm/i915/gvt/scheduler.c
+++ b/drivers/gpu/drm/i915/gvt/scheduler.c
@@ -1343,7 +1343,7 @@ static int prepare_mm(struct intel_vgpu_workload *workload)
1343 struct execlist_ctx_descriptor_format *desc = &workload->ctx_desc; 1343 struct execlist_ctx_descriptor_format *desc = &workload->ctx_desc;
1344 struct intel_vgpu_mm *mm; 1344 struct intel_vgpu_mm *mm;
1345 struct intel_vgpu *vgpu = workload->vgpu; 1345 struct intel_vgpu *vgpu = workload->vgpu;
1346 intel_gvt_gtt_type_t root_entry_type; 1346 enum intel_gvt_gtt_type root_entry_type;
1347 u64 pdps[GVT_RING_CTX_NR_PDPS]; 1347 u64 pdps[GVT_RING_CTX_NR_PDPS];
1348 1348
1349 switch (desc->addressing_mode) { 1349 switch (desc->addressing_mode) {