On Mon, 21 Jan 2019 at 12:09, Marek Szyprowski <m.szyprowski@xxxxxxxxxxx> 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(-) Reviewed-by: Krzysztof Kozlowski <krzk@xxxxxxxxxx> Best regards, Krzysztof