spi: sprd: Change to use devm_hwspin_lock_request_specific()
authorBaolin Wang <baolin.wang@linaro.org>
Fri, 22 Jun 2018 08:09:05 +0000 (16:09 +0800)
committerBjorn Andersson <bjorn.andersson@linaro.org>
Tue, 26 Jun 2018 20:52:27 +0000 (13:52 -0700)
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>
drivers/spi/spi-sprd-adi.c

index 2d4c0419e208549a12efd01711eb49372597bbf5..df5960bddfe6129afde034f70c363fcdca3f3c67 100644 (file)
@@ -465,7 +465,7 @@ static int sprd_adi_probe(struct platform_device *pdev)
                goto put_ctlr;
        }
 
-       sadi->hwlock = hwspin_lock_request_specific(ret);
+       sadi->hwlock = devm_hwspin_lock_request_specific(&pdev->dev, ret);
        if (!sadi->hwlock) {
                ret = -ENXIO;
                goto put_ctlr;
@@ -483,7 +483,7 @@ static int sprd_adi_probe(struct platform_device *pdev)
        ret = devm_spi_register_controller(&pdev->dev, ctlr);
        if (ret) {
                dev_err(&pdev->dev, "failed to register SPI controller\n");
-               goto free_hwlock;
+               goto put_ctlr;
        }
 
        sadi->restart_handler.notifier_call = sprd_adi_restart_handler;
@@ -491,13 +491,11 @@ static int sprd_adi_probe(struct platform_device *pdev)
        ret = register_restart_handler(&sadi->restart_handler);
        if (ret) {
                dev_err(&pdev->dev, "can not register restart handler\n");
-               goto free_hwlock;
+               goto put_ctlr;
        }
 
        return 0;
 
-free_hwlock:
-       hwspin_lock_free(sadi->hwlock);
 put_ctlr:
        spi_controller_put(ctlr);
        return ret;
@@ -509,7 +507,6 @@ static int sprd_adi_remove(struct platform_device *pdev)
        struct sprd_adi *sadi = spi_controller_get_devdata(ctlr);
 
        unregister_restart_handler(&sadi->restart_handler);
-       hwspin_lock_free(sadi->hwlock);
        return 0;
 }