[PATCH 2/2] arm64: dts: rockchip: add eMMC's power domain support for rk3399
Ziyuan Xu
xzy.xu at rock-chips.com
Wed Aug 31 19:29:32 PDT 2016
Hi,
On 2016年09月01日 01:42, Doug Anderson wrote:
> Hi,
>
> On Sun, Aug 28, 2016 at 8:25 PM, Shawn Lin <shawn.lin at rock-chips.com> wrote:
>> On 2016/8/29 10:50, Elaine Zhang wrote:
>>>
>>>
>>> On 08/27/2016 11:05 PM, Shawn Lin wrote:
>>>> On 2016/8/27 21:41, Ziyuan Xu wrote:
>>>>> Control power domain for eMMC via genpd to reduce power consumption.
>>>>>
>>>>> Signed-off-by: Elaine Zhang <zhangqing at rock-chips.com>
>>>>> Signed-off-by: Ziyuan Xu <xzy.xu at rock-chips.com>
>>>>>
>>>> It looks nice to me. But this should be merged after applying that[0]
>>>> as your patch will break bind/unbind test for sdhci-of-arasan on rk3399
>>>> without it[0]. Moreover, Elaine should make sure that upstreamed
>>>> rockchip power domain stuff would not off pd for emmc, *otherwise*, I
>>>> should update my patch to make sure we update clkmul every time when
>>>> doing suspend 2 resume..
>>>>
>>>>
>>> Forgot to say:
>>> If use pd, Although there is no call to power odd the pd_emmc,
>>> it will be power off when the system doing suspend 2 resume.
>>> (Because the system call
>>> __device_suspend_noirq->pm_genpd_suspend_noirq->rockchip_pd_power_off)
>>
>> Thanks for explaining this. I checked the code a bit and actually I
>> don't need to updata clkmul since it was recorded, although it is still
>> reset to 0x10 reading from syscon. So for that, we can now pick it
>> up without waiting for my sdhci-of-arasan's update.
>>
>> Reviewed-by: Shawn Lin <shawn.lin at rock-chips.com>
> 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.
>
> 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'm not sure if this should be done in a generic way where we try to
> save and restore all values in the "sdhci_arasan_soc_ctl_map" or if we
> should try to be smarter...
>
>
> -Doug
>
> _______________________________________________
> Linux-rockchip mailing list
> Linux-rockchip at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-rockchip
>
>
>
More information about the linux-arm-kernel
mailing list