Lines Matching full: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()
80 mv_cesa_skcipher_dma_cleanup(req); in mv_cesa_skcipher_cleanup()
83 static void mv_cesa_skcipher_std_step(struct skcipher_request *req) in mv_cesa_skcipher_std_step() argument
85 struct mv_cesa_skcipher_req *creq = skcipher_request_ctx(req); in mv_cesa_skcipher_std_step()
88 size_t len = min_t(size_t, req->cryptlen - sreq->offset, in mv_cesa_skcipher_std_step()
94 len = sg_pcopy_to_buffer(req->src, creq->src_nents, in mv_cesa_skcipher_std_step()
116 static int mv_cesa_skcipher_std_process(struct skcipher_request *req, in mv_cesa_skcipher_std_process() argument
119 struct mv_cesa_skcipher_req *creq = skcipher_request_ctx(req); in mv_cesa_skcipher_std_process()
124 len = sg_pcopy_from_buffer(req->dst, creq->dst_nents, in mv_cesa_skcipher_std_process()
129 if (sreq->offset < req->cryptlen) in mv_cesa_skcipher_std_process()
135 static int mv_cesa_skcipher_process(struct crypto_async_request *req, in mv_cesa_skcipher_process() argument
138 struct skcipher_request *skreq = skcipher_request_cast(req); in mv_cesa_skcipher_process()
148 static void mv_cesa_skcipher_step(struct crypto_async_request *req) in mv_cesa_skcipher_step() argument
150 struct skcipher_request *skreq = skcipher_request_cast(req); in mv_cesa_skcipher_step()
160 mv_cesa_skcipher_dma_prepare(struct skcipher_request *req) in mv_cesa_skcipher_dma_prepare() argument
162 struct mv_cesa_skcipher_req *creq = skcipher_request_ctx(req); in mv_cesa_skcipher_dma_prepare()
169 mv_cesa_skcipher_std_prepare(struct skcipher_request *req) in mv_cesa_skcipher_std_prepare() argument
171 struct mv_cesa_skcipher_req *creq = skcipher_request_ctx(req); in mv_cesa_skcipher_std_prepare()
178 static inline void mv_cesa_skcipher_prepare(struct crypto_async_request *req, in mv_cesa_skcipher_prepare() argument
181 struct skcipher_request *skreq = skcipher_request_cast(req); in mv_cesa_skcipher_prepare()
193 mv_cesa_skcipher_req_cleanup(struct crypto_async_request *req) in mv_cesa_skcipher_req_cleanup() argument
195 struct skcipher_request *skreq = skcipher_request_cast(req); in mv_cesa_skcipher_req_cleanup()
201 mv_cesa_skcipher_complete(struct crypto_async_request *req) in mv_cesa_skcipher_complete() argument
203 struct skcipher_request *skreq = skcipher_request_cast(req); in mv_cesa_skcipher_complete()
302 static int mv_cesa_skcipher_dma_req_init(struct skcipher_request *req, in mv_cesa_skcipher_dma_req_init() argument
305 struct mv_cesa_skcipher_req *creq = skcipher_request_ctx(req); in mv_cesa_skcipher_dma_req_init()
306 gfp_t flags = (req->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP) ? in mv_cesa_skcipher_dma_req_init()
316 if (req->src != req->dst) { in mv_cesa_skcipher_dma_req_init()
317 ret = dma_map_sg(cesa_dev->dev, req->src, creq->src_nents, in mv_cesa_skcipher_dma_req_init()
322 ret = dma_map_sg(cesa_dev->dev, req->dst, creq->dst_nents, 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()
336 mv_cesa_skcipher_req_iter_init(&iter, req); in mv_cesa_skcipher_dma_req_init()
385 if (req->dst != req->src) in mv_cesa_skcipher_dma_req_init()
386 dma_unmap_sg(cesa_dev->dev, req->dst, creq->dst_nents, in mv_cesa_skcipher_dma_req_init()
390 dma_unmap_sg(cesa_dev->dev, req->src, creq->src_nents, in mv_cesa_skcipher_dma_req_init()
391 req->dst != req->src ? DMA_TO_DEVICE : DMA_BIDIRECTIONAL); in mv_cesa_skcipher_dma_req_init()
397 mv_cesa_skcipher_std_req_init(struct skcipher_request *req, in mv_cesa_skcipher_std_req_init() argument
400 struct mv_cesa_skcipher_req *creq = skcipher_request_ctx(req); in mv_cesa_skcipher_std_req_init()
412 static int mv_cesa_skcipher_req_init(struct skcipher_request *req, in mv_cesa_skcipher_req_init() argument
415 struct mv_cesa_skcipher_req *creq = skcipher_request_ctx(req); in mv_cesa_skcipher_req_init()
416 struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req); in mv_cesa_skcipher_req_init()
420 if (!IS_ALIGNED(req->cryptlen, blksize)) in mv_cesa_skcipher_req_init()
423 creq->src_nents = sg_nents_for_len(req->src, req->cryptlen); in mv_cesa_skcipher_req_init()
428 creq->dst_nents = sg_nents_for_len(req->dst, req->cryptlen); in mv_cesa_skcipher_req_init()
438 ret = mv_cesa_skcipher_dma_req_init(req, tmpl); in mv_cesa_skcipher_req_init()
440 ret = mv_cesa_skcipher_std_req_init(req, tmpl); in mv_cesa_skcipher_req_init()
445 static int mv_cesa_skcipher_queue_req(struct skcipher_request *req, in mv_cesa_skcipher_queue_req() argument
449 struct mv_cesa_skcipher_req *creq = skcipher_request_ctx(req); in mv_cesa_skcipher_queue_req()
452 ret = mv_cesa_skcipher_req_init(req, tmpl); in mv_cesa_skcipher_queue_req()
456 engine = mv_cesa_select_engine(req->cryptlen); in mv_cesa_skcipher_queue_req()
457 mv_cesa_skcipher_prepare(&req->base, engine); in mv_cesa_skcipher_queue_req()
459 ret = mv_cesa_queue_req(&req->base, &creq->base); in mv_cesa_skcipher_queue_req()
461 if (mv_cesa_req_needs_cleanup(&req->base, ret)) in mv_cesa_skcipher_queue_req()
462 mv_cesa_skcipher_cleanup(req); in mv_cesa_skcipher_queue_req()
467 static int mv_cesa_des_op(struct skcipher_request *req, in mv_cesa_des_op() argument
470 struct mv_cesa_des_ctx *ctx = crypto_tfm_ctx(req->base.tfm); in mv_cesa_des_op()
477 return mv_cesa_skcipher_queue_req(req, tmpl); in mv_cesa_des_op()
480 static int mv_cesa_ecb_des_encrypt(struct skcipher_request *req) in mv_cesa_ecb_des_encrypt() argument
488 return mv_cesa_des_op(req, &tmpl); in mv_cesa_ecb_des_encrypt()
491 static int mv_cesa_ecb_des_decrypt(struct skcipher_request *req) in mv_cesa_ecb_des_decrypt() argument
499 return mv_cesa_des_op(req, &tmpl); in mv_cesa_ecb_des_decrypt()
523 static int mv_cesa_cbc_des_op(struct skcipher_request *req, in mv_cesa_cbc_des_op() argument
529 memcpy(tmpl->ctx.skcipher.iv, req->iv, DES_BLOCK_SIZE); in mv_cesa_cbc_des_op()
531 return mv_cesa_des_op(req, tmpl); in mv_cesa_cbc_des_op()
534 static int mv_cesa_cbc_des_encrypt(struct skcipher_request *req) in mv_cesa_cbc_des_encrypt() argument
540 return mv_cesa_cbc_des_op(req, &tmpl); in mv_cesa_cbc_des_encrypt()
543 static int mv_cesa_cbc_des_decrypt(struct skcipher_request *req) in mv_cesa_cbc_des_decrypt() argument
549 return mv_cesa_cbc_des_op(req, &tmpl); in mv_cesa_cbc_des_decrypt()
574 static int mv_cesa_des3_op(struct skcipher_request *req, in mv_cesa_des3_op() argument
577 struct mv_cesa_des3_ctx *ctx = crypto_tfm_ctx(req->base.tfm); in mv_cesa_des3_op()
584 return mv_cesa_skcipher_queue_req(req, tmpl); in mv_cesa_des3_op()
587 static int mv_cesa_ecb_des3_ede_encrypt(struct skcipher_request *req) in mv_cesa_ecb_des3_ede_encrypt() argument
596 return mv_cesa_des3_op(req, &tmpl); in mv_cesa_ecb_des3_ede_encrypt()
599 static int mv_cesa_ecb_des3_ede_decrypt(struct skcipher_request *req) in mv_cesa_ecb_des3_ede_decrypt() argument
608 return mv_cesa_des3_op(req, &tmpl); in mv_cesa_ecb_des3_ede_decrypt()
633 static int mv_cesa_cbc_des3_op(struct skcipher_request *req, in mv_cesa_cbc_des3_op() argument
636 memcpy(tmpl->ctx.skcipher.iv, req->iv, DES3_EDE_BLOCK_SIZE); in mv_cesa_cbc_des3_op()
638 return mv_cesa_des3_op(req, tmpl); in mv_cesa_cbc_des3_op()
641 static int mv_cesa_cbc_des3_ede_encrypt(struct skcipher_request *req) in mv_cesa_cbc_des3_ede_encrypt() argument
650 return mv_cesa_cbc_des3_op(req, &tmpl); in mv_cesa_cbc_des3_ede_encrypt()
653 static int mv_cesa_cbc_des3_ede_decrypt(struct skcipher_request *req) in mv_cesa_cbc_des3_ede_decrypt() argument
662 return mv_cesa_cbc_des3_op(req, &tmpl); in mv_cesa_cbc_des3_ede_decrypt()
687 static int mv_cesa_aes_op(struct skcipher_request *req, in mv_cesa_aes_op() argument
690 struct mv_cesa_aes_ctx *ctx = crypto_tfm_ctx(req->base.tfm); in mv_cesa_aes_op()
714 return mv_cesa_skcipher_queue_req(req, tmpl); in mv_cesa_aes_op()
717 static int mv_cesa_ecb_aes_encrypt(struct skcipher_request *req) in mv_cesa_ecb_aes_encrypt() argument
725 return mv_cesa_aes_op(req, &tmpl); in mv_cesa_ecb_aes_encrypt()
728 static int mv_cesa_ecb_aes_decrypt(struct skcipher_request *req) in mv_cesa_ecb_aes_decrypt() argument
736 return mv_cesa_aes_op(req, &tmpl); in mv_cesa_ecb_aes_decrypt()
760 static int mv_cesa_cbc_aes_op(struct skcipher_request *req, in mv_cesa_cbc_aes_op() argument
765 memcpy(tmpl->ctx.skcipher.iv, req->iv, AES_BLOCK_SIZE); in mv_cesa_cbc_aes_op()
767 return mv_cesa_aes_op(req, tmpl); in mv_cesa_cbc_aes_op()
770 static int mv_cesa_cbc_aes_encrypt(struct skcipher_request *req) in mv_cesa_cbc_aes_encrypt() argument
776 return mv_cesa_cbc_aes_op(req, &tmpl); in mv_cesa_cbc_aes_encrypt()
779 static int mv_cesa_cbc_aes_decrypt(struct skcipher_request *req) in mv_cesa_cbc_aes_decrypt() argument
785 return mv_cesa_cbc_aes_op(req, &tmpl); in mv_cesa_cbc_aes_decrypt()