Lines Matching refs:afu

36 int cxl_afu_slbia(struct cxl_afu *afu)  in cxl_afu_slbia()  argument
41 cxl_p2n_write(afu, CXL_SLBIA_An, CXL_TLB_SLB_IQ_ALL); in cxl_afu_slbia()
42 while (cxl_p2n_read(afu, CXL_SLBIA_An) & CXL_TLB_SLB_P) { in cxl_afu_slbia()
44 dev_warn(&afu->dev, "WARNING: CXL AFU SLBIA timed out!\n"); in cxl_afu_slbia()
50 if (!cxl_ops->link_ok(afu->adapter, afu)) in cxl_afu_slbia()
65 ctx->afu->adapter->adapter_num, ctx->afu->slice, ctx->pe); in _cxl_slbia()
72 cxl_afu_slbia(ctx->afu); in _cxl_slbia()
78 struct cxl_afu *afu; in cxl_slbia_core() local
89 afu = adapter->afu[slice]; in cxl_slbia_core()
90 if (!afu || !afu->enabled) in cxl_slbia_core()
93 idr_for_each_entry(&afu->contexts_idr, ctx, id) in cxl_slbia_core()
245 struct cxl_afu *afu; in cxl_alloc_afu() local
247 if (!(afu = kzalloc(sizeof(struct cxl_afu), GFP_KERNEL))) in cxl_alloc_afu()
250 afu->adapter = adapter; in cxl_alloc_afu()
251 afu->dev.parent = &adapter->dev; in cxl_alloc_afu()
252 afu->dev.release = cxl_ops->release_afu; in cxl_alloc_afu()
253 afu->slice = slice; in cxl_alloc_afu()
254 idr_init(&afu->contexts_idr); in cxl_alloc_afu()
255 mutex_init(&afu->contexts_lock); in cxl_alloc_afu()
256 spin_lock_init(&afu->afu_cntl_lock); in cxl_alloc_afu()
257 atomic_set(&afu->configured_state, -1); in cxl_alloc_afu()
258 afu->prefault_mode = CXL_PREFAULT_NONE; in cxl_alloc_afu()
259 afu->irqs_max = afu->adapter->user_irqs; in cxl_alloc_afu()
261 return afu; in cxl_alloc_afu()
264 int cxl_afu_select_best_mode(struct cxl_afu *afu) in cxl_afu_select_best_mode() argument
266 if (afu->modes_supported & CXL_MODE_DIRECTED) in cxl_afu_select_best_mode()
267 return cxl_ops->afu_activate_mode(afu, CXL_MODE_DIRECTED); in cxl_afu_select_best_mode()
269 if (afu->modes_supported & CXL_MODE_DEDICATED) in cxl_afu_select_best_mode()
270 return cxl_ops->afu_activate_mode(afu, CXL_MODE_DEDICATED); in cxl_afu_select_best_mode()
272 dev_warn(&afu->dev, "No supported programming modes available\n"); in cxl_afu_select_best_mode()