summaryrefslogtreecommitdiffstats
path: root/drivers/spi/spi-sprd-adi.c
diff options
context:
space:
mode:
authorBaolin Wang <baolin.wang@linaro.org>2018-06-22 04:09:05 -0400
committerBjorn Andersson <bjorn.andersson@linaro.org>2018-06-26 16:52:27 -0400
commitc8d049896729423a979d2838175d251b9cfee3b5 (patch)
treeba7f96b4ce53ef5e87cad73ff10e29e291e0820f /drivers/spi/spi-sprd-adi.c
parentd4942c119c978f1c6649212d2e42696bef43dd27 (diff)
spi: sprd: Change to use devm_hwspin_lock_request_specific()
Change to use devm_hwspin_lock_request_specific() instead of freeing the hwlock explicitly when unbound the device. Acked-by: Mark Brown <broonie@kernel.org> Signed-off-by: Baolin Wang <baolin.wang@linaro.org> Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Diffstat (limited to 'drivers/spi/spi-sprd-adi.c')
-rw-r--r--drivers/spi/spi-sprd-adi.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/drivers/spi/spi-sprd-adi.c b/drivers/spi/spi-sprd-adi.c
index 2d4c0419e208..df5960bddfe6 100644
--- a/drivers/spi/spi-sprd-adi.c
+++ b/drivers/spi/spi-sprd-adi.c
@@ -465,7 +465,7 @@ static int sprd_adi_probe(struct platform_device *pdev)
465 goto put_ctlr; 465 goto put_ctlr;
466 } 466 }
467 467
468 sadi->hwlock = hwspin_lock_request_specific(ret); 468 sadi->hwlock = devm_hwspin_lock_request_specific(&pdev->dev, ret);
469 if (!sadi->hwlock) { 469 if (!sadi->hwlock) {
470 ret = -ENXIO; 470 ret = -ENXIO;
471 goto put_ctlr; 471 goto put_ctlr;
@@ -483,7 +483,7 @@ static int sprd_adi_probe(struct platform_device *pdev)
483 ret = devm_spi_register_controller(&pdev->dev, ctlr); 483 ret = devm_spi_register_controller(&pdev->dev, ctlr);
484 if (ret) { 484 if (ret) {
485 dev_err(&pdev->dev, "failed to register SPI controller\n"); 485 dev_err(&pdev->dev, "failed to register SPI controller\n");
486 goto free_hwlock; 486 goto put_ctlr;
487 } 487 }
488 488
489 sadi->restart_handler.notifier_call = sprd_adi_restart_handler; 489 sadi->restart_handler.notifier_call = sprd_adi_restart_handler;
@@ -491,13 +491,11 @@ static int sprd_adi_probe(struct platform_device *pdev)
491 ret = register_restart_handler(&sadi->restart_handler); 491 ret = register_restart_handler(&sadi->restart_handler);
492 if (ret) { 492 if (ret) {
493 dev_err(&pdev->dev, "can not register restart handler\n"); 493 dev_err(&pdev->dev, "can not register restart handler\n");
494 goto free_hwlock; 494 goto put_ctlr;
495 } 495 }
496 496
497 return 0; 497 return 0;
498 498
499free_hwlock:
500 hwspin_lock_free(sadi->hwlock);
501put_ctlr: 499put_ctlr:
502 spi_controller_put(ctlr); 500 spi_controller_put(ctlr);
503 return ret; 501 return ret;
@@ -509,7 +507,6 @@ static int sprd_adi_remove(struct platform_device *pdev)
509 struct sprd_adi *sadi = spi_controller_get_devdata(ctlr); 507 struct sprd_adi *sadi = spi_controller_get_devdata(ctlr);
510 508
511 unregister_restart_handler(&sadi->restart_handler); 509 unregister_restart_handler(&sadi->restart_handler);
512 hwspin_lock_free(sadi->hwlock);
513 return 0; 510 return 0;
514} 511}
515 512