Lines Matching full:bb
506 struct intel_vgpu_shadow_bb *bb; in prepare_shadow_batch_buffer() local
509 list_for_each_entry(bb, &workload->shadow_bb, list) { in prepare_shadow_batch_buffer()
517 if (bb->bb_offset) in prepare_shadow_batch_buffer()
518 bb->bb_start_cmd_va = workload->shadow_ring_buffer_va in prepare_shadow_batch_buffer()
519 + bb->bb_offset; in prepare_shadow_batch_buffer()
522 * For non-priv bb, scan&shadow is only for in prepare_shadow_batch_buffer()
523 * debugging purpose, so the content of shadow bb in prepare_shadow_batch_buffer()
524 * is the same as original bb. Therefore, in prepare_shadow_batch_buffer()
525 * here, rather than switch to shadow bb's gma in prepare_shadow_batch_buffer()
527 * gma address, and send original bb to hardware in prepare_shadow_batch_buffer()
530 if (!bb->ppgtt) { in prepare_shadow_batch_buffer()
531 bb->vma = i915_gem_object_ggtt_pin(bb->obj, in prepare_shadow_batch_buffer()
533 if (IS_ERR(bb->vma)) { in prepare_shadow_batch_buffer()
534 ret = PTR_ERR(bb->vma); in prepare_shadow_batch_buffer()
539 bb->bb_start_cmd_va[1] = i915_ggtt_offset(bb->vma); in prepare_shadow_batch_buffer()
541 bb->bb_start_cmd_va[2] = 0; in prepare_shadow_batch_buffer()
543 ret = i915_vma_move_to_active(bb->vma, in prepare_shadow_batch_buffer()
550 /* No one is going to touch shadow bb from now on. */ in prepare_shadow_batch_buffer()
551 i915_gem_object_flush_map(bb->obj); in prepare_shadow_batch_buffer()
612 struct intel_vgpu_shadow_bb *bb, *pos; in release_shadow_batch_buffer() local
617 bb = list_first_entry(&workload->shadow_bb, in release_shadow_batch_buffer()
620 list_for_each_entry_safe(bb, pos, &workload->shadow_bb, list) { in release_shadow_batch_buffer()
621 if (bb->obj) { in release_shadow_batch_buffer()
622 if (bb->va && !IS_ERR(bb->va)) in release_shadow_batch_buffer()
623 i915_gem_object_unpin_map(bb->obj); in release_shadow_batch_buffer()
625 if (bb->vma && !IS_ERR(bb->vma)) in release_shadow_batch_buffer()
626 i915_vma_unpin(bb->vma); in release_shadow_batch_buffer()
628 i915_gem_object_put(bb->obj); in release_shadow_batch_buffer()
630 list_del(&bb->list); in release_shadow_batch_buffer()
631 kfree(bb); in release_shadow_batch_buffer()