spi: qup: add missing clk_disable_unprepare on error in spi_qup_resume()
authorXu Qiang <xuqiang36@huawei.com>
Thu, 25 Aug 2022 06:53:23 +0000 (06:53 +0000)
committerMark Brown <broonie@kernel.org>
Mon, 5 Sep 2022 12:09:50 +0000 (13:09 +0100)
Add the missing clk_disable_unprepare() before return
from spi_qup_resume() in the error handling case.

Fixes: 64ff247a978f (“spi: Add Qualcomm QUP SPI controller support”)
Signed-off-by: Xu Qiang <xuqiang36@huawei.com>
Link: https://lore.kernel.org/r/20220825065324.68446-1-xuqiang36@huawei.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-qup.c

index 00d6084..ae4e67f 100644 (file)
@@ -1245,14 +1245,25 @@ static int spi_qup_resume(struct device *device)
                return ret;
 
        ret = clk_prepare_enable(controller->cclk);
-       if (ret)
+       if (ret) {
+               clk_disable_unprepare(controller->iclk);
                return ret;
+       }
 
        ret = spi_qup_set_state(controller, QUP_STATE_RESET);
        if (ret)
-               return ret;
+               goto disable_clk;
+
+       ret = spi_master_resume(master);
+       if (ret)
+               goto disable_clk;
 
-       return spi_master_resume(master);
+       return 0;
+
+disable_clk:
+       clk_disable_unprepare(controller->cclk);
+       clk_disable_unprepare(controller->iclk);
+       return ret;
 }
 #endif /* CONFIG_PM_SLEEP */