Lines Matching defs:adev

41  * @adev: amdgpu_device pointer
46 static inline u64 amdgpu_seq64_get_va_base(struct amdgpu_device *adev)
48 return AMDGPU_VA_RESERVED_SEQ64_START(adev);
54 * @adev: amdgpu_device pointer
63 int amdgpu_seq64_map(struct amdgpu_device *adev, struct amdgpu_vm *vm,
71 bo = adev->seq64.sbo;
85 *bo_va = amdgpu_vm_bo_add(adev, vm, bo);
91 seq64_addr = amdgpu_seq64_get_va_base(adev);
92 r = amdgpu_vm_bo_map(adev, *bo_va, seq64_addr, 0, AMDGPU_VA_RESERVED_SEQ64_SIZE,
96 amdgpu_vm_bo_del(adev, *bo_va);
100 r = amdgpu_vm_bo_update(adev, *bo_va, false);
103 amdgpu_vm_bo_del(adev, *bo_va);
115 * @adev: amdgpu_device pointer
120 void amdgpu_seq64_unmap(struct amdgpu_device *adev, struct amdgpu_fpriv *fpriv)
130 bo = adev->seq64.sbo;
146 amdgpu_vm_bo_del(adev, fpriv->seq64_va);
157 * @adev: amdgpu_device pointer
166 int amdgpu_seq64_alloc(struct amdgpu_device *adev, u64 *va, u64 **cpu_addr)
170 bit_pos = find_first_zero_bit(adev->seq64.used, adev->seq64.num_sem);
171 if (bit_pos >= adev->seq64.num_sem)
174 __set_bit(bit_pos, adev->seq64.used);
175 *va = bit_pos * sizeof(u64) + amdgpu_seq64_get_va_base(adev);
176 *cpu_addr = bit_pos + adev->seq64.cpu_base_addr;
184 * @adev: amdgpu_device pointer
189 void amdgpu_seq64_free(struct amdgpu_device *adev, u64 va)
193 bit_pos = (va - amdgpu_seq64_get_va_base(adev)) / sizeof(u64);
194 if (bit_pos < adev->seq64.num_sem)
195 __clear_bit(bit_pos, adev->seq64.used);
201 * @adev: amdgpu_device pointer
206 void amdgpu_seq64_fini(struct amdgpu_device *adev)
208 amdgpu_bo_free_kernel(&adev->seq64.sbo,
210 (void **)&adev->seq64.cpu_base_addr);
216 * @adev: amdgpu_device pointer
223 int amdgpu_seq64_init(struct amdgpu_device *adev)
227 if (adev->seq64.sbo)
234 r = amdgpu_bo_create_kernel(adev, AMDGPU_VA_RESERVED_SEQ64_SIZE,
236 &adev->seq64.sbo, NULL,
237 (void **)&adev->seq64.cpu_base_addr);
239 dev_warn(adev->dev, "(%d) create seq64 failed\n", r);
243 memset(adev->seq64.cpu_base_addr, 0, AMDGPU_VA_RESERVED_SEQ64_SIZE);
245 adev->seq64.num_sem = AMDGPU_MAX_SEQ64_SLOTS;
246 memset(&adev->seq64.used, 0, sizeof(adev->seq64.used));