On 04/06/2016 at 18:58:59 +0200, Gabriele Mazzotta wrote : > 2016-06-04 16:46 GMT+02:00 Alexandre Belloni > <alexandre.bell...@free-electrons.com>: > > On 01/06/2016 at 17:40:14 +0200, Gabriele Mazzotta wrote : > >> If the system wakes up because of a wake alarm, the internal state > >> of the alarm is not updated. As consequence, the state no longer > >> reflects the actual state of the hardware and setting a new alarm > >> is not possible until the expired alarm is cleared. > >> > > > > I'm not completely sure to understand what is happening but could you > > check whether that one is solved by > > 2b2f5ff00f63847d95adad6289bd8b05f5983dd5 in my tree (rtc-next). > > > > I picked 2b2f5ff00f63847d95adad6289bd8b05f5983dd5 and applied it > on top of 4.7-rc1, but that didn't fix the problem. > > Let me explain the problem by showing you how I reproduce it: > > root@localhost:~# cat /proc/driver/rtc | grep alarm_IRQ > alarm_IRQ : no > root@localhost:~# echo +10 > /sys/class/rtc/rtc0/wakealarm > root@localhost:~# echo mem > /sys/power/state # wait for auto-resume > root@localhost:~# echo +10 > /sys/class/rtc/rtc0/wakealarm > bash: echo: write error: Device or resource busy > root@localhost:~# cat /proc/driver/rtc | grep alarm_IRQ > alarm_IRQ : yes > > To set another alarm, I have to first write 0 to wakealarm. After that > I can set what I want. This doesn't happen if the alarm fires while > the system is awake, it happens only if the system is suspended and > the alarm wakes it. > > I actually forgot to say that maybe this problem is not limited > to rtc-cmos and that maybe a general solution could be used. > > I've just looked better into what is causing this and the problem > seems to be caused by the fact that rtc_timer_do_work() is not > executed if the timer expires while the system is suspended. >
I doubt this is a driver independent issues as I don't get that behaviour on many other RTCs. I'll have a look. -- Alexandre Belloni, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com -- You received this message because you are subscribed to "rtc-linux". Membership options at http://groups.google.com/group/rtc-linux . Please read http://groups.google.com/group/rtc-linux/web/checklist before submitting a driver. --- You received this message because you are subscribed to the Google Groups "rtc-linux" group. To unsubscribe from this group and stop receiving emails from it, send an email to rtc-linux+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.