Commit 70404fe3 authored by Linus Torvalds's avatar Linus Torvalds

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
parents 802b31c0 b470ebc9
...@@ -23,6 +23,7 @@ properties: ...@@ -23,6 +23,7 @@ properties:
- enum: - enum:
- ingenic,jz4775-intc - ingenic,jz4775-intc
- ingenic,jz4770-intc - ingenic,jz4770-intc
- ingenic,jz4760b-intc
- const: ingenic,jz4760-intc - const: ingenic,jz4760-intc
- items: - items:
- const: ingenic,x1000-intc - const: ingenic,x1000-intc
......
...@@ -348,6 +348,7 @@ config ARCH_EP93XX ...@@ -348,6 +348,7 @@ config ARCH_EP93XX
select ARM_AMBA select ARM_AMBA
imply ARM_PATCH_PHYS_VIRT imply ARM_PATCH_PHYS_VIRT
select ARM_VIC select ARM_VIC
select GENERIC_IRQ_MULTI_HANDLER
select AUTO_ZRELADDR select AUTO_ZRELADDR
select CLKDEV_LOOKUP select CLKDEV_LOOKUP
select CLKSRC_MMIO select CLKSRC_MMIO
......
...@@ -8,7 +8,6 @@ config IRQCHIP ...@@ -8,7 +8,6 @@ config IRQCHIP
config ARM_GIC config ARM_GIC
bool bool
select IRQ_DOMAIN_HIERARCHY select IRQ_DOMAIN_HIERARCHY
select GENERIC_IRQ_MULTI_HANDLER
select GENERIC_IRQ_EFFECTIVE_AFF_MASK select GENERIC_IRQ_EFFECTIVE_AFF_MASK
config ARM_GIC_PM config ARM_GIC_PM
...@@ -33,7 +32,6 @@ config GIC_NON_BANKED ...@@ -33,7 +32,6 @@ config GIC_NON_BANKED
config ARM_GIC_V3 config ARM_GIC_V3
bool bool
select GENERIC_IRQ_MULTI_HANDLER
select IRQ_DOMAIN_HIERARCHY select IRQ_DOMAIN_HIERARCHY
select PARTITION_PERCPU select PARTITION_PERCPU
select GENERIC_IRQ_EFFECTIVE_AFF_MASK select GENERIC_IRQ_EFFECTIVE_AFF_MASK
...@@ -64,7 +62,6 @@ config ARM_NVIC ...@@ -64,7 +62,6 @@ config ARM_NVIC
config ARM_VIC config ARM_VIC
bool bool
select IRQ_DOMAIN select IRQ_DOMAIN
select GENERIC_IRQ_MULTI_HANDLER
config ARM_VIC_NR config ARM_VIC_NR
int int
...@@ -99,14 +96,12 @@ config ATMEL_AIC_IRQ ...@@ -99,14 +96,12 @@ config ATMEL_AIC_IRQ
bool bool
select GENERIC_IRQ_CHIP select GENERIC_IRQ_CHIP
select IRQ_DOMAIN select IRQ_DOMAIN
select GENERIC_IRQ_MULTI_HANDLER
select SPARSE_IRQ select SPARSE_IRQ
config ATMEL_AIC5_IRQ config ATMEL_AIC5_IRQ
bool bool
select GENERIC_IRQ_CHIP select GENERIC_IRQ_CHIP
select IRQ_DOMAIN select IRQ_DOMAIN
select GENERIC_IRQ_MULTI_HANDLER
select SPARSE_IRQ select SPARSE_IRQ
config I8259 config I8259
...@@ -153,7 +148,6 @@ config DW_APB_ICTL ...@@ -153,7 +148,6 @@ config DW_APB_ICTL
config FARADAY_FTINTC010 config FARADAY_FTINTC010
bool bool
select IRQ_DOMAIN select IRQ_DOMAIN
select GENERIC_IRQ_MULTI_HANDLER
select SPARSE_IRQ select SPARSE_IRQ
config HISILICON_IRQ_MBIGEN config HISILICON_IRQ_MBIGEN
...@@ -169,7 +163,6 @@ config IMGPDC_IRQ ...@@ -169,7 +163,6 @@ config IMGPDC_IRQ
config IXP4XX_IRQ config IXP4XX_IRQ
bool bool
select IRQ_DOMAIN select IRQ_DOMAIN
select GENERIC_IRQ_MULTI_HANDLER
select SPARSE_IRQ select SPARSE_IRQ
config MADERA_IRQ config MADERA_IRQ
...@@ -186,7 +179,6 @@ config CLPS711X_IRQCHIP ...@@ -186,7 +179,6 @@ config CLPS711X_IRQCHIP
bool bool
depends on ARCH_CLPS711X depends on ARCH_CLPS711X
select IRQ_DOMAIN select IRQ_DOMAIN
select GENERIC_IRQ_MULTI_HANDLER
select SPARSE_IRQ select SPARSE_IRQ
default y default y
...@@ -205,7 +197,6 @@ config OMAP_IRQCHIP ...@@ -205,7 +197,6 @@ config OMAP_IRQCHIP
config ORION_IRQCHIP config ORION_IRQCHIP
bool bool
select IRQ_DOMAIN select IRQ_DOMAIN
select GENERIC_IRQ_MULTI_HANDLER
config PIC32_EVIC config PIC32_EVIC
bool bool
......
...@@ -179,5 +179,6 @@ static int __init ingenic_tcu_irq_init(struct device_node *np, ...@@ -179,5 +179,6 @@ static int __init ingenic_tcu_irq_init(struct device_node *np,
} }
IRQCHIP_DECLARE(jz4740_tcu_irq, "ingenic,jz4740-tcu", ingenic_tcu_irq_init); IRQCHIP_DECLARE(jz4740_tcu_irq, "ingenic,jz4740-tcu", ingenic_tcu_irq_init);
IRQCHIP_DECLARE(jz4725b_tcu_irq, "ingenic,jz4725b-tcu", ingenic_tcu_irq_init); IRQCHIP_DECLARE(jz4725b_tcu_irq, "ingenic,jz4725b-tcu", ingenic_tcu_irq_init);
IRQCHIP_DECLARE(jz4760_tcu_irq, "ingenic,jz4760-tcu", ingenic_tcu_irq_init);
IRQCHIP_DECLARE(jz4770_tcu_irq, "ingenic,jz4770-tcu", ingenic_tcu_irq_init); IRQCHIP_DECLARE(jz4770_tcu_irq, "ingenic,jz4770-tcu", ingenic_tcu_irq_init);
IRQCHIP_DECLARE(x1000_tcu_irq, "ingenic,x1000-tcu", ingenic_tcu_irq_init); IRQCHIP_DECLARE(x1000_tcu_irq, "ingenic,x1000-tcu", ingenic_tcu_irq_init);
...@@ -155,6 +155,7 @@ static int __init intc_2chip_of_init(struct device_node *node, ...@@ -155,6 +155,7 @@ static int __init intc_2chip_of_init(struct device_node *node,
{ {
return ingenic_intc_of_init(node, 2); return ingenic_intc_of_init(node, 2);
} }
IRQCHIP_DECLARE(jz4760_intc, "ingenic,jz4760-intc", intc_2chip_of_init);
IRQCHIP_DECLARE(jz4770_intc, "ingenic,jz4770-intc", intc_2chip_of_init); IRQCHIP_DECLARE(jz4770_intc, "ingenic,jz4770-intc", intc_2chip_of_init);
IRQCHIP_DECLARE(jz4775_intc, "ingenic,jz4775-intc", intc_2chip_of_init); IRQCHIP_DECLARE(jz4775_intc, "ingenic,jz4775-intc", intc_2chip_of_init);
IRQCHIP_DECLARE(jz4780_intc, "ingenic,jz4780-intc", intc_2chip_of_init); IRQCHIP_DECLARE(jz4780_intc, "ingenic,jz4780-intc", intc_2chip_of_init);
...@@ -150,7 +150,6 @@ struct irq_domain_chip_generic; ...@@ -150,7 +150,6 @@ struct irq_domain_chip_generic;
* setting up one or more generic chips for interrupt controllers * setting up one or more generic chips for interrupt controllers
* drivers using the generic chip library which uses this pointer. * drivers using the generic chip library which uses this pointer.
* @parent: Pointer to parent irq_domain to support hierarchy irq_domains * @parent: Pointer to parent irq_domain to support hierarchy irq_domains
* @debugfs_file: dentry for the domain debugfs file
* *
* Revmap data, used internally by irq_domain * Revmap data, used internally by irq_domain
* @revmap_direct_max_irq: The largest hwirq that can be set for controllers that * @revmap_direct_max_irq: The largest hwirq that can be set for controllers that
...@@ -174,9 +173,6 @@ struct irq_domain { ...@@ -174,9 +173,6 @@ struct irq_domain {
#ifdef CONFIG_IRQ_DOMAIN_HIERARCHY #ifdef CONFIG_IRQ_DOMAIN_HIERARCHY
struct irq_domain *parent; struct irq_domain *parent;
#endif #endif
#ifdef CONFIG_GENERIC_IRQ_DEBUGFS
struct dentry *debugfs_file;
#endif
/* reverse map data. The linear map gets appended to the irq_domain */ /* reverse map data. The linear map gets appended to the irq_domain */
irq_hw_number_t hwirq_max; irq_hw_number_t hwirq_max;
......
...@@ -1898,16 +1898,15 @@ DEFINE_SHOW_ATTRIBUTE(irq_domain_debug); ...@@ -1898,16 +1898,15 @@ DEFINE_SHOW_ATTRIBUTE(irq_domain_debug);
static void debugfs_add_domain_dir(struct irq_domain *d) static void debugfs_add_domain_dir(struct irq_domain *d)
{ {
if (!d->name || !domain_dir || d->debugfs_file) if (!d->name || !domain_dir)
return; return;
d->debugfs_file = debugfs_create_file(d->name, 0444, domain_dir, d, debugfs_create_file(d->name, 0444, domain_dir, d,
&irq_domain_debug_fops); &irq_domain_debug_fops);
} }
static void debugfs_remove_domain_dir(struct irq_domain *d) static void debugfs_remove_domain_dir(struct irq_domain *d)
{ {
debugfs_remove(d->debugfs_file); debugfs_remove(debugfs_lookup(d->name, domain_dir));
d->debugfs_file = NULL;
} }
void __init irq_domain_debugfs_init(struct dentry *root) void __init irq_domain_debugfs_init(struct dentry *root)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment