]> git.baikalelectronics.ru Git - kernel.git/commitdiff
drm/i915/gvt: Use I915_GTT_PAGE_SIZE
authorZhi Wang <zhi.a.wang@intel.com>
Tue, 10 Oct 2017 05:51:32 +0000 (13:51 +0800)
committerZhenyu Wang <zhenyuw@linux.intel.com>
Thu, 16 Nov 2017 03:48:22 +0000 (11:48 +0800)
As there is already an I915_GTT_PAGE_SIZE marco in i915, let GVT-g use it
as well. Also this patch re-names some GTT marcos with additional prefix.

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

index 0204430836810a36c7495ccbedac3ee37b56d031..8c8514ee73ac0466c2844f3071c44bdb04a0c87b 100644 (file)
@@ -1396,7 +1396,7 @@ static inline int cmd_address_audit(struct parser_exec_state *s,
        }
 
        if (index_mode) {
-               if (guest_gma >= GTT_PAGE_SIZE / sizeof(u64)) {
+               if (guest_gma >= I915_GTT_PAGE_SIZE / sizeof(u64)) {
                        ret = -EFAULT;
                        goto err;
                }
@@ -1563,10 +1563,10 @@ static int copy_gma_to_hva(struct intel_vgpu *vgpu, struct intel_vgpu_mm *mm,
                        return -EFAULT;
                }
 
-               offset = gma & (GTT_PAGE_SIZE - 1);
+               offset = gma & (I915_GTT_PAGE_SIZE - 1);
 
-               copy_len = (end_gma - gma) >= (GTT_PAGE_SIZE - offset) ?
-                       GTT_PAGE_SIZE - offset : end_gma - gma;
+               copy_len = (end_gma - gma) >= (I915_GTT_PAGE_SIZE - offset) ?
+                       I915_GTT_PAGE_SIZE - offset : end_gma - gma;
 
                intel_gvt_hypervisor_read_gpa(vgpu, gpa, va + len, copy_len);
 
@@ -2540,7 +2540,7 @@ static int scan_workload(struct intel_vgpu_workload *workload)
        int ret = 0;
 
        /* ring base is page aligned */
-       if (WARN_ON(!IS_ALIGNED(workload->rb_start, GTT_PAGE_SIZE)))
+       if (WARN_ON(!IS_ALIGNED(workload->rb_start, I915_GTT_PAGE_SIZE)))
                return -EINVAL;
 
        gma_head = workload->rb_start + workload->rb_head;
@@ -2589,7 +2589,8 @@ static int scan_wa_ctx(struct intel_shadow_wa_ctx *wa_ctx)
                                wa_ctx);
 
        /* ring base is page aligned */
-       if (WARN_ON(!IS_ALIGNED(wa_ctx->indirect_ctx.guest_gma, GTT_PAGE_SIZE)))
+       if (WARN_ON(!IS_ALIGNED(wa_ctx->indirect_ctx.guest_gma,
+                                       I915_GTT_PAGE_SIZE)))
                return -EINVAL;
 
        ring_tail = wa_ctx->indirect_ctx.size + 3 * sizeof(uint32_t);
index bd3dc209cd8924473f5508d111c7a1ed4adb3567..c9cbd71be4c58c8608613bd6e28c98540e6d01f4 100644 (file)
@@ -94,12 +94,12 @@ int intel_gvt_ggtt_index_g2h(struct intel_vgpu *vgpu, unsigned long g_index,
        u64 h_addr;
        int ret;
 
-       ret = intel_gvt_ggtt_gmadr_g2h(vgpu, g_index << GTT_PAGE_SHIFT,
+       ret = intel_gvt_ggtt_gmadr_g2h(vgpu, g_index << I915_GTT_PAGE_SHIFT,
                                       &h_addr);
        if (ret)
                return ret;
 
-       *h_index = h_addr >> GTT_PAGE_SHIFT;
+       *h_index = h_addr >> I915_GTT_PAGE_SHIFT;
        return 0;
 }
 
@@ -109,12 +109,12 @@ int intel_gvt_ggtt_h2g_index(struct intel_vgpu *vgpu, unsigned long h_index,
        u64 g_addr;
        int ret;
 
-       ret = intel_gvt_ggtt_gmadr_h2g(vgpu, h_index << GTT_PAGE_SHIFT,
+       ret = intel_gvt_ggtt_gmadr_h2g(vgpu, h_index << I915_GTT_PAGE_SHIFT,
                                       &g_addr);
        if (ret)
                return ret;
 
-       *g_index = g_addr >> GTT_PAGE_SHIFT;
+       *g_index = g_addr >> I915_GTT_PAGE_SHIFT;
        return 0;
 }
 
@@ -382,7 +382,7 @@ static void gtt_entry_clear_present(struct intel_gvt_gtt_entry *e)
  */
 static unsigned long gma_to_ggtt_pte_index(unsigned long gma)
 {
-       unsigned long x = (gma >> GTT_PAGE_SHIFT);
+       unsigned long x = (gma >> I915_GTT_PAGE_SHIFT);
 
        trace_gma_index(__func__, gma, x);
        return x;
@@ -494,7 +494,7 @@ static inline int ppgtt_spt_get_entry(
                return -EINVAL;
 
        ret = ops->get_entry(page_table, e, index, guest,
-                       spt->guest_page.track.gfn << GTT_PAGE_SHIFT,
+                       spt->guest_page.track.gfn << I915_GTT_PAGE_SHIFT,
                        spt->vgpu);
        if (ret)
                return ret;
@@ -516,7 +516,7 @@ static inline int ppgtt_spt_set_entry(
                return -EINVAL;
 
        return ops->set_entry(page_table, e, index, guest,
-                       spt->guest_page.track.gfn << GTT_PAGE_SHIFT,
+                       spt->guest_page.track.gfn << I915_GTT_PAGE_SHIFT,
                        spt->vgpu);
 }
 
@@ -649,7 +649,7 @@ static inline int init_shadow_page(struct intel_vgpu *vgpu,
 
        INIT_HLIST_NODE(&p->node);
 
-       p->mfn = daddr >> GTT_PAGE_SHIFT;
+       p->mfn = daddr >> I915_GTT_PAGE_SHIFT;
        hash_add(vgpu->gtt.shadow_page_hash_table, &p->node, p->mfn);
        return 0;
 }
@@ -659,7 +659,7 @@ static inline void clean_shadow_page(struct intel_vgpu *vgpu,
 {
        struct device *kdev = &vgpu->gvt->dev_priv->drm.pdev->dev;
 
-       dma_unmap_page(kdev, p->mfn << GTT_PAGE_SHIFT, 4096,
+       dma_unmap_page(kdev, p->mfn << I915_GTT_PAGE_SHIFT, 4096,
                        PCI_DMA_BIDIRECTIONAL);
 
        if (!hlist_unhashed(&p->node))
@@ -818,7 +818,7 @@ static struct intel_vgpu_ppgtt_spt *ppgtt_find_shadow_page(
        ((spt)->vgpu->gvt->device_info.gtt_entry_size_shift)
 
 #define pt_entries(spt) \
-       (GTT_PAGE_SIZE >> pt_entry_size_shift(spt))
+       (I915_GTT_PAGE_SIZE >> pt_entry_size_shift(spt))
 
 #define for_each_present_guest_entry(spt, e, i) \
        for (i = 0; i < pt_entries(spt); i++) \
@@ -1101,8 +1101,8 @@ static int sync_oos_page(struct intel_vgpu *vgpu,
        old.type = new.type = get_entry_type(spt->guest_page_type);
        old.val64 = new.val64 = 0;
 
-       for (index = 0; index < (GTT_PAGE_SIZE >> info->gtt_entry_size_shift);
-               index++) {
+       for (index = 0; index < (I915_GTT_PAGE_SIZE >>
+                               info->gtt_entry_size_shift); index++) {
                ops->get_entry(oos_page->mem, &old, index, false, 0, vgpu);
                ops->get_entry(NULL, &new, index, true,
                        oos_page->guest_page->track.gfn << PAGE_SHIFT, vgpu);
@@ -1156,8 +1156,8 @@ static int attach_oos_page(struct intel_vgpu *vgpu,
        int ret;
 
        ret = intel_gvt_hypervisor_read_gpa(vgpu,
-                       gpt->track.gfn << GTT_PAGE_SHIFT,
-                       oos_page->mem, GTT_PAGE_SIZE);
+                       gpt->track.gfn << I915_GTT_PAGE_SHIFT,
+                       oos_page->mem, I915_GTT_PAGE_SIZE);
        if (ret)
                return ret;
 
@@ -1439,7 +1439,7 @@ static int gen8_mm_alloc_page_table(struct intel_vgpu_mm *mm)
                mm->shadow_page_table = mem + mm->page_table_entry_size;
        } else if (mm->type == INTEL_GVT_MM_GGTT) {
                mm->page_table_entry_cnt =
-                       (gvt_ggtt_gm_sz(gvt) >> GTT_PAGE_SHIFT);
+                       (gvt_ggtt_gm_sz(gvt) >> I915_GTT_PAGE_SHIFT);
                mm->page_table_entry_size = mm->page_table_entry_cnt *
                        info->gtt_entry_size;
                mem = vzalloc(mm->page_table_entry_size);
@@ -1761,8 +1761,8 @@ unsigned long intel_vgpu_gma_to_gpa(struct intel_vgpu_mm *mm, unsigned long gma)
                                gma_ops->gma_to_ggtt_pte_index(gma));
                if (ret)
                        goto err;
-               gpa = (pte_ops->get_pfn(&e) << GTT_PAGE_SHIFT)
-                       + (gma & ~GTT_PAGE_MASK);
+               gpa = (pte_ops->get_pfn(&e) << I915_GTT_PAGE_SHIFT)
+                       + (gma & ~I915_GTT_PAGE_MASK);
 
                trace_gma_translate(vgpu->id, "ggtt", 0, 0, gma, gpa);
                return gpa;
@@ -1814,8 +1814,8 @@ unsigned long intel_vgpu_gma_to_gpa(struct intel_vgpu_mm *mm, unsigned long gma)
                }
        }
 
-       gpa = (pte_ops->get_pfn(&e) << GTT_PAGE_SHIFT)
-               + (gma & ~GTT_PAGE_MASK);
+       gpa = (pte_ops->get_pfn(&e) << I915_GTT_PAGE_SHIFT)
+               + (gma & ~I915_GTT_PAGE_MASK);
 
        trace_gma_translate(vgpu->id, "ppgtt", 0,
                        mm->page_table_level, gma, gpa);
@@ -1883,7 +1883,7 @@ static int emulate_gtt_mmio_write(struct intel_vgpu *vgpu, unsigned int off,
        if (bytes != 4 && bytes != 8)
                return -EINVAL;
 
-       gma = g_gtt_index << GTT_PAGE_SHIFT;
+       gma = g_gtt_index << I915_GTT_PAGE_SHIFT;
 
        /* the VM may configure the whole GM space when ballooning is used */
        if (!vgpu_gmadr_is_valid(vgpu, gma))
@@ -1946,7 +1946,7 @@ static int alloc_scratch_pages(struct intel_vgpu *vgpu,
 {
        struct intel_vgpu_gtt *gtt = &vgpu->gtt;
        struct intel_gvt_gtt_pte_ops *ops = vgpu->gvt->gtt.pte_ops;
-       int page_entry_num = GTT_PAGE_SIZE >>
+       int page_entry_num = I915_GTT_PAGE_SIZE >>
                                vgpu->gvt->device_info.gtt_entry_size_shift;
        void *scratch_pt;
        int i;
@@ -1970,7 +1970,7 @@ static int alloc_scratch_pages(struct intel_vgpu *vgpu,
                return -ENOMEM;
        }
        gtt->scratch_pt[type].page_mfn =
-               (unsigned long)(daddr >> GTT_PAGE_SHIFT);
+               (unsigned long)(daddr >> I915_GTT_PAGE_SHIFT);
        gtt->scratch_pt[type].page = virt_to_page(scratch_pt);
        gvt_dbg_mm("vgpu%d create scratch_pt: type %d mfn=0x%lx\n",
                        vgpu->id, type, gtt->scratch_pt[type].page_mfn);
@@ -2013,7 +2013,7 @@ static int release_scratch_page_tree(struct intel_vgpu *vgpu)
        for (i = GTT_TYPE_PPGTT_PTE_PT; i < GTT_TYPE_MAX; i++) {
                if (vgpu->gtt.scratch_pt[i].page != NULL) {
                        daddr = (dma_addr_t)(vgpu->gtt.scratch_pt[i].page_mfn <<
-                                       GTT_PAGE_SHIFT);
+                                       I915_GTT_PAGE_SHIFT);
                        dma_unmap_page(dev, daddr, 4096, PCI_DMA_BIDIRECTIONAL);
                        __free_page(vgpu->gtt.scratch_pt[i].page);
                        vgpu->gtt.scratch_pt[i].page = NULL;
@@ -2310,7 +2310,8 @@ int intel_gvt_init_gtt(struct intel_gvt *gvt)
                return -ENOMEM;
        }
        gvt->gtt.scratch_ggtt_page = virt_to_page(page);
-       gvt->gtt.scratch_ggtt_mfn = (unsigned long)(daddr >> GTT_PAGE_SHIFT);
+       gvt->gtt.scratch_ggtt_mfn = (unsigned long)(daddr >>
+                       I915_GTT_PAGE_SHIFT);
 
        if (enable_out_of_sync) {
                ret = setup_spt_oos(gvt);
@@ -2337,7 +2338,7 @@ void intel_gvt_clean_gtt(struct intel_gvt *gvt)
 {
        struct device *dev = &gvt->dev_priv->drm.pdev->dev;
        dma_addr_t daddr = (dma_addr_t)(gvt->gtt.scratch_ggtt_mfn <<
-                                       GTT_PAGE_SHIFT);
+                                       I915_GTT_PAGE_SHIFT);
 
        dma_unmap_page(dev, daddr, 4096, PCI_DMA_BIDIRECTIONAL);
 
index bd9b298b87778b1e3f6fb8897f531505c1884fa3..80b2deb097ad9cc7838dae8f50cebe672ced18fd 100644 (file)
@@ -34,9 +34,8 @@
 #ifndef _GVT_GTT_H_
 #define _GVT_GTT_H_
 
-#define GTT_PAGE_SHIFT         12
-#define GTT_PAGE_SIZE          (1UL << GTT_PAGE_SHIFT)
-#define GTT_PAGE_MASK          (~(GTT_PAGE_SIZE-1))
+#define I915_GTT_PAGE_SHIFT         12
+#define I915_GTT_PAGE_MASK             (~(I915_GTT_PAGE_SIZE - 1))
 
 struct intel_vgpu_mm;
 
@@ -245,7 +244,7 @@ struct intel_vgpu_oos_page {
        struct list_head list;
        struct list_head vm_list;
        int id;
-       unsigned char mem[GTT_PAGE_SIZE];
+       unsigned char mem[I915_GTT_PAGE_SIZE];
 };
 
 #define GTT_ENTRY_NUM_IN_ONE_PAGE 512
index 83f2f63d7eebaa352e33c6743a39da320779a6ac..d4f7ce6dc1d738f0e31bead53e6d6cf45beb7cf4 100644 (file)
@@ -74,6 +74,7 @@
 #define RB_HEAD_OFF_MASK       ((1U << 21) - (1U << 2))
 #define RB_TAIL_OFF_MASK       ((1U << 21) - (1U << 3))
 #define RB_TAIL_SIZE_MASK      ((1U << 21) - (1U << 12))
-#define _RING_CTL_BUF_SIZE(ctl) (((ctl) & RB_TAIL_SIZE_MASK) + GTT_PAGE_SIZE)
+#define _RING_CTL_BUF_SIZE(ctl) (((ctl) & RB_TAIL_SIZE_MASK) + \
+               I915_GTT_PAGE_SIZE)
 
 #endif
index f2d4c90ea1d47b8bbac95431960a55390083706b..7a1ffaa9ae06d630a33ce54fc5725d976c4680a3 100644 (file)
@@ -81,7 +81,7 @@ static int populate_shadow_context(struct intel_vgpu_workload *workload)
        while (i < context_page_num) {
                context_gpa = intel_vgpu_gma_to_gpa(vgpu->gtt.ggtt_mm,
                                (u32)((workload->ctx_desc.lrca + i) <<
-                               GTT_PAGE_SHIFT));
+                               I915_GTT_PAGE_SHIFT));
                if (context_gpa == INTEL_GVT_INVALID_ADDR) {
                        gvt_vgpu_err("Invalid guest context descriptor\n");
                        return -EFAULT;
@@ -90,7 +90,7 @@ static int populate_shadow_context(struct intel_vgpu_workload *workload)
                page = i915_gem_object_get_page(ctx_obj, LRC_HEADER_PAGES + i);
                dst = kmap(page);
                intel_gvt_hypervisor_read_gpa(vgpu, context_gpa, dst,
-                               GTT_PAGE_SIZE);
+                               I915_GTT_PAGE_SIZE);
                kunmap(page);
                i++;
        }
@@ -120,7 +120,7 @@ static int populate_shadow_context(struct intel_vgpu_workload *workload)
                        sizeof(*shadow_ring_context),
                        (void *)shadow_ring_context +
                        sizeof(*shadow_ring_context),
-                       GTT_PAGE_SIZE - sizeof(*shadow_ring_context));
+                       I915_GTT_PAGE_SIZE - sizeof(*shadow_ring_context));
 
        kunmap(page);
        return 0;
@@ -635,7 +635,7 @@ static void update_guest_context(struct intel_vgpu_workload *workload)
        while (i < context_page_num) {
                context_gpa = intel_vgpu_gma_to_gpa(vgpu->gtt.ggtt_mm,
                                (u32)((workload->ctx_desc.lrca + i) <<
-                                       GTT_PAGE_SHIFT));
+                                       I915_GTT_PAGE_SHIFT));
                if (context_gpa == INTEL_GVT_INVALID_ADDR) {
                        gvt_vgpu_err("invalid guest context descriptor\n");
                        return;
@@ -644,7 +644,7 @@ static void update_guest_context(struct intel_vgpu_workload *workload)
                page = i915_gem_object_get_page(ctx_obj, LRC_HEADER_PAGES + i);
                src = kmap(page);
                intel_gvt_hypervisor_write_gpa(vgpu, context_gpa, src,
-                               GTT_PAGE_SIZE);
+                               I915_GTT_PAGE_SIZE);
                kunmap(page);
                i++;
        }
@@ -669,7 +669,7 @@ static void update_guest_context(struct intel_vgpu_workload *workload)
                        sizeof(*shadow_ring_context),
                        (void *)shadow_ring_context +
                        sizeof(*shadow_ring_context),
-                       GTT_PAGE_SIZE - sizeof(*shadow_ring_context));
+                       I915_GTT_PAGE_SIZE - sizeof(*shadow_ring_context));
 
        kunmap(page);
 }
@@ -1198,7 +1198,7 @@ intel_vgpu_create_workload(struct intel_vgpu *vgpu, int ring_id,
        int ret;
 
        ring_context_gpa = intel_vgpu_gma_to_gpa(vgpu->gtt.ggtt_mm,
-                       (u32)((desc->lrca + 1) << GTT_PAGE_SHIFT));
+                       (u32)((desc->lrca + 1) << I915_GTT_PAGE_SHIFT));
        if (ring_context_gpa == INTEL_GVT_INVALID_ADDR) {
                gvt_vgpu_err("invalid guest context LRCA: %x\n", desc->lrca);
                return ERR_PTR(-EINVAL);