Skip to content

Commit c5d714a

Browse files
committed
Merge tag 'irq-urgent-2022-02-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull irq fixes from Thomas Gleixner: "Interrupt chip driver fixes: - Don't install an hotplug notifier for GICV3-ITS on systems which do not need it to prevent a warning in the notifier about inconsistent state - Add the missing device tree matching for the T-HEAD PLIC variant so the related SoC is properly supported" * tag 'irq-urgent-2022-02-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: irqchip/sifive-plic: Add missing thead,c900-plic match string dt-bindings: update riscv plic compatible string irqchip/gic-v3-its: Skip HP notifier when no ITS is registered
2 parents 42964a1 + 1e34064 commit c5d714a

File tree

3 files changed

+19
-6
lines changed

3 files changed

+19
-6
lines changed

Documentation/devicetree/bindings/interrupt-controller/sifive,plic-1.0.0.yaml

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,19 +35,28 @@ description:
3535
contains a specific memory layout, which is documented in chapter 8 of the
3636
SiFive U5 Coreplex Series Manual <https://static.dev.sifive.com/U54-MC-RVCoreIP.pdf>.
3737

38+
The thead,c900-plic is different from sifive,plic-1.0.0 in opensbi, the
39+
T-HEAD PLIC implementation requires setting a delegation bit to allow access
40+
from S-mode. So add thead,c900-plic to distinguish them.
41+
3842
maintainers:
3943
- Sagar Kadam <[email protected]>
4044
- Paul Walmsley <[email protected]>
4145
- Palmer Dabbelt <[email protected]>
4246

4347
properties:
4448
compatible:
45-
items:
46-
- enum:
47-
- sifive,fu540-c000-plic
48-
- starfive,jh7100-plic
49-
- canaan,k210-plic
50-
- const: sifive,plic-1.0.0
49+
oneOf:
50+
- items:
51+
- enum:
52+
- sifive,fu540-c000-plic
53+
- starfive,jh7100-plic
54+
- canaan,k210-plic
55+
- const: sifive,plic-1.0.0
56+
- items:
57+
- enum:
58+
- allwinner,sun20i-d1-plic
59+
- const: thead,c900-plic
5160

5261
reg:
5362
maxItems: 1

drivers/irqchip/irq-gic-v3-its.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5517,6 +5517,9 @@ int __init its_lpi_memreserve_init(void)
55175517
if (!efi_enabled(EFI_CONFIG_TABLES))
55185518
return 0;
55195519

5520+
if (list_empty(&its_nodes))
5521+
return 0;
5522+
55205523
gic_rdists->cpuhp_memreserve_state = CPUHP_INVALID;
55215524
state = cpuhp_setup_state(CPUHP_AP_ONLINE_DYN,
55225525
"irqchip/arm/gicv3/memreserve:online",

drivers/irqchip/irq-sifive-plic.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -398,3 +398,4 @@ static int __init plic_init(struct device_node *node,
398398

399399
IRQCHIP_DECLARE(sifive_plic, "sifive,plic-1.0.0", plic_init);
400400
IRQCHIP_DECLARE(riscv_plic0, "riscv,plic0", plic_init); /* for legacy systems */
401+
IRQCHIP_DECLARE(thead_c900_plic, "thead,c900-plic", plic_init); /* for firmware driver */

0 commit comments

Comments
 (0)