The wilc_sdio_suspend() does clk_disable_unprepare() on rtc_clk clock, make sure wilc_sdio_resume() does matching clk_prepare_enable(), else any suspend/resume cycle leads to clock disable/enable imbalance. Fix the imbalance. Signed-off-by: Marek Vasut <marex@xxxxxxx> --- Cc: Ajay Singh <ajay.kathat@xxxxxxxxxxxxx> Cc: Alexis Lothoré <alexis.lothore@xxxxxxxxxxx> Cc: Claudiu Beznea <claudiu.beznea@xxxxxxxxx> Cc: Kalle Valo <kvalo@xxxxxxxxxx> Cc: Marek Vasut <marex@xxxxxxx> Cc: linux-wireless@xxxxxxxxxxxxxxx --- drivers/net/wireless/microchip/wilc1000/sdio.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/net/wireless/microchip/wilc1000/sdio.c b/drivers/net/wireless/microchip/wilc1000/sdio.c index 7999aeb76901f..683a35c682a8f 100644 --- a/drivers/net/wireless/microchip/wilc1000/sdio.c +++ b/drivers/net/wireless/microchip/wilc1000/sdio.c @@ -1006,6 +1006,9 @@ static int wilc_sdio_resume(struct device *dev) if (!wilc->initialized) return 0; + if (!IS_ERR(wilc->rtc_clk)) + clk_prepare_enable(wilc->rtc_clk); + wilc_sdio_init(wilc, true); wilc_sdio_enable_interrupt(wilc); -- 2.43.0