[PATCH] spi: sunplus-sp7021: fix clock prepare leak in system sleep suspend

From: Zhao Feng

Date: Sun Nov 08 2026 - 23:53:32 EST


sp7021_spi_controller_resume() enables the controller clock with
clk_prepare_enable(), but the matching suspend callback
sp7021_spi_controller_suspend() only asserts the reset line and never
disables/unprepares the clock. Every system sleep suspend/resume cycle
therefore leaks one clock prepare/enable reference, leaving the clock
usage count permanently unbalanced.

Add the missing clk_disable_unprepare() to the suspend callback, in
reverse order of the resume sequence.

Fixes: f62ca4e2a863 ("spi: Add spi driver for Sunplus SP7021")
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Zhao Feng <zhaofeng2@xxxxxxxxxxxxxxxxxxxx>
---
Verified against current upstream master; the probe path has been
converted to devm_clk_get_enabled() upstream but the suspend/resume
asymmetry is unchanged. Not runtime-tested (no SP7021 hardware).

drivers/spi/spi-sunplus-sp7021.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/spi/spi-sunplus-sp7021.c b/drivers/spi/spi-sunplus-sp7021.c
--- a/drivers/spi/spi-sunplus-sp7021.c
+++ b/drivers/spi/spi-sunplus-sp7021.c
@@ -509,6 +509,8 @@ static int sp7021_spi_controller_suspend(struct device *dev)
struct spi_controller *ctlr = dev_get_drvdata(dev);
struct sp7021_spi_ctlr *pspim = spi_controller_get_devdata(ctlr);

+ clk_disable_unprepare(pspim->spi_clk);
+
return reset_control_assert(pspim->rstc);
}

--
2.39.2