mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
To: Stephan Gerhold <stephan.gerhold@linaro.org>,
	Konrad Dybcio <konradybcio@kernel.org>
Cc: Ulf Hansson <ulf.hansson@linaro.org>,
	Johan Hovold <johan+linaro@kernel.org>,
	Bjorn Andersson <andersson@kernel.org>,
	Taniya Das <taniya.das@oss.qualcomm.com>,
	Michael Turquette <mturquette@baylibre.com>,
	Stephen Boyd <sboyd@kernel.org>, Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Taniya Das <quic_tdas@quicinc.com>,
	Imran Shaik <quic_imrashai@quicinc.com>,
	Bartosz Golaszewski <bartosz.golaszewski@linaro.org>,
	Dmitry Baryshkov <lumag@kernel.org>,
	cros-qcom-dts-watchers@chromium.org,
	Douglas Anderson <dianders@chromium.org>,
	Vinod Koul <vkoul@kernel.org>,
	Richard Acayan <mailingradian@gmail.com>,
	Andy Gross <andy.gross@linaro.org>,
	Ajit Pandey <quic_ajipan@quicinc.com>,
	Luca Weiss <luca.weiss@fairphone.com>,
	Jonathan Marek <jonathan@marek.ca>,
	Neil Armstrong <neil.armstrong@linaro.org>,
	Jagadeesh Kona <quic_jkona@quicinc.com>,
	Akhil P Oommen <akhilpo@oss.qualcomm.com>,
	Marijn Suijten <marijn.suijten@somainline.org>,
	linux-arm-msm@vger.kernel.org, linux-pm@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org,
	devicetree@vger.kernel.org,
	Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Subject: Re: [PATCH RFC 24/24] arm64: dts: qcom: x1e80100: Describe GPU_CC power plumbing requirements
Date: Mon, 28 Jul 2025 23:31:10 +0200	[thread overview]
Message-ID: <50868cd8-68a9-4bad-99f3-8cf542886fb6@oss.qualcomm.com> (raw)
In-Reply-To: <aIevIuMDA5R8igmi@linaro.org>

On 7/28/25 7:10 PM, Stephan Gerhold wrote:
> On Mon, Jul 28, 2025 at 06:16:24PM +0200, Konrad Dybcio wrote:
>> From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
>>
>> A number of power rails must be powered on in order for GPU_CC to
>> function. Ensure that's conveyed to the OS.
>>
>> Fixes: 721e38301b79 ("arm64: dts: qcom: x1e80100: Add gpu support")
>> Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
>> ---
>>  arch/arm64/boot/dts/qcom/x1e80100.dtsi | 6 ++++++
>>  1 file changed, 6 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/x1e80100.dtsi b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
>> index 5e9a8fa3cf96468b12775f91192cbd779d5ce946..6620517fbb0f3ed715c4901ec53dcbc6235be88f 100644
>> --- a/arch/arm64/boot/dts/qcom/x1e80100.dtsi
>> +++ b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
>> @@ -3928,6 +3928,12 @@ gpucc: clock-controller@3d90000 {
>>  			clocks = <&bi_tcxo_div2>,
>>  				 <&gcc GCC_GPU_GPLL0_CPH_CLK_SRC>,
>>  				 <&gcc GCC_GPU_GPLL0_DIV_CPH_CLK_SRC>;
>> +
>> +			power-domains = <&rpmhpd RPMHPD_CX>,
>> +					<&rpmhpd RPMHPD_MX>,
>> +					<&rpmhpd RPMHPD_GFX>,
>> +					<&rpmhpd RPMHPD_GMXC>;
>> +
>>  			#clock-cells = <1>;
>>  			#reset-cells = <1>;
>>  			#power-domain-cells = <1>;
>>
> 
> To repeat your own message from a couple of months back [1]:
> 
>> You shouldn't be messing with VDD_GFX on platforms with a GMU.
>>
>> Parts of the clock controller are backed by one of the MX rails,
>> with some logic depending on CX/GFX, but handling of the latter is
>> fully deferred to the GMU firmware.
>>
>> Konrad
> 
> Please describe somewhere in the cover letter or the individual patches
> how this relates to the responsibilities of the GMU. I searched for
> "GMU" in the patch series and couldn't find any note about this.
> 
> Also: How much is a plain "power on" votes (without a corresponding
> "required-opps") really worth nowadays? An arbitrary low voltage level
> on those rails won't be sufficient to make the GPU_CC actually
> "function". Do you need "required-opps" here? In the videocc/camcc case
> we have those.

Right, I failed to capture this.

The GFX rail should be powered on before unclamping the GX_GDSC (as
per the programming guide). The clock controller HPG however doesn't
seem to have a concept of RPMh, so it says something that amounts to
"tell the PMIC to supply power on this rail". In Linux, since Commit
e3e56c050ab6 ("soc: qcom: rpmhpd: Make power_on actually enable the
domain") we don't really need a defined level for this (perhaps it's
more ""portable"" across potential fuse-bins if we don't hardcode the
lowest level anyway?).

However after that happens, the level scaling is done by the GMU
firmware. This holds for allOf CX/MX/GFX. I'm not super sure if
both MX and (G)MXC need to both be captured together - downstream
seems to describe MXC as a child of MX (in socname-regulators.dtsi),
but I'm not really sure this is true in hardware.

The GPU driver currently first enables the GX_GDSC and only then
does it kickstart the GMU firmware. Downstream seems to do that as
well. So on a second thought, since we've not seen any errors so
far, it calls into question what role the GFX rail plays in the
GX_GDSC's powering up..

Furthermore, this assumes that the OS is aware when the GPU is in
use, meaning VDD_GFX would be on when GPU(_CC) would be resumed, but
with IFPC or hwsched, we have 2 corner cases:

1) GPU is on but the OS doesn't know that
   (which is fine because by the time the GPU is on, the GMU has
   taken over)

2) GPU wants to be off, but the OS holds an RPMh vote

I *think* 2 shouldn't be an issue either, as downstream does
precisely this, and if it turns out to be a problem down the line,
it'd still be something to sort out on the C side.

LMK your thoughts

Konrad

  reply	other threads:[~2025-07-28 21:31 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-28 16:16 [RFC PATCH 00/24] GPU_CC power requirements reality check Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 01/24] dt-bindings: power: qcom,rpmpd: Add SC8280XP_MXC_AO Konrad Dybcio
2025-07-30 22:01   ` Rob Herring (Arm)
2025-07-28 16:16 ` [PATCH RFC 02/24] pmdomain: qcom: rpmhpd: Add MXC to SC8280XP Konrad Dybcio
2025-07-31 20:31   ` Dmitry Baryshkov
2025-07-28 16:16 ` [PATCH RFC 03/24] dt-bindings: clock: qcom,gpucc: Merge in sm8450-gpucc.yaml Konrad Dybcio
2025-07-30 22:04   ` Rob Herring (Arm)
2025-07-28 16:16 ` [PATCH RFC 04/24] dt-bindings: clock: qcom,gpucc: Describe actual power domain plumbing Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 05/24] dt-bindings: clock: qcom,gpucc: Sort out SA8540P constraints Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 06/24] arm64: dts: qcom: qcs8300: Describe GPU_CC power plumbing requirements Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 07/24] arm64: dts: qcom: sa8540p: " Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 08/24] arm64: dts: qcom: sa8775p: " Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 09/24] arm64: dts: qcom: sar2130p: " Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 10/24] arm64: dts: qcom: sc7180: " Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 11/24] arm64: dts: qcom: sc7280: " Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 12/24] arm64: dts: qcom: sc8180x: " Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 13/24] arm64: dts: qcom: sc8280xp: " Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 14/24] arm64: dts: qcom: sdm670: " Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 15/24] arm64: dts: qcom: sdm845: " Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 16/24] arm64: dts: qcom: sm4450: " Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 17/24] arm64: dts: qcom: sm6350: " Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 18/24] arm64: dts: qcom: sm8150: " Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 19/24] arm64: dts: qcom: sm8250: " Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 20/24] arm64: dts: qcom: sm8350: " Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 21/24] arm64: dts: qcom: sm8450: " Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 22/24] arm64: dts: qcom: sm8550: " Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 23/24] arm64: dts: qcom: sm8650: " Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 24/24] arm64: dts: qcom: x1e80100: " Konrad Dybcio
2025-07-28 17:10   ` Stephan Gerhold
2025-07-28 21:31     ` Konrad Dybcio [this message]
2025-07-29  6:34       ` Stephan Gerhold
2025-07-29  8:23         ` Konrad Dybcio
2025-07-29 13:28           ` Konrad Dybcio
2025-07-29 15:44             ` Stephan Gerhold
2025-07-29 22:08               ` Akhil P Oommen
2025-08-19 12:27 ` [RFC PATCH 00/24] GPU_CC power requirements reality check Ulf Hansson

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=50868cd8-68a9-4bad-99f3-8cf542886fb6@oss.qualcomm.com \
    --to=konrad.dybcio@oss.qualcomm.com \
    --cc=akhilpo@oss.qualcomm.com \
    --cc=andersson@kernel.org \
    --cc=andy.gross@linaro.org \
    --cc=bartosz.golaszewski@linaro.org \
    --cc=conor+dt@kernel.org \
    --cc=cros-qcom-dts-watchers@chromium.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dianders@chromium.org \
    --cc=johan+linaro@kernel.org \
    --cc=jonathan@marek.ca \
    --cc=konradybcio@kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=krzysztof.kozlowski@linaro.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=luca.weiss@fairphone.com \
    --cc=lumag@kernel.org \
    --cc=mailingradian@gmail.com \
    --cc=marijn.suijten@somainline.org \
    --cc=mturquette@baylibre.com \
    --cc=neil.armstrong@linaro.org \
    --cc=quic_ajipan@quicinc.com \
    --cc=quic_imrashai@quicinc.com \
    --cc=quic_jkona@quicinc.com \
    --cc=quic_tdas@quicinc.com \
    --cc=robh@kernel.org \
    --cc=sboyd@kernel.org \
    --cc=stephan.gerhold@linaro.org \
    --cc=taniya.das@oss.qualcomm.com \
    --cc=ulf.hansson@linaro.org \
    --cc=vkoul@kernel.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

all inboxes | Powered by JetHome®