Lines Matching refs:hace_dev

63 static int aspeed_ahash_req_update(struct aspeed_hace_dev *hace_dev);
117 static int aspeed_ahash_fill_padding(struct aspeed_hace_dev *hace_dev, in aspeed_ahash_fill_padding() argument
123 AHASH_DBG(hace_dev, "rctx flags:0x%x\n", (u32)rctx->flags); in aspeed_ahash_fill_padding()
162 static int aspeed_ahash_dma_prepare(struct aspeed_hace_dev *hace_dev) in aspeed_ahash_dma_prepare() argument
164 struct aspeed_engine_hash *hash_engine = &hace_dev->hash_engine; in aspeed_ahash_dma_prepare()
173 AHASH_DBG(hace_dev, "length:0x%x, remain:0x%x\n", length, remain); in aspeed_ahash_dma_prepare()
190 hace_dev, rctx, hash_engine->ahash_src_addr + length); in aspeed_ahash_dma_prepare()
192 rctx->digest_dma_addr = dma_map_single(hace_dev->dev, rctx->digest, in aspeed_ahash_dma_prepare()
195 if (dma_mapping_error(hace_dev->dev, rctx->digest_dma_addr)) { in aspeed_ahash_dma_prepare()
196 dev_warn(hace_dev->dev, "dma_map() rctx digest error\n"); in aspeed_ahash_dma_prepare()
211 static int aspeed_ahash_dma_prepare_sg(struct aspeed_hace_dev *hace_dev) in aspeed_ahash_dma_prepare_sg() argument
213 struct aspeed_engine_hash *hash_engine = &hace_dev->hash_engine; in aspeed_ahash_dma_prepare_sg()
228 AHASH_DBG(hace_dev, "%s:0x%x, %s:0x%x, %s:0x%x\n", in aspeed_ahash_dma_prepare_sg()
232 sg_len = dma_map_sg(hace_dev->dev, rctx->src_sg, rctx->src_nents, in aspeed_ahash_dma_prepare_sg()
235 dev_warn(hace_dev->dev, "dma_map_sg() src error\n"); in aspeed_ahash_dma_prepare_sg()
243 rctx->digest_dma_addr = dma_map_single(hace_dev->dev, rctx->digest, in aspeed_ahash_dma_prepare_sg()
246 if (dma_mapping_error(hace_dev->dev, rctx->digest_dma_addr)) { in aspeed_ahash_dma_prepare_sg()
247 dev_warn(hace_dev->dev, "dma_map() rctx digest error\n"); in aspeed_ahash_dma_prepare_sg()
286 int len = aspeed_ahash_fill_padding(hace_dev, rctx, in aspeed_ahash_dma_prepare_sg()
290 rctx->buffer_dma_addr = dma_map_single(hace_dev->dev, in aspeed_ahash_dma_prepare_sg()
294 if (dma_mapping_error(hace_dev->dev, rctx->buffer_dma_addr)) { in aspeed_ahash_dma_prepare_sg()
295 dev_warn(hace_dev->dev, "dma_map() rctx buffer error\n"); in aspeed_ahash_dma_prepare_sg()
313 dma_unmap_single(hace_dev->dev, rctx->digest_dma_addr, in aspeed_ahash_dma_prepare_sg()
316 dma_unmap_sg(hace_dev->dev, rctx->src_sg, rctx->src_nents, in aspeed_ahash_dma_prepare_sg()
322 static int aspeed_ahash_complete(struct aspeed_hace_dev *hace_dev) in aspeed_ahash_complete() argument
324 struct aspeed_engine_hash *hash_engine = &hace_dev->hash_engine; in aspeed_ahash_complete()
328 AHASH_DBG(hace_dev, "\n"); in aspeed_ahash_complete()
330 dma_unmap_single(hace_dev->dev, rctx->digest_dma_addr, in aspeed_ahash_complete()
335 return aspeed_ahash_req_update(hace_dev); in aspeed_ahash_complete()
342 crypto_finalize_hash_request(hace_dev->crypt_engine_hash, req, in aspeed_ahash_complete()
351 static int aspeed_hace_ahash_trigger(struct aspeed_hace_dev *hace_dev, in aspeed_hace_ahash_trigger() argument
354 struct aspeed_engine_hash *hash_engine = &hace_dev->hash_engine; in aspeed_hace_ahash_trigger()
358 AHASH_DBG(hace_dev, "src_dma:%pad, digest_dma:%pad, length:%zu\n", in aspeed_hace_ahash_trigger()
365 ast_hace_write(hace_dev, hash_engine->src_dma, ASPEED_HACE_HASH_SRC); in aspeed_hace_ahash_trigger()
366 ast_hace_write(hace_dev, hash_engine->digest_dma, in aspeed_hace_ahash_trigger()
368 ast_hace_write(hace_dev, hash_engine->digest_dma, in aspeed_hace_ahash_trigger()
370 ast_hace_write(hace_dev, hash_engine->src_length, in aspeed_hace_ahash_trigger()
376 ast_hace_write(hace_dev, rctx->cmd, ASPEED_HACE_HASH_CMD); in aspeed_hace_ahash_trigger()
381 static int aspeed_ahash_update_resume_sg(struct aspeed_hace_dev *hace_dev) in aspeed_ahash_update_resume_sg() argument
383 struct aspeed_engine_hash *hash_engine = &hace_dev->hash_engine; in aspeed_ahash_update_resume_sg()
387 AHASH_DBG(hace_dev, "\n"); in aspeed_ahash_update_resume_sg()
389 dma_unmap_sg(hace_dev->dev, rctx->src_sg, rctx->src_nents, in aspeed_ahash_update_resume_sg()
393 dma_unmap_single(hace_dev->dev, rctx->buffer_dma_addr, in aspeed_ahash_update_resume_sg()
398 return aspeed_ahash_complete(hace_dev); in aspeed_ahash_update_resume_sg()
401 static int aspeed_ahash_req_update(struct aspeed_hace_dev *hace_dev) in aspeed_ahash_req_update() argument
403 struct aspeed_engine_hash *hash_engine = &hace_dev->hash_engine; in aspeed_ahash_req_update()
409 AHASH_DBG(hace_dev, "\n"); in aspeed_ahash_req_update()
411 if (hace_dev->version == AST2600_VERSION) { in aspeed_ahash_req_update()
419 ret = hash_engine->dma_prepare(hace_dev); in aspeed_ahash_req_update()
423 return aspeed_hace_ahash_trigger(hace_dev, resume); in aspeed_ahash_req_update()
426 static int aspeed_hace_hash_handle_queue(struct aspeed_hace_dev *hace_dev, in aspeed_hace_hash_handle_queue() argument
430 hace_dev->crypt_engine_hash, req); in aspeed_hace_hash_handle_queue()
464 struct aspeed_hace_dev *hace_dev = tctx->hace_dev; in aspeed_ahash_do_request() local
468 hash_engine = &hace_dev->hash_engine; in aspeed_ahash_do_request()
471 ret = aspeed_ahash_req_update(hace_dev); in aspeed_ahash_do_request()
484 struct aspeed_hace_dev *hace_dev = tctx->hace_dev; in aspeed_ahash_prepare_request() local
487 hash_engine = &hace_dev->hash_engine; in aspeed_ahash_prepare_request()
490 if (hace_dev->version == AST2600_VERSION) in aspeed_ahash_prepare_request()
507 struct aspeed_hace_dev *hace_dev = tctx->hace_dev; in aspeed_sham_update() local
509 AHASH_DBG(hace_dev, "req->nbytes: %d\n", req->nbytes); in aspeed_sham_update()
516 return aspeed_hace_hash_handle_queue(hace_dev, req); in aspeed_sham_update()
524 struct aspeed_hace_dev *hace_dev = tctx->hace_dev; in aspeed_sham_finup() local
526 AHASH_DBG(hace_dev, "req->nbytes: %d\n", req->nbytes); in aspeed_sham_finup()
538 struct aspeed_hace_dev *hace_dev = tctx->hace_dev; in aspeed_sham_init() local
540 AHASH_DBG(hace_dev, "%s: digest size:%d\n", in aspeed_sham_init()
591 dev_warn(tctx->hace_dev->dev, "digest size %d not support\n", in aspeed_sham_init()
615 tctx->hace_dev = ast_alg->hace_dev; in aspeed_sham_cra_init()
786 void aspeed_unregister_hace_hash_algs(struct aspeed_hace_dev *hace_dev) in aspeed_unregister_hace_hash_algs() argument
793 if (hace_dev->version != AST2600_VERSION) in aspeed_unregister_hace_hash_algs()
800 void aspeed_register_hace_hash_algs(struct aspeed_hace_dev *hace_dev) in aspeed_register_hace_hash_algs() argument
804 AHASH_DBG(hace_dev, "\n"); in aspeed_register_hace_hash_algs()
807 aspeed_ahash_algs[i].hace_dev = hace_dev; in aspeed_register_hace_hash_algs()
810 AHASH_DBG(hace_dev, "Failed to register %s\n", in aspeed_register_hace_hash_algs()
815 if (hace_dev->version != AST2600_VERSION) in aspeed_register_hace_hash_algs()
819 aspeed_ahash_algs_g6[i].hace_dev = hace_dev; in aspeed_register_hace_hash_algs()
822 AHASH_DBG(hace_dev, "Failed to register %s\n", in aspeed_register_hace_hash_algs()