Commit eb7bb0b5 authored by Chunhai Guo's avatar Chunhai Guo Committed by Herbert Xu
Browse files

crypto: atmel - use devm_clk_get_prepared() helpers



Simplify the code by replacing devm_clk_get() and clk_prepare() with
devm_clk_get_prepared(), which also avoids the call to clk_unprepare().

Signed-off-by: default avatarChunhai Guo <guochunhai@vivo.com>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 24cc57d8
Loading
Loading
Loading
Loading
+4 −12
Original line number Diff line number Diff line
@@ -2376,33 +2376,29 @@ static int atmel_aes_probe(struct platform_device *pdev)
	}

	/* Initializing the clock */
	aes_dd->iclk = devm_clk_get(&pdev->dev, "aes_clk");
	aes_dd->iclk = devm_clk_get_prepared(&pdev->dev, "aes_clk");
	if (IS_ERR(aes_dd->iclk)) {
		dev_err(dev, "clock initialization failed.\n");
		err = PTR_ERR(aes_dd->iclk);
		goto err_tasklet_kill;
	}

	err = clk_prepare(aes_dd->iclk);
	if (err)
		goto err_tasklet_kill;

	err = atmel_aes_hw_version_init(aes_dd);
	if (err)
		goto err_iclk_unprepare;
		goto err_tasklet_kill;

	atmel_aes_get_cap(aes_dd);

#if IS_ENABLED(CONFIG_CRYPTO_DEV_ATMEL_AUTHENC)
	if (aes_dd->caps.has_authenc && !atmel_sha_authenc_is_ready()) {
		err = -EPROBE_DEFER;
		goto err_iclk_unprepare;
		goto err_tasklet_kill;
	}
#endif

	err = atmel_aes_buff_init(aes_dd);
	if (err)
		goto err_iclk_unprepare;
		goto err_tasklet_kill;

	err = atmel_aes_dma_init(aes_dd);
	if (err)
@@ -2429,8 +2425,6 @@ static int atmel_aes_probe(struct platform_device *pdev)
	atmel_aes_dma_cleanup(aes_dd);
err_buff_cleanup:
	atmel_aes_buff_cleanup(aes_dd);
err_iclk_unprepare:
	clk_unprepare(aes_dd->iclk);
err_tasklet_kill:
	tasklet_kill(&aes_dd->done_task);
	tasklet_kill(&aes_dd->queue_task);
@@ -2455,8 +2449,6 @@ static void atmel_aes_remove(struct platform_device *pdev)

	atmel_aes_dma_cleanup(aes_dd);
	atmel_aes_buff_cleanup(aes_dd);

	clk_unprepare(aes_dd->iclk);
}

static struct platform_driver atmel_aes_driver = {
+3 −11
Original line number Diff line number Diff line
@@ -2623,27 +2623,23 @@ static int atmel_sha_probe(struct platform_device *pdev)
	}

	/* Initializing the clock */
	sha_dd->iclk = devm_clk_get(&pdev->dev, "sha_clk");
	sha_dd->iclk = devm_clk_get_prepared(&pdev->dev, "sha_clk");
	if (IS_ERR(sha_dd->iclk)) {
		dev_err(dev, "clock initialization failed.\n");
		err = PTR_ERR(sha_dd->iclk);
		goto err_tasklet_kill;
	}

	err = clk_prepare(sha_dd->iclk);
	if (err)
		goto err_tasklet_kill;

	err = atmel_sha_hw_version_init(sha_dd);
	if (err)
		goto err_iclk_unprepare;
		goto err_tasklet_kill;

	atmel_sha_get_cap(sha_dd);

	if (sha_dd->caps.has_dma) {
		err = atmel_sha_dma_init(sha_dd);
		if (err)
			goto err_iclk_unprepare;
			goto err_tasklet_kill;

		dev_info(dev, "using %s for DMA transfers\n",
				dma_chan_name(sha_dd->dma_lch_in.chan));
@@ -2669,8 +2665,6 @@ static int atmel_sha_probe(struct platform_device *pdev)
	spin_unlock(&atmel_sha.lock);
	if (sha_dd->caps.has_dma)
		atmel_sha_dma_cleanup(sha_dd);
err_iclk_unprepare:
	clk_unprepare(sha_dd->iclk);
err_tasklet_kill:
	tasklet_kill(&sha_dd->queue_task);
	tasklet_kill(&sha_dd->done_task);
@@ -2693,8 +2687,6 @@ static void atmel_sha_remove(struct platform_device *pdev)

	if (sha_dd->caps.has_dma)
		atmel_sha_dma_cleanup(sha_dd);

	clk_unprepare(sha_dd->iclk);
}

static struct platform_driver atmel_sha_driver = {