Lines Matching refs:req

43 				 struct ablkcipher_request *req)  in mv_cesa_ablkcipher_req_iter_init()  argument
45 mv_cesa_req_dma_iter_init(&iter->base, req->nbytes); in mv_cesa_ablkcipher_req_iter_init()
46 mv_cesa_sg_dma_iter_init(&iter->src, req->src, DMA_TO_DEVICE); in mv_cesa_ablkcipher_req_iter_init()
47 mv_cesa_sg_dma_iter_init(&iter->dst, req->dst, DMA_FROM_DEVICE); in mv_cesa_ablkcipher_req_iter_init()
60 mv_cesa_ablkcipher_dma_cleanup(struct ablkcipher_request *req) in mv_cesa_ablkcipher_dma_cleanup() argument
62 struct mv_cesa_ablkcipher_req *creq = ablkcipher_request_ctx(req); in mv_cesa_ablkcipher_dma_cleanup()
64 if (req->dst != req->src) { in mv_cesa_ablkcipher_dma_cleanup()
65 dma_unmap_sg(cesa_dev->dev, req->dst, creq->dst_nents, in mv_cesa_ablkcipher_dma_cleanup()
67 dma_unmap_sg(cesa_dev->dev, req->src, creq->src_nents, in mv_cesa_ablkcipher_dma_cleanup()
70 dma_unmap_sg(cesa_dev->dev, req->src, creq->src_nents, in mv_cesa_ablkcipher_dma_cleanup()
73 mv_cesa_dma_cleanup(&creq->req.dma); in mv_cesa_ablkcipher_dma_cleanup()
76 static inline void mv_cesa_ablkcipher_cleanup(struct ablkcipher_request *req) in mv_cesa_ablkcipher_cleanup() argument
78 struct mv_cesa_ablkcipher_req *creq = ablkcipher_request_ctx(req); in mv_cesa_ablkcipher_cleanup()
80 if (creq->req.base.type == CESA_DMA_REQ) in mv_cesa_ablkcipher_cleanup()
81 mv_cesa_ablkcipher_dma_cleanup(req); in mv_cesa_ablkcipher_cleanup()
84 static void mv_cesa_ablkcipher_std_step(struct ablkcipher_request *req) in mv_cesa_ablkcipher_std_step() argument
86 struct mv_cesa_ablkcipher_req *creq = ablkcipher_request_ctx(req); in mv_cesa_ablkcipher_std_step()
87 struct mv_cesa_ablkcipher_std_req *sreq = &creq->req.std; in mv_cesa_ablkcipher_std_step()
89 size_t len = min_t(size_t, req->nbytes - sreq->offset, in mv_cesa_ablkcipher_std_step()
92 len = sg_pcopy_to_buffer(req->src, creq->src_nents, in mv_cesa_ablkcipher_std_step()
112 static int mv_cesa_ablkcipher_std_process(struct ablkcipher_request *req, in mv_cesa_ablkcipher_std_process() argument
115 struct mv_cesa_ablkcipher_req *creq = ablkcipher_request_ctx(req); in mv_cesa_ablkcipher_std_process()
116 struct mv_cesa_ablkcipher_std_req *sreq = &creq->req.std; in mv_cesa_ablkcipher_std_process()
120 len = sg_pcopy_from_buffer(req->dst, creq->dst_nents, in mv_cesa_ablkcipher_std_process()
125 if (sreq->offset < req->nbytes) in mv_cesa_ablkcipher_std_process()
131 static int mv_cesa_ablkcipher_process(struct crypto_async_request *req, in mv_cesa_ablkcipher_process() argument
134 struct ablkcipher_request *ablkreq = ablkcipher_request_cast(req); in mv_cesa_ablkcipher_process()
136 struct mv_cesa_ablkcipher_std_req *sreq = &creq->req.std; in mv_cesa_ablkcipher_process()
140 if (creq->req.base.type == CESA_DMA_REQ) in mv_cesa_ablkcipher_process()
141 ret = mv_cesa_dma_process(&creq->req.dma, status); in mv_cesa_ablkcipher_process()
155 static void mv_cesa_ablkcipher_step(struct crypto_async_request *req) in mv_cesa_ablkcipher_step() argument
157 struct ablkcipher_request *ablkreq = ablkcipher_request_cast(req); in mv_cesa_ablkcipher_step()
160 if (creq->req.base.type == CESA_DMA_REQ) in mv_cesa_ablkcipher_step()
161 mv_cesa_dma_step(&creq->req.dma); in mv_cesa_ablkcipher_step()
167 mv_cesa_ablkcipher_dma_prepare(struct ablkcipher_request *req) in mv_cesa_ablkcipher_dma_prepare() argument
169 struct mv_cesa_ablkcipher_req *creq = ablkcipher_request_ctx(req); in mv_cesa_ablkcipher_dma_prepare()
170 struct mv_cesa_tdma_req *dreq = &creq->req.dma; in mv_cesa_ablkcipher_dma_prepare()
176 mv_cesa_ablkcipher_std_prepare(struct ablkcipher_request *req) in mv_cesa_ablkcipher_std_prepare() argument
178 struct mv_cesa_ablkcipher_req *creq = ablkcipher_request_ctx(req); in mv_cesa_ablkcipher_std_prepare()
179 struct mv_cesa_ablkcipher_std_req *sreq = &creq->req.std; in mv_cesa_ablkcipher_std_prepare()
188 static inline void mv_cesa_ablkcipher_prepare(struct crypto_async_request *req, in mv_cesa_ablkcipher_prepare() argument
191 struct ablkcipher_request *ablkreq = ablkcipher_request_cast(req); in mv_cesa_ablkcipher_prepare()
193 creq->req.base.engine = engine; in mv_cesa_ablkcipher_prepare()
195 if (creq->req.base.type == CESA_DMA_REQ) in mv_cesa_ablkcipher_prepare()
202 mv_cesa_ablkcipher_req_cleanup(struct crypto_async_request *req) in mv_cesa_ablkcipher_req_cleanup() argument
204 struct ablkcipher_request *ablkreq = ablkcipher_request_cast(req); in mv_cesa_ablkcipher_req_cleanup()
292 static int mv_cesa_ablkcipher_dma_req_init(struct ablkcipher_request *req, in mv_cesa_ablkcipher_dma_req_init() argument
295 struct mv_cesa_ablkcipher_req *creq = ablkcipher_request_ctx(req); in mv_cesa_ablkcipher_dma_req_init()
296 gfp_t flags = (req->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP) ? in mv_cesa_ablkcipher_dma_req_init()
298 struct mv_cesa_tdma_req *dreq = &creq->req.dma; in mv_cesa_ablkcipher_dma_req_init()
308 if (req->src != req->dst) { in mv_cesa_ablkcipher_dma_req_init()
309 ret = dma_map_sg(cesa_dev->dev, req->src, creq->src_nents, in mv_cesa_ablkcipher_dma_req_init()
314 ret = dma_map_sg(cesa_dev->dev, req->dst, creq->dst_nents, in mv_cesa_ablkcipher_dma_req_init()
321 ret = dma_map_sg(cesa_dev->dev, req->src, creq->src_nents, in mv_cesa_ablkcipher_dma_req_init()
328 mv_cesa_ablkcipher_req_iter_init(&iter, req); in mv_cesa_ablkcipher_dma_req_init()
367 if (req->dst != req->src) in mv_cesa_ablkcipher_dma_req_init()
368 dma_unmap_sg(cesa_dev->dev, req->dst, creq->dst_nents, in mv_cesa_ablkcipher_dma_req_init()
372 dma_unmap_sg(cesa_dev->dev, req->src, creq->src_nents, in mv_cesa_ablkcipher_dma_req_init()
373 req->dst != req->src ? DMA_TO_DEVICE : DMA_BIDIRECTIONAL); in mv_cesa_ablkcipher_dma_req_init()
379 mv_cesa_ablkcipher_std_req_init(struct ablkcipher_request *req, in mv_cesa_ablkcipher_std_req_init() argument
382 struct mv_cesa_ablkcipher_req *creq = ablkcipher_request_ctx(req); in mv_cesa_ablkcipher_std_req_init()
383 struct mv_cesa_ablkcipher_std_req *sreq = &creq->req.std; in mv_cesa_ablkcipher_std_req_init()
392 static int mv_cesa_ablkcipher_req_init(struct ablkcipher_request *req, in mv_cesa_ablkcipher_req_init() argument
395 struct mv_cesa_ablkcipher_req *creq = ablkcipher_request_ctx(req); in mv_cesa_ablkcipher_req_init()
396 struct crypto_ablkcipher *tfm = crypto_ablkcipher_reqtfm(req); in mv_cesa_ablkcipher_req_init()
400 if (!IS_ALIGNED(req->nbytes, blksize)) in mv_cesa_ablkcipher_req_init()
403 creq->src_nents = sg_nents_for_len(req->src, req->nbytes); in mv_cesa_ablkcipher_req_init()
404 creq->dst_nents = sg_nents_for_len(req->dst, req->nbytes); in mv_cesa_ablkcipher_req_init()
411 ret = mv_cesa_ablkcipher_dma_req_init(req, tmpl); in mv_cesa_ablkcipher_req_init()
413 ret = mv_cesa_ablkcipher_std_req_init(req, tmpl); in mv_cesa_ablkcipher_req_init()
418 static int mv_cesa_des_op(struct ablkcipher_request *req, in mv_cesa_des_op() argument
421 struct mv_cesa_des_ctx *ctx = crypto_tfm_ctx(req->base.tfm); in mv_cesa_des_op()
429 ret = mv_cesa_ablkcipher_req_init(req, tmpl); in mv_cesa_des_op()
433 ret = mv_cesa_queue_req(&req->base); in mv_cesa_des_op()
434 if (mv_cesa_req_needs_cleanup(&req->base, ret)) in mv_cesa_des_op()
435 mv_cesa_ablkcipher_cleanup(req); in mv_cesa_des_op()
440 static int mv_cesa_ecb_des_encrypt(struct ablkcipher_request *req) in mv_cesa_ecb_des_encrypt() argument
448 return mv_cesa_des_op(req, &tmpl); in mv_cesa_ecb_des_encrypt()
451 static int mv_cesa_ecb_des_decrypt(struct ablkcipher_request *req) in mv_cesa_ecb_des_decrypt() argument
459 return mv_cesa_des_op(req, &tmpl); in mv_cesa_ecb_des_decrypt()
485 static int mv_cesa_cbc_des_op(struct ablkcipher_request *req, in mv_cesa_cbc_des_op() argument
491 memcpy(tmpl->ctx.blkcipher.iv, req->info, DES_BLOCK_SIZE); in mv_cesa_cbc_des_op()
493 return mv_cesa_des_op(req, tmpl); in mv_cesa_cbc_des_op()
496 static int mv_cesa_cbc_des_encrypt(struct ablkcipher_request *req) in mv_cesa_cbc_des_encrypt() argument
502 return mv_cesa_cbc_des_op(req, &tmpl); in mv_cesa_cbc_des_encrypt()
505 static int mv_cesa_cbc_des_decrypt(struct ablkcipher_request *req) in mv_cesa_cbc_des_decrypt() argument
511 return mv_cesa_cbc_des_op(req, &tmpl); in mv_cesa_cbc_des_decrypt()
538 static int mv_cesa_des3_op(struct ablkcipher_request *req, in mv_cesa_des3_op() argument
541 struct mv_cesa_des3_ctx *ctx = crypto_tfm_ctx(req->base.tfm); in mv_cesa_des3_op()
549 ret = mv_cesa_ablkcipher_req_init(req, tmpl); in mv_cesa_des3_op()
553 ret = mv_cesa_queue_req(&req->base); in mv_cesa_des3_op()
554 if (mv_cesa_req_needs_cleanup(&req->base, ret)) in mv_cesa_des3_op()
555 mv_cesa_ablkcipher_cleanup(req); in mv_cesa_des3_op()
560 static int mv_cesa_ecb_des3_ede_encrypt(struct ablkcipher_request *req) in mv_cesa_ecb_des3_ede_encrypt() argument
569 return mv_cesa_des3_op(req, &tmpl); in mv_cesa_ecb_des3_ede_encrypt()
572 static int mv_cesa_ecb_des3_ede_decrypt(struct ablkcipher_request *req) in mv_cesa_ecb_des3_ede_decrypt() argument
581 return mv_cesa_des3_op(req, &tmpl); in mv_cesa_ecb_des3_ede_decrypt()
608 static int mv_cesa_cbc_des3_op(struct ablkcipher_request *req, in mv_cesa_cbc_des3_op() argument
611 memcpy(tmpl->ctx.blkcipher.iv, req->info, DES3_EDE_BLOCK_SIZE); in mv_cesa_cbc_des3_op()
613 return mv_cesa_des3_op(req, tmpl); in mv_cesa_cbc_des3_op()
616 static int mv_cesa_cbc_des3_ede_encrypt(struct ablkcipher_request *req) in mv_cesa_cbc_des3_ede_encrypt() argument
625 return mv_cesa_cbc_des3_op(req, &tmpl); in mv_cesa_cbc_des3_ede_encrypt()
628 static int mv_cesa_cbc_des3_ede_decrypt(struct ablkcipher_request *req) in mv_cesa_cbc_des3_ede_decrypt() argument
637 return mv_cesa_cbc_des3_op(req, &tmpl); in mv_cesa_cbc_des3_ede_decrypt()
664 static int mv_cesa_aes_op(struct ablkcipher_request *req, in mv_cesa_aes_op() argument
667 struct mv_cesa_aes_ctx *ctx = crypto_tfm_ctx(req->base.tfm); in mv_cesa_aes_op()
691 ret = mv_cesa_ablkcipher_req_init(req, tmpl); in mv_cesa_aes_op()
695 ret = mv_cesa_queue_req(&req->base); in mv_cesa_aes_op()
696 if (mv_cesa_req_needs_cleanup(&req->base, ret)) in mv_cesa_aes_op()
697 mv_cesa_ablkcipher_cleanup(req); in mv_cesa_aes_op()
702 static int mv_cesa_ecb_aes_encrypt(struct ablkcipher_request *req) in mv_cesa_ecb_aes_encrypt() argument
710 return mv_cesa_aes_op(req, &tmpl); in mv_cesa_ecb_aes_encrypt()
713 static int mv_cesa_ecb_aes_decrypt(struct ablkcipher_request *req) in mv_cesa_ecb_aes_decrypt() argument
721 return mv_cesa_aes_op(req, &tmpl); in mv_cesa_ecb_aes_decrypt()
747 static int mv_cesa_cbc_aes_op(struct ablkcipher_request *req, in mv_cesa_cbc_aes_op() argument
752 memcpy(tmpl->ctx.blkcipher.iv, req->info, AES_BLOCK_SIZE); in mv_cesa_cbc_aes_op()
754 return mv_cesa_aes_op(req, tmpl); in mv_cesa_cbc_aes_op()
757 static int mv_cesa_cbc_aes_encrypt(struct ablkcipher_request *req) in mv_cesa_cbc_aes_encrypt() argument
763 return mv_cesa_cbc_aes_op(req, &tmpl); in mv_cesa_cbc_aes_encrypt()
766 static int mv_cesa_cbc_aes_decrypt(struct ablkcipher_request *req) in mv_cesa_cbc_aes_decrypt() argument
772 return mv_cesa_cbc_aes_op(req, &tmpl); in mv_cesa_cbc_aes_decrypt()