Lines Matching refs:sreq

409 				    struct safexcel_cipher_req *sreq,  in safexcel_context_control()  argument
434 if (sreq->direction == SAFEXCEL_ENCRYPT) in safexcel_context_control()
446 if (sreq->direction == SAFEXCEL_ENCRYPT) in safexcel_context_control()
493 struct safexcel_cipher_req *sreq, in safexcel_handle_req_result() argument
504 if (unlikely(!sreq->rdescs)) in safexcel_handle_req_result()
507 while (sreq->rdescs--) { in safexcel_handle_req_result()
525 dma_unmap_sg(priv->dev, src, sreq->nr_src, DMA_BIDIRECTIONAL); in safexcel_handle_req_result()
527 dma_unmap_sg(priv->dev, src, sreq->nr_src, DMA_TO_DEVICE); in safexcel_handle_req_result()
528 dma_unmap_sg(priv->dev, dst, sreq->nr_dst, DMA_FROM_DEVICE); in safexcel_handle_req_result()
535 (sreq->direction == SAFEXCEL_ENCRYPT)) { in safexcel_handle_req_result()
537 sg_pcopy_to_buffer(dst, sreq->nr_dst, areq->iv, in safexcel_handle_req_result()
549 struct safexcel_cipher_req *sreq, in safexcel_send_req() argument
570 sreq->nr_src = sg_nents_for_len(src, totlen_src); in safexcel_send_req()
577 if (sreq->direction == SAFEXCEL_DECRYPT) in safexcel_send_req()
589 (sreq->direction == SAFEXCEL_DECRYPT)) { in safexcel_send_req()
595 sg_pcopy_to_buffer(src, sreq->nr_src, areq->iv, in safexcel_send_req()
601 sreq->nr_dst = sg_nents_for_len(dst, totlen_dst); in safexcel_send_req()
611 sreq->nr_src = max(sreq->nr_src, sreq->nr_dst); in safexcel_send_req()
612 sreq->nr_dst = sreq->nr_src; in safexcel_send_req()
614 (sreq->nr_src <= 0))) { in safexcel_send_req()
619 dma_map_sg(priv->dev, src, sreq->nr_src, DMA_BIDIRECTIONAL); in safexcel_send_req()
621 if (unlikely(totlen_src && (sreq->nr_src <= 0))) { in safexcel_send_req()
626 dma_map_sg(priv->dev, src, sreq->nr_src, DMA_TO_DEVICE); in safexcel_send_req()
628 if (unlikely(totlen_dst && (sreq->nr_dst <= 0))) { in safexcel_send_req()
631 dma_unmap_sg(priv->dev, src, sreq->nr_src, in safexcel_send_req()
635 dma_map_sg(priv->dev, dst, sreq->nr_dst, DMA_FROM_DEVICE); in safexcel_send_req()
645 for_each_sg(src, sg, sreq->nr_src, i) { in safexcel_send_req()
683 safexcel_context_control(ctx, base, sreq, first_cdesc); in safexcel_send_req()
686 sreq->direction, cryptlen, in safexcel_send_req()
693 for_each_sg(dst, sg, sreq->nr_dst, i) { in safexcel_send_req()
694 bool last = (i == sreq->nr_dst - 1); in safexcel_send_req()
763 dma_unmap_sg(priv->dev, src, sreq->nr_src, DMA_BIDIRECTIONAL); in safexcel_send_req()
765 dma_unmap_sg(priv->dev, src, sreq->nr_src, DMA_TO_DEVICE); in safexcel_send_req()
766 dma_unmap_sg(priv->dev, dst, sreq->nr_dst, DMA_FROM_DEVICE); in safexcel_send_req()
775 struct safexcel_cipher_req *sreq, in safexcel_handle_inv_result() argument
784 if (unlikely(!sreq->rdescs)) in safexcel_handle_inv_result()
787 while (sreq->rdescs--) { in safexcel_handle_inv_result()
837 struct safexcel_cipher_req *sreq = skcipher_request_ctx(req); in safexcel_skcipher_handle_result() local
840 if (sreq->needs_inv) { in safexcel_skcipher_handle_result()
841 sreq->needs_inv = false; in safexcel_skcipher_handle_result()
842 err = safexcel_handle_inv_result(priv, ring, async, sreq, in safexcel_skcipher_handle_result()
846 req->dst, req->cryptlen, sreq, in safexcel_skcipher_handle_result()
860 struct safexcel_cipher_req *sreq = aead_request_ctx(req); in safexcel_aead_handle_result() local
863 if (sreq->needs_inv) { in safexcel_aead_handle_result()
864 sreq->needs_inv = false; in safexcel_aead_handle_result()
865 err = safexcel_handle_inv_result(priv, ring, async, sreq, in safexcel_aead_handle_result()
871 sreq, should_complete, ret); in safexcel_aead_handle_result()
899 struct safexcel_cipher_req *sreq = skcipher_request_ctx(req); in safexcel_skcipher_send() local
903 BUG_ON(!(priv->flags & EIP197_TRC_CACHE) && sreq->needs_inv); in safexcel_skcipher_send()
905 if (sreq->needs_inv) { in safexcel_skcipher_send()
917 ret = safexcel_send_req(async, ring, sreq, req->src, in safexcel_skcipher_send()
922 sreq->rdescs = *results; in safexcel_skcipher_send()
932 struct safexcel_cipher_req *sreq = aead_request_ctx(req); in safexcel_aead_send() local
936 BUG_ON(!(priv->flags & EIP197_TRC_CACHE) && sreq->needs_inv); in safexcel_aead_send()
938 if (sreq->needs_inv) in safexcel_aead_send()
941 ret = safexcel_send_req(async, ring, sreq, req->src, req->dst, in safexcel_aead_send()
945 sreq->rdescs = *results; in safexcel_aead_send()
951 struct safexcel_cipher_req *sreq, in safexcel_cipher_exit_inv() argument
962 sreq->needs_inv = true; in safexcel_cipher_exit_inv()
986 struct safexcel_cipher_req *sreq = skcipher_request_ctx(req); in safexcel_skcipher_exit_inv() local
995 return safexcel_cipher_exit_inv(tfm, &req->base, sreq, &result); in safexcel_skcipher_exit_inv()
1001 struct safexcel_cipher_req *sreq = aead_request_ctx(req); in safexcel_aead_exit_inv() local
1010 return safexcel_cipher_exit_inv(tfm, &req->base, sreq, &result); in safexcel_aead_exit_inv()
1014 struct safexcel_cipher_req *sreq, in safexcel_queue_req() argument
1021 sreq->needs_inv = false; in safexcel_queue_req()
1022 sreq->direction = dir; in safexcel_queue_req()
1026 sreq->needs_inv = true; in safexcel_queue_req()