Lines Matching full:ss
3 * sun8i-ss-cipher.c - hardware cryptographic offloader for
21 #include "sun8i-ss.h"
75 /* SS need same numbers of SG (with same length) for source and destination */ in sun8i_ss_need_fallback()
119 struct sun8i_ss_dev *ss = op->ss; in sun8i_ss_setup_ivs() local
125 struct sun8i_ss_flow *sf = &ss->flows[rctx->flow]; in sun8i_ss_setup_ivs()
145 a = dma_map_single(ss->dev, sf->iv[i], ivsize, DMA_TO_DEVICE); in sun8i_ss_setup_ivs()
146 if (dma_mapping_error(ss->dev, a)) { in sun8i_ss_setup_ivs()
148 dev_err(ss->dev, "Cannot DMA MAP IV\n"); in sun8i_ss_setup_ivs()
171 dma_unmap_single(ss->dev, rctx->p_iv[i], ivsize, DMA_TO_DEVICE); in sun8i_ss_setup_ivs()
182 struct sun8i_ss_dev *ss = op->ss; in sun8i_ss_cipher() local
186 struct sun8i_ss_flow *sf = &ss->flows[rctx->flow]; in sun8i_ss_cipher()
198 dev_dbg(ss->dev, "%s %s %u %x IV(%p %u) key=%u\n", __func__, in sun8i_ss_cipher()
208 rctx->op_mode = ss->variant->op_mode[algt->ss_blockmode]; in sun8i_ss_cipher()
209 rctx->method = ss->variant->alg_cipher[algt->ss_algo_id]; in sun8i_ss_cipher()
212 rctx->p_key = dma_map_single(ss->dev, op->key, op->keylen, DMA_TO_DEVICE); in sun8i_ss_cipher()
213 if (dma_mapping_error(ss->dev, rctx->p_key)) { in sun8i_ss_cipher()
214 dev_err(ss->dev, "Cannot DMA MAP KEY\n"); in sun8i_ss_cipher()
226 nr_sgs = dma_map_sg(ss->dev, areq->src, nsgs, DMA_BIDIRECTIONAL); in sun8i_ss_cipher()
228 dev_err(ss->dev, "Invalid sg number %d\n", nr_sgs); in sun8i_ss_cipher()
234 nr_sgs = dma_map_sg(ss->dev, areq->src, nsgs, DMA_TO_DEVICE); in sun8i_ss_cipher()
236 dev_err(ss->dev, "Invalid sg number %d\n", nr_sgs); in sun8i_ss_cipher()
240 nr_sgd = dma_map_sg(ss->dev, areq->dst, nsgd, DMA_FROM_DEVICE); in sun8i_ss_cipher()
242 dev_err(ss->dev, "Invalid sg number %d\n", nr_sgd); in sun8i_ss_cipher()
257 dev_dbg(ss->dev, "%s total=%u SGS(%d %u off=%d) todo=%u\n", __func__, in sun8i_ss_cipher()
265 dev_err(ss->dev, "remaining len %d\n", len); in sun8i_ss_cipher()
279 dev_dbg(ss->dev, "%s total=%u SGD(%d %u off=%d) todo=%u\n", __func__, in sun8i_ss_cipher()
287 dev_err(ss->dev, "remaining len %d\n", len); in sun8i_ss_cipher()
292 err = sun8i_ss_run_task(ss, rctx, crypto_tfm_alg_name(areq->base.tfm)); in sun8i_ss_cipher()
296 dma_unmap_sg(ss->dev, areq->src, nsgs, DMA_BIDIRECTIONAL); in sun8i_ss_cipher()
298 dma_unmap_sg(ss->dev, areq->src, nsgs, DMA_TO_DEVICE); in sun8i_ss_cipher()
299 dma_unmap_sg(ss->dev, areq->dst, nsgd, DMA_FROM_DEVICE); in sun8i_ss_cipher()
305 dma_unmap_single(ss->dev, rctx->p_iv[i], ivsize, DMA_TO_DEVICE); in sun8i_ss_cipher()
320 dma_unmap_single(ss->dev, rctx->p_key, op->keylen, DMA_TO_DEVICE); in sun8i_ss_cipher()
354 e = sun8i_ss_get_engine_number(op->ss); in sun8i_ss_skdecrypt()
355 engine = op->ss->flows[e].engine; in sun8i_ss_skdecrypt()
375 e = sun8i_ss_get_engine_number(op->ss); in sun8i_ss_skencrypt()
376 engine = op->ss->flows[e].engine; in sun8i_ss_skencrypt()
394 op->ss = algt->ss; in sun8i_ss_cipher_init()
398 dev_err(op->ss->dev, "ERROR: Cannot allocate fallback for %s %ld\n", in sun8i_ss_cipher_init()
415 err = pm_runtime_resume_and_get(op->ss->dev); in sun8i_ss_cipher_init()
417 dev_err(op->ss->dev, "pm error %d\n", err); in sun8i_ss_cipher_init()
433 pm_runtime_put_sync(op->ss->dev); in sun8i_ss_cipher_exit()
440 struct sun8i_ss_dev *ss = op->ss; in sun8i_ss_aes_setkey() local
450 dev_dbg(ss->dev, "ERROR: Invalid keylen %u\n", keylen); in sun8i_ss_aes_setkey()
469 struct sun8i_ss_dev *ss = op->ss; in sun8i_ss_des3_setkey() local
472 dev_dbg(ss->dev, "Invalid keylen %u\n", keylen); in sun8i_ss_des3_setkey()