Lines Matching refs:areq

72 int sun8i_ce_hash_init(struct ahash_request *areq)
74 struct sun8i_ce_hash_reqctx *rctx = ahash_request_ctx(areq);
75 struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq);
81 rctx->fallback_req.base.flags = areq->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP;
86 int sun8i_ce_hash_export(struct ahash_request *areq, void *out)
88 struct sun8i_ce_hash_reqctx *rctx = ahash_request_ctx(areq);
89 struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq);
93 rctx->fallback_req.base.flags = areq->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP;
98 int sun8i_ce_hash_import(struct ahash_request *areq, const void *in)
100 struct sun8i_ce_hash_reqctx *rctx = ahash_request_ctx(areq);
101 struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq);
105 rctx->fallback_req.base.flags = areq->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP;
110 int sun8i_ce_hash_final(struct ahash_request *areq)
112 struct sun8i_ce_hash_reqctx *rctx = ahash_request_ctx(areq);
113 struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq);
117 rctx->fallback_req.base.flags = areq->base.flags &
119 rctx->fallback_req.result = areq->result;
135 int sun8i_ce_hash_update(struct ahash_request *areq)
137 struct sun8i_ce_hash_reqctx *rctx = ahash_request_ctx(areq);
138 struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq);
142 rctx->fallback_req.base.flags = areq->base.flags &
144 rctx->fallback_req.nbytes = areq->nbytes;
145 rctx->fallback_req.src = areq->src;
150 int sun8i_ce_hash_finup(struct ahash_request *areq)
152 struct sun8i_ce_hash_reqctx *rctx = ahash_request_ctx(areq);
153 struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq);
157 rctx->fallback_req.base.flags = areq->base.flags &
160 rctx->fallback_req.nbytes = areq->nbytes;
161 rctx->fallback_req.src = areq->src;
162 rctx->fallback_req.result = areq->result;
178 static int sun8i_ce_hash_digest_fb(struct ahash_request *areq)
180 struct sun8i_ce_hash_reqctx *rctx = ahash_request_ctx(areq);
181 struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq);
185 rctx->fallback_req.base.flags = areq->base.flags &
188 rctx->fallback_req.nbytes = areq->nbytes;
189 rctx->fallback_req.src = areq->src;
190 rctx->fallback_req.result = areq->result;
206 static bool sun8i_ce_hash_need_fallback(struct ahash_request *areq)
208 struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq);
215 if (areq->nbytes == 0) {
220 if (sg_nents_for_len(areq->src, areq->nbytes) > MAX_SG - 1) {
224 sg = areq->src;
239 int sun8i_ce_hash_digest(struct ahash_request *areq)
241 struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq);
243 struct sun8i_ce_hash_reqctx *rctx = ahash_request_ctx(areq);
250 if (sun8i_ce_hash_need_fallback(areq))
251 return sun8i_ce_hash_digest_fb(areq);
253 nr_sgs = sg_nents_for_len(areq->src, areq->nbytes);
255 return sun8i_ce_hash_digest_fb(areq);
257 for_each_sg(areq->src, sg, nr_sgs, i) {
259 return sun8i_ce_hash_digest_fb(areq);
269 return crypto_transfer_hash_request_to_engine(engine, areq);
332 struct ahash_request *areq = container_of(breq, struct ahash_request, base);
333 struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq);
335 struct sun8i_ce_hash_reqctx *rctx = ahash_request_ctx(areq);
352 int ns = sg_nents_for_len(areq->src, areq->nbytes);
384 dev_dbg(ce->dev, "%s %s len=%d\n", __func__, crypto_tfm_alg_name(areq->base.tfm), areq->nbytes);
397 nr_sgs = dma_map_sg(ce->dev, areq->src, ns, DMA_TO_DEVICE);
404 len = areq->nbytes;
405 for_each_sg(areq->src, sg, nr_sgs, i) {
425 byte_count = areq->nbytes;
457 cet->t_dlen = cpu_to_le32((areq->nbytes + j * 4) * 8);
459 cet->t_dlen = cpu_to_le32(areq->nbytes / 4 + j);
461 chan->timeout = areq->nbytes;
466 dma_unmap_sg(ce->dev, areq->src, ns, DMA_TO_DEVICE);
470 memcpy(areq->result, result, algt->alg.hash.base.halg.digestsize);