On 21/01/2019 12:09:30+0100, Marek Szyprowski wrote: > s3c_rtc_enable/disable_clk() functions were designed to be called multiple > times without reference counting, because they were initially only used in > alarm setting/clearing functions, which can be called both when alarm is > already set or not. Later however, calls to those functions have been added to > other places in the driver - like time and /proc reading callbacks, what > results in broken alarm if any of such events happens after the alarm has > been set. Fix this by simplifying s3c_rtc_enable/disable_clk() functions > to rely on proper reference counting in clock core and move alarm enable > counter to s3c_rtc_setaie() function. > > Signed-off-by: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx> > --- > v2: > - simplified code as suggested by Krzysztof > --- > drivers/rtc/rtc-s3c.c | 74 ++++++++++++++++++------------------------- > 1 file changed, 31 insertions(+), 43 deletions(-) > Applied, thanks. -- Alexandre Belloni, Bootlin Embedded Linux and Kernel engineering https://bootlin.com