diff options
author | LABBE Corentin <clabbe.montjoie@gmail.com> | 2015-10-12 13:47:03 -0400 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2015-10-14 10:23:38 -0400 |
commit | b0e8b3417a620e6e0a91fd526fbc6db78714198e (patch) | |
tree | c94520f907b4c3f2bdd84ef2de0647a15e02dd27 /drivers/crypto/atmel-sha.c | |
parent | dc97fa02328b79f05a2ec1693b7596fae52c0e02 (diff) |
crypto: atmel - use devm_xxx() managed function
Using the devm_xxx() managed function to stripdown the error and remove
code.
Signed-off-by: LABBE Corentin <clabbe.montjoie@gmail.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'drivers/crypto/atmel-sha.c')
-rw-r--r-- | drivers/crypto/atmel-sha.c | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/drivers/crypto/atmel-sha.c b/drivers/crypto/atmel-sha.c index 5e6cf0891b4d..660d8c06540b 100644 --- a/drivers/crypto/atmel-sha.c +++ b/drivers/crypto/atmel-sha.c | |||
@@ -1349,11 +1349,9 @@ static int atmel_sha_probe(struct platform_device *pdev) | |||
1349 | struct crypto_platform_data *pdata; | 1349 | struct crypto_platform_data *pdata; |
1350 | struct device *dev = &pdev->dev; | 1350 | struct device *dev = &pdev->dev; |
1351 | struct resource *sha_res; | 1351 | struct resource *sha_res; |
1352 | unsigned long sha_phys_size; | ||
1353 | int err; | 1352 | int err; |
1354 | 1353 | ||
1355 | sha_dd = devm_kzalloc(&pdev->dev, sizeof(struct atmel_sha_dev), | 1354 | sha_dd = devm_kzalloc(&pdev->dev, sizeof(*sha_dd), GFP_KERNEL); |
1356 | GFP_KERNEL); | ||
1357 | if (sha_dd == NULL) { | 1355 | if (sha_dd == NULL) { |
1358 | dev_err(dev, "unable to alloc data struct.\n"); | 1356 | dev_err(dev, "unable to alloc data struct.\n"); |
1359 | err = -ENOMEM; | 1357 | err = -ENOMEM; |
@@ -1382,7 +1380,6 @@ static int atmel_sha_probe(struct platform_device *pdev) | |||
1382 | goto res_err; | 1380 | goto res_err; |
1383 | } | 1381 | } |
1384 | sha_dd->phys_base = sha_res->start; | 1382 | sha_dd->phys_base = sha_res->start; |
1385 | sha_phys_size = resource_size(sha_res); | ||
1386 | 1383 | ||
1387 | /* Get the IRQ */ | 1384 | /* Get the IRQ */ |
1388 | sha_dd->irq = platform_get_irq(pdev, 0); | 1385 | sha_dd->irq = platform_get_irq(pdev, 0); |
@@ -1392,26 +1389,26 @@ static int atmel_sha_probe(struct platform_device *pdev) | |||
1392 | goto res_err; | 1389 | goto res_err; |
1393 | } | 1390 | } |
1394 | 1391 | ||
1395 | err = request_irq(sha_dd->irq, atmel_sha_irq, IRQF_SHARED, "atmel-sha", | 1392 | err = devm_request_irq(&pdev->dev, sha_dd->irq, atmel_sha_irq, |
1396 | sha_dd); | 1393 | IRQF_SHARED, "atmel-sha", sha_dd); |
1397 | if (err) { | 1394 | if (err) { |
1398 | dev_err(dev, "unable to request sha irq.\n"); | 1395 | dev_err(dev, "unable to request sha irq.\n"); |
1399 | goto res_err; | 1396 | goto res_err; |
1400 | } | 1397 | } |
1401 | 1398 | ||
1402 | /* Initializing the clock */ | 1399 | /* Initializing the clock */ |
1403 | sha_dd->iclk = clk_get(&pdev->dev, "sha_clk"); | 1400 | sha_dd->iclk = devm_clk_get(&pdev->dev, "sha_clk"); |
1404 | if (IS_ERR(sha_dd->iclk)) { | 1401 | if (IS_ERR(sha_dd->iclk)) { |
1405 | dev_err(dev, "clock initialization failed.\n"); | 1402 | dev_err(dev, "clock initialization failed.\n"); |
1406 | err = PTR_ERR(sha_dd->iclk); | 1403 | err = PTR_ERR(sha_dd->iclk); |
1407 | goto clk_err; | 1404 | goto res_err; |
1408 | } | 1405 | } |
1409 | 1406 | ||
1410 | sha_dd->io_base = ioremap(sha_dd->phys_base, sha_phys_size); | 1407 | sha_dd->io_base = devm_ioremap_resource(&pdev->dev, sha_res); |
1411 | if (!sha_dd->io_base) { | 1408 | if (!sha_dd->io_base) { |
1412 | dev_err(dev, "can't ioremap\n"); | 1409 | dev_err(dev, "can't ioremap\n"); |
1413 | err = -ENOMEM; | 1410 | err = -ENOMEM; |
1414 | goto sha_io_err; | 1411 | goto res_err; |
1415 | } | 1412 | } |
1416 | 1413 | ||
1417 | atmel_sha_hw_version_init(sha_dd); | 1414 | atmel_sha_hw_version_init(sha_dd); |
@@ -1425,12 +1422,12 @@ static int atmel_sha_probe(struct platform_device *pdev) | |||
1425 | if (IS_ERR(pdata)) { | 1422 | if (IS_ERR(pdata)) { |
1426 | dev_err(&pdev->dev, "platform data not available\n"); | 1423 | dev_err(&pdev->dev, "platform data not available\n"); |
1427 | err = PTR_ERR(pdata); | 1424 | err = PTR_ERR(pdata); |
1428 | goto err_pdata; | 1425 | goto res_err; |
1429 | } | 1426 | } |
1430 | } | 1427 | } |
1431 | if (!pdata->dma_slave) { | 1428 | if (!pdata->dma_slave) { |
1432 | err = -ENXIO; | 1429 | err = -ENXIO; |
1433 | goto err_pdata; | 1430 | goto res_err; |
1434 | } | 1431 | } |
1435 | err = atmel_sha_dma_init(sha_dd, pdata); | 1432 | err = atmel_sha_dma_init(sha_dd, pdata); |
1436 | if (err) | 1433 | if (err) |
@@ -1461,12 +1458,6 @@ err_algs: | |||
1461 | if (sha_dd->caps.has_dma) | 1458 | if (sha_dd->caps.has_dma) |
1462 | atmel_sha_dma_cleanup(sha_dd); | 1459 | atmel_sha_dma_cleanup(sha_dd); |
1463 | err_sha_dma: | 1460 | err_sha_dma: |
1464 | err_pdata: | ||
1465 | iounmap(sha_dd->io_base); | ||
1466 | sha_io_err: | ||
1467 | clk_put(sha_dd->iclk); | ||
1468 | clk_err: | ||
1469 | free_irq(sha_dd->irq, sha_dd); | ||
1470 | res_err: | 1461 | res_err: |
1471 | tasklet_kill(&sha_dd->done_task); | 1462 | tasklet_kill(&sha_dd->done_task); |
1472 | sha_dd_err: | 1463 | sha_dd_err: |