Lines Matching defs:wa_ctx
2874 static int scan_wa_ctx(struct intel_shadow_wa_ctx *wa_ctx)
2880 struct intel_vgpu_workload *workload = container_of(wa_ctx,
2882 wa_ctx);
2885 if (WARN_ON(!IS_ALIGNED(wa_ctx->indirect_ctx.guest_gma,
2889 ring_tail = wa_ctx->indirect_ctx.size + 3 * sizeof(u32);
2890 ring_size = round_up(wa_ctx->indirect_ctx.size + CACHELINE_BYTES,
2892 gma_head = wa_ctx->indirect_ctx.guest_gma;
2893 gma_tail = wa_ctx->indirect_ctx.guest_gma + ring_tail;
2899 s.ring_start = wa_ctx->indirect_ctx.guest_gma;
2903 s.rb_va = wa_ctx->indirect_ctx.shadow_va;
2912 wa_ctx->indirect_ctx.guest_gma, ring_size);
2995 static int shadow_indirect_ctx(struct intel_shadow_wa_ctx *wa_ctx)
2997 int ctx_size = wa_ctx->indirect_ctx.size;
2998 unsigned long guest_gma = wa_ctx->indirect_ctx.guest_gma;
2999 struct intel_vgpu_workload *workload = container_of(wa_ctx,
3001 wa_ctx);
3038 wa_ctx->indirect_ctx.obj = obj;
3039 wa_ctx->indirect_ctx.shadow_va = map;
3049 static int combine_wa_ctx(struct intel_shadow_wa_ctx *wa_ctx)
3054 if (!wa_ctx->per_ctx.valid)
3058 per_ctx_start[1] = wa_ctx->per_ctx.guest_gma;
3060 bb_start_sva = (unsigned char *)wa_ctx->indirect_ctx.shadow_va +
3061 wa_ctx->indirect_ctx.size;
3068 int intel_gvt_scan_and_shadow_wa_ctx(struct intel_shadow_wa_ctx *wa_ctx)
3071 struct intel_vgpu_workload *workload = container_of(wa_ctx,
3073 wa_ctx);
3076 if (wa_ctx->indirect_ctx.size == 0)
3079 ret = shadow_indirect_ctx(wa_ctx);
3085 combine_wa_ctx(wa_ctx);
3087 ret = scan_wa_ctx(wa_ctx);