]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
irq-ath79-intc: move irq_chip to private struct 23884/head
authorRosen Penev <rosenp@gmail.com>
Fri, 19 Jun 2026 22:34:01 +0000 (15:34 -0700)
committerJonas Jelonek <jelonek.jonas@gmail.com>
Sat, 27 Jun 2026 10:07:34 +0000 (12:07 +0200)
For whatever reason, the static array change is causing massive dmesg
spam. Revert it for now.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23884
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
target/linux/ath79/files/drivers/irqchip/irq-ath79-intc.c

index ed29eb1eed5ed2eabb9f92027031b5687beec87d..d517980b379a6bfe4fe36cf78c84dd9d44faf580 100644 (file)
@@ -25,6 +25,7 @@ struct ath79_intc {
        u32 int_status;
        u32 irq_mask[ATH79_MAX_INTC_CASCADE];
        u32 irq_wb_chan[ATH79_MAX_INTC_CASCADE];
+       struct irq_chip chip;
 };
 
 static void ath79_intc_irq_handler(struct irq_desc *desc)
@@ -68,15 +69,12 @@ static void ath79_intc_irq_disable(struct irq_data *d)
        disable_irq(intc->irq);
 }
 
-static const struct irq_chip ath79_intc_irq_chip = {
-       .name = "INTC",
-       .irq_enable = ath79_intc_irq_enable,
-       .irq_disable = ath79_intc_irq_disable,
-};
-
 static int ath79_intc_map(struct irq_domain *d, unsigned int irq, irq_hw_number_t hw)
 {
-       irq_set_chip_and_handler(irq, &ath79_intc_irq_chip, handle_level_irq);
+       struct ath79_intc *intc = d->host_data;
+
+       irq_set_chip_and_handler(irq, &intc->chip, handle_level_irq);
+
        return 0;
 }
 
@@ -102,6 +100,10 @@ static int __init ath79_intc_of_init(
        if (!intc)
                return -ENOMEM;
 
+       intc->chip = dummy_irq_chip;
+       intc->chip.name = "INTC";
+       intc->chip.irq_disable = ath79_intc_irq_disable;
+       intc->chip.irq_enable = ath79_intc_irq_enable;
        intc->num_irqs = cnt;
 
        if (of_property_read_u32(node, "qca,int-status-addr", &intc->int_status) < 0) {