From: Thomas Hommel <thomas.hommel@emerson.com>
To: Neal Frager <neal.frager@amd.com>,
gregkh@linuxfoundation.org, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
git@amd.com
Cc: michal.simek@amd.com, jguittet@witekio.com,
jay.buddhabhatti@amd.com, arun.balaji.kannan@amd.com,
senthilnathan.thangaraj@amd.com, micheal.saleab@amd.com,
robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org
Subject: Re:[PATCH v2 1/1] arm64: dts: xilinx: fix zynqmp opp-table-cpu
Date: Mon, 3 Nov 2025 10:14:28 +0100 [thread overview]
Message-ID: <ecf736bc-c679-4473-be22-a98ed2b2fabb@emerson.com> (raw)
In-Reply-To: <20251103065344.4022482-1-neal.frager@amd.com>
Reviewed-by: Thomas Hommel <thomas.hommel@emerson.com>
On 03.11.2025 07:53, Neal Frager wrote:
> Since the following commit, the zynqmp clk driver uses the common
> divider_round_rate() when determining the appropriate clock divider for a
> requested clock frequency:
> https://github.com/torvalds/linux/commit/1fe15be1fb613534ecbac5f8c3f8744f757d237d
>
> This means that the typical parent clock rate will be 1200000000 based on the
> zynqmp pll configuration. If the current zynqmp.dtsi opp-hz values are used,
> this will mean the divider calculations are always slightly above the correct
> integer divider value meaning they will get rounded up to a divider value
> which is one too high. The result of this issue is that the cpu clock speed
> will always be one opp lower than the requested clock rate.
>
> For example, the following will occur when requesting 1.2 GHz with the current
> zynqmp.dtsi:
>
> root@zynqmp:/sys/kernel/tracing# cat /sys/devices/system/cpu/cpufreq/policy0/scaling_available_frequencies
> 299999 399999 599999 1199999
> root@zynqmp:/ # echo 1200000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_setspeed
> root@zynqmp:/ # cat /sys/devices/system/cpu/cpufreq/policy0/cpuinfo_cur_freq
> 600000
>
> To fix this issue, this patch updates the zynqmp opp-table-cpu, so the clock
> rates are calculated correctly.
>
> root@zynqmp:/sys/kernel/tracing# cat /sys/devices/system/cpu/cpufreq/policy0/scaling_available_frequencies
> 300000 400000 600000 1200000
> root@zynqmp:/ # echo 1200000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_setspeed
> root@zynqmp:/ # cat /sys/devices/system/cpu/cpufreq/policy0/cpuinfo_cur_freq
> 1200000
>
> Signed-off-by: Neal Frager <neal.frager@amd.com>
> ---
> V1->V2:
> - The clock-latency-ns and opp-microvolt values did not change, so simplify
> the patch by only changing the opp-hz values in decimal format.
> ---
> arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 16 ++++++++--------
> 1 file changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
> index 938b014ca923..dd9bd39f61e8 100644
> --- a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
> +++ b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
> @@ -103,23 +103,23 @@ CPU_SLEEP_0: cpu-sleep-0 {
> cpu_opp_table: opp-table-cpu {
> compatible = "operating-points-v2";
> opp-shared;
> - opp00 {
> - opp-hz = /bits/ 64 <1199999988>;
> + opp-1200000000 {
> + opp-hz = /bits/ 64 <1200000000>;
> opp-microvolt = <1000000>;
> clock-latency-ns = <500000>;
> };
> - opp01 {
> - opp-hz = /bits/ 64 <599999994>;
> + opp-600000000 {
> + opp-hz = /bits/ 64 <600000000>;
> opp-microvolt = <1000000>;
> clock-latency-ns = <500000>;
> };
> - opp02 {
> - opp-hz = /bits/ 64 <399999996>;
> + opp-400000000 {
> + opp-hz = /bits/ 64 <400000000>;
> opp-microvolt = <1000000>;
> clock-latency-ns = <500000>;
> };
> - opp03 {
> - opp-hz = /bits/ 64 <299999997>;
> + opp-300000000 {
> + opp-hz = /bits/ 64 <300000000>;
> opp-microvolt = <1000000>;
> clock-latency-ns = <500000>;
> };
> --
> 2.25.1
>
prev parent reply other threads:[~2025-11-03 9:14 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-03 6:53 [PATCH " Neal Frager
2025-11-03 9:14 ` Thomas Hommel [this message]
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=ecf736bc-c679-4473-be22-a98ed2b2fabb@emerson.com \
--to=thomas.hommel@emerson.com \
--cc=arun.balaji.kannan@amd.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=git@amd.com \
--cc=gregkh@linuxfoundation.org \
--cc=jay.buddhabhatti@amd.com \
--cc=jguittet@witekio.com \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=michal.simek@amd.com \
--cc=micheal.saleab@amd.com \
--cc=neal.frager@amd.com \
--cc=robh@kernel.org \
--cc=senthilnathan.thangaraj@amd.com \
/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®