diff options
author | Xu Qiang <xuqiang36@huawei.com> | 2022-08-25 08:53:23 +0200 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2022-09-05 14:09:50 +0200 |
commit | 70034320fdc597b8f58b4a43bb547f17c4c5557a (patch) | |
tree | 03d11f0b39f48b942a9836008ed1251318fb6391 | |
parent | spi: stm32-qspi: Refactor dual flash mode enable check in ->setup() (diff) | |
download | linux-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.c | 17 |
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 */ |