Lines Matching refs:drv_ctx
126 ret = qman_enqueue(req->drv_ctx->req_fq, &fd); in caam_qi_enqueue()
163 dma_unmap_single(drv_req->drv_ctx->qidev, qm_fd_addr(fd), in caam_fq_ern_cb()
315 int caam_drv_ctx_update(struct caam_drv_ctx *drv_ctx, u32 *sh_desc) in caam_drv_ctx_update() argument
320 struct device *qidev = drv_ctx->qidev; in caam_drv_ctx_update()
329 old_fq = drv_ctx->req_fq; in caam_drv_ctx_update()
332 new_fq = create_caam_req_fq(drv_ctx->qidev, drv_ctx->rsp_fq, in caam_drv_ctx_update()
333 drv_ctx->context_a, 0); in caam_drv_ctx_update()
340 drv_ctx->req_fq = new_fq; in caam_drv_ctx_update()
348 drv_ctx->req_fq = old_fq; in caam_drv_ctx_update()
360 drv_ctx->prehdr[0] = cpu_to_caam32((1 << PREHDR_RSLS_SHIFT) | in caam_drv_ctx_update()
362 drv_ctx->prehdr[1] = cpu_to_caam32(PREHDR_ABS); in caam_drv_ctx_update()
363 memcpy(drv_ctx->sh_desc, sh_desc, desc_bytes(sh_desc)); in caam_drv_ctx_update()
364 dma_sync_single_for_device(qidev, drv_ctx->context_a, in caam_drv_ctx_update()
365 sizeof(drv_ctx->sh_desc) + in caam_drv_ctx_update()
366 sizeof(drv_ctx->prehdr), in caam_drv_ctx_update()
379 drv_ctx->req_fq = old_fq; in caam_drv_ctx_update()
398 struct caam_drv_ctx *drv_ctx; in caam_drv_ctx_init() local
408 drv_ctx = kzalloc(sizeof(*drv_ctx), GFP_ATOMIC); in caam_drv_ctx_init()
409 if (!drv_ctx) in caam_drv_ctx_init()
416 drv_ctx->prehdr[0] = cpu_to_caam32((1 << PREHDR_RSLS_SHIFT) | in caam_drv_ctx_init()
418 drv_ctx->prehdr[1] = cpu_to_caam32(PREHDR_ABS); in caam_drv_ctx_init()
419 memcpy(drv_ctx->sh_desc, sh_desc, desc_bytes(sh_desc)); in caam_drv_ctx_init()
420 size = sizeof(drv_ctx->prehdr) + sizeof(drv_ctx->sh_desc); in caam_drv_ctx_init()
421 hwdesc = dma_map_single(qidev, drv_ctx->prehdr, size, in caam_drv_ctx_init()
425 kfree(drv_ctx); in caam_drv_ctx_init()
428 drv_ctx->context_a = hwdesc; in caam_drv_ctx_init()
441 drv_ctx->cpu = *cpu; in caam_drv_ctx_init()
444 drv_ctx->rsp_fq = per_cpu(pcpu_qipriv.rsp_fq, drv_ctx->cpu); in caam_drv_ctx_init()
447 drv_ctx->req_fq = create_caam_req_fq(qidev, drv_ctx->rsp_fq, hwdesc, in caam_drv_ctx_init()
449 if (IS_ERR(drv_ctx->req_fq)) { in caam_drv_ctx_init()
452 kfree(drv_ctx); in caam_drv_ctx_init()
456 drv_ctx->qidev = qidev; in caam_drv_ctx_init()
457 return drv_ctx; in caam_drv_ctx_init()
487 void caam_drv_ctx_rel(struct caam_drv_ctx *drv_ctx) in caam_drv_ctx_rel() argument
489 if (IS_ERR_OR_NULL(drv_ctx)) in caam_drv_ctx_rel()
493 if (kill_fq(drv_ctx->qidev, drv_ctx->req_fq)) in caam_drv_ctx_rel()
494 dev_err(drv_ctx->qidev, "Crypto session req FQ kill failed\n"); in caam_drv_ctx_rel()
496 dma_unmap_single(drv_ctx->qidev, drv_ctx->context_a, in caam_drv_ctx_rel()
497 sizeof(drv_ctx->sh_desc) + sizeof(drv_ctx->prehdr), in caam_drv_ctx_rel()
499 kfree(drv_ctx); in caam_drv_ctx_rel()
597 dma_unmap_single(drv_req->drv_ctx->qidev, qm_fd_addr(fd), in caam_rsp_fq_dqrr_cb()