Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'irq-urgent-2021-03-14' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull irq fixes from Thomas Gleixner:
"A set of irqchip updates:

- Make the GENERIC_IRQ_MULTI_HANDLER configuration correct

- Add a missing DT compatible string for the Ingenic driver

- Remove the pointless debugfs_file pointer from struct irqdomain"

* tag 'irq-urgent-2021-03-14' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
irqchip/ingenic: Add support for the JZ4760
dt-bindings/irq: Add compatible string for the JZ4760B
irqchip: Do not blindly select CONFIG_GENERIC_IRQ_MULTI_HANDLER
ARM: ep93xx: Select GENERIC_IRQ_MULTI_HANDLER directly
irqdomain: Remove debugfs_file from struct irq_domain

+8 -18
+1
Documentation/devicetree/bindings/interrupt-controller/ingenic,intc.yaml
··· 23 23 - enum: 24 24 - ingenic,jz4775-intc 25 25 - ingenic,jz4770-intc 26 + - ingenic,jz4760b-intc 26 27 - const: ingenic,jz4760-intc 27 28 - items: 28 29 - const: ingenic,x1000-intc
+1
arch/arm/Kconfig
··· 348 348 select ARM_AMBA 349 349 imply ARM_PATCH_PHYS_VIRT 350 350 select ARM_VIC 351 + select GENERIC_IRQ_MULTI_HANDLER 351 352 select AUTO_ZRELADDR 352 353 select CLKDEV_LOOKUP 353 354 select CLKSRC_MMIO
-9
drivers/irqchip/Kconfig
··· 8 8 config ARM_GIC 9 9 bool 10 10 select IRQ_DOMAIN_HIERARCHY 11 - select GENERIC_IRQ_MULTI_HANDLER 12 11 select GENERIC_IRQ_EFFECTIVE_AFF_MASK 13 12 14 13 config ARM_GIC_PM ··· 32 33 33 34 config ARM_GIC_V3 34 35 bool 35 - select GENERIC_IRQ_MULTI_HANDLER 36 36 select IRQ_DOMAIN_HIERARCHY 37 37 select PARTITION_PERCPU 38 38 select GENERIC_IRQ_EFFECTIVE_AFF_MASK ··· 62 64 config ARM_VIC 63 65 bool 64 66 select IRQ_DOMAIN 65 - select GENERIC_IRQ_MULTI_HANDLER 66 67 67 68 config ARM_VIC_NR 68 69 int ··· 96 99 bool 97 100 select GENERIC_IRQ_CHIP 98 101 select IRQ_DOMAIN 99 - select GENERIC_IRQ_MULTI_HANDLER 100 102 select SPARSE_IRQ 101 103 102 104 config ATMEL_AIC5_IRQ 103 105 bool 104 106 select GENERIC_IRQ_CHIP 105 107 select IRQ_DOMAIN 106 - select GENERIC_IRQ_MULTI_HANDLER 107 108 select SPARSE_IRQ 108 109 109 110 config I8259 ··· 148 153 config FARADAY_FTINTC010 149 154 bool 150 155 select IRQ_DOMAIN 151 - select GENERIC_IRQ_MULTI_HANDLER 152 156 select SPARSE_IRQ 153 157 154 158 config HISILICON_IRQ_MBIGEN ··· 163 169 config IXP4XX_IRQ 164 170 bool 165 171 select IRQ_DOMAIN 166 - select GENERIC_IRQ_MULTI_HANDLER 167 172 select SPARSE_IRQ 168 173 169 174 config MADERA_IRQ ··· 179 186 bool 180 187 depends on ARCH_CLPS711X 181 188 select IRQ_DOMAIN 182 - select GENERIC_IRQ_MULTI_HANDLER 183 189 select SPARSE_IRQ 184 190 default y 185 191 ··· 197 205 config ORION_IRQCHIP 198 206 bool 199 207 select IRQ_DOMAIN 200 - select GENERIC_IRQ_MULTI_HANDLER 201 208 202 209 config PIC32_EVIC 203 210 bool
+1
drivers/irqchip/irq-ingenic-tcu.c
··· 179 179 } 180 180 IRQCHIP_DECLARE(jz4740_tcu_irq, "ingenic,jz4740-tcu", ingenic_tcu_irq_init); 181 181 IRQCHIP_DECLARE(jz4725b_tcu_irq, "ingenic,jz4725b-tcu", ingenic_tcu_irq_init); 182 + IRQCHIP_DECLARE(jz4760_tcu_irq, "ingenic,jz4760-tcu", ingenic_tcu_irq_init); 182 183 IRQCHIP_DECLARE(jz4770_tcu_irq, "ingenic,jz4770-tcu", ingenic_tcu_irq_init); 183 184 IRQCHIP_DECLARE(x1000_tcu_irq, "ingenic,x1000-tcu", ingenic_tcu_irq_init);
+1
drivers/irqchip/irq-ingenic.c
··· 155 155 { 156 156 return ingenic_intc_of_init(node, 2); 157 157 } 158 + IRQCHIP_DECLARE(jz4760_intc, "ingenic,jz4760-intc", intc_2chip_of_init); 158 159 IRQCHIP_DECLARE(jz4770_intc, "ingenic,jz4770-intc", intc_2chip_of_init); 159 160 IRQCHIP_DECLARE(jz4775_intc, "ingenic,jz4775-intc", intc_2chip_of_init); 160 161 IRQCHIP_DECLARE(jz4780_intc, "ingenic,jz4780-intc", intc_2chip_of_init);
-4
include/linux/irqdomain.h
··· 150 150 * setting up one or more generic chips for interrupt controllers 151 151 * drivers using the generic chip library which uses this pointer. 152 152 * @parent: Pointer to parent irq_domain to support hierarchy irq_domains 153 - * @debugfs_file: dentry for the domain debugfs file 154 153 * 155 154 * Revmap data, used internally by irq_domain 156 155 * @revmap_direct_max_irq: The largest hwirq that can be set for controllers that ··· 172 173 struct irq_domain_chip_generic *gc; 173 174 #ifdef CONFIG_IRQ_DOMAIN_HIERARCHY 174 175 struct irq_domain *parent; 175 - #endif 176 - #ifdef CONFIG_GENERIC_IRQ_DEBUGFS 177 - struct dentry *debugfs_file; 178 176 #endif 179 177 180 178 /* reverse map data. The linear map gets appended to the irq_domain */
+4 -5
kernel/irq/irqdomain.c
··· 1898 1898 1899 1899 static void debugfs_add_domain_dir(struct irq_domain *d) 1900 1900 { 1901 - if (!d->name || !domain_dir || d->debugfs_file) 1901 + if (!d->name || !domain_dir) 1902 1902 return; 1903 - d->debugfs_file = debugfs_create_file(d->name, 0444, domain_dir, d, 1904 - &irq_domain_debug_fops); 1903 + debugfs_create_file(d->name, 0444, domain_dir, d, 1904 + &irq_domain_debug_fops); 1905 1905 } 1906 1906 1907 1907 static void debugfs_remove_domain_dir(struct irq_domain *d) 1908 1908 { 1909 - debugfs_remove(d->debugfs_file); 1910 - d->debugfs_file = NULL; 1909 + debugfs_remove(debugfs_lookup(d->name, domain_dir)); 1911 1910 } 1912 1911 1913 1912 void __init irq_domain_debugfs_init(struct dentry *root)