Lines Matching refs:ss

3  * sun8i-ss-hash.c - hardware cryptographic offloader for
27 #include "sun8i-ss.h"
41 dev_err(tfmctx->ss->dev, "shash digest error ret=%d\n", ret);
103 op->ss = algt->ss;
109 dev_err(algt->ss->dev, "Fallback driver could no be loaded\n");
123 err = pm_runtime_get_sync(op->ss->dev);
128 pm_runtime_put_noidle(op->ss->dev);
141 pm_runtime_put_sync_suspend(tfmctx->ss->dev);
281 static int sun8i_ss_run_hash_task(struct sun8i_ss_dev *ss,
290 ss->flows[flow].stat_req++;
305 mutex_lock(&ss->mlock);
308 writel(rctx->t_dst[i - 1].addr, ss->base + SS_KEY_ADR_REG);
309 writel(rctx->t_dst[i - 1].addr, ss->base + SS_IV_ADR_REG);
312 dev_dbg(ss->dev,
318 writel(rctx->t_src[i].addr, ss->base + SS_SRC_ADR_REG);
319 writel(rctx->t_dst[i].addr, ss->base + SS_DST_ADR_REG);
320 writel(rctx->t_src[i].len, ss->base + SS_LEN_ADR_REG);
321 writel(BIT(0) | BIT(1), ss->base + SS_INT_CTL_REG);
323 reinit_completion(&ss->flows[flow].complete);
324 ss->flows[flow].status = 0;
327 writel(v, ss->base + SS_CTL_REG);
328 mutex_unlock(&ss->mlock);
329 wait_for_completion_interruptible_timeout(&ss->flows[flow].complete,
331 if (ss->flows[flow].status == 0) {
332 dev_err(ss->dev, "DMA timeout for %s\n", name);
395 struct sun8i_ss_dev *ss;
403 ss = algt->ss;
405 e = sun8i_ss_get_engine_number(ss);
407 engine = ss->flows[e].engine;
481 struct sun8i_ss_dev *ss;
499 ss = algt->ss;
505 result = ss->flows[rctx->flow].result;
506 pad = ss->flows[rctx->flow].pad;
518 rctx->method = ss->variant->alg_hash[algt->ss_algo_id];
520 nr_sgs = dma_map_sg(ss->dev, areq->src, sg_nents(areq->src), DMA_TO_DEVICE);
522 dev_err(ss->dev, "Invalid sg number %d\n", nr_sgs);
527 addr_res = dma_map_single(ss->dev, result, digestsize, DMA_FROM_DEVICE);
528 if (dma_mapping_error(ss->dev, addr_res)) {
529 dev_err(ss->dev, "DMA map dest\n");
560 dev_err(ss->dev, "remaining len %d\n", len);
579 addr_xpad = dma_map_single(ss->dev, tfmctx->ipad, bs, DMA_TO_DEVICE);
580 err = dma_mapping_error(ss->dev, addr_xpad);
582 dev_err(ss->dev, "Fail to create DMA mapping of ipad\n");
600 addr_res = dma_map_single(ss->dev, result, digestsize, DMA_FROM_DEVICE);
601 if (dma_mapping_error(ss->dev, addr_res)) {
602 dev_err(ss->dev, "Fail to create DMA mapping of result\n");
606 addr_xpad = dma_map_single(ss->dev, tfmctx->opad, bs, DMA_TO_DEVICE);
607 err = dma_mapping_error(ss->dev, addr_xpad);
609 dev_err(ss->dev, "Fail to create DMA mapping of opad\n");
639 addr_pad = dma_map_single(ss->dev, pad, j * 4, DMA_TO_DEVICE);
640 if (dma_mapping_error(ss->dev, addr_pad)) {
641 dev_err(ss->dev, "DMA error on padding SG\n");
650 err = sun8i_ss_run_hash_task(ss, rctx, crypto_tfm_alg_name(areq->base.tfm));
677 dma_unmap_single(ss->dev, addr_pad, j * 4, DMA_TO_DEVICE);
681 dma_unmap_single(ss->dev, addr_xpad, bs, DMA_TO_DEVICE);
683 dma_unmap_single(ss->dev, addr_res, digestsize, DMA_FROM_DEVICE);
686 dma_unmap_sg(ss->dev, areq->src, sg_nents(areq->src),