Skip to content

Commit 03a53e0

Browse files
committed
Merge tag 'irq-drivers-2025-09-29' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull irq chip driver updates from Thomas Gleixner: - Use the startup/shutdown callbacks for the PCI/MSI per device interrupt domains. This allows us to initialize the RISCV PLIC interrupt hierarchy correctly and provides a mechanism to decouple the masking and unmasking during run-time from the expensive PCI mask and unmask when the underlying MSI provider implementation allows the interrupt to be masked. - Initialize the RISCV PLIC MSI interrupt hierarchy correctly so that the affinity assignment works correctly by switching it over to the startup/shutdown scheme - Allow MSI providers to opt out from masking a PCI/MSI interrupt at the PCI device during operation when the provider can mask the interrupt at the underlying interrupt chip. This reduces the overhead in scenarios where disable_irq()/enable_irq() is utilized frequently by a driver. The PCI/MSI device level [un]masking is only required on startup and shutdown in this case. - Remove the conditional mask/unmask logic in the PCI/MSI layer as this is now handled unconditionally. - Replace the hardcoded interrupt routing in the Loongson EIOINTC interrupt driver to respect the firmware settings and spread them out to different CPU interrupt inputs so that the demultiplexing handler only needs to read only a single 64-bit status register instead of four, which significantly reduces the overhead in VMs as the status register access causes a VM exit. - Add support for the new AST2700 SCU interrupt controllers - Use the legacy interrupt domain setup for the Loongson PCH-LPC interrupt controller, which resembles the x86 legacy PIC setup and has the same hardcoded legacy requirements. - The usual set of cleanups, fixes and improvements all over the place * tag 'irq-drivers-2025-09-29' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (25 commits) irqchip/loongson-pch-lpc: Use legacy domain for PCH-LPC IRQ controller PCI/MSI: Remove the conditional parent [un]mask logic irqchip/msi-lib: Honor the MSI_FLAG_PCI_MSI_MASK_PARENT flag irqchip/aspeed-scu-ic: Add support for AST2700 SCU interrupt controllers dt-bindings: interrupt-controller: aspeed: Add AST2700 SCU IC compatibles dt-bindings: mfd: aspeed: Add AST2700 SCU compatibles irqchip/aspeed-scu-ic: Refactor driver to support variant-based initialization irqchip/gic-v5: Fix error handling in gicv5_its_irq_domain_alloc() irqchip/gic-v5: Fix loop in gicv5_its_create_itt_two_level() cleanup path irqchip/gic-v5: Delete a stray tab irqchip/sg2042-msi: Set irq type according to DT configuration riscv: sophgo: dts: sg2044: Change msi irq type to IRQ_TYPE_EDGE_RISING riscv: sophgo: dts: sg2042: Change msi irq type to IRQ_TYPE_EDGE_RISING irqchip/gic-v2m: Handle Multiple MSI base IRQ Alignment irqchip/renesas-rzg2l: Remove dev_err_probe() if error is -ENOMEM irqchip: Use int type to store negative error codes irqchip/gic-v5: Remove the redundant ITS cache invalidation PCI/MSI: Check MSI_FLAG_PCI_MSI_MASK_PARENT in cond_[startup|shutdown]_parent() irqchip/loongson-eiointc: Add multiple interrupt pin routing support irqchip/loongson-eiointc: Route interrupt parsed from bios table ...
2 parents 3b2074c + c33c43f commit 03a53e0

20 files changed

Lines changed: 399 additions & 156 deletions

File tree

Documentation/devicetree/bindings/interrupt-controller/aspeed,ast2500-scu-ic.yaml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
$id: http://devicetree.org/schemas/interrupt-controller/aspeed,ast2500-scu-ic.yaml#
66
$schema: http://devicetree.org/meta-schemas/core.yaml#
77

8-
title: Aspeed AST25XX and AST26XX SCU Interrupt Controller
8+
title: Aspeed AST25XX, AST26XX, AST27XX SCU Interrupt Controller
99

1010
maintainers:
1111
- Eddie James <eajames@linux.ibm.com>
@@ -16,6 +16,10 @@ properties:
1616
- aspeed,ast2500-scu-ic
1717
- aspeed,ast2600-scu-ic0
1818
- aspeed,ast2600-scu-ic1
19+
- aspeed,ast2700-scu-ic0
20+
- aspeed,ast2700-scu-ic1
21+
- aspeed,ast2700-scu-ic2
22+
- aspeed,ast2700-scu-ic3
1923

2024
reg:
2125
maxItems: 1

Documentation/devicetree/bindings/mfd/aspeed,ast2x00-scu.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,10 @@ patternProperties:
7575
- aspeed,ast2500-scu-ic
7676
- aspeed,ast2600-scu-ic0
7777
- aspeed,ast2600-scu-ic1
78+
- aspeed,ast2700-scu-ic0
79+
- aspeed,ast2700-scu-ic1
80+
- aspeed,ast2700-scu-ic2
81+
- aspeed,ast2700-scu-ic3
7882

7983
'^silicon-id@[0-9a-f]+$':
8084
description: Unique hardware silicon identifiers within the SoC

arch/riscv/boot/dts/sophgo/sg2042.dtsi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@
190190
reg-names = "clr", "doorbell";
191191
msi-controller;
192192
#msi-cells = <0>;
193-
msi-ranges = <&intc 64 IRQ_TYPE_LEVEL_HIGH 32>;
193+
msi-ranges = <&intc 64 IRQ_TYPE_EDGE_RISING 32>;
194194
};
195195

196196
rpgate: clock-controller@7030010368 {

arch/riscv/boot/dts/sophgo/sg2044.dtsi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@
214214
reg-names = "clr", "doorbell";
215215
#msi-cells = <0>;
216216
msi-controller;
217-
msi-ranges = <&intc 352 IRQ_TYPE_LEVEL_HIGH 512>;
217+
msi-ranges = <&intc 352 IRQ_TYPE_EDGE_RISING 512>;
218218
status = "disabled";
219219
};
220220

0 commit comments

Comments
 (0)