From: Lee Jones <lee.jones@linaro.org>
To: Peter Griffin <peter.griffin@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
kernel@stlinux.com, rtc-linux@googlegroups.com, wim@iguana.be,
linux@roeck-us.net, linux-watchdog@vger.kernel.org
Subject: Re: [STLinux Kernel] [PATCH v3 7/8] rtc: st: add new driver for ST's LPC RTC
Date: Wed, 25 Feb 2015 11:08:09 +0000 [thread overview]
Message-ID: <20150225110809.GH21323@x1> (raw)
In-Reply-To: <20150223101223.GA14142@griffinp-ThinkPad-X1-Carbon-2nd>
On Mon, 23 Feb 2015, Peter Griffin wrote:
> On Wed, 18 Feb 2015, Lee Jones wrote:
>
> > ST's Low Power Controller (LPC) controls two devices; watchdog and RTC.
> > Only one of the devices can be used at any one time. This is enforced
> > by the correlating MFD driver. This portion of the driver-set controls
> > the Real Time Clock.
>
> <snip>
>
> > +{
> > + unsigned long flags;
> > +
> > + spin_lock_irqsave(&rtc->lock, flags);
> > +
> > + writel(1, rtc->ioaddr + LPC_WDT_OFF);
> > +
> > + writel(msb, rtc->ioaddr + LPC_LPA_MSB_OFF);
> > + writel(lsb, rtc->ioaddr + LPC_LPA_LSB_OFF);
> > + writel(1, rtc->ioaddr + LPC_LPA_START_OFF);
> > +
> > + writel(0, rtc->ioaddr + LPC_WDT_OFF);
>
> I think all the writel IO accessors in this driver can be replaced
> with the *_relaxed variant. This will avoid the overhead of taking a
> spinlock in the l2 outer cache part of writel.
Yes, there is no technical reason why we can't use the relaxed
variants. Will fix.
> > +#ifdef CONFIG_PM_SLEEP
> > +static int st_rtc_suspend(struct device *dev)
> > +{
> > + struct st_rtc *rtc = dev_get_drvdata(dev);
> > +
> > + if (device_may_wakeup(dev))
> > + return 0;
> > +
> > + writel(1, rtc->ioaddr + LPC_WDT_OFF);
> > + writel(0, rtc->ioaddr + LPC_LPA_START_OFF);
> > + writel(0, rtc->ioaddr + LPC_WDT_OFF);
>
> Is there a reason for not disabling the IP clock in suspend / resume functions?
There is. It will stop the alarm timer, which is undesirable.
--
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
--
To unsubscribe from this list: send the line "unsubscribe linux-watchdog" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
WARNING: multiple messages have this Message-ID (diff)
From: lee.jones@linaro.org (Lee Jones)
To: linux-arm-kernel@lists.infradead.org
Subject: [STLinux Kernel] [PATCH v3 7/8] rtc: st: add new driver for ST's LPC RTC
Date: Wed, 25 Feb 2015 11:08:09 +0000 [thread overview]
Message-ID: <20150225110809.GH21323@x1> (raw)
In-Reply-To: <20150223101223.GA14142@griffinp-ThinkPad-X1-Carbon-2nd>
On Mon, 23 Feb 2015, Peter Griffin wrote:
> On Wed, 18 Feb 2015, Lee Jones wrote:
>
> > ST's Low Power Controller (LPC) controls two devices; watchdog and RTC.
> > Only one of the devices can be used at any one time. This is enforced
> > by the correlating MFD driver. This portion of the driver-set controls
> > the Real Time Clock.
>
> <snip>
>
> > +{
> > + unsigned long flags;
> > +
> > + spin_lock_irqsave(&rtc->lock, flags);
> > +
> > + writel(1, rtc->ioaddr + LPC_WDT_OFF);
> > +
> > + writel(msb, rtc->ioaddr + LPC_LPA_MSB_OFF);
> > + writel(lsb, rtc->ioaddr + LPC_LPA_LSB_OFF);
> > + writel(1, rtc->ioaddr + LPC_LPA_START_OFF);
> > +
> > + writel(0, rtc->ioaddr + LPC_WDT_OFF);
>
> I think all the writel IO accessors in this driver can be replaced
> with the *_relaxed variant. This will avoid the overhead of taking a
> spinlock in the l2 outer cache part of writel.
Yes, there is no technical reason why we can't use the relaxed
variants. Will fix.
> > +#ifdef CONFIG_PM_SLEEP
> > +static int st_rtc_suspend(struct device *dev)
> > +{
> > + struct st_rtc *rtc = dev_get_drvdata(dev);
> > +
> > + if (device_may_wakeup(dev))
> > + return 0;
> > +
> > + writel(1, rtc->ioaddr + LPC_WDT_OFF);
> > + writel(0, rtc->ioaddr + LPC_LPA_START_OFF);
> > + writel(0, rtc->ioaddr + LPC_WDT_OFF);
>
> Is there a reason for not disabling the IP clock in suspend / resume functions?
There is. It will stop the alarm timer, which is undesirable.
--
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org ? Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
WARNING: multiple messages have this Message-ID (diff)
From: Lee Jones <lee.jones@linaro.org>
To: Peter Griffin <peter.griffin@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
kernel@stlinux.com, rtc-linux@googlegroups.com, wim@iguana.be,
linux@roeck-us.net, linux-watchdog@vger.kernel.org
Subject: Re: [STLinux Kernel] [PATCH v3 7/8] rtc: st: add new driver for ST's LPC RTC
Date: Wed, 25 Feb 2015 11:08:09 +0000 [thread overview]
Message-ID: <20150225110809.GH21323@x1> (raw)
In-Reply-To: <20150223101223.GA14142@griffinp-ThinkPad-X1-Carbon-2nd>
On Mon, 23 Feb 2015, Peter Griffin wrote:
> On Wed, 18 Feb 2015, Lee Jones wrote:
>
> > ST's Low Power Controller (LPC) controls two devices; watchdog and RTC.
> > Only one of the devices can be used at any one time. This is enforced
> > by the correlating MFD driver. This portion of the driver-set controls
> > the Real Time Clock.
>
> <snip>
>
> > +{
> > + unsigned long flags;
> > +
> > + spin_lock_irqsave(&rtc->lock, flags);
> > +
> > + writel(1, rtc->ioaddr + LPC_WDT_OFF);
> > +
> > + writel(msb, rtc->ioaddr + LPC_LPA_MSB_OFF);
> > + writel(lsb, rtc->ioaddr + LPC_LPA_LSB_OFF);
> > + writel(1, rtc->ioaddr + LPC_LPA_START_OFF);
> > +
> > + writel(0, rtc->ioaddr + LPC_WDT_OFF);
>
> I think all the writel IO accessors in this driver can be replaced
> with the *_relaxed variant. This will avoid the overhead of taking a
> spinlock in the l2 outer cache part of writel.
Yes, there is no technical reason why we can't use the relaxed
variants. Will fix.
> > +#ifdef CONFIG_PM_SLEEP
> > +static int st_rtc_suspend(struct device *dev)
> > +{
> > + struct st_rtc *rtc = dev_get_drvdata(dev);
> > +
> > + if (device_may_wakeup(dev))
> > + return 0;
> > +
> > + writel(1, rtc->ioaddr + LPC_WDT_OFF);
> > + writel(0, rtc->ioaddr + LPC_LPA_START_OFF);
> > + writel(0, rtc->ioaddr + LPC_WDT_OFF);
>
> Is there a reason for not disabling the IP clock in suspend / resume functions?
There is. It will stop the alarm timer, which is undesirable.
--
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
next prev parent reply other threads:[~2015-02-25 11:08 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-18 11:49 [PATCH v3 0/8] mfd: watchdog: rtc: New driver for ST's LPC IP Lee Jones
2015-02-18 11:49 ` Lee Jones
2015-02-18 11:49 ` Lee Jones
2015-02-18 11:49 ` [PATCH v3 1/8] ARM: multi_v7_defconfig: Enable support for ST's LPC Watchdog Lee Jones
2015-02-18 11:49 ` Lee Jones
2015-02-18 11:49 ` [PATCH v3 2/8] ARM: multi_v7_defconfig: Enable support for ST's LPC RTC Lee Jones
2015-02-18 11:49 ` Lee Jones
2015-02-18 11:49 ` Lee Jones
2015-02-18 11:49 ` [PATCH v3 3/8] ARM: STi: DT: STiH407: Add Device Tree node for the LPC Lee Jones
2015-02-18 11:49 ` Lee Jones
2015-02-18 11:49 ` [PATCH v3 4/8] watchdog: bindings: Provide ST bindings for ST's LPC Watchdog device Lee Jones
2015-02-18 11:49 ` Lee Jones
2015-02-18 11:49 ` [PATCH v3 5/8] watchdog: st_wdt: Add new driver for ST's LPC Watchdog Lee Jones
2015-02-18 11:49 ` Lee Jones
2015-02-23 10:25 ` [STLinux Kernel] " Peter Griffin
2015-02-23 10:25 ` Peter Griffin
2015-03-02 7:56 ` Peter Griffin
2015-03-02 7:56 ` Peter Griffin
2015-03-02 7:56 ` Peter Griffin
2015-02-23 19:50 ` [v3,5/8] " Guenter Roeck
2015-02-23 19:50 ` Guenter Roeck
2015-02-18 11:49 ` [PATCH v3 6/8] rtc: bindings: Provide ST bindings for ST's LPC RTC device Lee Jones
2015-02-18 11:49 ` Lee Jones
2015-02-18 11:49 ` Lee Jones
2015-02-18 11:49 ` [PATCH v3 7/8] rtc: st: add new driver for ST's LPC RTC Lee Jones
2015-02-18 11:49 ` Lee Jones
2015-02-23 10:12 ` [STLinux Kernel] " Peter Griffin
2015-02-23 10:12 ` Peter Griffin
2015-02-23 10:12 ` Peter Griffin
2015-02-25 11:08 ` Lee Jones [this message]
2015-02-25 11:08 ` Lee Jones
2015-02-25 11:08 ` Lee Jones
2015-02-25 11:19 ` Russell King - ARM Linux
2015-02-25 11:19 ` Russell King - ARM Linux
2015-02-25 11:19 ` Russell King - ARM Linux
2015-02-25 14:28 ` Peter Griffin
2015-02-25 14:28 ` Peter Griffin
2015-02-18 11:49 ` [PATCH v3 8/8] MAINTAINERS: Add Watchdog and RTC files to STI's maintainer entry Lee Jones
2015-02-18 11:49 ` Lee Jones
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=20150225110809.GH21323@x1 \
--to=lee.jones@linaro.org \
--cc=devicetree@vger.kernel.org \
--cc=kernel@stlinux.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-watchdog@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=peter.griffin@linaro.org \
--cc=rtc-linux@googlegroups.com \
--cc=wim@iguana.be \
/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.