Lines Matching refs:f

46 static const char *amdgpu_tlb_fence_get_timeline_name(struct dma_fence *f)  in amdgpu_tlb_fence_get_timeline_name()  argument
53 struct amdgpu_tlb_fence *f = container_of(work, typeof(*f), work); in amdgpu_tlb_fence_work() local
56 if (f->dependency) { in amdgpu_tlb_fence_work()
57 dma_fence_wait(f->dependency, false); in amdgpu_tlb_fence_work()
58 dma_fence_put(f->dependency); in amdgpu_tlb_fence_work()
59 f->dependency = NULL; in amdgpu_tlb_fence_work()
62 r = amdgpu_gmc_flush_gpu_tlb_pasid(f->adev, f->pasid, 2, true, 0); in amdgpu_tlb_fence_work()
64 dev_err(f->adev->dev, "TLB flush failed for PASID %d.\n", in amdgpu_tlb_fence_work()
65 f->pasid); in amdgpu_tlb_fence_work()
66 dma_fence_set_error(&f->base, r); in amdgpu_tlb_fence_work()
69 dma_fence_signal(&f->base); in amdgpu_tlb_fence_work()
70 dma_fence_put(&f->base); in amdgpu_tlb_fence_work()
81 struct amdgpu_tlb_fence *f; in amdgpu_vm_tlb_fence_create() local
83 f = kmalloc(sizeof(*f), GFP_KERNEL); in amdgpu_vm_tlb_fence_create()
84 if (!f) { in amdgpu_vm_tlb_fence_create()
97 f->adev = adev; in amdgpu_vm_tlb_fence_create()
98 f->dependency = *fence; in amdgpu_vm_tlb_fence_create()
99 f->pasid = vm->pasid; in amdgpu_vm_tlb_fence_create()
100 INIT_WORK(&f->work, amdgpu_tlb_fence_work); in amdgpu_vm_tlb_fence_create()
101 spin_lock_init(&f->lock); in amdgpu_vm_tlb_fence_create()
103 dma_fence_init64(&f->base, &amdgpu_tlb_fence_ops, &f->lock, in amdgpu_vm_tlb_fence_create()
107 dma_fence_get(&f->base); in amdgpu_vm_tlb_fence_create()
108 schedule_work(&f->work); in amdgpu_vm_tlb_fence_create()
110 *fence = &f->base; in amdgpu_vm_tlb_fence_create()