summaryrefslogtreecommitdiffstats
path: root/drivers/crypto/atmel-tdes.c
diff options
context:
space:
mode:
authorLABBE Corentin <clabbe.montjoie@gmail.com>2015-10-12 13:47:03 -0400
committerHerbert Xu <herbert@gondor.apana.org.au>2015-10-14 10:23:38 -0400
commitb0e8b3417a620e6e0a91fd526fbc6db78714198e (patch)
treec94520f907b4c3f2bdd84ef2de0647a15e02dd27 /drivers/crypto/atmel-tdes.c
parentdc97fa02328b79f05a2ec1693b7596fae52c0e02 (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-tdes.c')
-rw-r--r--drivers/crypto/atmel-tdes.c29
1 files changed, 7 insertions, 22 deletions
diff --git a/drivers/crypto/atmel-tdes.c b/drivers/crypto/atmel-tdes.c
index 504e90340074..2c7a628d0375 100644
--- a/drivers/crypto/atmel-tdes.c
+++ b/drivers/crypto/atmel-tdes.c
@@ -1359,7 +1359,6 @@ static int atmel_tdes_probe(struct platform_device *pdev)
1359 struct crypto_platform_data *pdata; 1359 struct crypto_platform_data *pdata;
1360 struct device *dev = &pdev->dev; 1360 struct device *dev = &pdev->dev;
1361 struct resource *tdes_res; 1361 struct resource *tdes_res;
1362 unsigned long tdes_phys_size;
1363 int err; 1362 int err;
1364 1363
1365 tdes_dd = devm_kmalloc(&pdev->dev, sizeof(*tdes_dd), GFP_KERNEL); 1364 tdes_dd = devm_kmalloc(&pdev->dev, sizeof(*tdes_dd), GFP_KERNEL);
@@ -1393,7 +1392,6 @@ static int atmel_tdes_probe(struct platform_device *pdev)
1393 goto res_err; 1392 goto res_err;
1394 } 1393 }
1395 tdes_dd->phys_base = tdes_res->start; 1394 tdes_dd->phys_base = tdes_res->start;
1396 tdes_phys_size = resource_size(tdes_res);
1397 1395
1398 /* Get the IRQ */ 1396 /* Get the IRQ */
1399 tdes_dd->irq = platform_get_irq(pdev, 0); 1397 tdes_dd->irq = platform_get_irq(pdev, 0);
@@ -1403,26 +1401,26 @@ static int atmel_tdes_probe(struct platform_device *pdev)
1403 goto res_err; 1401 goto res_err;
1404 } 1402 }
1405 1403
1406 err = request_irq(tdes_dd->irq, atmel_tdes_irq, IRQF_SHARED, 1404 err = devm_request_irq(&pdev->dev, tdes_dd->irq, atmel_tdes_irq,
1407 "atmel-tdes", tdes_dd); 1405 IRQF_SHARED, "atmel-tdes", tdes_dd);
1408 if (err) { 1406 if (err) {
1409 dev_err(dev, "unable to request tdes irq.\n"); 1407 dev_err(dev, "unable to request tdes irq.\n");
1410 goto tdes_irq_err; 1408 goto res_err;
1411 } 1409 }
1412 1410
1413 /* Initializing the clock */ 1411 /* Initializing the clock */
1414 tdes_dd->iclk = clk_get(&pdev->dev, "tdes_clk"); 1412 tdes_dd->iclk = devm_clk_get(&pdev->dev, "tdes_clk");
1415 if (IS_ERR(tdes_dd->iclk)) { 1413 if (IS_ERR(tdes_dd->iclk)) {
1416 dev_err(dev, "clock initialization failed.\n"); 1414 dev_err(dev, "clock initialization failed.\n");
1417 err = PTR_ERR(tdes_dd->iclk); 1415 err = PTR_ERR(tdes_dd->iclk);
1418 goto clk_err; 1416 goto res_err;
1419 } 1417 }
1420 1418
1421 tdes_dd->io_base = ioremap(tdes_dd->phys_base, tdes_phys_size); 1419 tdes_dd->io_base = devm_ioremap_resource(&pdev->dev, tdes_res);
1422 if (!tdes_dd->io_base) { 1420 if (!tdes_dd->io_base) {
1423 dev_err(dev, "can't ioremap\n"); 1421 dev_err(dev, "can't ioremap\n");
1424 err = -ENOMEM; 1422 err = -ENOMEM;
1425 goto tdes_io_err; 1423 goto res_err;
1426 } 1424 }
1427 1425
1428 atmel_tdes_hw_version_init(tdes_dd); 1426 atmel_tdes_hw_version_init(tdes_dd);
@@ -1478,12 +1476,6 @@ err_tdes_dma:
1478err_pdata: 1476err_pdata:
1479 atmel_tdes_buff_cleanup(tdes_dd); 1477 atmel_tdes_buff_cleanup(tdes_dd);
1480err_tdes_buff: 1478err_tdes_buff:
1481 iounmap(tdes_dd->io_base);
1482tdes_io_err:
1483 clk_put(tdes_dd->iclk);
1484clk_err:
1485 free_irq(tdes_dd->irq, tdes_dd);
1486tdes_irq_err:
1487res_err: 1479res_err:
1488 tasklet_kill(&tdes_dd->done_task); 1480 tasklet_kill(&tdes_dd->done_task);
1489 tasklet_kill(&tdes_dd->queue_task); 1481 tasklet_kill(&tdes_dd->queue_task);
@@ -1514,13 +1506,6 @@ static int atmel_tdes_remove(struct platform_device *pdev)
1514 1506
1515 atmel_tdes_buff_cleanup(tdes_dd); 1507 atmel_tdes_buff_cleanup(tdes_dd);
1516 1508
1517 iounmap(tdes_dd->io_base);
1518
1519 clk_put(tdes_dd->iclk);
1520
1521 if (tdes_dd->irq >= 0)
1522 free_irq(tdes_dd->irq, tdes_dd);
1523
1524 return 0; 1509 return 0;
1525} 1510}
1526 1511