Lines Matching refs:actx

171 static int mxs_dcp_start_dma(struct dcp_async_ctx *actx)
175 const int chan = actx->chan;
178 struct dcp_dma_desc *desc = &sdcp->coh->desc[actx->chan];
220 static int mxs_dcp_run_aes(struct dcp_async_ctx *actx,
225 struct dcp_dma_desc *desc = &sdcp->coh->desc[actx->chan];
247 if (actx->fill % AES_BLOCK_SIZE) {
276 desc->size = actx->fill;
280 ret = mxs_dcp_start_dma(actx);
298 struct dcp_async_ctx *actx = crypto_tfm_ctx(arq->tfm);
320 actx->fill = 0;
323 memcpy(key, actx->key, actx->key_len);
344 if (actx->fill + len > out_off)
345 clen = out_off - actx->fill;
349 memcpy(in_buf + actx->fill, src_buf, clen);
352 actx->fill += clen;
358 if (actx->fill == out_off || sg_is_last(src) ||
360 ret = mxs_dcp_run_aes(actx, req, init);
366 actx->fill, dst_off);
367 dst_off += actx->fill;
368 last_out_len = actx->fill;
369 actx->fill = 0;
452 struct dcp_async_ctx *actx = crypto_tfm_ctx(arq->tfm);
456 if (unlikely(actx->key_len != AES_KEYSIZE_128))
461 actx->chan = DCP_CHAN_CRYPTO;
463 spin_lock(&sdcp->lock[actx->chan]);
464 ret = crypto_enqueue_request(&sdcp->queue[actx->chan], &req->base);
465 spin_unlock(&sdcp->lock[actx->chan]);
467 wake_up_process(sdcp->thread[actx->chan]);
495 struct dcp_async_ctx *actx = crypto_skcipher_ctx(tfm);
502 actx->key_len = len;
504 memcpy(actx->key, key, len);
513 crypto_skcipher_clear_flags(actx->fallback, CRYPTO_TFM_REQ_MASK);
514 crypto_skcipher_set_flags(actx->fallback,
516 return crypto_skcipher_setkey(actx->fallback, key, len);
522 struct dcp_async_ctx *actx = crypto_skcipher_ctx(tfm);
529 actx->fallback = blk;
537 struct dcp_async_ctx *actx = crypto_skcipher_ctx(tfm);
539 crypto_free_skcipher(actx->fallback);
551 struct dcp_async_ctx *actx = crypto_ahash_ctx(tfm);
553 struct dcp_dma_desc *desc = &sdcp->coh->desc[actx->chan];
570 desc->control1 = actx->alg;
574 desc->size = actx->fill;
584 (actx->alg == MXS_DCP_CONTROL1_HASH_SELECT_SHA1) ?
603 ret = mxs_dcp_start_dma(actx);
621 struct dcp_async_ctx *actx = crypto_ahash_ctx(tfm);
641 if (actx->fill + len > DCP_BUF_SZ)
642 clen = DCP_BUF_SZ - actx->fill;
646 scatterwalk_map_and_copy(in_buf + actx->fill, src, oft, clen,
651 actx->fill += clen;
657 if (len && actx->fill == DCP_BUF_SZ) {
661 actx->fill = 0;
677 actx->fill = 0;
726 struct dcp_async_ctx *actx = crypto_ahash_ctx(tfm);
734 memset(actx, 0, sizeof(*actx));
737 actx->alg = MXS_DCP_CONTROL1_HASH_SELECT_SHA1;
739 actx->alg = MXS_DCP_CONTROL1_HASH_SELECT_SHA256;
741 actx->fill = 0;
742 actx->hot = 0;
743 actx->chan = DCP_CHAN_HASH_SHA;
745 mutex_init(&actx->mutex);
756 struct dcp_async_ctx *actx = crypto_ahash_ctx(tfm);
767 mutex_lock(&actx->mutex);
771 if (!actx->hot) {
772 actx->hot = 1;
776 spin_lock(&sdcp->lock[actx->chan]);
777 ret = crypto_enqueue_request(&sdcp->queue[actx->chan], &req->base);
778 spin_unlock(&sdcp->lock[actx->chan]);
780 wake_up_process(sdcp->thread[actx->chan]);
781 mutex_unlock(&actx->mutex);
818 struct dcp_async_ctx *actx = crypto_ahash_ctx(tfm);
822 memset(actx, 0, sizeof(struct dcp_async_ctx));
824 memcpy(actx, &export->async_ctx, sizeof(struct dcp_async_ctx));