All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ziyuan Xu <xzy.xu@rock-chips.com>
To: Doug Anderson <dianders@chromium.org>
Cc: "Shawn Lin" <shawn.lin@rock-chips.com>,
	"Mark Rutland" <mark.rutland@arm.com>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"Ulf Hansson" <ulf.hansson@linaro.org>,
	"Heiko Stübner" <heiko@sntech.de>,
	"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: Thu, 1 Sep 2016 14:56:46 +0800	[thread overview]
Message-ID: <411dfc7b-1089-61a8-7a7e-6f378c0a6074@rock-chips.com> (raw)
In-Reply-To: <CAD=FV=WmoyoZmV_uj281S37ZpWqg8Dr2U8ntkD2Sr58qbcB0wg@mail.gmail.com>

Hi


On 2016年09月01日 12:20, Doug Anderson wrote:
> Hi,
>
> On Wed, Aug 31, 2016 at 7:29 PM, Ziyuan Xu <xzy.xu@rock-chips.com> wrote:
>>> This is fine to pick up _only_ if you don't care about suspend/resume.
>>> If you care about suspend/resume then someone needs to first write a
>>> patch that will re-init all "corecfg" values after power is turned on.
>>
>> Do you mean corecfg_clockmultiplier and corecfg_baseclkfreq, if yes, we
>> don't need to strore/re-init it after resume.
>> corecfg_clockmultiplier is only used to fetch host->clk_mul, and
>> host->clk_mul has been a fixed value at run-time, unless driver unbind.
>> The same as corecfg_clockmultiplier, corecfg_baseclkfreq is used to check
>> the xin_clk at probe time, we don't reference it at run-time.
>> BTW, I have tested suspend/resume on rk3399 prior to this sumbit, eMMC works
>> fine.
> I guess I don't actually know how the corecfg_clockmultiplier and
> corecfg_baseclkfreq fields are actually used, but I presume that they
> actually do something useful and aren't used to just communicate back
> to software?

Take corecfg_clockmultiplier as example.
1. sdhci driver fetch host->clk_mul from corecfg_clockmultiplier
2. mmc->f_min and mmc->f_max are calculated via host->clk_mul, they're 
used for further initialization.
3. if the corecfg_clockmultiplier is incorrect, sdhci will use improper 
frequency to play.

I think we don't need to store it due to it's a fixed value at run-time, 
even if it is reset after a power cycle, the above will not be changed 
via software, except for dirver unbind .

>
> I know that:
>
> 1. If I don't pick this patch and I suspend/resume,
> corecfg_clockmultiplier and corecfg_baseclkfreq are still fine after
> suspend / resume.
>
> 2. If I do pick this patch and I suspend/resume,
> corecfg_clockmultiplier and corecfg_baseclkfreq are wrong after
> suspend/resume (tested by reading /dev/mem directly from userspace
> after suspend/resume).
>
>
> Are you saying that it is unimportant that corecfg_clockmultiplier and
> corecfg_baseclkfreq are wrong?

Yup, corecfg_* stuff will be reset after a power cycle.
I mean that we need only to guarantee they're correct at probe time.

>
>>> Technically I think this should probably use "pm runtime" and not
>>> normal suspend/resume hooks.  Any time we end up pm runtime suspended
>>> then I think our power will go off (because of genpd?) and we need to
>>> restore values.
>>
>> I understand your consideration. BUT genpd is in charge of on/off pd if the
>> corresponding device node has "power-domains" property. RPM is unnecessary
>> for this situation, we will not use autosuspend, right?
>>
>> @shawn, what's your opinion?
> I haven't dug.  If Runtime PM isn't enabled for sdhci-of-arasan then I
> guess we can just worry about suspend/resume, though.
>
> -Doug
>
>
>

WARNING: multiple messages have this Message-ID (diff)
From: Ziyuan Xu <xzy.xu@rock-chips.com>
To: Doug Anderson <dianders@chromium.org>
Cc: "Shawn Lin" <shawn.lin@rock-chips.com>,
	"Mark Rutland" <mark.rutland@arm.com>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"Ulf Hansson" <ulf.hansson@linaro.org>,
	"Heiko Stübner" <heiko@sntech.de>,
	"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>
Subject: Re: [PATCH 2/2] arm64: dts: rockchip: add eMMC's power domain support for rk3399
Date: Thu, 1 Sep 2016 14:56:46 +0800	[thread overview]
Message-ID: <411dfc7b-1089-61a8-7a7e-6f378c0a6074@rock-chips.com> (raw)
In-Reply-To: <CAD=FV=WmoyoZmV_uj281S37ZpWqg8Dr2U8ntkD2Sr58qbcB0wg@mail.gmail.com>

Hi


On 2016年09月01日 12:20, Doug Anderson wrote:
> Hi,
>
> On Wed, Aug 31, 2016 at 7:29 PM, Ziyuan Xu <xzy.xu@rock-chips.com> wrote:
>>> This is fine to pick up _only_ if you don't care about suspend/resume.
>>> If you care about suspend/resume then someone needs to first write a
>>> patch that will re-init all "corecfg" values after power is turned on.
>>
>> Do you mean corecfg_clockmultiplier and corecfg_baseclkfreq, if yes, we
>> don't need to strore/re-init it after resume.
>> corecfg_clockmultiplier is only used to fetch host->clk_mul, and
>> host->clk_mul has been a fixed value at run-time, unless driver unbind.
>> The same as corecfg_clockmultiplier, corecfg_baseclkfreq is used to check
>> the xin_clk at probe time, we don't reference it at run-time.
>> BTW, I have tested suspend/resume on rk3399 prior to this sumbit, eMMC works
>> fine.
> I guess I don't actually know how the corecfg_clockmultiplier and
> corecfg_baseclkfreq fields are actually used, but I presume that they
> actually do something useful and aren't used to just communicate back
> to software?

Take corecfg_clockmultiplier as example.
1. sdhci driver fetch host->clk_mul from corecfg_clockmultiplier
2. mmc->f_min and mmc->f_max are calculated via host->clk_mul, they're 
used for further initialization.
3. if the corecfg_clockmultiplier is incorrect, sdhci will use improper 
frequency to play.

I think we don't need to store it due to it's a fixed value at run-time, 
even if it is reset after a power cycle, the above will not be changed 
via software, except for dirver unbind .

>
> I know that:
>
> 1. If I don't pick this patch and I suspend/resume,
> corecfg_clockmultiplier and corecfg_baseclkfreq are still fine after
> suspend / resume.
>
> 2. If I do pick this patch and I suspend/resume,
> corecfg_clockmultiplier and corecfg_baseclkfreq are wrong after
> suspend/resume (tested by reading /dev/mem directly from userspace
> after suspend/resume).
>
>
> Are you saying that it is unimportant that corecfg_clockmultiplier and
> corecfg_baseclkfreq are wrong?

Yup, corecfg_* stuff will be reset after a power cycle.
I mean that we need only to guarantee they're correct at probe time.

>
>>> Technically I think this should probably use "pm runtime" and not
>>> normal suspend/resume hooks.  Any time we end up pm runtime suspended
>>> then I think our power will go off (because of genpd?) and we need to
>>> restore values.
>>
>> I understand your consideration. BUT genpd is in charge of on/off pd if the
>> corresponding device node has "power-domains" property. RPM is unnecessary
>> for this situation, we will not use autosuspend, right?
>>
>> @shawn, what's your opinion?
> I haven't dug.  If Runtime PM isn't enabled for sdhci-of-arasan then I
> guess we can just worry about suspend/resume, though.
>
> -Doug
>
>
>

WARNING: multiple messages have this Message-ID (diff)
From: xzy.xu@rock-chips.com (Ziyuan Xu)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 2/2] arm64: dts: rockchip: add eMMC's power domain support for rk3399
Date: Thu, 1 Sep 2016 14:56:46 +0800	[thread overview]
Message-ID: <411dfc7b-1089-61a8-7a7e-6f378c0a6074@rock-chips.com> (raw)
In-Reply-To: <CAD=FV=WmoyoZmV_uj281S37ZpWqg8Dr2U8ntkD2Sr58qbcB0wg@mail.gmail.com>

Hi


On 2016?09?01? 12:20, Doug Anderson wrote:
> Hi,
>
> On Wed, Aug 31, 2016 at 7:29 PM, Ziyuan Xu <xzy.xu@rock-chips.com> wrote:
>>> This is fine to pick up _only_ if you don't care about suspend/resume.
>>> If you care about suspend/resume then someone needs to first write a
>>> patch that will re-init all "corecfg" values after power is turned on.
>>
>> Do you mean corecfg_clockmultiplier and corecfg_baseclkfreq, if yes, we
>> don't need to strore/re-init it after resume.
>> corecfg_clockmultiplier is only used to fetch host->clk_mul, and
>> host->clk_mul has been a fixed value at run-time, unless driver unbind.
>> The same as corecfg_clockmultiplier, corecfg_baseclkfreq is used to check
>> the xin_clk at probe time, we don't reference it at run-time.
>> BTW, I have tested suspend/resume on rk3399 prior to this sumbit, eMMC works
>> fine.
> I guess I don't actually know how the corecfg_clockmultiplier and
> corecfg_baseclkfreq fields are actually used, but I presume that they
> actually do something useful and aren't used to just communicate back
> to software?

Take corecfg_clockmultiplier as example.
1. sdhci driver fetch host->clk_mul from corecfg_clockmultiplier
2. mmc->f_min and mmc->f_max are calculated via host->clk_mul, they're 
used for further initialization.
3. if the corecfg_clockmultiplier is incorrect, sdhci will use improper 
frequency to play.

I think we don't need to store it due to it's a fixed value at run-time, 
even if it is reset after a power cycle, the above will not be changed 
via software, except for dirver unbind .

>
> I know that:
>
> 1. If I don't pick this patch and I suspend/resume,
> corecfg_clockmultiplier and corecfg_baseclkfreq are still fine after
> suspend / resume.
>
> 2. If I do pick this patch and I suspend/resume,
> corecfg_clockmultiplier and corecfg_baseclkfreq are wrong after
> suspend/resume (tested by reading /dev/mem directly from userspace
> after suspend/resume).
>
>
> Are you saying that it is unimportant that corecfg_clockmultiplier and
> corecfg_baseclkfreq are wrong?

Yup, corecfg_* stuff will be reset after a power cycle.
I mean that we need only to guarantee they're correct at probe time.

>
>>> Technically I think this should probably use "pm runtime" and not
>>> normal suspend/resume hooks.  Any time we end up pm runtime suspended
>>> then I think our power will go off (because of genpd?) and we need to
>>> restore values.
>>
>> I understand your consideration. BUT genpd is in charge of on/off pd if the
>> corresponding device node has "power-domains" property. RPM is unnecessary
>> for this situation, we will not use autosuspend, right?
>>
>> @shawn, what's your opinion?
> I haven't dug.  If Runtime PM isn't enabled for sdhci-of-arasan then I
> guess we can just worry about suspend/resume, though.
>
> -Doug
>
>
>

  reply	other threads:[~2016-09-01  6:57 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
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 [this message]
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=411dfc7b-1089-61a8-7a7e-6f378c0a6074@rock-chips.com \
    --to=xzy.xu@rock-chips.com \
    --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=ulf.hansson@linaro.org \
    --cc=will.deacon@arm.com \
    --cc=wxt@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.