From: Krzysztof Kozlowski <k.kozlowski@samsung.com>
To: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
Cc: Lee Jones <lee.jones@linaro.org>,
Samuel Ortiz <sameo@linux.intel.com>,
Mark Brown <broonie@kernel.org>,
Mike Turquette <mturquette@linaro.org>,
Liam Girdwood <lgirdwood@gmail.com>,
Alessandro Zummo <a.zummo@towertech.it>,
Kukjin Kim <kgene.kim@samsung.com>,
Doug Anderson <dianders@chromium.org>,
Olof Johansson <olof@lixom.net>,
Sjoerd Simons <sjoerd.simons@collabora.co.uk>,
Daniel Stone <daniels@collabora.com>,
Tomeu Vizoso <tomeu.vizoso@collabora.com>,
linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
linux-samsung-soc@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 02/14] mfd: max77686: Allow the max77686 rtc to wakeup the system
Date: Wed, 25 Jun 2014 12:05:42 +0200 [thread overview]
Message-ID: <1403690742.22107.7.camel@AMDC1943> (raw)
In-Reply-To: <1403202040-12641-3-git-send-email-javier.martinez@collabora.co.uk>
On czw, 2014-06-19 at 20:20 +0200, Javier Martinez Canillas wrote:
> From: Doug Anderson <dianders@chromium.org>
>
> The max77686 includes an RTC that keeps power during suspend. It's
> convenient to be able to use it as a wakeup source.
>
> Signed-off-by: Doug Anderson <dianders@chromium.org>
> ---
> drivers/rtc/rtc-max77686.c | 28 ++++++++++++++++++++++++++++
> 1 file changed, 28 insertions(+)
>
> diff --git a/drivers/rtc/rtc-max77686.c b/drivers/rtc/rtc-max77686.c
> index d20a7f0..c1c6055 100644
> --- a/drivers/rtc/rtc-max77686.c
> +++ b/drivers/rtc/rtc-max77686.c
> @@ -583,6 +583,33 @@ static void max77686_rtc_shutdown(struct platform_device *pdev)
> #endif /* MAX77686_RTC_WTSR_SMPL */
> }
>
> +#ifdef CONFIG_PM_SLEEP
> +static int max77686_rtc_suspend(struct device *dev)
> +{
> + if (device_may_wakeup(dev)) {
> + struct max77686_rtc_info *info = dev_get_drvdata(dev);
> +
> + return enable_irq_wake(info->virq);
> + }
> +
> + return 0;
> +}
> +
> +static int max77686_rtc_resume(struct device *dev)
> +{
> + if (device_may_wakeup(dev)) {
> + struct max77686_rtc_info *info = dev_get_drvdata(dev);
> +
> + return disable_irq_wake(info->virq);
> + }
> +
> + return 0;
> +}
> +#endif
Haven't you noticed un-acked interrupts after first resume? Does the
alarm IRQ works after first suspend-resume?
This happens quite often (at least on boards with max14577, max77836 and
s2m/s5m). The drivers implementing own irq_chip often just call irq
worker thread (see max77693_irq_resume [1]). With regmap_irq_chip you
can disable/enable the IRQ [2][3].
P.S. Sorry for late reply. I was on holidays.
[1] http://lxr.free-electrons.com/source/drivers/mfd/max77693-irq.c#L233
[2] http://lxr.free-electrons.com/source/drivers/mfd/max14577.c#L181
[2] http://lxr.free-electrons.com/source/drivers/mfd/sec-core.c#L444
Best regards,
Krzysztof
WARNING: multiple messages have this Message-ID (diff)
From: k.kozlowski@samsung.com (Krzysztof Kozlowski)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 02/14] mfd: max77686: Allow the max77686 rtc to wakeup the system
Date: Wed, 25 Jun 2014 12:05:42 +0200 [thread overview]
Message-ID: <1403690742.22107.7.camel@AMDC1943> (raw)
In-Reply-To: <1403202040-12641-3-git-send-email-javier.martinez@collabora.co.uk>
On czw, 2014-06-19 at 20:20 +0200, Javier Martinez Canillas wrote:
> From: Doug Anderson <dianders@chromium.org>
>
> The max77686 includes an RTC that keeps power during suspend. It's
> convenient to be able to use it as a wakeup source.
>
> Signed-off-by: Doug Anderson <dianders@chromium.org>
> ---
> drivers/rtc/rtc-max77686.c | 28 ++++++++++++++++++++++++++++
> 1 file changed, 28 insertions(+)
>
> diff --git a/drivers/rtc/rtc-max77686.c b/drivers/rtc/rtc-max77686.c
> index d20a7f0..c1c6055 100644
> --- a/drivers/rtc/rtc-max77686.c
> +++ b/drivers/rtc/rtc-max77686.c
> @@ -583,6 +583,33 @@ static void max77686_rtc_shutdown(struct platform_device *pdev)
> #endif /* MAX77686_RTC_WTSR_SMPL */
> }
>
> +#ifdef CONFIG_PM_SLEEP
> +static int max77686_rtc_suspend(struct device *dev)
> +{
> + if (device_may_wakeup(dev)) {
> + struct max77686_rtc_info *info = dev_get_drvdata(dev);
> +
> + return enable_irq_wake(info->virq);
> + }
> +
> + return 0;
> +}
> +
> +static int max77686_rtc_resume(struct device *dev)
> +{
> + if (device_may_wakeup(dev)) {
> + struct max77686_rtc_info *info = dev_get_drvdata(dev);
> +
> + return disable_irq_wake(info->virq);
> + }
> +
> + return 0;
> +}
> +#endif
Haven't you noticed un-acked interrupts after first resume? Does the
alarm IRQ works after first suspend-resume?
This happens quite often (at least on boards with max14577, max77836 and
s2m/s5m). The drivers implementing own irq_chip often just call irq
worker thread (see max77693_irq_resume [1]). With regmap_irq_chip you
can disable/enable the IRQ [2][3].
P.S. Sorry for late reply. I was on holidays.
[1] http://lxr.free-electrons.com/source/drivers/mfd/max77693-irq.c#L233
[2] http://lxr.free-electrons.com/source/drivers/mfd/max14577.c#L181
[2] http://lxr.free-electrons.com/source/drivers/mfd/sec-core.c#L444
Best regards,
Krzysztof
next prev parent reply other threads:[~2014-06-25 10:05 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-19 18:20 [PATCH v3 00/14] Add Maxim 77802 PMIC support Javier Martinez Canillas
2014-06-19 18:20 ` Javier Martinez Canillas
2014-06-19 18:20 ` [PATCH v3 01/14] mfd: max77686: Convert to use regmap_irq Javier Martinez Canillas
2014-06-19 18:20 ` Javier Martinez Canillas
2014-06-19 18:20 ` Javier Martinez Canillas
2014-06-19 18:20 ` [PATCH v3 02/14] mfd: max77686: Allow the max77686 rtc to wakeup the system Javier Martinez Canillas
2014-06-19 18:20 ` Javier Martinez Canillas
2014-06-25 10:05 ` Krzysztof Kozlowski [this message]
2014-06-25 10:05 ` Krzysztof Kozlowski
2014-06-25 10:29 ` Javier Martinez Canillas
2014-06-25 10:29 ` Javier Martinez Canillas
[not found] ` <53AAA4A3.50400-ZGY8ohtN/8pPYcu2f3hruQ@public.gmane.org>
2014-06-25 17:24 ` Doug Anderson
2014-06-25 17:24 ` Doug Anderson
2014-06-25 17:24 ` Doug Anderson
2014-06-25 18:11 ` Javier Martinez Canillas
2014-06-25 18:11 ` Javier Martinez Canillas
2014-06-19 18:20 ` [PATCH v3 03/14] clk: max77686: Add DT include for MAX77686 PMIC clock Javier Martinez Canillas
2014-06-19 18:20 ` Javier Martinez Canillas
2014-06-19 18:20 ` Javier Martinez Canillas
2014-06-25 10:18 ` Krzysztof Kozlowski
2014-06-25 10:18 ` Krzysztof Kozlowski
2014-06-19 18:20 ` [PATCH v3 04/14] clk: max77686: Improve Maxim 77686 PMIC clocks binding Javier Martinez Canillas
2014-06-19 18:20 ` Javier Martinez Canillas
2014-06-25 10:19 ` Krzysztof Kozlowski
2014-06-25 10:19 ` Krzysztof Kozlowski
2014-06-25 18:06 ` Doug Anderson
2014-06-25 18:06 ` Doug Anderson
2014-06-25 18:13 ` Javier Martinez Canillas
2014-06-25 18:13 ` Javier Martinez Canillas
2014-06-19 18:20 ` [PATCH v3 05/14] clk: Add generic driver for Maxim PMIC clocks Javier Martinez Canillas
2014-06-19 18:20 ` Javier Martinez Canillas
2014-06-19 18:20 ` Javier Martinez Canillas
2014-06-25 14:19 ` Krzysztof Kozlowski
2014-06-25 14:19 ` Krzysztof Kozlowski
2014-06-25 14:36 ` Javier Martinez Canillas
2014-06-25 14:36 ` Javier Martinez Canillas
2014-06-19 18:20 ` [PATCH v3 06/14] clk: max77686: Convert to the generic max clock driver Javier Martinez Canillas
2014-06-19 18:20 ` Javier Martinez Canillas
2014-06-19 18:20 ` Javier Martinez Canillas
[not found] ` <1403202040-12641-7-git-send-email-javier.martinez-ZGY8ohtN/8pPYcu2f3hruQ@public.gmane.org>
2014-06-25 14:30 ` Krzysztof Kozlowski
2014-06-25 14:30 ` Krzysztof Kozlowski
2014-06-25 14:30 ` Krzysztof Kozlowski
2014-06-19 18:20 ` [PATCH v3 07/14] mfd: Add driver for Maxim 77802 Power Management IC Javier Martinez Canillas
2014-06-19 18:20 ` Javier Martinez Canillas
2014-06-19 18:20 ` [PATCH v3 08/14] mfd: max77802: Add DT binding documentation Javier Martinez Canillas
2014-06-19 18:20 ` Javier Martinez Canillas
2014-06-19 18:20 ` [PATCH v3 09/14] regmap: Add regmap_reg_copy function Javier Martinez Canillas
2014-06-19 18:20 ` Javier Martinez Canillas
2014-06-19 18:20 ` Javier Martinez Canillas
2014-06-19 18:20 ` [PATCH v3 10/14] regulator: Add driver for Maxim 77802 PMIC regulators Javier Martinez Canillas
2014-06-19 18:20 ` Javier Martinez Canillas
2014-06-19 18:20 ` [PATCH v3 11/14] clk: Add driver for Maxim 77802 PMIC clocks Javier Martinez Canillas
2014-06-19 18:20 ` Javier Martinez Canillas
2014-06-19 18:20 ` [PATCH v3 12/14] clk: max77802: Add DT binding documentation Javier Martinez Canillas
2014-06-19 18:20 ` Javier Martinez Canillas
2014-06-19 18:20 ` [PATCH v3 13/14] rtc: Add driver for Maxim 77802 PMIC Real-Time-Clock Javier Martinez Canillas
2014-06-19 18:20 ` Javier Martinez Canillas
2014-06-19 18:20 ` [PATCH v3 14/14] ARM: dts: Add max77802 device node for exynos5420-peach-pit Javier Martinez Canillas
2014-06-19 18:20 ` Javier Martinez Canillas
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=1403690742.22107.7.camel@AMDC1943 \
--to=k.kozlowski@samsung.com \
--cc=a.zummo@towertech.it \
--cc=broonie@kernel.org \
--cc=daniels@collabora.com \
--cc=devicetree@vger.kernel.org \
--cc=dianders@chromium.org \
--cc=javier.martinez@collabora.co.uk \
--cc=kgene.kim@samsung.com \
--cc=lee.jones@linaro.org \
--cc=lgirdwood@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=mturquette@linaro.org \
--cc=olof@lixom.net \
--cc=sameo@linux.intel.com \
--cc=sjoerd.simons@collabora.co.uk \
--cc=tomeu.vizoso@collabora.com \
/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: link
Be 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.