Commit 87813e13 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'irq-urgent-2023-10-10-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull irq fixes from Thomas Gleixner:
 "A set of updates for interrupt chip drivers:

   - Fix the fail of the Qualcomm PDC driver on v3.2 hardware which is
     caused by a control bit being moved to a different location

   - Update the SM8150 device tree PDC resource so the version register
     can be read

   - Make the Renesas RZG2L driver correct for interrupts which are
     outside of the LSB in the TSSR register by using the proper macro
     for calculating the mask

   - Document the Renesas RZ2GL device tree binding correctly and update
     them for a few devices which faul to boot otherwise

   - Use the proper accessor in the RZ2GL driver instead of blindly
     dereferencing an unchecked pointer

   - Make GICv3 handle the dma-non-coherent attribute correctly

   - Ensure that all interrupt controller nodes on RISCV are marked as
     initialized correctly

  Maintainer changes:

   - Add a new entry for GIC interrupt controllers and assign Marc
     Zyngier as the maintainer

   - Remove Marc Zyngier from the core and driver maintainer entries as
     he is burried in work and short of time to handle that.

  Thanks to Marc for all the great work he has done in the past couple
  of years!

  Also note that commit 5873d380 ("irqchip/qcom-pdc: Add support for
  v3.2 HW") has a incorrect SOB chain.

  The real author is Neil. His patch was posted by Dmitry once and Neil
  picked it up from the list and reposted it with the bogus SOB chain.

  Not a big deal, but worth to mention. I wanted to fix that up, but
  then got distracted and Marc piled more changes on top. So I decided
  to leave it as is instead of rebasing world"

* tag 'irq-urgent-2023-10-10-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  MAINTAINERS: Remove myself from the general IRQ subsystem maintenance
  MAINTAINERS: Add myself as the ARM GIC maintainer
  irqchip/renesas-rzg2l: Convert to irq_data_get_irq_chip_data()
  irqchip/stm32-exti: add missing DT IRQ flag translation
  irqchip/riscv-intc: Mark all INTC nodes as initialized
  irqchip/gic-v3: Enable non-coherent redistributors/ITSes DT probing
  irqchip/gic-v3-its: Split allocation from initialisation of its_node
  dt-bindings: interrupt-controller: arm,gic-v3: Add dma-noncoherent property
  dt-bindings: interrupt-controller: renesas,irqc: Add r8a779f0 support
  dt-bindings: interrupt-controller: renesas,rzg2l-irqc: Document RZ/G2UL SoC
  irqchip: renesas-rzg2l: Fix logic to clear TINT interrupt source
  dt-bindings: interrupt-controller: renesas,rzg2l-irqc: Update description for '#interrupt-cells' property
  arm64: dts: qcom: sm8150: extend the size of the PDC resource
  irqchip/qcom-pdc: Add support for v3.2 HW
parents b711538a 4dc5af1f
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -106,6 +106,12 @@ properties:
    $ref: /schemas/types.yaml#/definitions/uint32
    maximum: 4096

  dma-noncoherent:
    description:
      Present if the GIC redistributors permit programming shareability
      and cacheability attributes but are connected to a non-coherent
      downstream interconnect.

  msi-controller:
    description:
      Only present if the Message Based Interrupt functionality is
@@ -193,6 +199,12 @@ patternProperties:
      compatible:
        const: arm,gic-v3-its

      dma-noncoherent:
        description:
          Present if the GIC ITS permits programming shareability and
          cacheability attributes but is connected to a non-coherent
          downstream interconnect.

      msi-controller: true

      "#msi-cells":
+1 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ properties:
          - renesas,intc-ex-r8a77990    # R-Car E3
          - renesas,intc-ex-r8a77995    # R-Car D3
          - renesas,intc-ex-r8a779a0    # R-Car V3U
          - renesas,intc-ex-r8a779f0    # R-Car S4-8
          - renesas,intc-ex-r8a779g0    # R-Car V4H
      - const: renesas,irqc

+173 −57
Original line number Diff line number Diff line
@@ -19,20 +19,19 @@ description: |
    - NMI edge select (NMI is not treated as NMI exception and supports fall edge and
      stand-up edge detection interrupts)

allOf:
  - $ref: /schemas/interrupt-controller.yaml#

properties:
  compatible:
    items:
      - enum:
          - renesas,r9a07g043u-irqc   # RZ/G2UL
          - renesas,r9a07g044-irqc    # RZ/G2{L,LC}
          - renesas,r9a07g054-irqc    # RZ/V2L
      - const: renesas,rzg2l-irqc

  '#interrupt-cells':
    description: The first cell should contain external interrupt number (IRQ0-7) and the
                 second cell is used to specify the flag.
    description: The first cell should contain a macro RZG2L_{NMI,IRQX} included in the
                 include/dt-bindings/interrupt-controller/irqc-rzg2l.h and the second
                 cell is used to specify the flag.
    const: 2

  '#address-cells':
@@ -44,7 +43,96 @@ properties:
    maxItems: 1

  interrupts:
    maxItems: 41
    minItems: 41
    items:
      - description: NMI interrupt
      - description: IRQ0 interrupt
      - description: IRQ1 interrupt
      - description: IRQ2 interrupt
      - description: IRQ3 interrupt
      - description: IRQ4 interrupt
      - description: IRQ5 interrupt
      - description: IRQ6 interrupt
      - description: IRQ7 interrupt
      - description: GPIO interrupt, TINT0
      - description: GPIO interrupt, TINT1
      - description: GPIO interrupt, TINT2
      - description: GPIO interrupt, TINT3
      - description: GPIO interrupt, TINT4
      - description: GPIO interrupt, TINT5
      - description: GPIO interrupt, TINT6
      - description: GPIO interrupt, TINT7
      - description: GPIO interrupt, TINT8
      - description: GPIO interrupt, TINT9
      - description: GPIO interrupt, TINT10
      - description: GPIO interrupt, TINT11
      - description: GPIO interrupt, TINT12
      - description: GPIO interrupt, TINT13
      - description: GPIO interrupt, TINT14
      - description: GPIO interrupt, TINT15
      - description: GPIO interrupt, TINT16
      - description: GPIO interrupt, TINT17
      - description: GPIO interrupt, TINT18
      - description: GPIO interrupt, TINT19
      - description: GPIO interrupt, TINT20
      - description: GPIO interrupt, TINT21
      - description: GPIO interrupt, TINT22
      - description: GPIO interrupt, TINT23
      - description: GPIO interrupt, TINT24
      - description: GPIO interrupt, TINT25
      - description: GPIO interrupt, TINT26
      - description: GPIO interrupt, TINT27
      - description: GPIO interrupt, TINT28
      - description: GPIO interrupt, TINT29
      - description: GPIO interrupt, TINT30
      - description: GPIO interrupt, TINT31
      - description: Bus error interrupt

  interrupt-names:
    minItems: 41
    items:
      - const: nmi
      - const: irq0
      - const: irq1
      - const: irq2
      - const: irq3
      - const: irq4
      - const: irq5
      - const: irq6
      - const: irq7
      - const: tint0
      - const: tint1
      - const: tint2
      - const: tint3
      - const: tint4
      - const: tint5
      - const: tint6
      - const: tint7
      - const: tint8
      - const: tint9
      - const: tint10
      - const: tint11
      - const: tint12
      - const: tint13
      - const: tint14
      - const: tint15
      - const: tint16
      - const: tint17
      - const: tint18
      - const: tint19
      - const: tint20
      - const: tint21
      - const: tint22
      - const: tint23
      - const: tint24
      - const: tint25
      - const: tint26
      - const: tint27
      - const: tint28
      - const: tint29
      - const: tint30
      - const: tint31
      - const: bus-err

  clocks:
    maxItems: 2
@@ -72,6 +160,23 @@ required:
  - power-domains
  - resets

allOf:
  - $ref: /schemas/interrupt-controller.yaml#

  - if:
      properties:
        compatible:
          contains:
            const: renesas,r9a07g043u-irqc
    then:
      properties:
        interrupts:
          minItems: 42
        interrupt-names:
          minItems: 42
      required:
        - interrupt-names

unevaluatedProperties: false

examples:
@@ -126,6 +231,17 @@ examples:
                     <GIC_SPI 473 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 474 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 475 IRQ_TYPE_LEVEL_HIGH>;
        interrupt-names = "nmi",
                          "irq0", "irq1", "irq2", "irq3",
                          "irq4", "irq5", "irq6", "irq7",
                          "tint0", "tint1", "tint2", "tint3",
                          "tint4", "tint5", "tint6", "tint7",
                          "tint8", "tint9", "tint10", "tint11",
                          "tint12", "tint13", "tint14", "tint15",
                          "tint16", "tint17", "tint18", "tint19",
                          "tint20", "tint21", "tint22", "tint23",
                          "tint24", "tint25", "tint26", "tint27",
                          "tint28", "tint29", "tint30", "tint31";
        clocks = <&cpg CPG_MOD R9A07G044_IA55_CLK>,
                 <&cpg CPG_MOD R9A07G044_IA55_PCLK>;
        clock-names = "clk", "pclk";
+12 −2
Original line number Diff line number Diff line
@@ -1584,6 +1584,17 @@ F: arch/arm/include/asm/arch_timer.h
F:	arch/arm64/include/asm/arch_timer.h
F:	drivers/clocksource/arm_arch_timer.c
ARM GENERIC INTERRUPT CONTROLLER DRIVERS
M:	Marc Zyngier <maz@kernel.org>
L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
S:	Maintained
F:	Documentation/devicetree/bindings/interrupt-controller/arm,gic*
F:	arch/arm/include/asm/arch_gicv3.h
F:	arch/arm64/include/asm/arch_gicv3.h
F:	drivers/irqchip/irq-gic*.[ch]
F:	include/linux/irqchip/arm-gic*.h
F:	include/linux/irqchip/arm-vgic-info.h
ARM HDLCD DRM DRIVER
M:	Liviu Dudau <liviu.dudau@arm.com>
S:	Supported
@@ -11060,7 +11071,7 @@ F: Documentation/devicetree/bindings/sound/irondevice,*
F:	sound/soc/codecs/sma*
IRQ DOMAINS (IRQ NUMBER MAPPING LIBRARY)
M:	Marc Zyngier <maz@kernel.org>
M:	Thomas Gleixner <tglx@linutronix.de>
S:	Maintained
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq/core
F:	Documentation/core-api/irq/irq-domain.rst
@@ -11079,7 +11090,6 @@ F: lib/group_cpus.c
IRQCHIP DRIVERS
M:	Thomas Gleixner <tglx@linutronix.de>
M:	Marc Zyngier <maz@kernel.org>
L:	linux-kernel@vger.kernel.org
S:	Maintained
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq/core
+1 −1
Original line number Diff line number Diff line
@@ -3958,7 +3958,7 @@ dispcc: clock-controller@af00000 {

		pdc: interrupt-controller@b220000 {
			compatible = "qcom,sm8150-pdc", "qcom,pdc";
			reg = <0 0x0b220000 0 0x400>;
			reg = <0 0x0b220000 0 0x30000>;
			qcom,pdc-ranges = <0 480 94>, <94 609 31>,
					  <125 63 1>;
			#interrupt-cells = <2>;
Loading