rtc: stm32: add missed clk_disable_unprepare in error path of resume
authorChuhong Yuan <hslester96@gmail.com>
Thu, 5 Dec 2019 16:06:55 +0000 (00:06 +0800)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Tue, 10 Dec 2019 13:29:23 +0000 (14:29 +0100)
The resume() forgets to call clk_disable_unprepare() when failed.
Add the missed call to fix it.

Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
Reviewed-by: Amelie Delaunay <amelie.delaunay@st.com>
Link: https://lore.kernel.org/r/20191205160655.32188-1-hslester96@gmail.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
drivers/rtc/rtc-stm32.c

index 781cabb2afca4e441047c473d5f206ceeb31c953..d774aa18f57a57b2396029f5df58db310e8e886b 100644 (file)
@@ -897,8 +897,11 @@ static int stm32_rtc_resume(struct device *dev)
        }
 
        ret = stm32_rtc_wait_sync(rtc);
-       if (ret < 0)
+       if (ret < 0) {
+               if (rtc->data->has_pclk)
+                       clk_disable_unprepare(rtc->pclk);
                return ret;
+       }
 
        if (device_may_wakeup(dev))
                return disable_irq_wake(rtc->irq_alarm);