]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
spi: zynq-qspi: Add check for clk_enable()
authorMingwei Zheng <zmw12306@gmail.com>
Sat, 7 Dec 2024 01:52:06 +0000 (20:52 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 13 Mar 2025 11:46:46 +0000 (12:46 +0100)
[ Upstream commit 8332e667099712e05ec87ba2058af394b51ebdc9 ]

Add check for the return value of clk_enable() to catch the potential
error.

Fixes: c618a90dcaf3 ("spi: zynq-qspi: Drop GPIO header")
Signed-off-by: Mingwei Zheng <zmw12306@gmail.com>
Signed-off-by: Jiasheng Jiang <jiashengjiangcool@gmail.com>
Link: https://patch.msgid.link/20241207015206.3689364-1-zmw12306@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/spi/spi-zynq-qspi.c

index 13c0b15fe17649490b7075c0d5119e4d012b7413..2be764d5460d3aa57902e981d2d73e0ccd25dbb9 100644 (file)
@@ -379,12 +379,21 @@ static int zynq_qspi_setup_op(struct spi_device *spi)
 {
        struct spi_controller *ctlr = spi->master;
        struct zynq_qspi *qspi = spi_controller_get_devdata(ctlr);
+       int ret;
 
        if (ctlr->busy)
                return -EBUSY;
 
-       clk_enable(qspi->refclk);
-       clk_enable(qspi->pclk);
+       ret = clk_enable(qspi->refclk);
+       if (ret)
+               return ret;
+
+       ret = clk_enable(qspi->pclk);
+       if (ret) {
+               clk_disable(qspi->refclk);
+               return ret;
+       }
+
        zynq_qspi_write(qspi, ZYNQ_QSPI_ENABLE_OFFSET,
                        ZYNQ_QSPI_ENABLE_ENABLE_MASK);