[PATCH v2 5/6] spi: spi-sun4i: sun4i_spi_transfer_one(): add error handling at clock setup
Jonas Rebmann
jre at pengutronix.de
Mon Sep 7 08:31:44 PDT 2026
Bail out if clk_get_rate() or clk_set_rate() fail during
sun4i_spi_transfer_one(). This might happen if the clock isn't known yet
or fails to set the requested rate.
This also ensures that mclk_rate is nonzero and can be safely divided by
in a future commit.
Signed-off-by: Jonas Rebmann <jre at pengutronix.de>
---
drivers/spi/spi-sun4i.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/spi/spi-sun4i.c b/drivers/spi/spi-sun4i.c
index ea8be0170fbf..94e1c7bbd632 100644
--- a/drivers/spi/spi-sun4i.c
+++ b/drivers/spi/spi-sun4i.c
@@ -279,9 +279,17 @@ static int sun4i_spi_transfer_one(struct spi_controller *host,
/* Ensure that we have a parent clock fast enough */
mclk_rate = clk_get_rate(sspi->mclk);
+ if (!mclk_rate)
+ return -EINVAL;
+
if (mclk_rate < (2 * tfr->speed_hz)) {
- clk_set_rate(sspi->mclk, 2 * tfr->speed_hz);
+ ret = clk_set_rate(sspi->mclk, 2 * tfr->speed_hz);
+ if (ret)
+ return ret;
+
mclk_rate = clk_get_rate(sspi->mclk);
+ if (!mclk_rate)
+ return -EINVAL;
}
/*
--
2.55.0.123.gf60db8d575
More information about the linux-arm-kernel
mailing list