devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
To: Rex-BC Chen <rex-bc.chen@mediatek.com>,
	rafael@kernel.org, viresh.kumar@linaro.org, robh+dt@kernel.org,
	krzk+dt@kernel.org, matthias.bgg@gmail.com
Cc: jia-wei.chang@mediatek.com, roger.lu@mediatek.com,
	hsinyi@google.com, khilman@baylibre.com,
	angelogioacchino.delregno@collabora.com,
	linux-pm@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-mediatek@lists.infradead.org,
	Project_Global_Chrome_Upstream_Group@mediatek.com
Subject: Re: [PATCH V4 01/14] dt-bindings: cpufreq: mediatek: Add MediaTek CCI property
Date: Mon, 25 Apr 2022 10:55:29 +0200	[thread overview]
Message-ID: <7873f0fa-25c3-191f-5096-3ceb9afd50cc@linaro.org> (raw)
In-Reply-To: <28f75ac2995b116af9b2accf760786d1d1798c93.camel@mediatek.com>

On 25/04/2022 08:19, Rex-BC Chen wrote:
> On Fri, 2022-04-22 at 19:34 +0200, Krzysztof Kozlowski wrote:
>> On 22/04/2022 19:26, Krzysztof Kozlowski wrote:
>>> On 22/04/2022 09:52, Rex-BC Chen wrote:
>>>> MediaTek Cache Coherent Interconnect (CCI) uses software devfreq
>>>> module
>>>> for scaling clock frequency and adjust voltage.
>>>> The phandle could be linked between CPU and MediaTek CCI for some
>>>> MediaTek SoCs, like MT8183 and MT8186.
>>>> Therefore, we add this property in cpufreq-mediatek.txt.
>>>>
>>>> Signed-off-by: Rex-BC Chen <rex-bc.chen@mediatek.com>
>>>> ---
>>>>  .../devicetree/bindings/cpufreq/cpufreq-mediatek.txt         | 5
>>>> +++++
>>>>  1 file changed, 5 insertions(+)
>>>>
>>>> diff --git a/Documentation/devicetree/bindings/cpufreq/cpufreq-
>>>> mediatek.txt b/Documentation/devicetree/bindings/cpufreq/cpufreq-
>>>> mediatek.txt
>>>> index b8233ec91d3d..3387e1e2a2df 100644
>>>> --- a/Documentation/devicetree/bindings/cpufreq/cpufreq-
>>>> mediatek.txt
>>>> +++ b/Documentation/devicetree/bindings/cpufreq/cpufreq-
>>>> mediatek.txt
>>>> @@ -20,6 +20,11 @@ Optional properties:
>>>>  	       Vsram to fit SoC specific needs. When absent, the
>>>> voltage scaling
>>>>  	       flow is handled by hardware, hence no software "voltage
>>>> tracking" is
>>>>  	       needed.
>>>> +- mediatek,cci:
>>>> +	MediaTek Cache Coherent Interconnect (CCI) uses the software
>>>> devfreq module to
>>>> +	scale the clock frequency and adjust the voltage.
>>>
>>> Devfreq is a SW mechanism, it should not be part of bindings
>>> description.
> 
> Hello Krzysztof,
> 
> The reason we want to get the "mediatek,cci":
> We need to check the mediatek cci is ready and probed done.
> Because cpufreq and mediatek cci are sharing the same regulator in
> little core cpus.
> Therefore, to prevent high frequency low voltage issue, we need to make
> sure the mediatek cci is ready.
> 
> If mediatek cci is ready, cpufreq and mediatek cci will register the
> same regulator and from regulator's implementation, if there are two
> device using the same regulator, the framwork will make sure it's using
> the max voltage.

Thanks for explanation. The property should be described with what you
said here. The property and description should match hardware, so there
is no place for devfreq. Instead mention that power rail is shared or
voltage regulators are common.

However I am not sure if you solved your problem... see below:

> For example:
> mediatek cci set 1.2V originally. When cpufreq want to adjust lower
> frequency adn set voltage to 1.0V.
> The framework will remain using 1.2V to prevent crash of mediatek cci.

No, regulator_set_voltage() for proc_reg says:
"NOTE: If the regulator is shared between several devices then the lowest
 request voltage that meets the system constraints will be used."

Not the highest. So when your devfreq and cpufreq boots, calling
regulator_set_voltage will still cause high frequency and low voltage.

> 
> Therefore, we need to confirm the mediatek cci is ready and register
> the regulator.
>
>>>
>>>> +	For details, please refer to
>>>> +	Documentation/devicetree/bindings/interconnect/mediatek,cci.yam
>>>> l
>>>
>>> Since the file does not exist, I have troubles reviewing it. First
>>> of
>>> all, you already have "mediatek,cci-control" property in DT, so why
>>> using different name?
> 
> I am not sure where is "mediatek,cci-control". I think this name is not
> used before.
> 

Documentation/devicetree/bindings/net/mediatek-net.txt

>>>
>>> Second, it looks like you want to put devfreq into bindings instead
>>> of
>>> using proper interconnect bindings.
>>
>> Actually judging by the driver this looks like some
>> device-boot-time-ordering, so I wonder whether this is a proper way
>> to
>> express it.
> 
> Yes, we need to get the mediatek cci node and let cpufreq and mediatek
> cci link succefully. In that case, we can know the mediatek cci is
> ready. And we can set the voltage using the regulator framwork.
> 
> [1]: 
> https://patchwork.kernel.org/project/linux-mediatek/patch/20220422075239.16437-11-rex-bc.chen@mediatek.com/

Yes, I see the use case. I am not convinced yet whether this is proper
approach...


Best regards,
Krzysztof

  reply	other threads:[~2022-04-25  8:55 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-22  7:52 [PATCH V4 00/14] cpufreq: mediatek: Cleanup and support MT8183 and MT8186 Rex-BC Chen
2022-04-22  7:52 ` [PATCH V4 01/14] dt-bindings: cpufreq: mediatek: Add MediaTek CCI property Rex-BC Chen
2022-04-22  8:21   ` AngeloGioacchino Del Regno
2022-04-22 17:26   ` Krzysztof Kozlowski
2022-04-22 17:34     ` Krzysztof Kozlowski
2022-04-25  6:19       ` Rex-BC Chen
2022-04-25  8:55         ` Krzysztof Kozlowski [this message]
2022-04-25 10:20           ` Rex-BC Chen
2022-04-25 10:52             ` Krzysztof Kozlowski
2022-04-26  8:26               ` Rex-BC Chen
2022-04-22  7:52 ` [PATCH V4 02/14] cpufreq: mediatek: Use device print to show logs Rex-BC Chen
2022-04-25  5:10   ` Viresh Kumar
2022-04-22  7:52 ` [PATCH V4 03/14] cpufreq: mediatek: Replace old_* with pre_* Rex-BC Chen
2022-04-25  5:11   ` Viresh Kumar
2022-04-22  7:52 ` [PATCH V4 04/14] cpufreq: mediatek: Record previous target vproc value Rex-BC Chen
2022-04-22  8:21   ` AngeloGioacchino Del Regno
2022-04-25  5:12     ` Viresh Kumar
2022-04-22  7:52 ` [PATCH V4 06/14] cpufreq: mediatek: Move voltage limits to platform data Rex-BC Chen
2022-04-22  7:52 ` [PATCH V4 07/14] cpufreq: mediatek: Add .get function Rex-BC Chen
2022-04-22  8:21   ` AngeloGioacchino Del Regno
2022-04-25  5:35   ` Viresh Kumar
2022-04-25  9:34     ` Rex-BC Chen
2022-04-25 10:00       ` Viresh Kumar
2022-04-26 11:13         ` Rex-BC Chen
2022-04-27  3:11           ` Viresh Kumar
2022-04-28 11:16             ` Rex-BC Chen
2022-04-28 11:48               ` Viresh Kumar
2022-05-03 11:33                 ` Rex-BC Chen
2022-05-04  8:22                   ` Viresh Kumar
2022-05-04 11:57                     ` Rex-BC Chen
2022-05-04 11:58                       ` Viresh Kumar
2022-05-04 12:03                         ` Rex-BC Chen
2022-04-22  7:52 ` [PATCH V4 08/14] cpufreq: mediatek: Make sram regulator optional Rex-BC Chen
2022-04-25  5:36   ` Viresh Kumar
2022-04-22  7:52 ` [PATCH V4 09/14] cpufreq: mediatek: Refine mtk_cpufreq_voltage_tracking() Rex-BC Chen
2022-04-22  8:20   ` AngeloGioacchino Del Regno
2022-04-22  7:52 ` [PATCH V4 10/14] cpufreq: mediatek: Link CCI device to CPU Rex-BC Chen
2022-04-22  7:52 ` [PATCH V4 11/14] cpufreq: mediatek: Add support for MT8186 Rex-BC Chen
2022-04-22  7:52 ` [PATCH V4 12/14] arm64: dts: mediatek: Add opp table and clock property for MT8183 cpufreq Rex-BC Chen
2022-04-22  8:20   ` AngeloGioacchino Del Regno
2022-04-22  7:52 ` [PATCH V4 13/14] arm64: dts: mediatek: Add MediaTek CCI node for MT8183 Rex-BC Chen
2022-04-22  7:52 ` [PATCH V4 14/14] arm64: dts: mediatek: Add mediatek,cci property for MT8183 cpufreq Rex-BC Chen
2022-04-22 17:23 ` [PATCH V4 00/14] cpufreq: mediatek: Cleanup and support MT8183 and MT8186 Krzysztof Kozlowski
2022-04-25  6:20   ` Rex-BC Chen
     [not found] ` <20220422075239.16437-6-rex-bc.chen@mediatek.com>
2022-04-25  5:20   ` [PATCH V4 05/14] cpufreq: mediatek: Add opp notification support Viresh Kumar

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=7873f0fa-25c3-191f-5096-3ceb9afd50cc@linaro.org \
    --to=krzysztof.kozlowski@linaro.org \
    --cc=Project_Global_Chrome_Upstream_Group@mediatek.com \
    --cc=angelogioacchino.delregno@collabora.com \
    --cc=devicetree@vger.kernel.org \
    --cc=hsinyi@google.com \
    --cc=jia-wei.chang@mediatek.com \
    --cc=khilman@baylibre.com \
    --cc=krzk+dt@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=matthias.bgg@gmail.com \
    --cc=rafael@kernel.org \
    --cc=rex-bc.chen@mediatek.com \
    --cc=robh+dt@kernel.org \
    --cc=roger.lu@mediatek.com \
    --cc=viresh.kumar@linaro.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).