Lines Matching refs:actx

170 static int mxs_dcp_start_dma(struct dcp_async_ctx *actx)
174 const int chan = actx->chan;
177 struct dcp_dma_desc *desc = &sdcp->coh->desc[actx->chan];
219 static int mxs_dcp_run_aes(struct dcp_async_ctx *actx,
224 struct dcp_dma_desc *desc = &sdcp->coh->desc[actx->chan];
246 if (actx->fill % AES_BLOCK_SIZE) {
275 desc->size = actx->fill;
279 ret = mxs_dcp_start_dma(actx);
297 struct dcp_async_ctx *actx = crypto_tfm_ctx(arq->tfm);
319 actx->fill = 0;
322 memcpy(key, actx->key, actx->key_len);
343 if (actx->fill + len > out_off)
344 clen = out_off - actx->fill;
348 memcpy(in_buf + actx->fill, src_buf, clen);
351 actx->fill += clen;
357 if (actx->fill == out_off || sg_is_last(src) ||
359 ret = mxs_dcp_run_aes(actx, req, init);
365 actx->fill, dst_off);
366 dst_off += actx->fill;
367 last_out_len = actx->fill;
368 actx->fill = 0;
451 struct dcp_async_ctx *actx = crypto_tfm_ctx(arq->tfm);
455 if (unlikely(actx->key_len != AES_KEYSIZE_128))
460 actx->chan = DCP_CHAN_CRYPTO;
462 spin_lock(&sdcp->lock[actx->chan]);
463 ret = crypto_enqueue_request(&sdcp->queue[actx->chan], &req->base);
464 spin_unlock(&sdcp->lock[actx->chan]);
466 wake_up_process(sdcp->thread[actx->chan]);
494 struct dcp_async_ctx *actx = crypto_skcipher_ctx(tfm);
501 actx->key_len = len;
503 memcpy(actx->key, key, len);
512 crypto_skcipher_clear_flags(actx->fallback, CRYPTO_TFM_REQ_MASK);
513 crypto_skcipher_set_flags(actx->fallback,
515 return crypto_skcipher_setkey(actx->fallback, key, len);
521 struct dcp_async_ctx *actx = crypto_skcipher_ctx(tfm);
528 actx->fallback = blk;
536 struct dcp_async_ctx *actx = crypto_skcipher_ctx(tfm);
538 crypto_free_skcipher(actx->fallback);
550 struct dcp_async_ctx *actx = crypto_ahash_ctx(tfm);
552 struct dcp_dma_desc *desc = &sdcp->coh->desc[actx->chan];
569 desc->control1 = actx->alg;
573 desc->size = actx->fill;
583 (actx->alg == MXS_DCP_CONTROL1_HASH_SELECT_SHA1) ?
602 ret = mxs_dcp_start_dma(actx);
620 struct dcp_async_ctx *actx = crypto_ahash_ctx(tfm);
640 if (actx->fill + len > DCP_BUF_SZ)
641 clen = DCP_BUF_SZ - actx->fill;
645 scatterwalk_map_and_copy(in_buf + actx->fill, src, oft, clen,
650 actx->fill += clen;
656 if (len && actx->fill == DCP_BUF_SZ) {
660 actx->fill = 0;
676 actx->fill = 0;
725 struct dcp_async_ctx *actx = crypto_ahash_ctx(tfm);
733 memset(actx, 0, sizeof(*actx));
736 actx->alg = MXS_DCP_CONTROL1_HASH_SELECT_SHA1;
738 actx->alg = MXS_DCP_CONTROL1_HASH_SELECT_SHA256;
740 actx->fill = 0;
741 actx->hot = 0;
742 actx->chan = DCP_CHAN_HASH_SHA;
744 mutex_init(&actx->mutex);
755 struct dcp_async_ctx *actx = crypto_ahash_ctx(tfm);
766 mutex_lock(&actx->mutex);
770 if (!actx->hot) {
771 actx->hot = 1;
775 spin_lock(&sdcp->lock[actx->chan]);
776 ret = crypto_enqueue_request(&sdcp->queue[actx->chan], &req->base);
777 spin_unlock(&sdcp->lock[actx->chan]);
779 wake_up_process(sdcp->thread[actx->chan]);
780 mutex_unlock(&actx->mutex);
817 struct dcp_async_ctx *actx = crypto_ahash_ctx(tfm);
821 memset(actx, 0, sizeof(struct dcp_async_ctx));
823 memcpy(actx, &export->async_ctx, sizeof(struct dcp_async_ctx));