All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kevin Hilman <khilman@deeprootsystems.com>
To: Jon Hunter <jon-hunter@ti.com>
Cc: Will Deacon <will.deacon@arm.com>,
	linux-omap <linux-omap@vger.kernel.org>,
	linux-arm <linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH] ARM: PMU: fix runtime PM enable
Date: Thu, 25 Oct 2012 09:42:21 -0700	[thread overview]
Message-ID: <87vcdy33ma.fsf@deeprootsystems.com> (raw)
In-Reply-To: <5088284D.40404@ti.com> (Jon Hunter's message of "Wed, 24 Oct 2012 12:41:33 -0500")

Jon Hunter <jon-hunter@ti.com> writes:

> On 10/24/2012 12:23 PM, Will Deacon wrote:
>> On Wed, Oct 24, 2012 at 04:06:07PM +0100, Jon Hunter wrote:
>>> On 10/24/2012 09:32 AM, Will Deacon wrote:
>>>> Hmmm, now I start to wonder whether your original idea of having separate
>>>> callbacks for enable/disable irq and resume/suspend doesn't make more sense.
>>>> Then the CTI magic can go in the irq management code and be totally separate
>>>> to the PM stuff.
>>>>
>>>> What do you reckon?
>>>
>>> The resume/suspend calls really replaced the enable/disable irq
>>> callbacks. That still seems like a good approach given that we need
>>> runtime PM for OMAP and PMU.
>> 
>> Ok, perhaps splitting it up isn't worth it then. I'm still not convinced
>> either way.
>
> Given that we needed to employ runtime PM for OMAP, adding the handlers
> is a natural progression and fits more with the PM framework model.
>
>>>> Nah, we should be able to fix this in the platdata, I'd just rather have
>>>> function pointers instead of state variables in there.
>>>
>>> Well, we could pass a pointer to pm_runtime_enable() function in the
>>> platdata.
>> 
>> What do other drivers do? Grepping around, I see calls to pm_runtime_enable
>> made in various drivers and, given that you pass the device in there, what's
>> the problem with us just calling that unconditionally from perf? I know you
>> said that will work for OMAP, but I'm trying to understand the effect that
>> has on PM-aware platforms that don't require this for the PMU (since this
>> seems to be per-device).
>
> I had done this initially when testing on OMAP platforms that do and
> don't require runtime PM for PMU. I don't see any side affect of this,
> however, may be Kevin could comment on if that is ok. It would be the
> best approach.

Unconditonally enabling runtime PM should be fine.  It may add a slight
bit of overhead calling runtime PM functions that ultimately do nothing
(because there are no callbacks), but it will be harmless.

Personally, I think that would be cleaner.  The less pdata we need, the
better, IMO.

Kevin


WARNING: multiple messages have this Message-ID (diff)
From: khilman@deeprootsystems.com (Kevin Hilman)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] ARM: PMU: fix runtime PM enable
Date: Thu, 25 Oct 2012 09:42:21 -0700	[thread overview]
Message-ID: <87vcdy33ma.fsf@deeprootsystems.com> (raw)
In-Reply-To: <5088284D.40404@ti.com> (Jon Hunter's message of "Wed, 24 Oct 2012 12:41:33 -0500")

Jon Hunter <jon-hunter@ti.com> writes:

> On 10/24/2012 12:23 PM, Will Deacon wrote:
>> On Wed, Oct 24, 2012 at 04:06:07PM +0100, Jon Hunter wrote:
>>> On 10/24/2012 09:32 AM, Will Deacon wrote:
>>>> Hmmm, now I start to wonder whether your original idea of having separate
>>>> callbacks for enable/disable irq and resume/suspend doesn't make more sense.
>>>> Then the CTI magic can go in the irq management code and be totally separate
>>>> to the PM stuff.
>>>>
>>>> What do you reckon?
>>>
>>> The resume/suspend calls really replaced the enable/disable irq
>>> callbacks. That still seems like a good approach given that we need
>>> runtime PM for OMAP and PMU.
>> 
>> Ok, perhaps splitting it up isn't worth it then. I'm still not convinced
>> either way.
>
> Given that we needed to employ runtime PM for OMAP, adding the handlers
> is a natural progression and fits more with the PM framework model.
>
>>>> Nah, we should be able to fix this in the platdata, I'd just rather have
>>>> function pointers instead of state variables in there.
>>>
>>> Well, we could pass a pointer to pm_runtime_enable() function in the
>>> platdata.
>> 
>> What do other drivers do? Grepping around, I see calls to pm_runtime_enable
>> made in various drivers and, given that you pass the device in there, what's
>> the problem with us just calling that unconditionally from perf? I know you
>> said that will work for OMAP, but I'm trying to understand the effect that
>> has on PM-aware platforms that don't require this for the PMU (since this
>> seems to be per-device).
>
> I had done this initially when testing on OMAP platforms that do and
> don't require runtime PM for PMU. I don't see any side affect of this,
> however, may be Kevin could comment on if that is ok. It would be the
> best approach.

Unconditonally enabling runtime PM should be fine.  It may add a slight
bit of overhead calling runtime PM functions that ultimately do nothing
(because there are no callbacks), but it will be harmless.

Personally, I think that would be cleaner.  The less pdata we need, the
better, IMO.

Kevin

  reply	other threads:[~2012-10-25 16:41 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-23 20:31 [PATCH] ARM: PMU: fix runtime PM enable Jon Hunter
2012-10-23 20:31 ` Jon Hunter
2012-10-24  9:31 ` Will Deacon
2012-10-24  9:31   ` Will Deacon
2012-10-24 14:16   ` Jon Hunter
2012-10-24 14:16     ` Jon Hunter
2012-10-24 14:32     ` Will Deacon
2012-10-24 14:32       ` Will Deacon
2012-10-24 15:06       ` Jon Hunter
2012-10-24 15:06         ` Jon Hunter
2012-10-24 17:23         ` Will Deacon
2012-10-24 17:23           ` Will Deacon
2012-10-24 17:41           ` Jon Hunter
2012-10-24 17:41             ` Jon Hunter
2012-10-25 16:42             ` Kevin Hilman [this message]
2012-10-25 16:42               ` Kevin Hilman
2012-10-25 16:47               ` Will Deacon
2012-10-25 16:47                 ` Will Deacon
2012-10-25 16:50                 ` Jon Hunter
2012-10-25 16:50                   ` Jon Hunter

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=87vcdy33ma.fsf@deeprootsystems.com \
    --to=khilman@deeprootsystems.com \
    --cc=jon-hunter@ti.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=will.deacon@arm.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.