summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXu Qiang <xuqiang36@huawei.com>2022-08-25 08:53:23 +0200
committerMark Brown <broonie@kernel.org>2022-09-05 14:09:50 +0200
commit70034320fdc597b8f58b4a43bb547f17c4c5557a (patch)
tree03d11f0b39f48b942a9836008ed1251318fb6391
parentspi: stm32-qspi: Refactor dual flash mode enable check in ->setup() (diff)
downloadlinux-70034320fdc597b8f58b4a43bb547f17c4c5557a.tar.xz
linux-70034320fdc597b8f58b4a43bb547f17c4c5557a.zip
spi: qup: add missing clk_disable_unprepare on error in spi_qup_resume()
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>
-rw-r--r--drivers/spi/spi-qup.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/drivers/spi/spi-qup.c b/drivers/spi/spi-qup.c
index 00d6084306b4..ae4e67f152ec 100644
--- a/drivers/spi/spi-qup.c
+++ b/drivers/spi/spi-qup.c
@@ -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 */