2023-12-04 09:56:27

by Stephan Gerhold

[permalink] [raw]
Subject: [PATCH] arm64: dts: qcom: msm8939: Add clock-frequency for broadcast timer

Looks like not all firmware versions used for MSM8939 program the timer
frequency for both broadcast/MMIO timers, causing a WARNING at runtime:

WARNING: CPU: 0 PID: 0 at kernel/time/clockevents.c:38 cev_delta2ns+0x74/0x90
pc : cev_delta2ns+0x74/0x90
lr : clockevents_config.part.0+0x64/0x8c
Call trace:
cev_delta2ns+0x74/0x90
clockevents_config_and_register+0x20/0x34
arch_timer_mem_of_init+0x374/0x534
timer_probe+0x88/0x110
time_init+0x14/0x4c
start_kernel+0x2c0/0x640

Unfortunately there is no way to fix the firmware on most of these
devices since it's proprietary and signed. As a workaround, specify the
clock-frequency explicitly in the DT to fix the warning.

Fixes: 61550c6c156c ("arm64: dts: qcom: Add msm8939 SoC")
Reported-by: Vincent Knecht <[email protected]>
Signed-off-by: Stephan Gerhold <[email protected]>
---
arch/arm64/boot/dts/qcom/msm8939.dtsi | 2 ++
1 file changed, 2 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/msm8939.dtsi b/arch/arm64/boot/dts/qcom/msm8939.dtsi
index 95610a32750a..4ba115eecfd5 100644
--- a/arch/arm64/boot/dts/qcom/msm8939.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8939.dtsi
@@ -2195,6 +2195,8 @@ timer@b120000 {
#address-cells = <1>;
#size-cells = <1>;
ranges;
+ /* Necessary because firmware does not configure this correctly */
+ clock-frequency = <19200000>;

frame@b121000 {
reg = <0x0b121000 0x1000>,

---
base-commit: adcad44bd1c73a5264bff525e334e2f6fc01bb9b
change-id: 20231204-msm8939-timer-c8c218aa2440

Best regards,
--
Stephan Gerhold <[email protected]>


2023-12-04 11:00:49

by Konrad Dybcio

[permalink] [raw]
Subject: Re: [PATCH] arm64: dts: qcom: msm8939: Add clock-frequency for broadcast timer

On 4.12.2023 10:55, Stephan Gerhold wrote:
> Looks like not all firmware versions used for MSM8939 program the timer
> frequency for both broadcast/MMIO timers, causing a WARNING at runtime:
>
> WARNING: CPU: 0 PID: 0 at kernel/time/clockevents.c:38 cev_delta2ns+0x74/0x90
> pc : cev_delta2ns+0x74/0x90
> lr : clockevents_config.part.0+0x64/0x8c
> Call trace:
> cev_delta2ns+0x74/0x90
> clockevents_config_and_register+0x20/0x34
> arch_timer_mem_of_init+0x374/0x534
> timer_probe+0x88/0x110
> time_init+0x14/0x4c
> start_kernel+0x2c0/0x640
>
> Unfortunately there is no way to fix the firmware on most of these
> devices since it's proprietary and signed. As a workaround, specify the
> clock-frequency explicitly in the DT to fix the warning.
>
> Fixes: 61550c6c156c ("arm64: dts: qcom: Add msm8939 SoC")
> Reported-by: Vincent Knecht <[email protected]>
> Signed-off-by: Stephan Gerhold <[email protected]>
> ---
Ouch.

Reviewed-by: Konrad Dybcio <[email protected]>

Konrad

2023-12-17 17:32:10

by Bjorn Andersson

[permalink] [raw]
Subject: Re: [PATCH] arm64: dts: qcom: msm8939: Add clock-frequency for broadcast timer


On Mon, 04 Dec 2023 10:55:53 +0100, Stephan Gerhold wrote:
> Looks like not all firmware versions used for MSM8939 program the timer
> frequency for both broadcast/MMIO timers, causing a WARNING at runtime:
>
> WARNING: CPU: 0 PID: 0 at kernel/time/clockevents.c:38 cev_delta2ns+0x74/0x90
> pc : cev_delta2ns+0x74/0x90
> lr : clockevents_config.part.0+0x64/0x8c
> Call trace:
> cev_delta2ns+0x74/0x90
> clockevents_config_and_register+0x20/0x34
> arch_timer_mem_of_init+0x374/0x534
> timer_probe+0x88/0x110
> time_init+0x14/0x4c
> start_kernel+0x2c0/0x640
>
> [...]

Applied, thanks!

[1/1] arm64: dts: qcom: msm8939: Add clock-frequency for broadcast timer
commit: 12844ac08c593c2dd232b1b0d96ee21944dfb044

Best regards,
--
Bjorn Andersson <[email protected]>