From: Geert Uytterhoeven <geert+renesas@glider.be> To: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>, Mark Rutland <mark.rutland@arm.com>, Sudeep Holla <sudeep.holla@arm.com>, Lina Iyer <lina.iyer@linaro.org>, John Stultz <john.stultz@linaro.org>, Thomas Gleixner <tglx@linutronix.de>, "Rafael J . Wysocki" <rjw@rjwysocki.net>, Len Brown <len.brown@intel.com>, Pavel Machek <pavel@ucw.cz>, Rob Herring <robh+dt@kernel.org> Cc: Magnus Damm <magnus.damm@gmail.com>, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-renesas-soc@vger.kernel.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, Geert Uytterhoeven <geert+renesas@glider.be> Subject: [PATCH/RFC 1/6] alarmtimer: Postpone wake-up source registration until really available Date: Mon, 20 Feb 2017 21:33:24 +0100 [thread overview] Message-ID: <1487622809-25127-2-git-send-email-geert+renesas@glider.be> (raw) In-Reply-To: <1487622809-25127-1-git-send-email-geert+renesas@glider.be> Currently the alarmtimer registers a wake-up source unconditionally, regardless of the system having a (wake-up capable) RTC or not. To fix this, postpone registration until a wake-up capable RTC device is added. After this, the alarmtimer no longer shows up in /sys/kernel/debug/wakeup_sources, unless it is available for real. Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> --- kernel/time/alarmtimer.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/kernel/time/alarmtimer.c b/kernel/time/alarmtimer.c index e6dc9a538efa2116..5e0ce78607da5b5d 100644 --- a/kernel/time/alarmtimer.c +++ b/kernel/time/alarmtimer.c @@ -82,6 +82,7 @@ static int alarmtimer_rtc_add_device(struct device *dev, { unsigned long flags; struct rtc_device *rtc = to_rtc_device(dev); + struct wakeup_source *__ws; if (rtcdev) return -EBUSY; @@ -91,13 +92,20 @@ static int alarmtimer_rtc_add_device(struct device *dev, if (!device_may_wakeup(rtc->dev.parent)) return -1; + __ws = wakeup_source_register("alarmtimer"); + spin_lock_irqsave(&rtcdev_lock, flags); if (!rtcdev) { rtcdev = rtc; /* hold a reference so it doesn't go away */ get_device(dev); + ws = __ws; + __ws = NULL; } spin_unlock_irqrestore(&rtcdev_lock, flags); + + wakeup_source_unregister(__ws); + return 0; } @@ -908,7 +916,6 @@ static int __init alarmtimer_init(void) error = PTR_ERR(pdev); goto out_drv; } - ws = wakeup_source_register("alarmtimer"); return 0; out_drv: -- 2.7.4
WARNING: multiple messages have this Message-ID (diff)
From: geert+renesas@glider.be (Geert Uytterhoeven) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH/RFC 1/6] alarmtimer: Postpone wake-up source registration until really available Date: Mon, 20 Feb 2017 21:33:24 +0100 [thread overview] Message-ID: <1487622809-25127-2-git-send-email-geert+renesas@glider.be> (raw) In-Reply-To: <1487622809-25127-1-git-send-email-geert+renesas@glider.be> Currently the alarmtimer registers a wake-up source unconditionally, regardless of the system having a (wake-up capable) RTC or not. To fix this, postpone registration until a wake-up capable RTC device is added. After this, the alarmtimer no longer shows up in /sys/kernel/debug/wakeup_sources, unless it is available for real. Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> --- kernel/time/alarmtimer.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/kernel/time/alarmtimer.c b/kernel/time/alarmtimer.c index e6dc9a538efa2116..5e0ce78607da5b5d 100644 --- a/kernel/time/alarmtimer.c +++ b/kernel/time/alarmtimer.c @@ -82,6 +82,7 @@ static int alarmtimer_rtc_add_device(struct device *dev, { unsigned long flags; struct rtc_device *rtc = to_rtc_device(dev); + struct wakeup_source *__ws; if (rtcdev) return -EBUSY; @@ -91,13 +92,20 @@ static int alarmtimer_rtc_add_device(struct device *dev, if (!device_may_wakeup(rtc->dev.parent)) return -1; + __ws = wakeup_source_register("alarmtimer"); + spin_lock_irqsave(&rtcdev_lock, flags); if (!rtcdev) { rtcdev = rtc; /* hold a reference so it doesn't go away */ get_device(dev); + ws = __ws; + __ws = NULL; } spin_unlock_irqrestore(&rtcdev_lock, flags); + + wakeup_source_unregister(__ws); + return 0; } @@ -908,7 +916,6 @@ static int __init alarmtimer_init(void) error = PTR_ERR(pdev); goto out_drv; } - ws = wakeup_source_register("alarmtimer"); return 0; out_drv: -- 2.7.4
next prev parent reply other threads:[~2017-02-20 20:34 UTC|newest] Thread overview: 145+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-02-20 20:33 [PATCH/RFC 0/6] PSCI: Fix non-PMIC wake-up if SYSTEM_SUSPEND cuts power Geert Uytterhoeven 2017-02-20 20:33 ` Geert Uytterhoeven 2017-02-20 20:33 ` Geert Uytterhoeven [this message] 2017-02-20 20:33 ` [PATCH/RFC 1/6] alarmtimer: Postpone wake-up source registration until really available Geert Uytterhoeven 2017-02-20 20:33 ` [PATCH/RFC 2/6] PM / Wakeup: Add wakeup_source_available() Geert Uytterhoeven 2017-02-20 20:33 ` Geert Uytterhoeven 2017-02-20 20:33 ` [PATCH/RFC 3/6] drivers: firmware: psci: Implement shallow suspend mode Geert Uytterhoeven 2017-02-20 20:33 ` Geert Uytterhoeven 2017-02-21 10:42 ` Sudeep Holla 2017-02-21 10:42 ` Sudeep Holla 2017-02-21 16:23 ` Geert Uytterhoeven 2017-02-21 16:23 ` Geert Uytterhoeven 2017-02-21 16:23 ` Geert Uytterhoeven 2017-02-21 16:51 ` Sudeep Holla 2017-02-21 16:51 ` Sudeep Holla 2017-02-21 16:51 ` Sudeep Holla 2017-02-21 11:07 ` Pavel Machek 2017-02-21 11:07 ` Pavel Machek 2017-02-21 11:07 ` Pavel Machek 2017-02-21 11:14 ` Sudeep Holla 2017-02-21 11:14 ` Sudeep Holla 2017-02-21 11:14 ` Sudeep Holla 2017-02-21 16:32 ` Geert Uytterhoeven 2017-02-21 16:32 ` Geert Uytterhoeven 2017-02-21 16:32 ` Geert Uytterhoeven 2017-02-21 17:20 ` Mark Rutland 2017-02-21 17:20 ` Mark Rutland 2017-02-21 17:20 ` Mark Rutland 2017-02-21 17:20 ` Mark Rutland 2017-02-21 18:06 ` Geert Uytterhoeven 2017-02-21 18:06 ` Geert Uytterhoeven 2017-02-21 18:06 ` Geert Uytterhoeven 2017-02-21 18:06 ` Geert Uytterhoeven 2017-02-21 18:18 ` Mark Rutland 2017-02-21 18:18 ` Mark Rutland 2017-02-21 18:18 ` Mark Rutland 2017-02-21 18:23 ` Geert Uytterhoeven 2017-02-21 18:23 ` Geert Uytterhoeven 2017-02-21 18:23 ` Geert Uytterhoeven 2017-02-21 18:23 ` Geert Uytterhoeven 2017-02-21 17:22 ` Sudeep Holla 2017-02-21 17:22 ` Sudeep Holla 2017-02-21 17:22 ` Sudeep Holla 2017-02-21 17:22 ` Sudeep Holla 2017-02-22 13:47 ` Geert Uytterhoeven 2017-02-22 13:47 ` Geert Uytterhoeven 2017-02-22 13:47 ` Geert Uytterhoeven 2017-02-22 14:35 ` Sudeep Holla 2017-02-22 14:35 ` Sudeep Holla 2017-02-22 14:35 ` Sudeep Holla 2017-02-20 20:33 ` [PATCH/RFC 4/6] drivers: firmware: psci: Fix non-PMIC wake-up if SYSTEM_SUSPEND cuts power Geert Uytterhoeven 2017-02-20 20:33 ` Geert Uytterhoeven 2017-02-21 10:50 ` Sudeep Holla 2017-02-21 10:50 ` Sudeep Holla 2017-02-21 16:36 ` Geert Uytterhoeven 2017-02-21 16:36 ` Geert Uytterhoeven 2017-02-21 16:36 ` Geert Uytterhoeven 2017-02-21 16:49 ` Sudeep Holla 2017-02-21 16:49 ` Sudeep Holla 2017-02-21 16:49 ` Sudeep Holla 2017-02-21 11:07 ` Pavel Machek 2017-02-21 11:07 ` Pavel Machek 2017-02-21 16:36 ` Geert Uytterhoeven 2017-02-21 16:36 ` Geert Uytterhoeven 2017-02-21 16:36 ` Geert Uytterhoeven 2017-02-21 17:54 ` Mark Rutland 2017-02-21 17:54 ` Mark Rutland 2017-02-21 17:48 ` Mark Rutland 2017-02-21 17:48 ` Mark Rutland 2017-02-22 14:05 ` Geert Uytterhoeven 2017-02-22 14:05 ` Geert Uytterhoeven 2017-02-22 14:05 ` Geert Uytterhoeven 2017-02-22 14:57 ` Rafael J. Wysocki 2017-02-22 14:57 ` Rafael J. Wysocki 2017-02-22 14:57 ` Rafael J. Wysocki 2017-02-22 14:57 ` Rafael J. Wysocki 2017-02-20 20:33 ` [PATCH/RFC 5/6] arm64: dts: r8a7795: Fix non-PMIC wake-up sources Geert Uytterhoeven 2017-02-20 20:33 ` Geert Uytterhoeven 2017-02-20 20:33 ` Geert Uytterhoeven 2017-02-20 20:33 ` [PATCH/RFC 6/6] arm64: dts: r8a7796: " Geert Uytterhoeven 2017-02-20 20:33 ` Geert Uytterhoeven 2017-02-21 10:38 ` [PATCH/RFC 0/6] PSCI: Fix non-PMIC wake-up if SYSTEM_SUSPEND cuts power Sudeep Holla 2017-02-21 10:38 ` Sudeep Holla 2017-02-21 16:21 ` Geert Uytterhoeven 2017-02-21 16:21 ` Geert Uytterhoeven 2017-02-21 16:21 ` Geert Uytterhoeven 2017-02-21 16:45 ` Sudeep Holla 2017-02-21 16:45 ` Sudeep Holla 2017-02-21 16:45 ` Sudeep Holla 2017-02-21 16:45 ` Sudeep Holla 2017-02-21 17:34 ` Geert Uytterhoeven 2017-02-21 17:34 ` Geert Uytterhoeven 2017-02-21 17:34 ` Geert Uytterhoeven 2017-02-21 17:51 ` Sudeep Holla 2017-02-21 17:51 ` Sudeep Holla 2017-02-21 17:51 ` Sudeep Holla 2017-02-21 18:27 ` Sudeep Holla 2017-02-21 18:27 ` Sudeep Holla 2017-02-21 18:27 ` Sudeep Holla 2017-02-21 18:27 ` Sudeep Holla 2017-02-21 18:45 ` Sudeep Holla 2017-02-21 18:45 ` Sudeep Holla 2017-02-21 18:45 ` Sudeep Holla 2017-02-21 18:45 ` Sudeep Holla 2017-02-22 1:14 ` Rafael J. Wysocki 2017-02-22 1:14 ` Rafael J. Wysocki 2017-02-22 1:14 ` Rafael J. Wysocki 2017-02-22 11:03 ` Sudeep Holla 2017-02-22 11:03 ` Sudeep Holla 2017-02-22 11:03 ` Sudeep Holla 2017-02-22 13:38 ` Geert Uytterhoeven 2017-02-22 13:38 ` Geert Uytterhoeven 2017-02-22 13:38 ` Geert Uytterhoeven 2017-02-22 14:32 ` Sudeep Holla 2017-02-22 14:32 ` Sudeep Holla 2017-02-22 14:32 ` Sudeep Holla 2017-02-22 14:32 ` Sudeep Holla 2017-02-22 14:50 ` Rafael J. Wysocki 2017-02-22 14:50 ` Rafael J. Wysocki 2017-02-22 14:50 ` Rafael J. Wysocki 2017-02-22 14:50 ` Rafael J. Wysocki 2017-02-22 15:24 ` Sudeep Holla 2017-02-22 15:24 ` Sudeep Holla 2017-02-22 15:24 ` Sudeep Holla 2017-02-22 15:24 ` Sudeep Holla 2017-02-23 15:26 ` Geert Uytterhoeven 2017-02-23 15:26 ` Geert Uytterhoeven 2017-02-23 15:26 ` Geert Uytterhoeven 2017-02-23 15:34 ` Geert Uytterhoeven 2017-02-23 15:34 ` Geert Uytterhoeven 2017-02-23 15:34 ` Geert Uytterhoeven 2017-02-23 15:58 ` Sudeep Holla 2017-02-23 15:58 ` Sudeep Holla 2017-02-23 15:58 ` Sudeep Holla 2017-02-23 15:53 ` Sudeep Holla 2017-02-23 15:53 ` Sudeep Holla 2017-02-23 15:53 ` Sudeep Holla 2017-02-23 15:53 ` Sudeep Holla 2017-02-22 13:14 ` Geert Uytterhoeven 2017-02-22 13:14 ` Geert Uytterhoeven 2017-02-22 13:14 ` Geert Uytterhoeven 2017-02-22 14:31 ` Rafael J. Wysocki 2017-02-22 14:31 ` Rafael J. Wysocki 2017-02-22 14:31 ` Rafael J. Wysocki 2017-02-22 14:31 ` Rafael J. Wysocki
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1487622809-25127-2-git-send-email-geert+renesas@glider.be \ --to=geert+renesas@glider.be \ --cc=devicetree@vger.kernel.org \ --cc=john.stultz@linaro.org \ --cc=len.brown@intel.com \ --cc=lina.iyer@linaro.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-pm@vger.kernel.org \ --cc=linux-renesas-soc@vger.kernel.org \ --cc=lorenzo.pieralisi@arm.com \ --cc=magnus.damm@gmail.com \ --cc=mark.rutland@arm.com \ --cc=pavel@ucw.cz \ --cc=rjw@rjwysocki.net \ --cc=robh+dt@kernel.org \ --cc=sudeep.holla@arm.com \ --cc=tglx@linutronix.de \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.