cesa 190 drivers/crypto/marvell/cesa.c static int mv_cesa_add_algs(struct mv_cesa_dev *cesa) cesa 195 drivers/crypto/marvell/cesa.c for (i = 0; i < cesa->caps->ncipher_algs; i++) { cesa 196 drivers/crypto/marvell/cesa.c ret = crypto_register_skcipher(cesa->caps->cipher_algs[i]); cesa 201 drivers/crypto/marvell/cesa.c for (i = 0; i < cesa->caps->nahash_algs; i++) { cesa 202 drivers/crypto/marvell/cesa.c ret = crypto_register_ahash(cesa->caps->ahash_algs[i]); cesa 211 drivers/crypto/marvell/cesa.c crypto_unregister_ahash(cesa->caps->ahash_algs[j]); cesa 212 drivers/crypto/marvell/cesa.c i = cesa->caps->ncipher_algs; cesa 216 drivers/crypto/marvell/cesa.c crypto_unregister_skcipher(cesa->caps->cipher_algs[j]); cesa 221 drivers/crypto/marvell/cesa.c static void mv_cesa_remove_algs(struct mv_cesa_dev *cesa) cesa 225 drivers/crypto/marvell/cesa.c for (i = 0; i < cesa->caps->nahash_algs; i++) cesa 226 drivers/crypto/marvell/cesa.c crypto_unregister_ahash(cesa->caps->ahash_algs[i]); cesa 228 drivers/crypto/marvell/cesa.c for (i = 0; i < cesa->caps->ncipher_algs; i++) cesa 229 drivers/crypto/marvell/cesa.c crypto_unregister_skcipher(cesa->caps->cipher_algs[i]); cesa 337 drivers/crypto/marvell/cesa.c static int mv_cesa_dev_dma_init(struct mv_cesa_dev *cesa) cesa 339 drivers/crypto/marvell/cesa.c struct device *dev = cesa->dev; cesa 342 drivers/crypto/marvell/cesa.c if (!cesa->caps->has_tdma) cesa 369 drivers/crypto/marvell/cesa.c cesa->dma = dma; cesa 376 drivers/crypto/marvell/cesa.c struct mv_cesa_dev *cesa = platform_get_drvdata(pdev); cesa 377 drivers/crypto/marvell/cesa.c struct mv_cesa_engine *engine = &cesa->engines[idx]; cesa 381 drivers/crypto/marvell/cesa.c engine->pool = of_gen_pool_get(cesa->dev->of_node, cesa 385 drivers/crypto/marvell/cesa.c cesa->sram_size, cesa 394 drivers/crypto/marvell/cesa.c if (cesa->caps->nengines > 1) { cesa 403 drivers/crypto/marvell/cesa.c if (!res || resource_size(res) < cesa->sram_size) cesa 406 drivers/crypto/marvell/cesa.c engine->sram = devm_ioremap_resource(cesa->dev, res); cesa 410 drivers/crypto/marvell/cesa.c engine->sram_dma = dma_map_resource(cesa->dev, res->start, cesa 411 drivers/crypto/marvell/cesa.c cesa->sram_size, cesa 413 drivers/crypto/marvell/cesa.c if (dma_mapping_error(cesa->dev, engine->sram_dma)) cesa 421 drivers/crypto/marvell/cesa.c struct mv_cesa_dev *cesa = platform_get_drvdata(pdev); cesa 422 drivers/crypto/marvell/cesa.c struct mv_cesa_engine *engine = &cesa->engines[idx]; cesa 426 drivers/crypto/marvell/cesa.c cesa->sram_size); cesa 428 drivers/crypto/marvell/cesa.c dma_unmap_resource(cesa->dev, engine->sram_dma, cesa 429 drivers/crypto/marvell/cesa.c cesa->sram_size, DMA_BIDIRECTIONAL, 0); cesa 438 drivers/crypto/marvell/cesa.c struct mv_cesa_dev *cesa; cesa 457 drivers/crypto/marvell/cesa.c cesa = devm_kzalloc(dev, sizeof(*cesa), GFP_KERNEL); cesa 458 drivers/crypto/marvell/cesa.c if (!cesa) cesa 461 drivers/crypto/marvell/cesa.c cesa->caps = caps; cesa 462 drivers/crypto/marvell/cesa.c cesa->dev = dev; cesa 465 drivers/crypto/marvell/cesa.c of_property_read_u32(cesa->dev->of_node, "marvell,crypto-sram-size", cesa 470 drivers/crypto/marvell/cesa.c cesa->sram_size = sram_size; cesa 471 drivers/crypto/marvell/cesa.c cesa->engines = devm_kcalloc(dev, caps->nengines, sizeof(*engines), cesa 473 drivers/crypto/marvell/cesa.c if (!cesa->engines) cesa 476 drivers/crypto/marvell/cesa.c spin_lock_init(&cesa->lock); cesa 479 drivers/crypto/marvell/cesa.c cesa->regs = devm_ioremap_resource(dev, res); cesa 480 drivers/crypto/marvell/cesa.c if (IS_ERR(cesa->regs)) cesa 481 drivers/crypto/marvell/cesa.c return PTR_ERR(cesa->regs); cesa 483 drivers/crypto/marvell/cesa.c ret = mv_cesa_dev_dma_init(cesa); cesa 489 drivers/crypto/marvell/cesa.c platform_set_drvdata(pdev, cesa); cesa 492 drivers/crypto/marvell/cesa.c struct mv_cesa_engine *engine = &cesa->engines[i]; cesa 533 drivers/crypto/marvell/cesa.c engine->regs = cesa->regs + CESA_ENGINE_OFF(i); cesa 535 drivers/crypto/marvell/cesa.c if (dram && cesa->caps->has_tdma) cesa 556 drivers/crypto/marvell/cesa.c cesa_dev = cesa; cesa 558 drivers/crypto/marvell/cesa.c ret = mv_cesa_add_algs(cesa); cesa 570 drivers/crypto/marvell/cesa.c clk_disable_unprepare(cesa->engines[i].zclk); cesa 571 drivers/crypto/marvell/cesa.c clk_disable_unprepare(cesa->engines[i].clk); cesa 580 drivers/crypto/marvell/cesa.c struct mv_cesa_dev *cesa = platform_get_drvdata(pdev); cesa 583 drivers/crypto/marvell/cesa.c mv_cesa_remove_algs(cesa); cesa 585 drivers/crypto/marvell/cesa.c for (i = 0; i < cesa->caps->nengines; i++) { cesa 586 drivers/crypto/marvell/cesa.c clk_disable_unprepare(cesa->engines[i].zclk); cesa 587 drivers/crypto/marvell/cesa.c clk_disable_unprepare(cesa->engines[i].clk);