From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758218AbcHYPnt (ORCPT ); Thu, 25 Aug 2016 11:43:49 -0400 Received: from mail-wm0-f51.google.com ([74.125.82.51]:36185 "EHLO mail-wm0-f51.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755930AbcHYPnq (ORCPT ); Thu, 25 Aug 2016 11:43:46 -0400 Subject: Re: [PATCH 1/2] rtc-cmos: Clear expired alarm after resume To: Alexandre Belloni References: <1464795615-7748-1-git-send-email-gabriele.mzt@gmail.com> <20160604144626.GM4594@piout.net> <20160604174854.GN4594@piout.net> Cc: Alessandro Zummo , rtc-linux@googlegroups.com, "linux-kernel@vger.kernel.org" , matthew.garrett@nebula.com From: Gabriele Mazzotta Message-ID: <8f29ddb1-aaf9-9769-536e-d748eb22ed67@gmail.com> Date: Thu, 25 Aug 2016 16:54:18 +0200 MIME-Version: 1.0 In-Reply-To: <20160604174854.GN4594@piout.net> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 04/06/2016 19:48, Alexandre Belloni wrote: > On 04/06/2016 at 18:58:59 +0200, Gabriele Mazzotta wrote : >> 2016-06-04 16:46 GMT+02:00 Alexandre Belloni >> : >>> 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. Hi, were you able to verify that no other driver is affect? Gabriele