Lines Matching refs:hace_dev

66 static int aspeed_hace_crypto_handle_queue(struct aspeed_hace_dev *hace_dev,  in aspeed_hace_crypto_handle_queue()  argument
69 if (hace_dev->version == AST2500_VERSION && in aspeed_hace_crypto_handle_queue()
71 CIPHER_DBG(hace_dev, "SW fallback\n"); in aspeed_hace_crypto_handle_queue()
76 hace_dev->crypt_engine_crypto, req); in aspeed_hace_crypto_handle_queue()
84 struct aspeed_hace_dev *hace_dev = ctx->hace_dev; in aspeed_crypto_do_request() local
88 crypto_engine = &hace_dev->crypto_engine; in aspeed_crypto_do_request()
92 rc = ctx->start(hace_dev); in aspeed_crypto_do_request()
100 static int aspeed_sk_complete(struct aspeed_hace_dev *hace_dev, int err) in aspeed_sk_complete() argument
102 struct aspeed_engine_crypto *crypto_engine = &hace_dev->crypto_engine; in aspeed_sk_complete()
106 CIPHER_DBG(hace_dev, "\n"); in aspeed_sk_complete()
122 crypto_finalize_skcipher_request(hace_dev->crypt_engine_crypto, req, in aspeed_sk_complete()
128 static int aspeed_sk_transfer_sg(struct aspeed_hace_dev *hace_dev) in aspeed_sk_transfer_sg() argument
130 struct aspeed_engine_crypto *crypto_engine = &hace_dev->crypto_engine; in aspeed_sk_transfer_sg()
131 struct device *dev = hace_dev->dev; in aspeed_sk_transfer_sg()
135 CIPHER_DBG(hace_dev, "\n"); in aspeed_sk_transfer_sg()
147 return aspeed_sk_complete(hace_dev, 0); in aspeed_sk_transfer_sg()
150 static int aspeed_sk_transfer(struct aspeed_hace_dev *hace_dev) in aspeed_sk_transfer() argument
152 struct aspeed_engine_crypto *crypto_engine = &hace_dev->crypto_engine; in aspeed_sk_transfer()
167 dev_warn(hace_dev->dev, "invalid sg copy, %s:0x%x, %s:0x%x\n", in aspeed_sk_transfer()
172 CIPHER_DBG(hace_dev, "%s:%d, %s:%d, %s:%d, %s:%p\n", in aspeed_sk_transfer()
177 return aspeed_sk_complete(hace_dev, rc); in aspeed_sk_transfer()
180 static int aspeed_sk_start(struct aspeed_hace_dev *hace_dev) in aspeed_sk_start() argument
182 struct aspeed_engine_crypto *crypto_engine = &hace_dev->crypto_engine; in aspeed_sk_start()
195 CIPHER_DBG(hace_dev, "%s:%d, %s:%d, %s:%d, %s:%p\n", in aspeed_sk_start()
201 dev_warn(hace_dev->dev, "invalid sg copy, %s:0x%x, %s:0x%x\n", in aspeed_sk_start()
209 ast_hace_write(hace_dev, crypto_engine->cipher_dma_addr, in aspeed_sk_start()
211 ast_hace_write(hace_dev, crypto_engine->cipher_dma_addr, in aspeed_sk_start()
213 ast_hace_write(hace_dev, req->cryptlen, ASPEED_HACE_DATA_LEN); in aspeed_sk_start()
214 ast_hace_write(hace_dev, rctx->enc_cmd, ASPEED_HACE_CMD); in aspeed_sk_start()
219 static int aspeed_sk_start_sg(struct aspeed_hace_dev *hace_dev) in aspeed_sk_start_sg() argument
221 struct aspeed_engine_crypto *crypto_engine = &hace_dev->crypto_engine; in aspeed_sk_start_sg()
232 CIPHER_DBG(hace_dev, "\n"); in aspeed_sk_start_sg()
242 src_sg_len = dma_map_sg(hace_dev->dev, req->src, in aspeed_sk_start_sg()
246 dev_warn(hace_dev->dev, "dma_map_sg() src error\n"); in aspeed_sk_start_sg()
251 src_sg_len = dma_map_sg(hace_dev->dev, req->src, in aspeed_sk_start_sg()
254 dev_warn(hace_dev->dev, "dma_map_sg() src error\n"); in aspeed_sk_start_sg()
258 dst_sg_len = dma_map_sg(hace_dev->dev, req->dst, in aspeed_sk_start_sg()
261 dev_warn(hace_dev->dev, "dma_map_sg() dst error\n"); in aspeed_sk_start_sg()
335 ast_hace_write(hace_dev, src_dma_addr, ASPEED_HACE_SRC); in aspeed_sk_start_sg()
336 ast_hace_write(hace_dev, dst_dma_addr, ASPEED_HACE_DEST); in aspeed_sk_start_sg()
337 ast_hace_write(hace_dev, req->cryptlen, ASPEED_HACE_DATA_LEN); in aspeed_sk_start_sg()
338 ast_hace_write(hace_dev, rctx->enc_cmd, ASPEED_HACE_CMD); in aspeed_sk_start_sg()
344 dma_unmap_sg(hace_dev->dev, req->src, rctx->src_nents, in aspeed_sk_start_sg()
348 dma_unmap_sg(hace_dev->dev, req->dst, rctx->dst_nents, in aspeed_sk_start_sg()
350 dma_unmap_sg(hace_dev->dev, req->src, rctx->src_nents, in aspeed_sk_start_sg()
357 dma_unmap_sg(hace_dev->dev, req->src, rctx->src_nents, DMA_TO_DEVICE); in aspeed_sk_start_sg()
362 static int aspeed_hace_skcipher_trigger(struct aspeed_hace_dev *hace_dev) in aspeed_hace_skcipher_trigger() argument
364 struct aspeed_engine_crypto *crypto_engine = &hace_dev->crypto_engine; in aspeed_hace_skcipher_trigger()
370 CIPHER_DBG(hace_dev, "\n"); in aspeed_hace_skcipher_trigger()
383 ast_hace_write(hace_dev, crypto_engine->cipher_ctx_dma, in aspeed_hace_skcipher_trigger()
395 if (hace_dev->version == AST2600_VERSION) { in aspeed_hace_skcipher_trigger()
398 return aspeed_sk_start_sg(hace_dev); in aspeed_hace_skcipher_trigger()
403 return aspeed_sk_start(hace_dev); in aspeed_hace_skcipher_trigger()
411 struct aspeed_hace_dev *hace_dev = ctx->hace_dev; in aspeed_des_crypt() local
414 CIPHER_DBG(hace_dev, "\n"); in aspeed_des_crypt()
425 return aspeed_hace_crypto_handle_queue(hace_dev, req); in aspeed_des_crypt()
433 struct aspeed_hace_dev *hace_dev = ctx->hace_dev; in aspeed_des_setkey() local
436 CIPHER_DBG(hace_dev, "keylen: %d bits\n", keylen); in aspeed_des_setkey()
439 dev_warn(hace_dev->dev, "invalid keylen: %d bits\n", keylen); in aspeed_des_setkey()
541 struct aspeed_hace_dev *hace_dev = ctx->hace_dev; in aspeed_aes_crypt() local
549 CIPHER_DBG(hace_dev, "%s\n", in aspeed_aes_crypt()
571 return aspeed_hace_crypto_handle_queue(hace_dev, req); in aspeed_aes_crypt()
578 struct aspeed_hace_dev *hace_dev = ctx->hace_dev; in aspeed_aes_setkey() local
581 CIPHER_DBG(hace_dev, "keylen: %d bits\n", (keylen * 8)); in aspeed_aes_setkey()
587 if (ctx->hace_dev->version == AST2500_VERSION) { in aspeed_aes_setkey()
643 ctx->hace_dev = crypto_alg->hace_dev; in aspeed_crypto_cra_init()
646 CIPHER_DBG(ctx->hace_dev, "%s\n", name); in aspeed_crypto_cra_init()
651 dev_err(ctx->hace_dev->dev, "ERROR: Cannot allocate fallback for %s %ld\n", in aspeed_crypto_cra_init()
665 struct aspeed_hace_dev *hace_dev = ctx->hace_dev; in aspeed_crypto_cra_exit() local
667 CIPHER_DBG(hace_dev, "%s\n", crypto_tfm_alg_name(&tfm->base)); in aspeed_crypto_cra_exit()
915 void aspeed_unregister_hace_crypto_algs(struct aspeed_hace_dev *hace_dev) in aspeed_unregister_hace_crypto_algs() argument
922 if (hace_dev->version != AST2600_VERSION) in aspeed_unregister_hace_crypto_algs()
929 void aspeed_register_hace_crypto_algs(struct aspeed_hace_dev *hace_dev) in aspeed_register_hace_crypto_algs() argument
933 CIPHER_DBG(hace_dev, "\n"); in aspeed_register_hace_crypto_algs()
936 aspeed_crypto_algs[i].hace_dev = hace_dev; in aspeed_register_hace_crypto_algs()
939 CIPHER_DBG(hace_dev, "Failed to register %s\n", in aspeed_register_hace_crypto_algs()
944 if (hace_dev->version != AST2600_VERSION) in aspeed_register_hace_crypto_algs()
948 aspeed_crypto_algs_g6[i].hace_dev = hace_dev; in aspeed_register_hace_crypto_algs()
951 CIPHER_DBG(hace_dev, "Failed to register %s\n", in aspeed_register_hace_crypto_algs()