Message ID | 1410509864-10019-2-git-send-email-javier.martinez@collabora.co.uk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi, On Fri, Sep 12, 2014 at 1:17 AM, Javier Martinez Canillas <javier.martinez@collabora.co.uk> 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. > > NOTE: due to wakeup ordering problems this patch alone doesn't work so > well on exynos5250-snow. You also need something that brings the i2c > bus up before the max77686 wakeup runs. This note made sense when the patch was first submitted, but no longer does since the i2c change landed. See: b19c195 i2c: s3c2410: resume the I2C controller earlier
Hello Doug, On 09/12/2014 05:12 PM, Doug Anderson wrote: > Hi, > > On Fri, Sep 12, 2014 at 1:17 AM, Javier Martinez Canillas > <javier.martinez@collabora.co.uk> 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. >> >> NOTE: due to wakeup ordering problems this patch alone doesn't work so >> well on exynos5250-snow. You also need something that brings the i2c >> bus up before the max77686 wakeup runs. > > This note made sense when the patch was first submitted, but no longer > does since the i2c change landed. See: > > b19c195 i2c: s3c2410: resume the I2C controller earlier > You are right, I completely forgot to check if that actually landed and to remove the note in that case... Maybe when the set is applied the note can be removed from this patch or do you think that I should re-spin the series for that? Best regards, Javier
Hi, On Fri, Sep 12, 2014 at 8:54 AM, Javier Martinez Canillas <javier.martinez@collabora.co.uk> wrote: > You are right, I completely forgot to check if that actually landed and to > remove the note in that case... > > Maybe when the set is applied the note can be removed from this patch or do > you think that I should re-spin the series for that? This seems like something a maintainer could handle removing, but I guess it's totally up to the maintainer. If I were the maintainer I'd rather remove the note myself then see a whole spin of a 5-part series just to fix this. ;) -Doug
On Fri, 12 Sep 2014 10:17:39 +0200 Javier Martinez Canillas <javier.martinez@collabora.co.uk> 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. > > NOTE: due to wakeup ordering problems this patch alone doesn't work so > well on exynos5250-snow. You also need something that brings the i2c > bus up before the max77686 wakeup runs. I removed this paragraph. > Signed-off-by: Doug Anderson <dianders@chromium.org> > Reviewed-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk> And I rewrote this to Signed-off-by:, as you were on the patch delivery path. Documentation/SubmittingPatches section 12 has the gory details.
Hello Andrew, Thanks a lot for taking a look to these patches! On 09/13/2014 12:05 AM, Andrew Morton wrote: > On Fri, 12 Sep 2014 10:17:39 +0200 Javier Martinez Canillas <javier.martinez@collabora.co.uk> 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. >> >> NOTE: due to wakeup ordering problems this patch alone doesn't work so >> well on exynos5250-snow. You also need something that brings the i2c >> bus up before the max77686 wakeup runs. > > I removed this paragraph. > Great. >> Signed-off-by: Doug Anderson <dianders@chromium.org> >> Reviewed-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk> > > And I rewrote this to Signed-off-by:, as you were on the patch delivery > path. Documentation/SubmittingPatches section 12 has the gory details. > Yes, originally Doug posted this patch separately but was never picked so I included on my series but forgot to add my s-o-b and also to remove the note paragraph. Best regards, Javier
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 + +static SIMPLE_DEV_PM_OPS(max77686_rtc_pm_ops, + max77686_rtc_suspend, max77686_rtc_resume); + static const struct platform_device_id rtc_id[] = { { "max77686-rtc", 0 }, {}, @@ -592,6 +619,7 @@ static struct platform_driver max77686_rtc_driver = { .driver = { .name = "max77686-rtc", .owner = THIS_MODULE, + .pm = &max77686_rtc_pm_ops, }, .probe = max77686_rtc_probe, .shutdown = max77686_rtc_shutdown,