From: Konrad Dybcio <konrad.dybcio@linaro.org>
To: Robert Marko <robimarko@gmail.com>,
ilia.lin@kernel.org, vireshk@kernel.org, nm@ti.com,
sboyd@kernel.org, robh+dt@kernel.org,
krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org,
agross@kernel.org, andersson@kernel.org, rafael@kernel.org,
linux-pm@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org
Cc: Christian Marangi <ansuelsmth@gmail.com>
Subject: Re: [PATCH v5 3/4] cpufreq: qcom-nvmem: add support for IPQ8064
Date: Tue, 10 Oct 2023 15:39:54 +0200 [thread overview]
Message-ID: <5b57e0e0-490e-464d-bdc8-5823ad8da2d8@linaro.org> (raw)
In-Reply-To: <20230930102218.229613-3-robimarko@gmail.com>
On 9/30/23 12:21, Robert Marko wrote:
> From: Christian Marangi <ansuelsmth@gmail.com>
>
> IPQ8064 comes in 3 families:
> * IPQ8062 up to 1.0GHz
> * IPQ8064/IPQ8066/IPQ8068 up to 1.4GHz
> * IPQ8065/IPQ8069 up to 1.7Ghz
>
> So, in order to be able to support one OPP table, add support for
> IPQ8064 family based of SMEM SoC ID-s and correctly set the version so
> opp-supported-hw can be correctly used.
>
> Bit are set with the following logic:
> * IPQ8062 BIT 0
> * IPQ8064/IPQ8066/IPQ8068 BIT 1
> * IPQ8065/IPQ8069 BIT 2
>
> speed is never fused, only pvs values are fused.
>
> IPQ806x SoC doesn't have pvs_version so we drop and we use the new
> pattern:
> opp-microvolt-speed0-pvs<PSV_VALUE>
>
> Example:
> - for ipq8062 psv2
> opp-microvolt-speed0-pvs2 = < 925000 878750 971250>
>
> Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
> Signed-off-by: Robert Marko <robimarko@gmail.com>
> ---
[...]
> +{
> + int speed = 0, pvs = 0, pvs_ver = 0;
> + int msm_id, ret = 0;
> + u8 *speedbin;
> + size_t len;
> +
> + speedbin = nvmem_cell_read(speedbin_nvmem, &len);
> +
> + if (IS_ERR(speedbin))
The stray newline above this line triggers my OCD :D
> + return PTR_ERR(speedbin);
> +
> + if (len != 4) {
> + dev_err(cpu_dev, "Unable to read nvmem data. Defaulting to 0!\n");
> + kfree(speedbin);
> + return -ENODEV;
> + }
> +
> + get_krait_bin_format_a(cpu_dev, &speed, &pvs, &pvs_ver, speedbin);
> +
> + ret = qcom_smem_get_soc_id(&msm_id);
> + if (ret)
> + return ret;
speedbin leaks here
you can free it right after the get_krait.. call
> +
> + switch (msm_id) {
> + case QCOM_ID_IPQ8062:
> + drv->versions = BIT(IPQ8062_VERSION);
> + break;
> + case QCOM_ID_IPQ8064:
> + case QCOM_ID_IPQ8066:
> + case QCOM_ID_IPQ8068:
> + drv->versions = BIT(IPQ8064_VERSION);
> + break;
> + case QCOM_ID_IPQ8065:
> + case QCOM_ID_IPQ8069:
> + drv->versions = BIT(IPQ8065_VERSION);
> + break;
> + default:
> + dev_err(cpu_dev,
> + "SoC ID %u is not part of IPQ8064 family, limiting to 1.0GHz!\n",
> + msm_id);
> + drv->versions = BIT(IPQ8062_VERSION);
> + break;
> + }
> +
> + /* IPQ8064 speed is never fused. Only pvs values are fused. */
> + snprintf(*pvs_name, sizeof("speedXX-pvsXX"), "speed%d-pvs%d",
> + speed, pvs);
Then drop the format for `speed` and just throw in a zero!
[...]
> - { .compatible = "qcom,ipq8064", .data = &match_data_krait },
> + { .compatible = "qcom,ipq8064", .data = &match_data_ipq8064 },
This change demands a Fixes tag, because you're essentially saying "the
support for this SoC was supposedly there, but it could have never
worked and was broken all along".
Konrad
next prev parent reply other threads:[~2023-10-10 13:42 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-30 10:21 [PATCH v5 1/4] cpufreq: qcom-nvmem: add support for IPQ8074 Robert Marko
2023-09-30 10:21 ` [PATCH v5 2/4] dt-bindings: opp: opp-v2-kryo-cpu: Document named opp-microvolt property Robert Marko
2023-10-02 19:02 ` Rob Herring
2023-10-02 19:07 ` Dmitry Baryshkov
2023-10-02 19:10 ` Christian Marangi
2023-10-10 7:14 ` Viresh Kumar
2023-10-10 7:18 ` Viresh Kumar
2023-09-30 10:21 ` [PATCH v5 3/4] cpufreq: qcom-nvmem: add support for IPQ8064 Robert Marko
2023-10-10 13:39 ` Konrad Dybcio [this message]
2023-10-10 14:08 ` Christian Marangi
2023-10-10 19:26 ` Konrad Dybcio
2023-09-30 10:21 ` [PATCH v5 4/4] ARM: dts: qcom: ipq8064: Add CPU OPP table Robert Marko
2023-10-10 13:40 ` Konrad Dybcio
2023-10-10 14:15 ` Christian Marangi
2023-10-10 19:52 ` Konrad Dybcio
2023-10-10 20:00 ` Christian Marangi
2023-10-10 21:17 ` Konrad Dybcio
2023-10-10 21:50 ` Christian Marangi
2023-10-10 19:55 ` Konrad Dybcio
2023-10-10 20:05 ` Christian Marangi
2023-10-12 16:45 ` Konrad Dybcio
2023-10-10 13:34 ` [PATCH v5 1/4] cpufreq: qcom-nvmem: add support for IPQ8074 Konrad Dybcio
2023-10-11 5:25 ` 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=5b57e0e0-490e-464d-bdc8-5823ad8da2d8@linaro.org \
--to=konrad.dybcio@linaro.org \
--cc=agross@kernel.org \
--cc=andersson@kernel.org \
--cc=ansuelsmth@gmail.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=ilia.lin@kernel.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=nm@ti.com \
--cc=rafael@kernel.org \
--cc=robh+dt@kernel.org \
--cc=robimarko@gmail.com \
--cc=sboyd@kernel.org \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.