]> www.infradead.org Git - linux.git/commitdiff
spi: bcm63xx: Fix missing pm_runtime_disable()
authorJinjie Ruan <ruanjinjie@huawei.com>
Mon, 19 Aug 2024 12:33:49 +0000 (20:33 +0800)
committerMark Brown <broonie@kernel.org>
Mon, 19 Aug 2024 12:43:30 +0000 (13:43 +0100)
The pm_runtime_disable() is missing in the remove function, fix it
by using devm_pm_runtime_enable(), so the pm_runtime_disable() in
the probe error path can also be removed.

Fixes: 2d13f2ff6073 ("spi: bcm63xx-spi: fix pm_runtime")
Cc: stable@vger.kernel.org # v5.13+
Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
Suggested-by: Jonas Gorski <jonas.gorski@gmail.com>
Link: https://patch.msgid.link/20240819123349.4020472-3-ruanjinjie@huawei.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-bcm63xx.c

index 289f8a94980b6ecaef5ea32a16ef003ed83cf4ad..2fb79701a525152784621af2ab74b73899b88965 100644 (file)
@@ -583,13 +583,15 @@ static int bcm63xx_spi_probe(struct platform_device *pdev)
 
        bcm_spi_writeb(bs, SPI_INTR_CLEAR_ALL, SPI_INT_STATUS);
 
-       pm_runtime_enable(&pdev->dev);
+       ret = devm_pm_runtime_enable(&pdev->dev);
+       if (ret)
+               goto out_clk_disable;
 
        /* register and we are done */
        ret = devm_spi_register_controller(dev, host);
        if (ret) {
                dev_err(dev, "spi register failed\n");
-               goto out_pm_disable;
+               goto out_clk_disable;
        }
 
        dev_info(dev, "at %pr (irq %d, FIFOs size %d)\n",
@@ -597,8 +599,6 @@ static int bcm63xx_spi_probe(struct platform_device *pdev)
 
        return 0;
 
-out_pm_disable:
-       pm_runtime_disable(&pdev->dev);
 out_clk_disable:
        clk_disable_unprepare(clk);
 out_err: