ARM: OMAP4+: PRM: fix of_irq_get() result checks
authorSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Tue, 15 Aug 2017 15:53:28 +0000 (08:53 -0700)
committerTony Lindgren <tony@atomide.com>
Tue, 15 Aug 2017 15:53:28 +0000 (08:53 -0700)
of_irq_get() may return 0 as well as a nagative error number on failure,
(and never on success), however omap44xx_prm_late_init() regards 0 as a
valid IRQ -- fix this.

Fixes: a8f83aefcd5a ("ARM: OMAP4+: PRM: register interrupt information from DT")
Fixes: c5b3955828ba ("ARM: OMAP4: Fix legacy code clean-up regression")
Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/mach-omap2/prm44xx.c

index 3ab5df1..1c0c166 100644 (file)
@@ -747,7 +747,7 @@ static int omap44xx_prm_late_init(void)
         * Already have OMAP4 IRQ num. For all other platforms, we need
         * IRQ numbers from DT
         */
-       if (irq_num < 0 && !(prm_init_data->flags & PRM_IRQ_DEFAULT)) {
+       if (irq_num <= 0 && !(prm_init_data->flags & PRM_IRQ_DEFAULT)) {
                if (irq_num == -EPROBE_DEFER)
                        return irq_num;
 
@@ -756,7 +756,7 @@ static int omap44xx_prm_late_init(void)
        }
 
        /* Once OMAP4 DT is filled as well */
-       if (irq_num >= 0) {
+       if (irq_num > 0) {
                omap4_prcm_irq_setup.irq = irq_num;
                omap4_prcm_irq_setup.xlate_irq = NULL;
        }