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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 26 Oct 2022 10:34:42 +0000 (12:34 +0200)
[ Upstream commit 70034320fdc597b8f58b4a43bb547f17c4c5557a ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/spi/spi-qup.c

index d39dec6..668d799 100644 (file)
@@ -1246,14 +1246,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 */