From: Krzysztof Kozlowski <k.kozlowski@samsung.com>
To: "Rafael J. Wysocki" <rjw@rjwysocki.net>
Cc: Russell King - ARM Linux <linux@arm.linux.org.uk>,
Pavel Machek <pavel@ucw.cz>, Ulf Hansson <ulf.hansson@linaro.org>,
Alan Stern <stern@rowland.harvard.edu>,
linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org,
Kevin Hilman <khilman@kernel.org>
Subject: Re: [PATCH v8 1/5] PM / Runtime: Add getter for querying the IRQ safe option
Date: Mon, 03 Nov 2014 09:51:10 +0100 [thread overview]
Message-ID: <1415004670.4241.11.camel@AMDC1943> (raw)
In-Reply-To: <1615499.6LK9Yd7Lr0@vostro.rjw.lan>
On sob, 2014-11-01 at 01:42 +0100, Rafael J. Wysocki wrote:
> On Friday, October 31, 2014 11:04:52 PM Russell King - ARM Linux wrote:
> > On Sat, Nov 01, 2014 at 12:11:05AM +0100, Rafael J. Wysocki wrote:
> > > [CC list trimmed + added Kevin Hilman]
> > >
> > > On Monday, October 20, 2014 11:04:44 AM Krzysztof Kozlowski wrote:
> > > > Add a simple getter pm_runtime_is_irq_safe() for querying whether runtime
> > > > PM IRQ safe was set or not.
> > > >
> > > > Various bus drivers implementing runtime PM may use choose to suspend
> > > > differently based on IRQ safeness status of child driver (e.g. do not
> > > > unprepare the clock if IRQ safe is not set).
> > > >
> > > > Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
> > > > Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
> > >
> > > So why do we need to add the wrapper?
> > >
> > > And it goes kind of against the intention which was to set irq_safe when
> > > we knew that the callbacks were safe to be executed from interrupt context
> > > and not when we wished that to be the case.
> >
> > This was provided in the covering email - I quote:
> >
> > This patchset adds runtime and system PM to the pl330 driver.
> >
> > The runtime PM of pl330 driver requires interrupt safe suspend/resume
> > callbacks which is in conflict with current amba bus driver.
> > The latter also unprepares and prepares the AMBA bus clock which
> > is not safe for atomic context.
> >
> > The patchset solves this in patch 3/5 by handling clocks in different
> > way if device driver set interrupt safe runtime PM.
>
> So I'm still unsure why we need the wrapper. IMHO this check in particular:
>
> WARN_ON(pcdev->irq_safe != pm_runtime_is_irq_safe(dev));
>
> (and should that be WARN_ON_ONCE(), for that matter?), looks better this way:
>
> WARN_ON(pcdev->irq_safe != dev->power.irq_safe);
>
> and so on, pretty much.
I used the wrapper only to hide the actual code behind interface but it
don't really matter to me.
> Besides, these special "irq safe" code paths in the bus type look
> considerably ugly to me. I'd probably use an "irq safe" PM domain for
> that device and put it in there instead of doing the
>
> pcdev->irq_safe = pm_runtime_is_irq_safe(dev);
>
> thing in amba_probe(). But that's just me. :-)
The device is not attached to any domain and there is no hardware domain
matching.
Thanks for feedback!
Best regards,
Krzysztof
>
> There's one weak point in [3/5], but let me comment it in there.
>
> Rafael
next prev parent reply other threads:[~2014-11-03 8:51 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-20 9:04 [PATCH v8 0/5] amba/dma: pl330: add Power Management support Krzysztof Kozlowski
2014-10-20 9:04 ` [PATCH v8 1/5] PM / Runtime: Add getter for querying the IRQ safe option Krzysztof Kozlowski
2014-10-31 9:14 ` Krzysztof Kozlowski
2014-10-31 9:29 ` Ulf Hansson
2014-10-31 9:33 ` Russell King - ARM Linux
2014-10-31 9:54 ` Ulf Hansson
2014-10-31 9:33 ` Krzysztof Kozlowski
2014-10-31 14:22 ` Pavel Machek
2014-10-31 14:40 ` Krzysztof Kozlowski
2014-11-01 0:29 ` Laurent Pinchart
2014-11-03 9:36 ` Krzysztof Kozlowski
2014-11-03 16:27 ` Vinod Koul
2014-11-03 16:59 ` Laurent Pinchart
2014-11-05 14:09 ` Vinod Koul
2014-11-03 17:04 ` Russell King - ARM Linux
2014-11-05 14:04 ` Vinod Koul
2014-11-05 14:54 ` Laurent Pinchart
2014-10-31 23:11 ` Rafael J. Wysocki
2014-10-31 23:04 ` Russell King - ARM Linux
2014-11-01 0:42 ` Rafael J. Wysocki
2014-11-03 8:51 ` Krzysztof Kozlowski [this message]
2014-10-20 9:04 ` [PATCH v8 2/5] amba: Add helpers for (un)preparing AMBA clock Krzysztof Kozlowski
2014-10-21 8:05 ` Ulf Hansson
2014-10-20 9:04 ` [PATCH v8 3/5] amba: Don't unprepare the clocks if device driver wants IRQ safe runtime PM Krzysztof Kozlowski
2014-11-01 0:45 ` Rafael J. Wysocki
2014-11-01 0:55 ` Russell King - ARM Linux
2014-11-01 1:01 ` Russell King - ARM Linux
2014-11-03 8:36 ` Krzysztof Kozlowski
2014-11-03 10:04 ` Russell King - ARM Linux
2014-11-03 15:41 ` Alan Stern
2014-11-03 15:41 ` Alan Stern
2014-11-03 15:44 ` Russell King - ARM Linux
2014-11-04 7:59 ` Krzysztof Kozlowski
2014-11-04 1:57 ` Rafael J. Wysocki
2014-11-04 8:01 ` Krzysztof Kozlowski
2014-11-04 9:11 ` Ulf Hansson
2014-11-04 13:59 ` Rafael J. Wysocki
2014-11-04 16:19 ` Ulf Hansson
2014-11-04 16:42 ` Alan Stern
2014-11-03 17:17 ` Kevin Hilman
2014-10-20 9:04 ` [PATCH v8 4/5] dma: pl330: add Power Management support Krzysztof Kozlowski
2014-10-20 9:04 ` [PATCH v8 5/5] amba: Remove unused amba_pclk_enable/disable macros Krzysztof Kozlowski
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=1415004670.4241.11.camel@AMDC1943 \
--to=k.kozlowski@samsung.com \
--cc=khilman@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=pavel@ucw.cz \
--cc=rjw@rjwysocki.net \
--cc=stern@rowland.harvard.edu \
--cc=ulf.hansson@linaro.org \
/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.