Lines Matching refs:afu
7 int ocxl_context_alloc(struct ocxl_context **context, struct ocxl_afu *afu,
17 ctx->afu = afu;
18 mutex_lock(&afu->contexts_lock);
19 pasid = idr_alloc(&afu->contexts_idr, ctx, afu->pasid_base,
20 afu->pasid_base + afu->pasid_max, GFP_KERNEL);
22 mutex_unlock(&afu->contexts_lock);
26 afu->pasid_count++;
27 mutex_unlock(&afu->contexts_lock);
44 ocxl_afu_get(afu);
85 dev = to_pci_dev(ctx->afu->fn->dev.parent);
86 rc = ocxl_link_add_pe(ctx->afu->fn->link, ctx->pasid, pidr, ctx->tidr,
118 if (offset >= ctx->afu->config.pp_mmio_stride)
129 pasid_off = ctx->pasid - ctx->afu->pasid_base;
130 pp_mmio_addr = ctx->afu->pp_mmio_start +
131 pasid_off * ctx->afu->config.pp_mmio_stride +
150 if (offset < ctx->afu->irq_base_offset)
191 (ctx->afu->config.pp_mmio_stride >> PAGE_SHIFT))
200 if ((vma->vm_pgoff << PAGE_SHIFT) < ctx->afu->irq_base_offset)
227 dev = to_pci_dev(ctx->afu->fn->dev.parent);
228 afu_control_pos = ctx->afu->config.dvsec_afu_control_pos;
230 mutex_lock(&ctx->afu->afu_control_lock);
232 mutex_unlock(&ctx->afu->afu_control_lock);
251 rc = ocxl_link_remove_pe(ctx->afu->fn->link, ctx->pasid);
260 void ocxl_context_detach_all(struct ocxl_afu *afu)
265 mutex_lock(&afu->contexts_lock);
266 idr_for_each_entry(&afu->contexts_idr, ctx, tmp) {
280 mutex_unlock(&afu->contexts_lock);
285 mutex_lock(&ctx->afu->contexts_lock);
286 ctx->afu->pasid_count--;
287 idr_remove(&ctx->afu->contexts_idr, ctx->pasid);
288 mutex_unlock(&ctx->afu->contexts_lock);
293 ocxl_afu_put(ctx->afu);