Lines Matching refs:req
42 struct skcipher_request *req) in mv_cesa_skcipher_req_iter_init() argument
44 mv_cesa_req_dma_iter_init(&iter->base, req->cryptlen); in mv_cesa_skcipher_req_iter_init()
45 mv_cesa_sg_dma_iter_init(&iter->src, req->src, DMA_TO_DEVICE); in mv_cesa_skcipher_req_iter_init()
46 mv_cesa_sg_dma_iter_init(&iter->dst, req->dst, DMA_FROM_DEVICE); in mv_cesa_skcipher_req_iter_init()
59 mv_cesa_skcipher_dma_cleanup(struct skcipher_request *req) in mv_cesa_skcipher_dma_cleanup() argument
61 struct mv_cesa_skcipher_req *creq = skcipher_request_ctx(req); in mv_cesa_skcipher_dma_cleanup()
63 if (req->dst != req->src) { in mv_cesa_skcipher_dma_cleanup()
64 dma_unmap_sg(cesa_dev->dev, req->dst, creq->dst_nents, in mv_cesa_skcipher_dma_cleanup()
66 dma_unmap_sg(cesa_dev->dev, req->src, creq->src_nents, in mv_cesa_skcipher_dma_cleanup()
69 dma_unmap_sg(cesa_dev->dev, req->src, creq->src_nents, in mv_cesa_skcipher_dma_cleanup()
75 static inline void mv_cesa_skcipher_cleanup(struct skcipher_request *req) in mv_cesa_skcipher_cleanup() argument
77 struct mv_cesa_skcipher_req *creq = skcipher_request_ctx(req); in mv_cesa_skcipher_cleanup()
81 mv_cesa_skcipher_dma_cleanup(req); in mv_cesa_skcipher_cleanup()
83 atomic_sub(req->cryptlen, &engine->load); in mv_cesa_skcipher_cleanup()
86 static void mv_cesa_skcipher_std_step(struct skcipher_request *req) in mv_cesa_skcipher_std_step() argument
88 struct mv_cesa_skcipher_req *creq = skcipher_request_ctx(req); in mv_cesa_skcipher_std_step()
91 size_t len = min_t(size_t, req->cryptlen - sreq->offset, in mv_cesa_skcipher_std_step()
100 len = mv_cesa_sg_copy_to_sram(engine, req->src, creq->src_nents, in mv_cesa_skcipher_std_step()
126 static int mv_cesa_skcipher_std_process(struct skcipher_request *req, in mv_cesa_skcipher_std_process() argument
129 struct mv_cesa_skcipher_req *creq = skcipher_request_ctx(req); in mv_cesa_skcipher_std_process()
134 len = mv_cesa_sg_copy_from_sram(engine, req->dst, creq->dst_nents, in mv_cesa_skcipher_std_process()
139 if (sreq->offset < req->cryptlen) in mv_cesa_skcipher_std_process()
145 static int mv_cesa_skcipher_process(struct crypto_async_request *req, in mv_cesa_skcipher_process() argument
148 struct skcipher_request *skreq = skcipher_request_cast(req); in mv_cesa_skcipher_process()
158 static void mv_cesa_skcipher_step(struct crypto_async_request *req) in mv_cesa_skcipher_step() argument
160 struct skcipher_request *skreq = skcipher_request_cast(req); in mv_cesa_skcipher_step()
170 mv_cesa_skcipher_dma_prepare(struct skcipher_request *req) in mv_cesa_skcipher_dma_prepare() argument
172 struct mv_cesa_skcipher_req *creq = skcipher_request_ctx(req); in mv_cesa_skcipher_dma_prepare()
179 mv_cesa_skcipher_std_prepare(struct skcipher_request *req) in mv_cesa_skcipher_std_prepare() argument
181 struct mv_cesa_skcipher_req *creq = skcipher_request_ctx(req); in mv_cesa_skcipher_std_prepare()
188 static inline void mv_cesa_skcipher_prepare(struct crypto_async_request *req, in mv_cesa_skcipher_prepare() argument
191 struct skcipher_request *skreq = skcipher_request_cast(req); in mv_cesa_skcipher_prepare()
203 mv_cesa_skcipher_req_cleanup(struct crypto_async_request *req) in mv_cesa_skcipher_req_cleanup() argument
205 struct skcipher_request *skreq = skcipher_request_cast(req); in mv_cesa_skcipher_req_cleanup()
211 mv_cesa_skcipher_complete(struct crypto_async_request *req) in mv_cesa_skcipher_complete() argument
213 struct skcipher_request *skreq = skcipher_request_cast(req); in mv_cesa_skcipher_complete()
314 static int mv_cesa_skcipher_dma_req_init(struct skcipher_request *req, in mv_cesa_skcipher_dma_req_init() argument
317 struct mv_cesa_skcipher_req *creq = skcipher_request_ctx(req); in mv_cesa_skcipher_dma_req_init()
318 gfp_t flags = (req->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP) ? in mv_cesa_skcipher_dma_req_init()
328 if (req->src != req->dst) { in mv_cesa_skcipher_dma_req_init()
329 ret = dma_map_sg(cesa_dev->dev, req->src, creq->src_nents, in mv_cesa_skcipher_dma_req_init()
334 ret = dma_map_sg(cesa_dev->dev, req->dst, creq->dst_nents, in mv_cesa_skcipher_dma_req_init()
341 ret = dma_map_sg(cesa_dev->dev, req->src, creq->src_nents, in mv_cesa_skcipher_dma_req_init()
348 mv_cesa_skcipher_req_iter_init(&iter, req); in mv_cesa_skcipher_dma_req_init()
397 if (req->dst != req->src) in mv_cesa_skcipher_dma_req_init()
398 dma_unmap_sg(cesa_dev->dev, req->dst, creq->dst_nents, in mv_cesa_skcipher_dma_req_init()
402 dma_unmap_sg(cesa_dev->dev, req->src, creq->src_nents, in mv_cesa_skcipher_dma_req_init()
403 req->dst != req->src ? DMA_TO_DEVICE : DMA_BIDIRECTIONAL); in mv_cesa_skcipher_dma_req_init()
409 mv_cesa_skcipher_std_req_init(struct skcipher_request *req, in mv_cesa_skcipher_std_req_init() argument
412 struct mv_cesa_skcipher_req *creq = skcipher_request_ctx(req); in mv_cesa_skcipher_std_req_init()
424 static int mv_cesa_skcipher_req_init(struct skcipher_request *req, in mv_cesa_skcipher_req_init() argument
427 struct mv_cesa_skcipher_req *creq = skcipher_request_ctx(req); in mv_cesa_skcipher_req_init()
428 struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req); in mv_cesa_skcipher_req_init()
432 if (!IS_ALIGNED(req->cryptlen, blksize)) in mv_cesa_skcipher_req_init()
435 creq->src_nents = sg_nents_for_len(req->src, req->cryptlen); in mv_cesa_skcipher_req_init()
440 creq->dst_nents = sg_nents_for_len(req->dst, req->cryptlen); in mv_cesa_skcipher_req_init()
450 ret = mv_cesa_skcipher_dma_req_init(req, tmpl); in mv_cesa_skcipher_req_init()
452 ret = mv_cesa_skcipher_std_req_init(req, tmpl); in mv_cesa_skcipher_req_init()
457 static int mv_cesa_skcipher_queue_req(struct skcipher_request *req, in mv_cesa_skcipher_queue_req() argument
461 struct mv_cesa_skcipher_req *creq = skcipher_request_ctx(req); in mv_cesa_skcipher_queue_req()
464 if (!req->cryptlen) in mv_cesa_skcipher_queue_req()
467 ret = mv_cesa_skcipher_req_init(req, tmpl); in mv_cesa_skcipher_queue_req()
471 engine = mv_cesa_select_engine(req->cryptlen); in mv_cesa_skcipher_queue_req()
472 mv_cesa_skcipher_prepare(&req->base, engine); in mv_cesa_skcipher_queue_req()
474 ret = mv_cesa_queue_req(&req->base, &creq->base); in mv_cesa_skcipher_queue_req()
476 if (mv_cesa_req_needs_cleanup(&req->base, ret)) in mv_cesa_skcipher_queue_req()
477 mv_cesa_skcipher_cleanup(req); in mv_cesa_skcipher_queue_req()
482 static int mv_cesa_des_op(struct skcipher_request *req, in mv_cesa_des_op() argument
485 struct mv_cesa_des_ctx *ctx = crypto_tfm_ctx(req->base.tfm); in mv_cesa_des_op()
492 return mv_cesa_skcipher_queue_req(req, tmpl); in mv_cesa_des_op()
495 static int mv_cesa_ecb_des_encrypt(struct skcipher_request *req) in mv_cesa_ecb_des_encrypt() argument
503 return mv_cesa_des_op(req, &tmpl); in mv_cesa_ecb_des_encrypt()
506 static int mv_cesa_ecb_des_decrypt(struct skcipher_request *req) in mv_cesa_ecb_des_decrypt() argument
514 return mv_cesa_des_op(req, &tmpl); in mv_cesa_ecb_des_decrypt()
538 static int mv_cesa_cbc_des_op(struct skcipher_request *req, in mv_cesa_cbc_des_op() argument
544 memcpy(tmpl->ctx.skcipher.iv, req->iv, DES_BLOCK_SIZE); in mv_cesa_cbc_des_op()
546 return mv_cesa_des_op(req, tmpl); in mv_cesa_cbc_des_op()
549 static int mv_cesa_cbc_des_encrypt(struct skcipher_request *req) in mv_cesa_cbc_des_encrypt() argument
555 return mv_cesa_cbc_des_op(req, &tmpl); in mv_cesa_cbc_des_encrypt()
558 static int mv_cesa_cbc_des_decrypt(struct skcipher_request *req) in mv_cesa_cbc_des_decrypt() argument
564 return mv_cesa_cbc_des_op(req, &tmpl); in mv_cesa_cbc_des_decrypt()
589 static int mv_cesa_des3_op(struct skcipher_request *req, in mv_cesa_des3_op() argument
592 struct mv_cesa_des3_ctx *ctx = crypto_tfm_ctx(req->base.tfm); in mv_cesa_des3_op()
599 return mv_cesa_skcipher_queue_req(req, tmpl); in mv_cesa_des3_op()
602 static int mv_cesa_ecb_des3_ede_encrypt(struct skcipher_request *req) in mv_cesa_ecb_des3_ede_encrypt() argument
611 return mv_cesa_des3_op(req, &tmpl); in mv_cesa_ecb_des3_ede_encrypt()
614 static int mv_cesa_ecb_des3_ede_decrypt(struct skcipher_request *req) in mv_cesa_ecb_des3_ede_decrypt() argument
623 return mv_cesa_des3_op(req, &tmpl); in mv_cesa_ecb_des3_ede_decrypt()
647 static int mv_cesa_cbc_des3_op(struct skcipher_request *req, in mv_cesa_cbc_des3_op() argument
650 memcpy(tmpl->ctx.skcipher.iv, req->iv, DES3_EDE_BLOCK_SIZE); in mv_cesa_cbc_des3_op()
652 return mv_cesa_des3_op(req, tmpl); in mv_cesa_cbc_des3_op()
655 static int mv_cesa_cbc_des3_ede_encrypt(struct skcipher_request *req) in mv_cesa_cbc_des3_ede_encrypt() argument
664 return mv_cesa_cbc_des3_op(req, &tmpl); in mv_cesa_cbc_des3_ede_encrypt()
667 static int mv_cesa_cbc_des3_ede_decrypt(struct skcipher_request *req) in mv_cesa_cbc_des3_ede_decrypt() argument
676 return mv_cesa_cbc_des3_op(req, &tmpl); in mv_cesa_cbc_des3_ede_decrypt()
701 static int mv_cesa_aes_op(struct skcipher_request *req, in mv_cesa_aes_op() argument
704 struct mv_cesa_aes_ctx *ctx = crypto_tfm_ctx(req->base.tfm); in mv_cesa_aes_op()
728 return mv_cesa_skcipher_queue_req(req, tmpl); in mv_cesa_aes_op()
731 static int mv_cesa_ecb_aes_encrypt(struct skcipher_request *req) in mv_cesa_ecb_aes_encrypt() argument
739 return mv_cesa_aes_op(req, &tmpl); in mv_cesa_ecb_aes_encrypt()
742 static int mv_cesa_ecb_aes_decrypt(struct skcipher_request *req) in mv_cesa_ecb_aes_decrypt() argument
750 return mv_cesa_aes_op(req, &tmpl); in mv_cesa_ecb_aes_decrypt()
774 static int mv_cesa_cbc_aes_op(struct skcipher_request *req, in mv_cesa_cbc_aes_op() argument
779 memcpy(tmpl->ctx.skcipher.iv, req->iv, AES_BLOCK_SIZE); in mv_cesa_cbc_aes_op()
781 return mv_cesa_aes_op(req, tmpl); in mv_cesa_cbc_aes_op()
784 static int mv_cesa_cbc_aes_encrypt(struct skcipher_request *req) in mv_cesa_cbc_aes_encrypt() argument
790 return mv_cesa_cbc_aes_op(req, &tmpl); in mv_cesa_cbc_aes_encrypt()
793 static int mv_cesa_cbc_aes_decrypt(struct skcipher_request *req) in mv_cesa_cbc_aes_decrypt() argument
799 return mv_cesa_cbc_aes_op(req, &tmpl); in mv_cesa_cbc_aes_decrypt()