[PATCH 0/7] arm64: dts: Drop CPU masks from GICv3 PPI interrupts

Geert Uytterhoeven posted 7 patches 1 month ago
arch/arm64/boot/dts/amlogic/amlogic-s6.dtsi       | 10 +++++-----
arch/arm64/boot/dts/exynos/google/gs101.dtsi      |  8 ++++----
arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi    | 15 +++++----------
arch/arm64/boot/dts/freescale/imx8mm.dtsi         | 11 +++++------
arch/arm64/boot/dts/freescale/imx8mn.dtsi         | 11 +++++------
arch/arm64/boot/dts/freescale/imx8mp.dtsi         | 11 +++++------
arch/arm64/boot/dts/freescale/imx8ulp.dtsi        |  3 +--
.../arm64/boot/dts/freescale/imx91_93_common.dtsi | 10 +++++-----
arch/arm64/boot/dts/freescale/imx94.dtsi          | 10 +++++-----
arch/arm64/boot/dts/freescale/imx95.dtsi          | 10 +++++-----
arch/arm64/boot/dts/freescale/imx952.dtsi         | 10 +++++-----
arch/arm64/boot/dts/intel/socfpga_agilex5.dtsi    |  8 ++++----
arch/arm64/boot/dts/nvidia/tegra234.dtsi          | 10 +++++-----
arch/arm64/boot/dts/qcom/agatti.dtsi              |  8 ++++----
arch/arm64/boot/dts/qcom/lemans.dtsi              |  8 ++++----
arch/arm64/boot/dts/qcom/monaco.dtsi              |  8 ++++----
arch/arm64/boot/dts/qcom/qdu1000.dtsi             | 10 +++++-----
arch/arm64/boot/dts/qcom/sc8280xp.dtsi            |  8 ++++----
arch/arm64/boot/dts/qcom/sdm630.dtsi              |  8 ++++----
arch/arm64/boot/dts/qcom/sdx75.dtsi               |  8 ++++----
arch/arm64/boot/dts/qcom/sm4450.dtsi              |  8 ++++----
arch/arm64/boot/dts/qcom/sm6115.dtsi              |  8 ++++----
arch/arm64/boot/dts/qcom/sm6125.dtsi              |  8 ++++----
arch/arm64/boot/dts/qcom/sm6350.dtsi              |  8 ++++----
arch/arm64/boot/dts/qcom/sm6375.dtsi              |  8 ++++----
arch/arm64/boot/dts/qcom/sm8250.dtsi              | 12 ++++--------
arch/arm64/boot/dts/qcom/sm8350.dtsi              |  8 ++++----
arch/arm64/boot/dts/qcom/sm8450.dtsi              |  8 ++++----
arch/arm64/boot/dts/qcom/sm8550.dtsi              |  8 ++++----
arch/arm64/boot/dts/qcom/talos.dtsi               |  8 ++++----
30 files changed, 128 insertions(+), 141 deletions(-)
[PATCH 0/7] arm64: dts: Drop CPU masks from GICv3 PPI interrupts
Posted by Geert Uytterhoeven 1 month ago
	Hi all,

Unlike older GIC variants, the GICv3 DT bindings do not support
specifying a CPU mask in PPI interrupt specifiers.  Hence this patch
series drop all such masks where they are still present.

This has been compile-tested only.  But note that all such masks were
removed before from Renesas SoCs in commit 8b6a006c914aac17 ("arm64:
dts: renesas: Drop specifying the GIC_CPU_MASK_SIMPLE() for GICv3
systems")).

A related question:
The GICv3 DT bindings also support only edge-triggered and
level-triggered PPI interrupts, without specifying polarity.
Apparently, even the common gic_configure_irq() just ignores the
polarity, also on pre-GICv3, so specifying IRQ_TYPE_LEVEL_LOW or
IRQ_TYPE_LEVEL_HIGH doesn't matter at all?
Actual SoC hardware docs (e.g. R-Car Gen4) does document that some
PPI interrupts are active-high, while others are active-low.

Thanks for your comments!

Geert Uytterhoeven (7):
  arm64: dts: amlogic: s6: Drop CPU masks from GICv3 PPI interrupts
  arm64: dts: exynos: gs101: Drop CPU masks from GICv3 PPI interrupts
  arm64: dts: fsl-ls1028a: Drop CPU masks from GICv3 PPI interrupts
  arm64: dts: freescale: imx: Drop CPU masks from GICv3 PPI interrupts
  arm64: dts: intel: agilex5: Drop CPU masks from GICv3 PPI interrupts
  arm64: tegra: Drop CPU masks from GICv3 PPI interrupts
  arm64: dts: qcom: Drop CPU masks from GICv3 PPI interrupts

 arch/arm64/boot/dts/amlogic/amlogic-s6.dtsi       | 10 +++++-----
 arch/arm64/boot/dts/exynos/google/gs101.dtsi      |  8 ++++----
 arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi    | 15 +++++----------
 arch/arm64/boot/dts/freescale/imx8mm.dtsi         | 11 +++++------
 arch/arm64/boot/dts/freescale/imx8mn.dtsi         | 11 +++++------
 arch/arm64/boot/dts/freescale/imx8mp.dtsi         | 11 +++++------
 arch/arm64/boot/dts/freescale/imx8ulp.dtsi        |  3 +--
 .../arm64/boot/dts/freescale/imx91_93_common.dtsi | 10 +++++-----
 arch/arm64/boot/dts/freescale/imx94.dtsi          | 10 +++++-----
 arch/arm64/boot/dts/freescale/imx95.dtsi          | 10 +++++-----
 arch/arm64/boot/dts/freescale/imx952.dtsi         | 10 +++++-----
 arch/arm64/boot/dts/intel/socfpga_agilex5.dtsi    |  8 ++++----
 arch/arm64/boot/dts/nvidia/tegra234.dtsi          | 10 +++++-----
 arch/arm64/boot/dts/qcom/agatti.dtsi              |  8 ++++----
 arch/arm64/boot/dts/qcom/lemans.dtsi              |  8 ++++----
 arch/arm64/boot/dts/qcom/monaco.dtsi              |  8 ++++----
 arch/arm64/boot/dts/qcom/qdu1000.dtsi             | 10 +++++-----
 arch/arm64/boot/dts/qcom/sc8280xp.dtsi            |  8 ++++----
 arch/arm64/boot/dts/qcom/sdm630.dtsi              |  8 ++++----
 arch/arm64/boot/dts/qcom/sdx75.dtsi               |  8 ++++----
 arch/arm64/boot/dts/qcom/sm4450.dtsi              |  8 ++++----
 arch/arm64/boot/dts/qcom/sm6115.dtsi              |  8 ++++----
 arch/arm64/boot/dts/qcom/sm6125.dtsi              |  8 ++++----
 arch/arm64/boot/dts/qcom/sm6350.dtsi              |  8 ++++----
 arch/arm64/boot/dts/qcom/sm6375.dtsi              |  8 ++++----
 arch/arm64/boot/dts/qcom/sm8250.dtsi              | 12 ++++--------
 arch/arm64/boot/dts/qcom/sm8350.dtsi              |  8 ++++----
 arch/arm64/boot/dts/qcom/sm8450.dtsi              |  8 ++++----
 arch/arm64/boot/dts/qcom/sm8550.dtsi              |  8 ++++----
 arch/arm64/boot/dts/qcom/talos.dtsi               |  8 ++++----
 30 files changed, 128 insertions(+), 141 deletions(-)

-- 
2.43.0

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds
Re: [PATCH 0/7] arm64: dts: Drop CPU masks from GICv3 PPI interrupts
Posted by Konrad Dybcio 1 month ago
On 3/4/26 6:10 PM, Geert Uytterhoeven wrote:
> 	Hi all,
> 
> Unlike older GIC variants, the GICv3 DT bindings do not support
> specifying a CPU mask in PPI interrupt specifiers.  Hence this patch
> series drop all such masks where they are still present.

I'm having trouble finding where that's used on pre-v3 even.. does
that actually get processed on the older iterations?

Konrad
Re: [PATCH 0/7] arm64: dts: Drop CPU masks from GICv3 PPI interrupts
Posted by Geert Uytterhoeven 1 month ago
Hi Konrad,

On Thu, 5 Mar 2026 at 10:33, Konrad Dybcio
<konrad.dybcio@oss.qualcomm.com> wrote:
> On 3/4/26 6:10 PM, Geert Uytterhoeven wrote:
> > Unlike older GIC variants, the GICv3 DT bindings do not support
> > specifying a CPU mask in PPI interrupt specifiers.  Hence this patch
> > series drop all such masks where they are still present.
>
> I'm having trouble finding where that's used on pre-v3 even.. does
> that actually get processed on the older iterations?

I had noticed the same, and had asked maz on IRC.
His answer:

   "so far, we have never seen a GICv{1,2} system that didn't have all
of its PPIs
    connected to the same set of devices."

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
Re: [PATCH 0/7] arm64: dts: Drop CPU masks from GICv3 PPI interrupts
Posted by Konrad Dybcio 1 month ago
On 3/5/26 10:55 AM, Geert Uytterhoeven wrote:
> Hi Konrad,
> 
> On Thu, 5 Mar 2026 at 10:33, Konrad Dybcio
> <konrad.dybcio@oss.qualcomm.com> wrote:
>> On 3/4/26 6:10 PM, Geert Uytterhoeven wrote:
>>> Unlike older GIC variants, the GICv3 DT bindings do not support
>>> specifying a CPU mask in PPI interrupt specifiers.  Hence this patch
>>> series drop all such masks where they are still present.
>>
>> I'm having trouble finding where that's used on pre-v3 even.. does
>> that actually get processed on the older iterations?
> 
> I had noticed the same, and had asked maz on IRC.
> His answer:
> 
>    "so far, we have never seen a GICv{1,2} system that didn't have all
> of its PPIs
>     connected to the same set of devices."

lol, that's fun!

Konrad
Re: [PATCH 0/7] arm64: dts: Drop CPU masks from GICv3 PPI interrupts
Posted by Marc Zyngier 1 month ago
On Thu, 05 Mar 2026 10:02:01 +0000,
Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> wrote:
> 
> On 3/5/26 10:55 AM, Geert Uytterhoeven wrote:
> > Hi Konrad,
> > 
> > On Thu, 5 Mar 2026 at 10:33, Konrad Dybcio
> > <konrad.dybcio@oss.qualcomm.com> wrote:
> >> On 3/4/26 6:10 PM, Geert Uytterhoeven wrote:
> >>> Unlike older GIC variants, the GICv3 DT bindings do not support
> >>> specifying a CPU mask in PPI interrupt specifiers.  Hence this patch
> >>> series drop all such masks where they are still present.
> >>
> >> I'm having trouble finding where that's used on pre-v3 even.. does
> >> that actually get processed on the older iterations?
> > 
> > I had noticed the same, and had asked maz on IRC.
> > His answer:
> > 
> >    "so far, we have never seen a GICv{1,2} system that didn't have all
> > of its PPIs
> >     connected to the same set of devices."
> 
> lol, that's fun!

For some definition of fun. If you want to get a top-class headache,
have a look at what that means to handle a single INTID being routed
different drivers based on the *affinity* of the interrupt.

HW people who come up with these contraptions should be spanked
repeatedly and preferably asymmetrically.

	N,

-- 
Without deviation from the norm, progress is not possible.
Re: (subset) [PATCH 0/7] arm64: dts: Drop CPU masks from GICv3 PPI interrupts
Posted by Frank Li 2 weeks, 2 days ago
On Wed, 04 Mar 2026 18:10:57 +0100, Geert Uytterhoeven wrote:
> 	Hi all,
> 
> Unlike older GIC variants, the GICv3 DT bindings do not support
> specifying a CPU mask in PPI interrupt specifiers.  Hence this patch
> series drop all such masks where they are still present.
> 
> This has been compile-tested only.  But note that all such masks were
> removed before from Renesas SoCs in commit 8b6a006c914aac17 ("arm64:
> dts: renesas: Drop specifying the GIC_CPU_MASK_SIMPLE() for GICv3
> systems")).
> 
> [...]

Applied, thanks!

[3/7] arm64: dts: fsl-ls1028a: Drop CPU masks from GICv3 PPI interrupts
      commit: 7348e8d71c593792df4ebf653d98a576c04c851c
[4/7] arm64: dts: freescale: imx: Drop CPU masks from GICv3 PPI interrupts
      commit: f6c18c1c4ba574005d3b95faab0e8a3796cf3346

Best regards,
-- 
Frank Li <Frank.Li@nxp.com>
Re: (subset) [PATCH 0/7] arm64: dts: Drop CPU masks from GICv3 PPI interrupts
Posted by Bjorn Andersson 2 weeks ago
On Wed, 04 Mar 2026 18:10:57 +0100, Geert Uytterhoeven wrote:
> 	Hi all,
> 
> Unlike older GIC variants, the GICv3 DT bindings do not support
> specifying a CPU mask in PPI interrupt specifiers.  Hence this patch
> series drop all such masks where they are still present.
> 
> This has been compile-tested only.  But note that all such masks were
> removed before from Renesas SoCs in commit 8b6a006c914aac17 ("arm64:
> dts: renesas: Drop specifying the GIC_CPU_MASK_SIMPLE() for GICv3
> systems")).
> 
> [...]

Applied, thanks!

[7/7] arm64: dts: qcom: Drop CPU masks from GICv3 PPI interrupts
      commit: 99bb0693df91db9338fa69d496de4601c9582058

Best regards,
-- 
Bjorn Andersson <andersson@kernel.org>
Re: (subset) [PATCH 0/7] arm64: dts: Drop CPU masks from GICv3 PPI interrupts
Posted by Neil Armstrong 2 weeks ago
Hi,

On Wed, 04 Mar 2026 18:10:57 +0100, Geert Uytterhoeven wrote:
> 	Hi all,
> 
> Unlike older GIC variants, the GICv3 DT bindings do not support
> specifying a CPU mask in PPI interrupt specifiers.  Hence this patch
> series drop all such masks where they are still present.
> 
> This has been compile-tested only.  But note that all such masks were
> removed before from Renesas SoCs in commit 8b6a006c914aac17 ("arm64:
> dts: renesas: Drop specifying the GIC_CPU_MASK_SIMPLE() for GICv3
> systems")).
> 
> [...]

Thanks, Applied to https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux.git (v7.1/arm64-dt)

[1/7] arm64: dts: amlogic: s6: Drop CPU masks from GICv3 PPI interrupts
      https://git.kernel.org/amlogic/c/ff6c02a40dc8706c0b13b3b12cfe228c38bb7857

These changes has been applied on the intermediate git tree [1].

The v7.1/arm64-dt branch will then be sent via a formal Pull Request to the Linux SoC maintainers
for inclusion in their intermediate git branches in order to be sent to Linus during
the next merge window, or sooner if it's a set of fixes.

In the cases of fixes, those will be merged in the current release candidate
kernel and as soon they appear on the Linux master branch they will be
backported to the previous Stable and Long-Stable kernels [2].

The intermediate git branches are merged daily in the linux-next tree [3],
people are encouraged testing these pre-release kernels and report issues on the
relevant mailing-lists.

If problems are discovered on those changes, please submit a signed-off-by revert
patch followed by a corrective changeset.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux.git
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
[3] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git

-- 
Neil