All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ulf Hansson <ulf.hansson@linaro.org>
To: Ziyuan Xu <xzy.xu@rock-chips.com>
Cc: "Doug Anderson" <dianders@chromium.org>,
	"Shawn Lin" <shawn.lin@rock-chips.com>,
	"Heiko Stübner" <heiko@sntech.de>,
	"Mark Rutland" <mark.rutland@arm.com>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"Xing Zheng" <zhengxing@rock-chips.com>,
	"open list:ARM/Rockchip SoC..."
	<linux-rockchip@lists.infradead.org>,
	"Frank Wang" <frank.wang@rock-chips.com>,
	"Catalin Marinas" <catalin.marinas@arm.com>,
	"Elaine Zhang" <zhangqing@rock-chips.com>,
	"Will Deacon" <will.deacon@arm.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"Brian Norris" <briannorris@chromium.org>,
	"Masahiro Yamada" <yamada.masahiro@socionext.com>,
	"Rob Herring" <robh+dt@kernel.org>,
	"David Wu" <david.wu@rock-chips.com>,
	"Caesar Wang" <wxt@rock-chips.com>,
	"Jianqun Xu" <jay.xu@rock-chips.com>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"Shunqian Zheng" <zhengsq@rock-chips.com>
Subject: Re: [PATCH 2/2] arm64: dts: rockchip: add eMMC's power domain support for rk3399
Date: Tue, 6 Sep 2016 14:34:53 +0200	[thread overview]
Message-ID: <CAPDyKFrAJW9D49wEgQXiuPFrgbVq6HjtQbTwj8FL6c_mx8o-wg@mail.gmail.com> (raw)
In-Reply-To: <10dfff58-88b2-a397-ef2e-9cd451253c40@rock-chips.com>

On 2 September 2016 at 16:23, Ziyuan Xu <xzy.xu@rock-chips.com> wrote:
> Hi Ulf,
>
>
> On 2016年09月02日 18:24, Ulf Hansson wrote:
>>
>> On 1 September 2016 at 23:50, Doug Anderson<dianders@chromium.org>  wrote:
>>>
>>> >Hi,
>>> >
>>> >On Thu, Sep 1, 2016 at 6:45 AM, Ulf Hansson<ulf.hansson@linaro.org>
>>> > wrote:
>>>>
>>>> >>I was reading the discussion regarding this change and browsing the DT
>>>> >>documentation around this... Can you guys explain what really goes on
>>>> >>here, please.
>>>> >>
>>>> >>To me, it seems like you are managing one device's resources in one
>>>> >>separate genpd. One genpd per device. Is that correct?
>>>> >>
>>>> >>Perhaps each device actually has its own PM domain and thus it makes
>>>> >>sense to assign one genpd per device?
>>>
>>> >
>>> >I'm not as familiar with genpd as I should be, so hopefully this makes
>>> > sense.
>>> >
>>> >...in hardware there is a "pd_emmc" that is the power domain for just
>>> >eMMC.  That will be referenced hooked up via device tree, like:
>>> >
>>> >power-domains = <&power RK3399_PD_EMMC>;
>>
>> Yes, I noticed that and this is what puzzles me a bit.
>>
>>> >
>>> >I believe that means that power will automatically be removed whenever
>>> >the device is runtime suspended or suspended.
>>
>> Well, it depends if the genpd has a subdomain or other devices in it
>> being runtime resumed.
>> The genpd will not power off unless all devices within it are runtime
>> enabled+suspended and that its subdomains are also powered off.
>>
>> So, in case you only have one device and no subdomains, then your
>> statement is correct.
>
>
> Yup, pd_emmc is a individual power domain which is only deployed to eMMC on
> rk3399. It has no subdomains.
>
>>
>>> >
>>> >If w're not supporting "autosuspend" and nobody is tweaking anything
>>
>> I guess you mean runtime PM autosuspend? Then why don't you support this?
>>
>> Wouldn't that allow you to avoid wasting power in runtime when the
>> device is idle?
>
>
> pd_emmc manages the sdhci controller, phy and corecfg_* stuff, if we support

Ohh, there are already mmc drivers dealing with phys. We can add this
for you driver as well.

Regarding corecfg_*, unless that also can be managed via a generic
interface (perhaps through syscon), then you need to manage that via
genpd. Is that the case?

> autosuspend in driver, we have to re-init context. I didn't test the

Yes, that's a common scenario, many device drivers do this - as to
avoid wasting power.

> latency, if it's acceptable, we will apply it.:-)

Latency constraints may be controlled via the genpd governor.

Moreover we also have the runtime PM autosuspend feature, which is
useful when you don't wont to runtime suspend the device between each
and every request. Thus avoiding latencies when there are a "burst" of
requests.

> But it's not a blocker, right?
>

Hmm, I just want to make sure we do the right things. Else it might
just bite us in the other end.

Again, my recommendation is to start with runtime PM then continue
with system PM. I can imagine you will get system PM "free" if using
the runtime PM centric approach.

Kind regards
Uffe

WARNING: multiple messages have this Message-ID (diff)
From: Ulf Hansson <ulf.hansson-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
To: Ziyuan Xu <xzy.xu-TNX95d0MmH7DzftRWevZcw@public.gmane.org>
Cc: "Doug Anderson"
	<dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>,
	"Shawn Lin" <shawn.lin-TNX95d0MmH7DzftRWevZcw@public.gmane.org>,
	"Heiko Stübner" <heiko-4mtYJXux2i+zQB+pC5nmwQ@public.gmane.org>,
	"Mark Rutland" <mark.rutland-5wv7dgnIgG8@public.gmane.org>,
	"devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	"Xing Zheng" <zhengxing-TNX95d0MmH7DzftRWevZcw@public.gmane.org>,
	"open list:ARM/Rockchip SoC..."
	<linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>,
	"Frank Wang" <frank.wang-TNX95d0MmH7DzftRWevZcw@public.gmane.org>,
	"Catalin Marinas" <catalin.marinas-5wv7dgnIgG8@public.gmane.org>,
	"Elaine Zhang"
	<zhangqing-TNX95d0MmH7DzftRWevZcw@public.gmane.org>,
	"Will Deacon" <will.deacon-5wv7dgnIgG8@public.gmane.org>,
	"linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	"Brian Norris"
	<briannorris-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>,
	"Masahiro Yamada"
	<yamada.masahiro-uWyLwvC0a2jby3iVrkZq2A@public.gmane.org>,
	"Rob Herring" <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	"David Wu" <david.wu-TNX95d0MmH7DzftRWevZcw@public.gmane.org>,
	"Caesar Wang" <wxt-TNX95d0MmH7DzftRWevZcw@public.gmane.org>
Subject: Re: [PATCH 2/2] arm64: dts: rockchip: add eMMC's power domain support for rk3399
Date: Tue, 6 Sep 2016 14:34:53 +0200	[thread overview]
Message-ID: <CAPDyKFrAJW9D49wEgQXiuPFrgbVq6HjtQbTwj8FL6c_mx8o-wg@mail.gmail.com> (raw)
In-Reply-To: <10dfff58-88b2-a397-ef2e-9cd451253c40-TNX95d0MmH7DzftRWevZcw@public.gmane.org>

On 2 September 2016 at 16:23, Ziyuan Xu <xzy.xu-TNX95d0MmH7DzftRWevZcw@public.gmane.org> wrote:
> Hi Ulf,
>
>
> On 2016年09月02日 18:24, Ulf Hansson wrote:
>>
>> On 1 September 2016 at 23:50, Doug Anderson<dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>  wrote:
>>>
>>> >Hi,
>>> >
>>> >On Thu, Sep 1, 2016 at 6:45 AM, Ulf Hansson<ulf.hansson-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
>>> > wrote:
>>>>
>>>> >>I was reading the discussion regarding this change and browsing the DT
>>>> >>documentation around this... Can you guys explain what really goes on
>>>> >>here, please.
>>>> >>
>>>> >>To me, it seems like you are managing one device's resources in one
>>>> >>separate genpd. One genpd per device. Is that correct?
>>>> >>
>>>> >>Perhaps each device actually has its own PM domain and thus it makes
>>>> >>sense to assign one genpd per device?
>>>
>>> >
>>> >I'm not as familiar with genpd as I should be, so hopefully this makes
>>> > sense.
>>> >
>>> >...in hardware there is a "pd_emmc" that is the power domain for just
>>> >eMMC.  That will be referenced hooked up via device tree, like:
>>> >
>>> >power-domains = <&power RK3399_PD_EMMC>;
>>
>> Yes, I noticed that and this is what puzzles me a bit.
>>
>>> >
>>> >I believe that means that power will automatically be removed whenever
>>> >the device is runtime suspended or suspended.
>>
>> Well, it depends if the genpd has a subdomain or other devices in it
>> being runtime resumed.
>> The genpd will not power off unless all devices within it are runtime
>> enabled+suspended and that its subdomains are also powered off.
>>
>> So, in case you only have one device and no subdomains, then your
>> statement is correct.
>
>
> Yup, pd_emmc is a individual power domain which is only deployed to eMMC on
> rk3399. It has no subdomains.
>
>>
>>> >
>>> >If w're not supporting "autosuspend" and nobody is tweaking anything
>>
>> I guess you mean runtime PM autosuspend? Then why don't you support this?
>>
>> Wouldn't that allow you to avoid wasting power in runtime when the
>> device is idle?
>
>
> pd_emmc manages the sdhci controller, phy and corecfg_* stuff, if we support

Ohh, there are already mmc drivers dealing with phys. We can add this
for you driver as well.

Regarding corecfg_*, unless that also can be managed via a generic
interface (perhaps through syscon), then you need to manage that via
genpd. Is that the case?

> autosuspend in driver, we have to re-init context. I didn't test the

Yes, that's a common scenario, many device drivers do this - as to
avoid wasting power.

> latency, if it's acceptable, we will apply it.:-)

Latency constraints may be controlled via the genpd governor.

Moreover we also have the runtime PM autosuspend feature, which is
useful when you don't wont to runtime suspend the device between each
and every request. Thus avoiding latencies when there are a "burst" of
requests.

> But it's not a blocker, right?
>

Hmm, I just want to make sure we do the right things. Else it might
just bite us in the other end.

Again, my recommendation is to start with runtime PM then continue
with system PM. I can imagine you will get system PM "free" if using
the runtime PM centric approach.

Kind regards
Uffe
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

WARNING: multiple messages have this Message-ID (diff)
From: ulf.hansson@linaro.org (Ulf Hansson)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 2/2] arm64: dts: rockchip: add eMMC's power domain support for rk3399
Date: Tue, 6 Sep 2016 14:34:53 +0200	[thread overview]
Message-ID: <CAPDyKFrAJW9D49wEgQXiuPFrgbVq6HjtQbTwj8FL6c_mx8o-wg@mail.gmail.com> (raw)
In-Reply-To: <10dfff58-88b2-a397-ef2e-9cd451253c40@rock-chips.com>

On 2 September 2016 at 16:23, Ziyuan Xu <xzy.xu@rock-chips.com> wrote:
> Hi Ulf,
>
>
> On 2016?09?02? 18:24, Ulf Hansson wrote:
>>
>> On 1 September 2016 at 23:50, Doug Anderson<dianders@chromium.org>  wrote:
>>>
>>> >Hi,
>>> >
>>> >On Thu, Sep 1, 2016 at 6:45 AM, Ulf Hansson<ulf.hansson@linaro.org>
>>> > wrote:
>>>>
>>>> >>I was reading the discussion regarding this change and browsing the DT
>>>> >>documentation around this... Can you guys explain what really goes on
>>>> >>here, please.
>>>> >>
>>>> >>To me, it seems like you are managing one device's resources in one
>>>> >>separate genpd. One genpd per device. Is that correct?
>>>> >>
>>>> >>Perhaps each device actually has its own PM domain and thus it makes
>>>> >>sense to assign one genpd per device?
>>>
>>> >
>>> >I'm not as familiar with genpd as I should be, so hopefully this makes
>>> > sense.
>>> >
>>> >...in hardware there is a "pd_emmc" that is the power domain for just
>>> >eMMC.  That will be referenced hooked up via device tree, like:
>>> >
>>> >power-domains = <&power RK3399_PD_EMMC>;
>>
>> Yes, I noticed that and this is what puzzles me a bit.
>>
>>> >
>>> >I believe that means that power will automatically be removed whenever
>>> >the device is runtime suspended or suspended.
>>
>> Well, it depends if the genpd has a subdomain or other devices in it
>> being runtime resumed.
>> The genpd will not power off unless all devices within it are runtime
>> enabled+suspended and that its subdomains are also powered off.
>>
>> So, in case you only have one device and no subdomains, then your
>> statement is correct.
>
>
> Yup, pd_emmc is a individual power domain which is only deployed to eMMC on
> rk3399. It has no subdomains.
>
>>
>>> >
>>> >If w're not supporting "autosuspend" and nobody is tweaking anything
>>
>> I guess you mean runtime PM autosuspend? Then why don't you support this?
>>
>> Wouldn't that allow you to avoid wasting power in runtime when the
>> device is idle?
>
>
> pd_emmc manages the sdhci controller, phy and corecfg_* stuff, if we support

Ohh, there are already mmc drivers dealing with phys. We can add this
for you driver as well.

Regarding corecfg_*, unless that also can be managed via a generic
interface (perhaps through syscon), then you need to manage that via
genpd. Is that the case?

> autosuspend in driver, we have to re-init context. I didn't test the

Yes, that's a common scenario, many device drivers do this - as to
avoid wasting power.

> latency, if it's acceptable, we will apply it.:-)

Latency constraints may be controlled via the genpd governor.

Moreover we also have the runtime PM autosuspend feature, which is
useful when you don't wont to runtime suspend the device between each
and every request. Thus avoiding latencies when there are a "burst" of
requests.

> But it's not a blocker, right?
>

Hmm, I just want to make sure we do the right things. Else it might
just bite us in the other end.

Again, my recommendation is to start with runtime PM then continue
with system PM. I can imagine you will get system PM "free" if using
the runtime PM centric approach.

Kind regards
Uffe

  reply	other threads:[~2016-09-06 12:34 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-27 13:41 [PATCH 0/2] Add power domain support for eMMC node on rk3399 Ziyuan Xu
2016-08-27 13:41 ` Ziyuan Xu
2016-08-27 13:41 ` [PATCH 1/2] Documentation: mmc: sdhci-of-arasan: add description of power domain Ziyuan Xu
2016-08-27 14:50   ` Shawn Lin
2016-08-27 14:50     ` Shawn Lin
2016-08-29  0:36     ` Ziyuan Xu
2016-08-29  0:36       ` Ziyuan Xu
2016-08-27 13:41 ` [PATCH 2/2] arm64: dts: rockchip: add eMMC's power domain support for rk3399 Ziyuan Xu
2016-08-27 13:41   ` Ziyuan Xu
2016-08-27 15:05   ` Shawn Lin
2016-08-27 15:05     ` Shawn Lin
2016-08-27 15:05     ` Shawn Lin
2016-08-29  1:58     ` Elaine Zhang
2016-08-29  1:58       ` Elaine Zhang
2016-08-29  1:58       ` Elaine Zhang
2016-08-29  2:50     ` Elaine Zhang
2016-08-29  2:50       ` Elaine Zhang
2016-08-29  2:50       ` Elaine Zhang
2016-08-29  3:25       ` Shawn Lin
2016-08-29  3:25         ` Shawn Lin
2016-08-31 17:42         ` Doug Anderson
2016-08-31 17:42           ` Doug Anderson
2016-08-31 17:42           ` Doug Anderson
2016-09-01  2:29           ` Ziyuan Xu
2016-09-01  2:29             ` Ziyuan Xu
2016-09-01  2:29             ` Ziyuan Xu
2016-09-01  3:23             ` Shawn Lin
2016-09-01  3:23               ` Shawn Lin
2016-09-01  3:23               ` Shawn Lin
2016-09-01 13:45               ` Ulf Hansson
2016-09-01 13:45                 ` Ulf Hansson
2016-09-01 13:45                 ` Ulf Hansson
2016-09-01 21:50                 ` Doug Anderson
2016-09-01 21:50                   ` Doug Anderson
2016-09-01 21:50                   ` Doug Anderson
2016-09-02 10:24                   ` Ulf Hansson
2016-09-02 10:24                     ` Ulf Hansson
2016-09-02 10:24                     ` Ulf Hansson
2016-09-02 14:23                     ` Ziyuan Xu
2016-09-02 14:23                       ` Ziyuan Xu
2016-09-02 14:23                       ` Ziyuan Xu
2016-09-06 12:34                       ` Ulf Hansson [this message]
2016-09-06 12:34                         ` Ulf Hansson
2016-09-06 12:34                         ` Ulf Hansson
2016-09-01  4:20             ` Doug Anderson
2016-09-01  4:20               ` Doug Anderson
2016-09-01  4:20               ` Doug Anderson
2016-09-01  6:56               ` Ziyuan Xu
2016-09-01  6:56                 ` Ziyuan Xu
2016-09-01  6:56                 ` Ziyuan Xu
2016-09-01 21:29                 ` Doug Anderson
2016-09-01 21:29                   ` Doug Anderson
2016-09-01 21:29                   ` Doug Anderson
2016-09-02  2:35                   ` Ziyuan Xu
2016-09-02  2:35                     ` Ziyuan Xu
2016-09-02  2:35                     ` Ziyuan Xu
2016-09-02  5:22                     ` Doug Anderson
2016-09-02  5:22                       ` Doug Anderson
2016-09-02  5:22                       ` Doug Anderson

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=CAPDyKFrAJW9D49wEgQXiuPFrgbVq6HjtQbTwj8FL6c_mx8o-wg@mail.gmail.com \
    --to=ulf.hansson@linaro.org \
    --cc=briannorris@chromium.org \
    --cc=catalin.marinas@arm.com \
    --cc=david.wu@rock-chips.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dianders@chromium.org \
    --cc=frank.wang@rock-chips.com \
    --cc=heiko@sntech.de \
    --cc=jay.xu@rock-chips.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rockchip@lists.infradead.org \
    --cc=mark.rutland@arm.com \
    --cc=robh+dt@kernel.org \
    --cc=shawn.lin@rock-chips.com \
    --cc=will.deacon@arm.com \
    --cc=wxt@rock-chips.com \
    --cc=xzy.xu@rock-chips.com \
    --cc=yamada.masahiro@socionext.com \
    --cc=zhangqing@rock-chips.com \
    --cc=zhengsq@rock-chips.com \
    --cc=zhengxing@rock-chips.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.