]> www.infradead.org Git - nvme.git/commitdiff
of/irq: Disable "interrupt-map" parsing for PASEMI Nemo
authorMarc Zyngier <maz@kernel.org>
Tue, 2 Jul 2024 21:42:46 +0000 (22:42 +0100)
committerRob Herring (Arm) <robh@kernel.org>
Mon, 8 Jul 2024 21:42:20 +0000 (15:42 -0600)
Once again, we've broken PASEMI Nemo boards with its incomplete
"interrupt-map" translations. Commit 935df1bd40d4 ("of/irq: Factor out
parsing of interrupt-map parent phandle+args from of_irq_parse_raw()")
changed the behavior resulting in the existing work-around not taking
effect. Rework the work-around to just skip parsing "interrupt-map" up
front by using the of_irq_imap_abusers list.

Fixes: 935df1bd40d4 ("of/irq: Factor out parsing of interrupt-map parent phandle+args from of_irq_parse_raw()")
Reported-by: Christian Zigotzky <chzigotzky@xenosoft.de>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/86ed8ba2sp.wl-maz@kernel.org
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
drivers/of/irq.c

index 462375b293e47577a68ab79a51d00101d59b1e9d..c94203ce65bb323b033a9c635935e88c2f14878b 100644 (file)
@@ -81,7 +81,8 @@ EXPORT_SYMBOL_GPL(of_irq_find_parent);
 /*
  * These interrupt controllers abuse interrupt-map for unspeakable
  * reasons and rely on the core code to *ignore* it (the drivers do
- * their own parsing of the property).
+ * their own parsing of the property). The PAsemi entry covers a
+ * non-sensical interrupt-map that is better left ignored.
  *
  * If you think of adding to the list for something *new*, think
  * again. There is a high chance that you will be sent back to the
@@ -95,6 +96,7 @@ static const char * const of_irq_imap_abusers[] = {
        "fsl,ls1043a-extirq",
        "fsl,ls1088a-extirq",
        "renesas,rza1-irqc",
+       "pasemi,rootbus",
        NULL,
 };
 
@@ -293,20 +295,8 @@ int of_irq_parse_raw(const __be32 *addr, struct of_phandle_args *out_irq)
                        imaplen -= imap - oldimap;
                        pr_debug(" -> imaplen=%d\n", imaplen);
                }
-               if (!match) {
-                       if (intc) {
-                               /*
-                                * The PASEMI Nemo is a known offender, so
-                                * let's only warn for anyone else.
-                                */
-                               WARN(!IS_ENABLED(CONFIG_PPC_PASEMI),
-                                    "%pOF interrupt-map failed, using interrupt-controller\n",
-                                    ipar);
-                               return 0;
-                       }
-
+               if (!match)
                        goto fail;
-               }
 
                /*
                 * Successfully parsed an interrupt-map translation; copy new