Re: [PATCH v5 2/5] arm64: dts: qcom: Add msm8939 SoC

From: Stephan Gerhold
Date: Sun Feb 12 2023 - 12:20:08 EST


On Sun, Feb 12, 2023 at 04:49:25PM +0000, Bryan O'Donoghue wrote:
> On 09/02/2023 13:47, Stephan Gerhold wrote:
> > > + frame@b021000 {
> > > + reg = <0x0b021000 0x1000>,
> > > + <0x0b022000 0x1000>;
> > > + interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
> > > + <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
> > > + frame-number = <0>;
> > > + };
> > These timer interrupts are still wrong like mentioned in v3:
> > https://lore.kernel.org/linux-arm-msm/Y8fC%2FGCHfENQmBNC@xxxxxxxxxxx/
> >
>
> Hmm.
>
> This is a copy/paste error from 8916 which I guess we never see in our
> production system, since we use LPM to get to do idle
>

Huh?

We had this discussion several times before and once you mentioned that
Shawn fixed this in your production kernel at some point. You just keep
forgetting to apply the same change to your upstream tree. ;)

You can either change the timer interrupt numbers or (more easily) just
fix the address to point to the timer of the other cluster (which has
the same interrupt numbers as on 8916):

On Mon, Sep 19, 2022 at 03:11:01PM +0100, Bryan O'Donoghue wrote:
> Yep Shawn found that on our internal tree.
>
> commit 91a842b81a713ede9ba76f3957e6fdd9067b5493
> Author: Shawn Guo <shawn.guo@xxxxxxxxxx>
> Date: Thu May 28 11:03:40 2020 +0800
>
> arm64: dts: msm8939: fix base address of memory mapped timer
>
> The base address of memory mapped timer is changed from msm8916's
> 0xb020000 to 0xb120000 on msm8939. Fix it, so that the timer can start
> working as the broadcast device to wake up cpu from deep idle state.
>
> Signed-off-by: Shawn Guo <shawn.guo@xxxxxxxxxx>
>
> diff --git a/arch/arm64/boot/dts/qcom/msm8939.dtsi
> b/arch/arm64/boot/dts/qcom/msm8939.dtsi
> index dde56c2197eb..907f076b9808 100644
> --- a/arch/arm64/boot/dts/qcom/msm8939.dtsi
> +++ b/arch/arm64/boot/dts/qcom/msm8939.dtsi
> @@ -1326,61 +1326,61 @@
> reg = <0x0b000000 0x1000>, <0x0b002000 0x1000>;
> };
>
> - timer@b020000 {
> + timer@b120000 {
> #address-cells = <1>;
> #size-cells = <1>;
> ranges;
> compatible = "arm,armv7-timer-mem";
> - reg = <0xb020000 0x1000>;
> + reg = <0xb120000 0x1000>;
> clock-frequency = <19200000>;
>
> - frame@b021000 {
> + frame@b121000 {
>
> but I see that didn't make it into my working tree