Lines Matching refs:hdev
129 struct stm32_hash_dev *hdev; member
137 struct stm32_hash_dev *hdev; member
210 static inline u32 stm32_hash_read(struct stm32_hash_dev *hdev, u32 offset) in stm32_hash_read() argument
212 return readl_relaxed(hdev->io_base + offset); in stm32_hash_read()
215 static inline void stm32_hash_write(struct stm32_hash_dev *hdev, in stm32_hash_write() argument
218 writel_relaxed(value, hdev->io_base + offset); in stm32_hash_write()
221 static inline int stm32_hash_wait_busy(struct stm32_hash_dev *hdev) in stm32_hash_wait_busy() argument
225 return readl_relaxed_poll_timeout(hdev->io_base + HASH_SR, status, in stm32_hash_wait_busy()
229 static void stm32_hash_set_nblw(struct stm32_hash_dev *hdev, int length) in stm32_hash_set_nblw() argument
233 reg = stm32_hash_read(hdev, HASH_STR); in stm32_hash_set_nblw()
236 stm32_hash_write(hdev, HASH_STR, reg); in stm32_hash_set_nblw()
239 static int stm32_hash_write_key(struct stm32_hash_dev *hdev) in stm32_hash_write_key() argument
241 struct crypto_ahash *tfm = crypto_ahash_reqtfm(hdev->req); in stm32_hash_write_key()
248 stm32_hash_set_nblw(hdev, keylen); in stm32_hash_write_key()
251 stm32_hash_write(hdev, HASH_DIN, *(u32 *)key); in stm32_hash_write_key()
256 reg = stm32_hash_read(hdev, HASH_STR); in stm32_hash_write_key()
258 stm32_hash_write(hdev, HASH_STR, reg); in stm32_hash_write_key()
266 static void stm32_hash_write_ctrl(struct stm32_hash_dev *hdev) in stm32_hash_write_ctrl() argument
268 struct stm32_hash_request_ctx *rctx = ahash_request_ctx(hdev->req); in stm32_hash_write_ctrl()
269 struct crypto_ahash *tfm = crypto_ahash_reqtfm(hdev->req); in stm32_hash_write_ctrl()
274 if (!(hdev->flags & HASH_FLAGS_INIT)) { in stm32_hash_write_ctrl()
295 hdev->flags |= HASH_FLAGS_HMAC; in stm32_hash_write_ctrl()
301 stm32_hash_write(hdev, HASH_IMR, HASH_DCIE); in stm32_hash_write_ctrl()
303 stm32_hash_write(hdev, HASH_CR, reg); in stm32_hash_write_ctrl()
305 hdev->flags |= HASH_FLAGS_INIT; in stm32_hash_write_ctrl()
307 dev_dbg(hdev->dev, "Write Control %x\n", reg); in stm32_hash_write_ctrl()
345 static int stm32_hash_xmit_cpu(struct stm32_hash_dev *hdev, in stm32_hash_xmit_cpu() argument
353 hdev->flags |= HASH_FLAGS_FINAL; in stm32_hash_xmit_cpu()
357 dev_dbg(hdev->dev, "%s: length: %d, final: %x len32 %i\n", in stm32_hash_xmit_cpu()
360 hdev->flags |= HASH_FLAGS_CPU; in stm32_hash_xmit_cpu()
362 stm32_hash_write_ctrl(hdev); in stm32_hash_xmit_cpu()
364 if (stm32_hash_wait_busy(hdev)) in stm32_hash_xmit_cpu()
367 if ((hdev->flags & HASH_FLAGS_HMAC) && in stm32_hash_xmit_cpu()
368 (hdev->flags & ~HASH_FLAGS_HMAC_KEY)) { in stm32_hash_xmit_cpu()
369 hdev->flags |= HASH_FLAGS_HMAC_KEY; in stm32_hash_xmit_cpu()
370 stm32_hash_write_key(hdev); in stm32_hash_xmit_cpu()
371 if (stm32_hash_wait_busy(hdev)) in stm32_hash_xmit_cpu()
376 stm32_hash_write(hdev, HASH_DIN, buffer[count]); in stm32_hash_xmit_cpu()
379 stm32_hash_set_nblw(hdev, length); in stm32_hash_xmit_cpu()
380 reg = stm32_hash_read(hdev, HASH_STR); in stm32_hash_xmit_cpu()
382 stm32_hash_write(hdev, HASH_STR, reg); in stm32_hash_xmit_cpu()
383 if (hdev->flags & HASH_FLAGS_HMAC) { in stm32_hash_xmit_cpu()
384 if (stm32_hash_wait_busy(hdev)) in stm32_hash_xmit_cpu()
386 stm32_hash_write_key(hdev); in stm32_hash_xmit_cpu()
394 static int stm32_hash_update_cpu(struct stm32_hash_dev *hdev) in stm32_hash_update_cpu() argument
396 struct stm32_hash_request_ctx *rctx = ahash_request_ctx(hdev->req); in stm32_hash_update_cpu()
399 dev_dbg(hdev->dev, "%s flags %lx\n", __func__, rctx->flags); in stm32_hash_update_cpu()
408 err = stm32_hash_xmit_cpu(hdev, rctx->buffer, bufcnt, 0); in stm32_hash_update_cpu()
416 err = stm32_hash_xmit_cpu(hdev, rctx->buffer, bufcnt, in stm32_hash_update_cpu()
423 static int stm32_hash_xmit_dma(struct stm32_hash_dev *hdev, in stm32_hash_xmit_dma() argument
431 in_desc = dmaengine_prep_slave_sg(hdev->dma_lch, sg, 1, in stm32_hash_xmit_dma()
435 dev_err(hdev->dev, "dmaengine_prep_slave error\n"); in stm32_hash_xmit_dma()
439 reinit_completion(&hdev->dma_completion); in stm32_hash_xmit_dma()
441 in_desc->callback_param = hdev; in stm32_hash_xmit_dma()
443 hdev->flags |= HASH_FLAGS_FINAL; in stm32_hash_xmit_dma()
444 hdev->flags |= HASH_FLAGS_DMA_ACTIVE; in stm32_hash_xmit_dma()
446 reg = stm32_hash_read(hdev, HASH_CR); in stm32_hash_xmit_dma()
455 stm32_hash_write(hdev, HASH_CR, reg); in stm32_hash_xmit_dma()
457 stm32_hash_set_nblw(hdev, length); in stm32_hash_xmit_dma()
464 dma_async_issue_pending(hdev->dma_lch); in stm32_hash_xmit_dma()
466 if (!wait_for_completion_interruptible_timeout(&hdev->dma_completion, in stm32_hash_xmit_dma()
470 if (dma_async_is_tx_complete(hdev->dma_lch, cookie, in stm32_hash_xmit_dma()
475 dev_err(hdev->dev, "DMA Error %i\n", err); in stm32_hash_xmit_dma()
476 dmaengine_terminate_all(hdev->dma_lch); in stm32_hash_xmit_dma()
485 struct stm32_hash_dev *hdev = param; in stm32_hash_dma_callback() local
487 complete(&hdev->dma_completion); in stm32_hash_dma_callback()
489 hdev->flags |= HASH_FLAGS_DMA_READY; in stm32_hash_dma_callback()
492 static int stm32_hash_hmac_dma_send(struct stm32_hash_dev *hdev) in stm32_hash_hmac_dma_send() argument
494 struct stm32_hash_request_ctx *rctx = ahash_request_ctx(hdev->req); in stm32_hash_hmac_dma_send()
495 struct crypto_ahash *tfm = crypto_ahash_reqtfm(hdev->req); in stm32_hash_hmac_dma_send()
499 if (ctx->keylen < HASH_DMA_THRESHOLD || (hdev->dma_mode == 1)) { in stm32_hash_hmac_dma_send()
500 err = stm32_hash_write_key(hdev); in stm32_hash_hmac_dma_send()
501 if (stm32_hash_wait_busy(hdev)) in stm32_hash_hmac_dma_send()
504 if (!(hdev->flags & HASH_FLAGS_HMAC_KEY)) in stm32_hash_hmac_dma_send()
508 rctx->dma_ct = dma_map_sg(hdev->dev, &rctx->sg_key, 1, in stm32_hash_hmac_dma_send()
511 dev_err(hdev->dev, "dma_map_sg error\n"); in stm32_hash_hmac_dma_send()
515 err = stm32_hash_xmit_dma(hdev, &rctx->sg_key, ctx->keylen, 0); in stm32_hash_hmac_dma_send()
517 dma_unmap_sg(hdev->dev, &rctx->sg_key, 1, DMA_TO_DEVICE); in stm32_hash_hmac_dma_send()
523 static int stm32_hash_dma_init(struct stm32_hash_dev *hdev) in stm32_hash_dma_init() argument
531 dma_conf.dst_addr = hdev->phys_base + HASH_DIN; in stm32_hash_dma_init()
533 dma_conf.src_maxburst = hdev->dma_maxburst; in stm32_hash_dma_init()
534 dma_conf.dst_maxburst = hdev->dma_maxburst; in stm32_hash_dma_init()
537 hdev->dma_lch = dma_request_slave_channel(hdev->dev, "in"); in stm32_hash_dma_init()
538 if (!hdev->dma_lch) { in stm32_hash_dma_init()
539 dev_err(hdev->dev, "Couldn't acquire a slave DMA channel.\n"); in stm32_hash_dma_init()
543 err = dmaengine_slave_config(hdev->dma_lch, &dma_conf); in stm32_hash_dma_init()
545 dma_release_channel(hdev->dma_lch); in stm32_hash_dma_init()
546 hdev->dma_lch = NULL; in stm32_hash_dma_init()
547 dev_err(hdev->dev, "Couldn't configure DMA slave.\n"); in stm32_hash_dma_init()
551 init_completion(&hdev->dma_completion); in stm32_hash_dma_init()
556 static int stm32_hash_dma_send(struct stm32_hash_dev *hdev) in stm32_hash_dma_send() argument
558 struct stm32_hash_request_ctx *rctx = ahash_request_ctx(hdev->req); in stm32_hash_dma_send()
564 rctx->sg = hdev->req->src; in stm32_hash_dma_send()
565 rctx->total = hdev->req->nbytes; in stm32_hash_dma_send()
572 stm32_hash_write_ctrl(hdev); in stm32_hash_dma_send()
574 if (hdev->flags & HASH_FLAGS_HMAC) { in stm32_hash_dma_send()
575 err = stm32_hash_hmac_dma_send(hdev); in stm32_hash_dma_send()
585 if (hdev->dma_mode == 1) { in stm32_hash_dma_send()
603 rctx->dma_ct = dma_map_sg(hdev->dev, sg, 1, in stm32_hash_dma_send()
606 dev_err(hdev->dev, "dma_map_sg error\n"); in stm32_hash_dma_send()
610 err = stm32_hash_xmit_dma(hdev, sg, len, in stm32_hash_dma_send()
613 dma_unmap_sg(hdev->dev, sg, 1, DMA_TO_DEVICE); in stm32_hash_dma_send()
619 if (hdev->dma_mode == 1) { in stm32_hash_dma_send()
620 if (stm32_hash_wait_busy(hdev)) in stm32_hash_dma_send()
622 reg = stm32_hash_read(hdev, HASH_CR); in stm32_hash_dma_send()
625 stm32_hash_write(hdev, HASH_CR, reg); in stm32_hash_dma_send()
630 writesl(hdev->io_base + HASH_DIN, buffer, in stm32_hash_dma_send()
633 stm32_hash_set_nblw(hdev, ncp); in stm32_hash_dma_send()
634 reg = stm32_hash_read(hdev, HASH_STR); in stm32_hash_dma_send()
636 stm32_hash_write(hdev, HASH_STR, reg); in stm32_hash_dma_send()
640 if (hdev->flags & HASH_FLAGS_HMAC) { in stm32_hash_dma_send()
641 if (stm32_hash_wait_busy(hdev)) in stm32_hash_dma_send()
643 err = stm32_hash_hmac_dma_send(hdev); in stm32_hash_dma_send()
651 struct stm32_hash_dev *hdev = NULL, *tmp; in stm32_hash_find_dev() local
654 if (!ctx->hdev) { in stm32_hash_find_dev()
656 hdev = tmp; in stm32_hash_find_dev()
659 ctx->hdev = hdev; in stm32_hash_find_dev()
661 hdev = ctx->hdev; in stm32_hash_find_dev()
666 return hdev; in stm32_hash_find_dev()
673 struct stm32_hash_dev *hdev = stm32_hash_find_dev(ctx); in stm32_hash_dma_aligned_data() local
680 if (hdev->dma_mode == 1) in stm32_hash_dma_aligned_data()
700 struct stm32_hash_dev *hdev = stm32_hash_find_dev(ctx); in stm32_hash_init() local
702 rctx->hdev = hdev; in stm32_hash_init()
735 dev_dbg(hdev->dev, "%s Flags %lx\n", __func__, rctx->flags); in stm32_hash_init()
740 static int stm32_hash_update_req(struct stm32_hash_dev *hdev) in stm32_hash_update_req() argument
742 return stm32_hash_update_cpu(hdev); in stm32_hash_update_req()
745 static int stm32_hash_final_req(struct stm32_hash_dev *hdev) in stm32_hash_final_req() argument
747 struct ahash_request *req = hdev->req; in stm32_hash_final_req()
755 err = stm32_hash_dma_send(hdev); in stm32_hash_final_req()
757 err = stm32_hash_xmit_cpu(hdev, rctx->buffer, buflen, 1); in stm32_hash_final_req()
787 hash[i] = be32_to_cpu(stm32_hash_read(rctx->hdev, in stm32_hash_copy_hash()
806 struct stm32_hash_dev *hdev = rctx->hdev; in stm32_hash_finish_req() local
808 if (!err && (HASH_FLAGS_FINAL & hdev->flags)) { in stm32_hash_finish_req()
811 hdev->flags &= ~(HASH_FLAGS_FINAL | HASH_FLAGS_CPU | in stm32_hash_finish_req()
820 pm_runtime_mark_last_busy(hdev->dev); in stm32_hash_finish_req()
821 pm_runtime_put_autosuspend(hdev->dev); in stm32_hash_finish_req()
823 crypto_finalize_hash_request(hdev->engine, req, err); in stm32_hash_finish_req()
826 static int stm32_hash_hw_init(struct stm32_hash_dev *hdev, in stm32_hash_hw_init() argument
829 pm_runtime_get_sync(hdev->dev); in stm32_hash_hw_init()
831 if (!(HASH_FLAGS_INIT & hdev->flags)) { in stm32_hash_hw_init()
832 stm32_hash_write(hdev, HASH_CR, HASH_CR_INIT); in stm32_hash_hw_init()
833 stm32_hash_write(hdev, HASH_STR, 0); in stm32_hash_hw_init()
834 stm32_hash_write(hdev, HASH_DIN, 0); in stm32_hash_hw_init()
835 stm32_hash_write(hdev, HASH_IMR, 0); in stm32_hash_hw_init()
836 hdev->err = 0; in stm32_hash_hw_init()
845 static int stm32_hash_handle_queue(struct stm32_hash_dev *hdev, in stm32_hash_handle_queue() argument
848 return crypto_transfer_hash_request_to_engine(hdev->engine, req); in stm32_hash_handle_queue()
856 struct stm32_hash_dev *hdev = stm32_hash_find_dev(ctx); in stm32_hash_prepare_req() local
859 if (!hdev) in stm32_hash_prepare_req()
862 hdev->req = req; in stm32_hash_prepare_req()
866 dev_dbg(hdev->dev, "processing new req, op: %lu, nbytes %d\n", in stm32_hash_prepare_req()
869 return stm32_hash_hw_init(hdev, rctx); in stm32_hash_prepare_req()
877 struct stm32_hash_dev *hdev = stm32_hash_find_dev(ctx); in stm32_hash_one_request() local
881 if (!hdev) in stm32_hash_one_request()
884 hdev->req = req; in stm32_hash_one_request()
889 err = stm32_hash_update_req(hdev); in stm32_hash_one_request()
891 err = stm32_hash_final_req(hdev); in stm32_hash_one_request()
904 struct stm32_hash_dev *hdev = ctx->hdev; in stm32_hash_enqueue() local
908 return stm32_hash_handle_queue(hdev, req); in stm32_hash_enqueue()
943 struct stm32_hash_dev *hdev = stm32_hash_find_dev(ctx); in stm32_hash_finup() local
948 if (hdev->dma_lch && stm32_hash_dma_aligned_data(req)) in stm32_hash_finup()
974 struct stm32_hash_dev *hdev = stm32_hash_find_dev(ctx); in stm32_hash_export() local
978 pm_runtime_get_sync(hdev->dev); in stm32_hash_export()
980 while (!(stm32_hash_read(hdev, HASH_SR) & HASH_SR_DATA_INPUT_READY)) in stm32_hash_export()
989 *preg++ = stm32_hash_read(hdev, HASH_IMR); in stm32_hash_export()
990 *preg++ = stm32_hash_read(hdev, HASH_STR); in stm32_hash_export()
991 *preg++ = stm32_hash_read(hdev, HASH_CR); in stm32_hash_export()
993 *preg++ = stm32_hash_read(hdev, HASH_CSR(i)); in stm32_hash_export()
995 pm_runtime_mark_last_busy(hdev->dev); in stm32_hash_export()
996 pm_runtime_put_autosuspend(hdev->dev); in stm32_hash_export()
1007 struct stm32_hash_dev *hdev = stm32_hash_find_dev(ctx); in stm32_hash_import() local
1016 pm_runtime_get_sync(hdev->dev); in stm32_hash_import()
1018 stm32_hash_write(hdev, HASH_IMR, *preg++); in stm32_hash_import()
1019 stm32_hash_write(hdev, HASH_STR, *preg++); in stm32_hash_import()
1020 stm32_hash_write(hdev, HASH_CR, *preg); in stm32_hash_import()
1022 stm32_hash_write(hdev, HASH_CR, reg); in stm32_hash_import()
1025 stm32_hash_write(hdev, HASH_CSR(i), *preg++); in stm32_hash_import()
1027 pm_runtime_mark_last_busy(hdev->dev); in stm32_hash_import()
1028 pm_runtime_put_autosuspend(hdev->dev); in stm32_hash_import()
1096 struct stm32_hash_dev *hdev = dev_id; in stm32_hash_irq_thread() local
1098 if (HASH_FLAGS_CPU & hdev->flags) { in stm32_hash_irq_thread()
1099 if (HASH_FLAGS_OUTPUT_READY & hdev->flags) { in stm32_hash_irq_thread()
1100 hdev->flags &= ~HASH_FLAGS_OUTPUT_READY; in stm32_hash_irq_thread()
1103 } else if (HASH_FLAGS_DMA_READY & hdev->flags) { in stm32_hash_irq_thread()
1104 if (HASH_FLAGS_DMA_ACTIVE & hdev->flags) { in stm32_hash_irq_thread()
1105 hdev->flags &= ~HASH_FLAGS_DMA_ACTIVE; in stm32_hash_irq_thread()
1114 stm32_hash_finish_req(hdev->req, 0); in stm32_hash_irq_thread()
1121 struct stm32_hash_dev *hdev = dev_id; in stm32_hash_irq_handler() local
1124 reg = stm32_hash_read(hdev, HASH_SR); in stm32_hash_irq_handler()
1127 stm32_hash_write(hdev, HASH_SR, reg); in stm32_hash_irq_handler()
1128 hdev->flags |= HASH_FLAGS_OUTPUT_READY; in stm32_hash_irq_handler()
1130 stm32_hash_write(hdev, HASH_IMR, 0); in stm32_hash_irq_handler()
1347 static int stm32_hash_register_algs(struct stm32_hash_dev *hdev) in stm32_hash_register_algs() argument
1352 for (i = 0; i < hdev->pdata->algs_info_size; i++) { in stm32_hash_register_algs()
1353 for (j = 0; j < hdev->pdata->algs_info[i].size; j++) { in stm32_hash_register_algs()
1355 &hdev->pdata->algs_info[i].algs_list[j]); in stm32_hash_register_algs()
1363 dev_err(hdev->dev, "Algo %d : %d failed\n", i, j); in stm32_hash_register_algs()
1367 &hdev->pdata->algs_info[i].algs_list[j]); in stm32_hash_register_algs()
1373 static int stm32_hash_unregister_algs(struct stm32_hash_dev *hdev) in stm32_hash_unregister_algs() argument
1377 for (i = 0; i < hdev->pdata->algs_info_size; i++) { in stm32_hash_unregister_algs()
1378 for (j = 0; j < hdev->pdata->algs_info[i].size; j++) in stm32_hash_unregister_algs()
1380 &hdev->pdata->algs_info[i].algs_list[j]); in stm32_hash_unregister_algs()
1428 static int stm32_hash_get_of_match(struct stm32_hash_dev *hdev, in stm32_hash_get_of_match() argument
1431 hdev->pdata = of_device_get_match_data(dev); in stm32_hash_get_of_match()
1432 if (!hdev->pdata) { in stm32_hash_get_of_match()
1438 &hdev->dma_maxburst)) { in stm32_hash_get_of_match()
1440 hdev->dma_maxburst = 0; in stm32_hash_get_of_match()
1448 struct stm32_hash_dev *hdev; in stm32_hash_probe() local
1453 hdev = devm_kzalloc(dev, sizeof(*hdev), GFP_KERNEL); in stm32_hash_probe()
1454 if (!hdev) in stm32_hash_probe()
1458 hdev->io_base = devm_ioremap_resource(dev, res); in stm32_hash_probe()
1459 if (IS_ERR(hdev->io_base)) in stm32_hash_probe()
1460 return PTR_ERR(hdev->io_base); in stm32_hash_probe()
1462 hdev->phys_base = res->start; in stm32_hash_probe()
1464 ret = stm32_hash_get_of_match(hdev, dev); in stm32_hash_probe()
1476 dev_name(dev), hdev); in stm32_hash_probe()
1482 hdev->clk = devm_clk_get(&pdev->dev, NULL); in stm32_hash_probe()
1483 if (IS_ERR(hdev->clk)) { in stm32_hash_probe()
1485 PTR_ERR(hdev->clk)); in stm32_hash_probe()
1486 return PTR_ERR(hdev->clk); in stm32_hash_probe()
1489 ret = clk_prepare_enable(hdev->clk); in stm32_hash_probe()
1502 hdev->rst = devm_reset_control_get(&pdev->dev, NULL); in stm32_hash_probe()
1503 if (!IS_ERR(hdev->rst)) { in stm32_hash_probe()
1504 reset_control_assert(hdev->rst); in stm32_hash_probe()
1506 reset_control_deassert(hdev->rst); in stm32_hash_probe()
1509 hdev->dev = dev; in stm32_hash_probe()
1511 platform_set_drvdata(pdev, hdev); in stm32_hash_probe()
1513 ret = stm32_hash_dma_init(hdev); in stm32_hash_probe()
1518 list_add_tail(&hdev->list, &stm32_hash.dev_list); in stm32_hash_probe()
1522 hdev->engine = crypto_engine_alloc_init(dev, 1); in stm32_hash_probe()
1523 if (!hdev->engine) { in stm32_hash_probe()
1528 ret = crypto_engine_start(hdev->engine); in stm32_hash_probe()
1532 hdev->dma_mode = stm32_hash_read(hdev, HASH_HWCFGR); in stm32_hash_probe()
1535 ret = stm32_hash_register_algs(hdev); in stm32_hash_probe()
1540 stm32_hash_read(hdev, HASH_VER), hdev->dma_mode); in stm32_hash_probe()
1548 crypto_engine_exit(hdev->engine); in stm32_hash_probe()
1551 list_del(&hdev->list); in stm32_hash_probe()
1554 if (hdev->dma_lch) in stm32_hash_probe()
1555 dma_release_channel(hdev->dma_lch); in stm32_hash_probe()
1560 clk_disable_unprepare(hdev->clk); in stm32_hash_probe()
1567 static struct stm32_hash_dev *hdev; in stm32_hash_remove() local
1570 hdev = platform_get_drvdata(pdev); in stm32_hash_remove()
1571 if (!hdev) in stm32_hash_remove()
1574 ret = pm_runtime_get_sync(hdev->dev); in stm32_hash_remove()
1578 stm32_hash_unregister_algs(hdev); in stm32_hash_remove()
1580 crypto_engine_exit(hdev->engine); in stm32_hash_remove()
1583 list_del(&hdev->list); in stm32_hash_remove()
1586 if (hdev->dma_lch) in stm32_hash_remove()
1587 dma_release_channel(hdev->dma_lch); in stm32_hash_remove()
1589 pm_runtime_disable(hdev->dev); in stm32_hash_remove()
1590 pm_runtime_put_noidle(hdev->dev); in stm32_hash_remove()
1592 clk_disable_unprepare(hdev->clk); in stm32_hash_remove()
1600 struct stm32_hash_dev *hdev = dev_get_drvdata(dev); in stm32_hash_runtime_suspend() local
1602 clk_disable_unprepare(hdev->clk); in stm32_hash_runtime_suspend()
1609 struct stm32_hash_dev *hdev = dev_get_drvdata(dev); in stm32_hash_runtime_resume() local
1612 ret = clk_prepare_enable(hdev->clk); in stm32_hash_runtime_resume()
1614 dev_err(hdev->dev, "Failed to prepare_enable clock\n"); in stm32_hash_runtime_resume()