From: Konrad Dybcio <konrad.dybcio@linaro.org>
To: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Cc: Bjorn Andersson <andersson@kernel.org>,
Rob Clark <robdclark@gmail.com>,
Abhinav Kumar <quic_abhinavk@quicinc.com>,
Sean Paul <sean@poorly.run>,
Marijn Suijten <marijn.suijten@somainline.org>,
David Airlie <airlied@gmail.com>, Daniel Vetter <daniel@ffwll.ch>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org,
devicetree@vger.kernel.org,
Neil Armstrong <neil.armstrong@linaro.org>
Subject: Re: [PATCH 4/6] drm/msm/adreno: Implement SMEM-based speed bin
Date: Thu, 11 Apr 2024 23:35:43 +0200 [thread overview]
Message-ID: <321aa524-ab64-458a-b4c0-70294cc5467d@linaro.org> (raw)
In-Reply-To: <33qyr6cfruczllvavvwtbkyuqxmtao4bya4j32zhjx6ni27c6d@rxjehsw54l32>
On 4/10/24 21:26, Dmitry Baryshkov wrote:
> On Wed, Apr 10, 2024 at 01:42:33PM +0200, Konrad Dybcio wrote:
>>
>>
>> On 4/6/24 05:23, Dmitry Baryshkov wrote:
>>> On Fri, Apr 05, 2024 at 10:41:32AM +0200, Konrad Dybcio wrote:
>>>> On recent (SM8550+) Snapdragon platforms, the GPU speed bin data is
>>>> abstracted through SMEM, instead of being directly available in a fuse.
>>>>
>>>> Add support for SMEM-based speed binning, which includes getting
>>>> "feature code" and "product code" from said source and parsing them
>>>> to form something that lets us match OPPs against.
>>>>
>>>> Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
>>>> ---
>>
>> [...]
>>
>>>
>>>> + }
>>>> +
>>>> + ret = qcom_smem_get_product_code(&pcode);
>>>> + if (ret) {
>>>> + dev_err(dev, "Couldn't get product code from SMEM!\n");
>>>> + return ret;
>>>> + }
>>>> +
>>>> + /* Don't consider fcode for external feature codes */
>>>> + if (fcode <= SOCINFO_FC_EXT_RESERVE)
>>>> + fcode = SOCINFO_FC_UNKNOWN;
>>>> +
>>>> + *speedbin = FIELD_PREP(ADRENO_SKU_ID_PCODE, pcode) |
>>>> + FIELD_PREP(ADRENO_SKU_ID_FCODE, fcode);
>>>
>>> What about just asking the qcom_smem for the 'gpu_bin' and hiding gory
>>> details there? It almost feels that handling raw PCODE / FCODE here is
>>> too low-level and a subject to change depending on the socinfo format.
>>
>> No, the FCODE & PCODE can be interpreted differently across consumers.
>
> That's why I wrote about asking for 'gpu_bin'.
I'd rather keep the magic GPU LUTs inside the adreno driver, especially
since not all Snapdragons feature Adreno, but all Adrenos are on
Snapdragons (modulo a2xx but I refuse to make design decisions treating
these equally to e.g. a6xx)
>
>>
>>>
>>>> +
>>>> + return ret;
>>>> }
>>>> int adreno_gpu_init(struct drm_device *drm, struct platform_device *pdev,
>>>> @@ -1098,9 +1129,9 @@ int adreno_gpu_init(struct drm_device *drm, struct platform_device *pdev,
>>>> devm_pm_opp_set_clkname(dev, "core");
>>>> }
>>>> - if (adreno_read_speedbin(dev, &speedbin) || !speedbin)
>>>> + if (adreno_read_speedbin(adreno_gpu, dev, &speedbin) || !speedbin)
>>>> speedbin = 0xffff;
>>>> - adreno_gpu->speedbin = (uint16_t) (0xffff & speedbin);
>>>
>>> the &= 0xffff should probably go to the adreno_read_speedbin / nvmem
>>> case. WDYT?
>>
>> Ok, I can keep it, though realistically if this ever does anything
>> useful, it likely means the dt is wrong
>
> Yes, but if DT is wrong, we should probably fail in a sensible way. I
> just wanted to point out that previously we had this &0xffff, while your
> patch silently removes it.
Right, but I don't believe it actually matters.. If that AND ever did
anything, this was a silent failure with garbage data passed in anyway.
If you really insist, I can remove it separately.
Konrad
next prev parent reply other threads:[~2024-04-11 21:35 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-05 8:41 [PATCH 0/6] Add SMEM-based speedbin matching Konrad Dybcio
2024-04-05 8:41 ` [PATCH 1/6] soc: qcom: Move some socinfo defines to the header, expand them Konrad Dybcio
2024-04-06 2:22 ` Dmitry Baryshkov
2024-04-11 18:55 ` Elliot Berman
2024-04-11 20:05 ` Konrad Dybcio
2024-04-11 20:09 ` Elliot Berman
2024-04-11 20:24 ` Konrad Dybcio
2024-04-11 23:49 ` Elliot Berman
2024-04-12 0:10 ` Konrad Dybcio
2024-04-12 0:49 ` Elliot Berman
2024-04-05 8:41 ` [PATCH 2/6] soc: qcom: smem: Add pcode/fcode getters Konrad Dybcio
2024-04-05 22:31 ` kernel test robot
2024-04-06 2:21 ` Dmitry Baryshkov
2024-04-09 15:04 ` Konrad Dybcio
2024-04-09 15:20 ` Bjorn Andersson
2024-04-11 19:09 ` Elliot Berman
2024-04-05 8:41 ` [PATCH 3/6] drm/msm/adreno: Allow specifying default speedbin value Konrad Dybcio
2024-04-06 2:56 ` Dmitry Baryshkov
2024-04-09 15:12 ` Konrad Dybcio
2024-04-09 15:23 ` Dmitry Baryshkov
2024-04-09 17:12 ` Rob Clark
2024-04-09 18:04 ` Dmitry Baryshkov
2024-04-09 18:07 ` Konrad Dybcio
2024-04-09 18:15 ` Dmitry Baryshkov
2024-04-09 18:27 ` Konrad Dybcio
2024-04-09 18:31 ` Dmitry Baryshkov
2024-04-10 11:47 ` Konrad Dybcio
2024-04-05 8:41 ` [PATCH 4/6] drm/msm/adreno: Implement SMEM-based speed bin Konrad Dybcio
2024-04-06 3:23 ` Dmitry Baryshkov
2024-04-10 11:42 ` Konrad Dybcio
2024-04-10 19:26 ` Dmitry Baryshkov
2024-04-11 21:35 ` Konrad Dybcio [this message]
2024-04-11 21:46 ` Dmitry Baryshkov
2024-04-11 22:14 ` Konrad Dybcio
2024-04-06 10:32 ` kernel test robot
2024-04-06 10:42 ` kernel test robot
2024-04-05 8:41 ` [PATCH 5/6] drm/msm/adreno: Add speedbin data for SM8550 / A740 Konrad Dybcio
2024-04-06 3:25 ` Dmitry Baryshkov
2024-04-09 15:13 ` Konrad Dybcio
2024-04-09 15:24 ` Dmitry Baryshkov
2024-04-09 18:13 ` Konrad Dybcio
2024-04-05 8:41 ` [PATCH 6/6] arm64: dts: qcom: sm8550: Wire up GPU speed bin & more OPPs Konrad Dybcio
2024-04-06 3:28 ` [PATCH 0/6] Add SMEM-based speedbin matching Dmitry Baryshkov
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=321aa524-ab64-458a-b4c0-70294cc5467d@linaro.org \
--to=konrad.dybcio@linaro.org \
--cc=airlied@gmail.com \
--cc=andersson@kernel.org \
--cc=conor+dt@kernel.org \
--cc=daniel@ffwll.ch \
--cc=devicetree@vger.kernel.org \
--cc=dmitry.baryshkov@linaro.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=freedreno@lists.freedesktop.org \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=marijn.suijten@somainline.org \
--cc=neil.armstrong@linaro.org \
--cc=quic_abhinavk@quicinc.com \
--cc=robdclark@gmail.com \
--cc=robh@kernel.org \
--cc=sean@poorly.run \
/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