From: Elliot Berman <quic_eberman@quicinc.com>
To: Konrad Dybcio <konrad.dybcio@linaro.org>
Cc: Bjorn Andersson <andersson@kernel.org>,
Rob Clark <robdclark@gmail.com>,
Abhinav Kumar <quic_abhinavk@quicinc.com>,
Dmitry Baryshkov <dmitry.baryshkov@linaro.org>,
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 2/6] soc: qcom: smem: Add pcode/fcode getters
Date: Thu, 11 Apr 2024 12:09:09 -0700 [thread overview]
Message-ID: <20240411120545744-0700.eberman@hu-eberman-lv.qualcomm.com> (raw)
In-Reply-To: <20240405-topic-smem_speedbin-v1-2-ce2b864251b1@linaro.org>
On Fri, Apr 05, 2024 at 10:41:30AM +0200, Konrad Dybcio wrote:
> Introduce getters for SoC product and feature codes and export them.
>
> Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
> ---
> drivers/soc/qcom/smem.c | 66 +++++++++++++++++++++++++++++++++++++++++++
> include/linux/soc/qcom/smem.h | 2 ++
> 2 files changed, 68 insertions(+)
>
> diff --git a/drivers/soc/qcom/smem.c b/drivers/soc/qcom/smem.c
> index 7191fa0c087f..e89b4d26877a 100644
> --- a/drivers/soc/qcom/smem.c
> +++ b/drivers/soc/qcom/smem.c
> @@ -795,6 +795,72 @@ int qcom_smem_get_soc_id(u32 *id)
> }
> EXPORT_SYMBOL_GPL(qcom_smem_get_soc_id);
>
> +/**
> + * qcom_smem_get_feature_code() - return the feature code
> + * @id: On success, we return the feature code here.
^^ code
> + *
> + * Look up the feature code identifier from SMEM and return it.
> + *
> + * Return: 0 on success, negative errno on failure.
> + */
> +int qcom_smem_get_feature_code(u32 *code)
> +{
> + struct socinfo *info;
> + u32 raw_code;
> +
> + info = qcom_smem_get(QCOM_SMEM_HOST_ANY, SMEM_HW_SW_BUILD_ID, NULL);
> + if (IS_ERR(info))
> + return PTR_ERR(info);
> +
> + /* This only makes sense for socinfo >= 16 */
> + if (__le32_to_cpu(info->fmt) < SOCINFO_VERSION(0, 16))
> + return -EINVAL;
> +
> + raw_code = __le32_to_cpu(info->feature_code);
> +
> + /* Ensure the value makes sense */
> + if (raw_code >= SOCINFO_FC_INT_RESERVE)
> + raw_code = SOCINFO_FC_UNKNOWN;
> +
> + *code = raw_code;
> +
> + return 0;
> +}
> +EXPORT_SYMBOL_GPL(qcom_smem_get_feature_code);
> +
> +/**
> + * qcom_smem_get_product_code() - return the product code
> + * @id: On success, we return the product code here.
^^ code
> + *
> + * Look up feature code identifier from SMEM and return it.
> + *
> + * Return: 0 on success, negative errno on failure.
> + */
> +int qcom_smem_get_product_code(u32 *code)
> +{
> + struct socinfo *info;
> + u32 raw_code;
> +
> + info = qcom_smem_get(QCOM_SMEM_HOST_ANY, SMEM_HW_SW_BUILD_ID, NULL);
> + if (IS_ERR(info))
> + return PTR_ERR(info);
> +
> + /* This only makes sense for socinfo >= 16 */
> + if (__le32_to_cpu(info->fmt) < SOCINFO_VERSION(0, 16))
> + return -EINVAL;
> +
> + raw_code = __le32_to_cpu(info->pcode);
> +
> + /* Ensure the value makes sense */
> + if (raw_code >= SOCINFO_FC_INT_RESERVE)
> + raw_code = SOCINFO_FC_UNKNOWN;
> +
> + *code = raw_code;
> +
> + return 0;
> +}
> +EXPORT_SYMBOL_GPL(qcom_smem_get_product_code);
> +
> static int qcom_smem_get_sbl_version(struct qcom_smem *smem)
> {
> struct smem_header *header;
> diff --git a/include/linux/soc/qcom/smem.h b/include/linux/soc/qcom/smem.h
> index a36a3b9d4929..aef8c9fc6c08 100644
> --- a/include/linux/soc/qcom/smem.h
> +++ b/include/linux/soc/qcom/smem.h
> @@ -13,5 +13,7 @@ int qcom_smem_get_free_space(unsigned host);
> phys_addr_t qcom_smem_virt_to_phys(void *p);
>
> int qcom_smem_get_soc_id(u32 *id);
> +int qcom_smem_get_feature_code(u32 *code);
> +int qcom_smem_get_product_code(u32 *code);
>
> #endif
>
> --
> 2.40.1
>
>
next prev parent reply other threads:[~2024-04-11 19:09 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 [this message]
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
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=20240411120545744-0700.eberman@hu-eberman-lv.qualcomm.com \
--to=quic_eberman@quicinc.com \
--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=konrad.dybcio@linaro.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