diff options
author | Joonas Lahtinen <joonas.lahtinen@linux.intel.com> | 2019-05-07 08:29:14 -0400 |
---|---|---|
committer | Joonas Lahtinen <joonas.lahtinen@linux.intel.com> | 2019-05-07 08:29:15 -0400 |
commit | 23372cce8fe7ee98a6458fd3d035a55b87f0c6fe (patch) | |
tree | a4e9a0efdf9d929cbdf90edc934cfbe0b0ceb331 | |
parent | 2564fe708b580c1ef12b2b527ab6e8afe11ad444 (diff) | |
parent | 75fdb811d93c8aa4a9f73b63db032b1e6a8668ef (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.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/gvt/dmabuf.c | 19 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/gvt/gtt.c | 15 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/gvt/gtt.h | 16 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/gvt/handlers.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/gvt/mmio_context.c | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/gvt/reg.h | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/gvt/scheduler.c | 2 |
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, | |||
196 | int intel_gvt_debugfs_add_vgpu(struct intel_vgpu *vgpu) | 196 | int 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. */ |
813 | static struct intel_vgpu_ppgtt_spt *ppgtt_alloc_spt( | 813 | static 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. */ |
863 | static struct intel_vgpu_ppgtt_spt *ppgtt_alloc_spt_gfn( | 863 | static 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 | */ |
1857 | struct intel_vgpu_mm *intel_vgpu_create_ppgtt_mm(struct intel_vgpu *vgpu, | 1860 | struct 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 | ||
2311 | static int alloc_scratch_pages(struct intel_vgpu *vgpu, | 2314 | static 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 | */ |
2596 | struct intel_vgpu_mm *intel_vgpu_get_ppgtt_mm(struct intel_vgpu *vgpu, | 2599 | struct 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 | ||
98 | typedef enum { | 98 | enum 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 | ||
129 | enum intel_gvt_mm_type { | 129 | enum 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 | ||
171 | struct intel_vgpu_mm *intel_vgpu_create_ppgtt_mm(struct intel_vgpu *vgpu, | 171 | struct 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 | ||
174 | static inline void intel_vgpu_mm_get(struct intel_vgpu_mm *mm) | 174 | static 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 | ||
269 | struct intel_vgpu_mm *intel_vgpu_get_ppgtt_mm(struct intel_vgpu *vgpu, | 269 | struct 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 | ||
272 | int intel_vgpu_put_ppgtt_mm(struct intel_vgpu *vgpu, u64 pdps[]); | 272 | int 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 | ||
1207 | static int handle_g2v_notification(struct intel_vgpu *vgpu, int notification) | 1207 | static 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. */ |
3304 | static struct gvt_mmio_block mmio_blocks[] = { | 3304 | static 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) { |