Lines Matching refs:afu
35 int cxl_context_init(struct cxl_context *ctx, struct cxl_afu *afu, bool master)
39 ctx->afu = afu;
92 mutex_lock(&afu->contexts_lock);
94 i = idr_alloc(&ctx->afu->contexts_idr, ctx, 0,
95 ctx->afu->num_procs, GFP_NOWAIT);
97 mutex_unlock(&afu->contexts_lock);
103 ctx->elem = &ctx->afu->native->spa[i];
111 * take a ref on the afu so that it stays alive at-least till
114 cxl_afu_get(afu);
138 if (ctx->afu->current_mode == CXL_MODE_DEDICATED) {
139 area = ctx->afu->psn_phys;
140 if (offset >= ctx->afu->adapter->ps_size)
187 if (ctx->afu->current_mode == CXL_MODE_DEDICATED) {
188 if (start + len > ctx->afu->adapter->ps_size)
196 if (ctx->master && !ctx->afu->psa) {
202 if (!ctx->afu->enabled)
210 if ((ctx->master && !ctx->afu->psa) || (!ctx->afu->pp_psa)) {
216 if (!ctx->afu->enabled)
249 cxl_ops->link_ok(ctx->afu->adapter, ctx->afu));
265 cxl_adapter_context_put(ctx->afu->adapter);
297 void cxl_context_detach_all(struct cxl_afu *afu)
302 mutex_lock(&afu->contexts_lock);
303 idr_for_each_entry(&afu->contexts_idr, ctx, tmp) {
321 mutex_unlock(&afu->contexts_lock);
336 /* Drop ref to the afu device taken during cxl_context_init */
337 cxl_afu_put(ctx->afu);
346 mutex_lock(&ctx->afu->contexts_lock);
347 idr_remove(&ctx->afu->contexts_idr, ctx->pe);
348 mutex_unlock(&ctx->afu->contexts_lock);