lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Thu, 1 Sep 2016 14:29:20 -0700 From: Doug Anderson <dianders@...omium.org> To: Ziyuan Xu <xzy.xu@...k-chips.com> Cc: Shawn Lin <shawn.lin@...k-chips.com>, Mark Rutland <mark.rutland@....com>, "devicetree@...r.kernel.org" <devicetree@...r.kernel.org>, Ulf Hansson <ulf.hansson@...aro.org>, Heiko Stübner <heiko@...ech.de>, Xing Zheng <zhengxing@...k-chips.com>, "open list:ARM/Rockchip SoC..." <linux-rockchip@...ts.infradead.org>, Frank Wang <frank.wang@...k-chips.com>, Catalin Marinas <catalin.marinas@....com>, Elaine Zhang <zhangqing@...k-chips.com>, Will Deacon <will.deacon@....com>, "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>, Brian Norris <briannorris@...omium.org>, Masahiro Yamada <yamada.masahiro@...ionext.com>, Rob Herring <robh+dt@...nel.org>, David Wu <david.wu@...k-chips.com>, Caesar Wang <wxt@...k-chips.com>, Jianqun Xu <jay.xu@...k-chips.com>, "linux-arm-kernel@...ts.infradead.org" <linux-arm-kernel@...ts.infradead.org>, Shunqian Zheng <zhengsq@...k-chips.com> Subject: Re: [PATCH 2/2] arm64: dts: rockchip: add eMMC's power domain support for rk3399 Hi, On Wed, Aug 31, 2016 at 11:56 PM, Ziyuan Xu <xzy.xu@...k-chips.com> wrote: > Hi > > > On 2016年09月01日 12:20, Doug Anderson wrote: >> >> Hi, >> >> On Wed, Aug 31, 2016 at 7:29 PM, Ziyuan Xu <xzy.xu@...k-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. So are you saying that the entire purpose of "corecfg_clockmultiplier" is that causes the "ClockMultiplier" field of the "EMMCCORE_CAP" register to get a certain value? ...and that the entire purpose of "corecfg_baseclkfreq" is that it causes the "BaseClockFreqSDClock" field of the "EMMCCORE_CAP" register to get a certain value? That would have been nice to know before. I had assumed that those "corecfg" settings did something else more useful. If it is indeed true that these corecfg values are as silly as it seems, then I guess it's not terribly important to re-set them after suspend/resume. Eventually it would be nice/clean to actually do so (in case the SDHCI driver eventually changes), but I guess we wouldn't need to block. this patch from landing. Can you please confirm my understanding above? -Doug
Powered by blists - more mailing lists