Lines Matching defs:rctx

287 	struct stm32_hash_request_ctx *rctx = ahash_request_ctx(hdev->req);
290 struct stm32_hash_state *state = &rctx->state;
306 reg |= (rctx->data_type << HASH_CR_DATATYPE_POS);
326 rctx->state.blocklen -= sizeof(u32);
332 static void stm32_hash_append_sg(struct stm32_hash_request_ctx *rctx)
334 struct stm32_hash_state *state = &rctx->state;
337 while ((state->bufcnt < state->blocklen) && rctx->total) {
338 count = min(rctx->sg->length - rctx->offset, rctx->total);
342 if ((rctx->sg->length == 0) && !sg_is_last(rctx->sg)) {
343 rctx->sg = sg_next(rctx->sg);
351 rctx->sg, rctx->offset, count, 0);
354 rctx->offset += count;
355 rctx->total -= count;
357 if (rctx->offset == rctx->sg->length) {
358 rctx->sg = sg_next(rctx->sg);
359 if (rctx->sg)
360 rctx->offset = 0;
362 rctx->total = 0;
370 struct stm32_hash_request_ctx *rctx = ahash_request_ctx(hdev->req);
371 struct stm32_hash_state *state = &rctx->state;
429 static int hash_swap_reg(struct stm32_hash_request_ctx *rctx)
431 struct stm32_hash_state *state = &rctx->state;
470 struct stm32_hash_request_ctx *rctx = ahash_request_ctx(hdev->req);
471 struct stm32_hash_state *state = &rctx->state;
480 while ((rctx->total >= state->blocklen) ||
481 (state->bufcnt + rctx->total >= state->blocklen)) {
482 stm32_hash_append_sg(rctx);
490 stm32_hash_append_sg(rctx);
504 swap_reg = hash_swap_reg(rctx);
588 struct stm32_hash_request_ctx *rctx = ahash_request_ctx(hdev->req);
593 if (ctx->keylen < rctx->state.blocklen || hdev->dma_mode == 1) {
599 sg_init_one(&rctx->sg_key, ctx->key,
602 rctx->dma_ct = dma_map_sg(hdev->dev, &rctx->sg_key, 1,
604 if (rctx->dma_ct == 0) {
609 err = stm32_hash_xmit_dma(hdev, &rctx->sg_key, ctx->keylen, 0);
611 dma_unmap_sg(hdev->dev, &rctx->sg_key, 1, DMA_TO_DEVICE);
653 struct stm32_hash_request_ctx *rctx = ahash_request_ctx(hdev->req);
654 u32 *buffer = (void *)rctx->state.buffer;
660 rctx->sg = hdev->req->src;
661 rctx->total = hdev->req->nbytes;
663 rctx->nents = sg_nents(rctx->sg);
664 if (rctx->nents < 0)
675 for_each_sg(rctx->sg, tsg, rctx->nents, i) {
679 if (sg_is_last(sg) || (bufcnt + sg[0].length) >= rctx->total) {
680 sg->length = rctx->total - bufcnt;
686 rctx->sg, rctx->nents,
687 rctx->state.buffer, sg->length - len,
688 rctx->total - sg->length + len);
700 rctx->dma_ct = dma_map_sg(hdev->dev, sg, 1,
702 if (rctx->dma_ct == 0) {
771 struct stm32_hash_request_ctx *rctx = ahash_request_ctx(req);
776 if (!hdev->dma_lch || req->nbytes <= rctx->state.blocklen)
799 struct stm32_hash_request_ctx *rctx = ahash_request_ctx(req);
801 struct stm32_hash_state *state = &rctx->state;
804 rctx->hdev = hdev;
811 rctx->digcnt = crypto_ahash_digestsize(tfm);
812 switch (rctx->digcnt) {
854 rctx->state.bufcnt = 0;
855 rctx->state.blocklen = crypto_ahash_blocksize(tfm) + sizeof(u32);
856 if (rctx->state.blocklen > HASH_BUFLEN) {
860 rctx->total = 0;
861 rctx->offset = 0;
862 rctx->data_type = HASH_DATA_8_BITS;
874 struct stm32_hash_request_ctx *rctx = ahash_request_ctx(hdev->req);
875 struct stm32_hash_state *state = &rctx->state;
886 struct stm32_hash_request_ctx *rctx = ahash_request_ctx(req);
887 struct stm32_hash_state *state = &rctx->state;
902 struct stm32_hash_request_ctx *rctx = ahash_request_ctx(req);
903 struct stm32_hash_dev *hdev = rctx->hdev;
922 ret = crypto_shash_tfm_digest(ctx->xtfm, NULL, 0, rctx->digest);
930 struct stm32_hash_request_ctx *rctx = ahash_request_ctx(req);
931 struct stm32_hash_state *state = &rctx->state;
932 struct stm32_hash_dev *hdev = rctx->hdev;
933 __be32 *hash = (void *)rctx->digest;
953 struct stm32_hash_request_ctx *rctx = ahash_request_ctx(req);
956 reg = stm32_hash_read(rctx->hdev, HASH_SR);
958 stm32_hash_write(rctx->hdev, HASH_SR, reg);
963 memcpy(req->result, rctx->digest, rctx->digcnt);
970 struct stm32_hash_request_ctx *rctx = ahash_request_ctx(req);
971 struct stm32_hash_dev *hdev = rctx->hdev;
995 struct stm32_hash_request_ctx *rctx = ahash_request_ctx(req);
997 struct stm32_hash_state *state = &rctx->state;
1005 rctx->op, req->nbytes);
1011 swap_reg = hash_swap_reg(rctx);
1014 u32 *preg = rctx->state.hw_context;
1035 if (rctx->op == HASH_OP_UPDATE)
1037 else if (rctx->op == HASH_OP_FINAL)
1059 struct stm32_hash_request_ctx *rctx = ahash_request_ctx(req);
1063 rctx->op = op;
1070 struct stm32_hash_request_ctx *rctx = ahash_request_ctx(req);
1071 struct stm32_hash_state *state = &rctx->state;
1076 rctx->total = req->nbytes;
1077 rctx->sg = req->src;
1078 rctx->offset = 0;
1080 if ((state->bufcnt + rctx->total < state->blocklen)) {
1081 stm32_hash_append_sg(rctx);
1090 struct stm32_hash_request_ctx *rctx = ahash_request_ctx(req);
1091 struct stm32_hash_state *state = &rctx->state;
1100 struct stm32_hash_request_ctx *rctx = ahash_request_ctx(req);
1103 struct stm32_hash_state *state = &rctx->state;
1109 rctx->total = req->nbytes;
1110 rctx->sg = req->src;
1111 rctx->offset = 0;
1127 struct stm32_hash_request_ctx *rctx = ahash_request_ctx(req);
1129 memcpy(out, &rctx->state, sizeof(rctx->state));
1136 struct stm32_hash_request_ctx *rctx = ahash_request_ctx(req);
1139 memcpy(&rctx->state, in, sizeof(rctx->state));