Linux ARM-MSM sub-architecture
 help / color / mirror / Atom feed
From: Akhil P Oommen <quic_akhilpo@quicinc.com>
To: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>,
	Krzysztof Kozlowski <krzk@kernel.org>
Cc: Rob Clark <robdclark@gmail.com>, Sean Paul <sean@poorly.run>,
	"Konrad Dybcio" <konradybcio@kernel.org>,
	Abhinav Kumar <quic_abhinavk@quicinc.com>,
	Marijn Suijten <marijn.suijten@somainline.org>,
	David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
	Viresh Kumar <vireshk@kernel.org>, Nishanth Menon <nm@ti.com>,
	Stephen Boyd <sboyd@kernel.org>, Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Bjorn Andersson <andersson@kernel.org>,
	<linux-arm-msm@vger.kernel.org>,
	<dri-devel@lists.freedesktop.org>,
	<freedreno@lists.freedesktop.org>, <linux-kernel@vger.kernel.org>,
	<linux-pm@vger.kernel.org>, <devicetree@vger.kernel.org>
Subject: Re: [PATCH v2 2/3] dt-bindings: opp: Add v2-qcom-adreno vendor bindings
Date: Fri, 15 Nov 2024 00:20:42 +0530	[thread overview]
Message-ID: <278e62e1-02a4-4e33-8592-fb4fafcedf7e@quicinc.com> (raw)
In-Reply-To: <c5e868e1-2dae-466c-a6fc-ef0f247fa0ce@quicinc.com>

On 11/1/2024 9:54 PM, Akhil P Oommen wrote:
> On 10/25/2024 11:58 AM, Dmitry Baryshkov wrote:
>> On Thu, Oct 24, 2024 at 12:56:58AM +0530, Akhil P Oommen wrote:
>>> On 10/22/2024 11:19 AM, Krzysztof Kozlowski wrote:
>>>> On Mon, Oct 21, 2024 at 05:23:43PM +0530, Akhil P Oommen wrote:
>>>>> Add a new schema which extends opp-v2 to support a new vendor specific
>>>>> property required for Adreno GPUs found in Qualcomm's SoCs. The new
>>>>> property called "qcom,opp-acd-level" carries a u32 value recommended
>>>>> for each opp needs to be shared to GMU during runtime.
>>>>>
>>>>> Cc: Rob Clark <robdclark@gmail.com>
>>>>> Signed-off-by: Akhil P Oommen <quic_akhilpo@quicinc.com>
>>>>> ---
>>>>>  .../bindings/opp/opp-v2-qcom-adreno.yaml           | 96 ++++++++++++++++++++++
>>>>>  1 file changed, 96 insertions(+)
>>>>>
>>>>> diff --git a/Documentation/devicetree/bindings/opp/opp-v2-qcom-adreno.yaml b/Documentation/devicetree/bindings/opp/opp-v2-qcom-adreno.yaml
>>>>> new file mode 100644
>>>>> index 000000000000..6d50c0405ef8
>>>>> --- /dev/null
>>>>> +++ b/Documentation/devicetree/bindings/opp/opp-v2-qcom-adreno.yaml
>>>>> @@ -0,0 +1,96 @@
>>>>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>>>>> +%YAML 1.2
>>>>> +---
>>>>> +$id: http://devicetree.org/schemas/opp/opp-v2-qcom-adreno.yaml#
>>>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>>>>> +
>>>>> +title: Qualcomm Adreno compatible OPP supply
>>>>> +
>>>>> +description:
>>>>> +  Adreno GPUs present in Qualcomm's Snapdragon chipsets uses an OPP specific
>>>>> +  ACD related information tailored for the specific chipset. This binding
>>>>> +  provides the information needed to describe such a hardware value.
>>>>> +
>>>>> +maintainers:
>>>>> +  - Rob Clark <robdclark@gmail.com>
>>>>> +
>>>>> +allOf:
>>>>> +  - $ref: opp-v2-base.yaml#
>>>>> +
>>>>> +properties:
>>>>> +  compatible:
>>>>> +    items:
>>>>> +      - const: operating-points-v2-adreno
>>>>> +      - const: operating-points-v2
>>>>> +
>>>>> +patternProperties:
>>>>> +  '^opp-?[0-9]+$':
>>>>
>>>> '-' should not be optional. opp1 is not expected name.
>>>
>>> Agree. Will change this to '^opp-[0-9]+$'
>>>
>>>>
>>>>> +    type: object
>>>>> +    additionalProperties: false
>>>>> +
>>>>> +    properties:
>>>>> +      opp-hz: true
>>>>> +
>>>>> +      opp-level: true
>>>>> +
>>>>> +      opp-peak-kBps: true
>>>>> +
>>>>> +      opp-supported-hw: true
>>>>> +
>>>>> +      qcom,opp-acd-level:
>>>>> +        description: |
>>>>> +          A positive value representing the ACD (Adaptive Clock Distribution,
>>>>> +          a fancy name for clk throttling during voltage droop) level associated
>>>>> +          with this OPP node. This value is shared to a co-processor inside GPU
>>>>> +          (called Graphics Management Unit a.k.a GMU) during wake up. It may not
>>>>> +          be present for some OPPs and GMU will disable ACD while transitioning
>>>>> +          to that OPP. This value encodes a voltage threshold and few other knobs
>>>>> +          which are identified by characterization of the SoC. So, it doesn't have
>>>>> +          any unit.
>>>>
>>>> Thanks for explanation and other updates. I am still not happy with this
>>>> property. I do not see reason why DT should encode magic values in a
>>>> quite generic piece of code. This creates poor ABI, difficult to
>>>> maintain or understand.
>>>>
>>>
>>> Configuring GPU ACD block with its respective value is a requirement for each OPP.
>>> So OPP node seems like the natural place for this data.
>>>
>>> If it helps to resolve your concerns, I can elaborate the documentation with
>>> details on the GMU HFI interface where this value should be passed on to the
>>> hardware. Also replace "few other knobs" with "Delay cycles & Calibration margin"
>>> in the above doc.
>>
>> Usually the preference for DT is to specify data in a sensible way
>> rather than just the values being programmed to the register. Is it
>> possible to implement this approach for ACD values?

Krzysztof/Dmitry,

BIT(0)-BIT(15) are static configurations which doesn't change between
OPPs. We can move it to driver.

BIT(16)-BIT(31) indicates a threshold margin which triggers ACD. We can
keep this in the devicetree. And the driver can construct the final
value from both data and send it to GMU.

If this is acceptable, I will send the v3 revision.

-Akhil.

> 
> I am still checking about this. Will get back.
> 
> -Akhil
> 
>>
>>>  
>>>>
>>
> 


  reply	other threads:[~2024-11-14 18:51 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-21 11:53 [PATCH v2 0/3] Support for GPU ACD feature on Adreno X1-85 Akhil P Oommen
2024-10-21 11:53 ` [PATCH v2 1/3] drm/msm/adreno: Add support for ACD Akhil P Oommen
2024-10-22  9:07   ` Bryan O'Donoghue
2024-10-21 11:53 ` [PATCH v2 2/3] dt-bindings: opp: Add v2-qcom-adreno vendor bindings Akhil P Oommen
2024-10-22  5:49   ` Krzysztof Kozlowski
2024-10-23 19:26     ` Akhil P Oommen
2024-10-25  6:28       ` Dmitry Baryshkov
2024-11-01 16:24         ` Akhil P Oommen
2024-11-14 18:50           ` Akhil P Oommen [this message]
2024-11-14 22:24             ` Dmitry Baryshkov
2024-11-15 17:54               ` Akhil P Oommen
2024-11-15 19:47                 ` Dmitry Baryshkov
2024-12-04 18:18                   ` Akhil P Oommen
2024-12-23 11:31                     ` Konrad Dybcio
2024-12-23 11:54                       ` Dmitry Baryshkov
2024-12-23 21:31                         ` Akhil P Oommen
2024-12-24  8:51                           ` Krzysztof Kozlowski
2024-12-30 13:43                             ` Konrad Dybcio
2024-10-21 11:53 ` [PATCH v2 3/3] arm64: dts: qcom: x1e80100: Add ACD levels for GPU Akhil P Oommen

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=278e62e1-02a4-4e33-8592-fb4fafcedf7e@quicinc.com \
    --to=quic_akhilpo@quicinc.com \
    --cc=airlied@gmail.com \
    --cc=andersson@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dmitry.baryshkov@linaro.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=freedreno@lists.freedesktop.org \
    --cc=konradybcio@kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=krzk@kernel.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=marijn.suijten@somainline.org \
    --cc=nm@ti.com \
    --cc=quic_abhinavk@quicinc.com \
    --cc=robdclark@gmail.com \
    --cc=robh@kernel.org \
    --cc=sboyd@kernel.org \
    --cc=sean@poorly.run \
    --cc=simona@ffwll.ch \
    --cc=vireshk@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