Merge tag 'irqchip-4.19-2' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm...
authorThomas Gleixner <tglx@linutronix.de>
Fri, 24 Aug 2018 14:06:42 +0000 (16:06 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Fri, 24 Aug 2018 14:06:42 +0000 (16:06 +0200)
Pull irqchip updates for 4.19, take #2 from Marc Zyngier:

 - bcm7038: compilation fix for !SMP
 - stm32: fix teardown on probe error
 - s3c24xx: fix compilation warning
 - renesas-irqc: r8a774a1 support
 - tango: chained irq setup simplification
 - gic-v3: allow wake-up sources

1  2 
Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.txt
drivers/irqchip/irq-stm32-exti.c

index 697ca2f26d1b5d8b0d649709234958a2d0f3ada4,a691c4d89943b5b236e87813fa3f8133f0dbeec2..a046ed374d808d668195082afc950c5b14beff62
@@@ -7,17 -7,16 +7,18 @@@ Required properties
      - "renesas,irqc-r8a73a4" (R-Mobile APE6)
      - "renesas,irqc-r8a7743" (RZ/G1M)
      - "renesas,irqc-r8a7745" (RZ/G1E)
 +    - "renesas,irqc-r8a77470" (RZ/G1C)
      - "renesas,irqc-r8a7790" (R-Car H2)
      - "renesas,irqc-r8a7791" (R-Car M2-W)
      - "renesas,irqc-r8a7792" (R-Car V2H)
      - "renesas,irqc-r8a7793" (R-Car M2-N)
      - "renesas,irqc-r8a7794" (R-Car E2)
+     - "renesas,intc-ex-r8a774a1" (RZ/G2M)
      - "renesas,intc-ex-r8a7795" (R-Car H3)
      - "renesas,intc-ex-r8a7796" (R-Car M3-W)
      - "renesas,intc-ex-r8a77965" (R-Car M3-N)
      - "renesas,intc-ex-r8a77970" (R-Car V3M)
 +    - "renesas,intc-ex-r8a77980" (R-Car V3H)
      - "renesas,intc-ex-r8a77995" (R-Car D3)
  - #interrupt-cells: has to be <2>: an interrupt index and flags, as defined in
    interrupts.txt in this directory
index 3df527fcf4e154b44bed2cc3c65787fef503db6c,880e4894757685fd0df1114acc3fca19478e9368..0a2088e12d96fdf5525b48613ac818e5061064c9
@@@ -159,7 -159,6 +159,7 @@@ static const struct stm32_exti_bank *st
  };
  
  static const struct stm32_desc_irq stm32mp1_desc_irq[] = {
 +      { .exti = 0, .irq_parent = 6 },
        { .exti = 1, .irq_parent = 7 },
        { .exti = 2, .irq_parent = 8 },
        { .exti = 3, .irq_parent = 9 },
@@@ -603,17 -602,24 +603,24 @@@ stm32_exti_host_data *stm32_exti_host_i
                                        sizeof(struct stm32_exti_chip_data),
                                        GFP_KERNEL);
        if (!host_data->chips_data)
-               return NULL;
+               goto free_host_data;
  
        host_data->base = of_iomap(node, 0);
        if (!host_data->base) {
                pr_err("%pOF: Unable to map registers\n", node);
-               return NULL;
+               goto free_chips_data;
        }
  
        stm32_host_data = host_data;
  
        return host_data;
+ free_chips_data:
+       kfree(host_data->chips_data);
+ free_host_data:
+       kfree(host_data);
+       return NULL;
  }
  
  static struct
@@@ -665,10 -671,8 +672,8 @@@ static int __init stm32_exti_init(cons
        struct irq_domain *domain;
  
        host_data = stm32_exti_host_init(drv_data, node);
-       if (!host_data) {
-               ret = -ENOMEM;
-               goto out_free_mem;
-       }
+       if (!host_data)
+               return -ENOMEM;
  
        domain = irq_domain_add_linear(node, drv_data->bank_nr * IRQS_PER_BANK,
                                       &irq_exti_domain_ops, NULL);
@@@ -725,7 -729,6 +730,6 @@@ out_free_domain
        irq_domain_remove(domain);
  out_unmap:
        iounmap(host_data->base);
- out_free_mem:
        kfree(host_data->chips_data);
        kfree(host_data);
        return ret;
@@@ -752,10 -755,8 +756,8 @@@ __init stm32_exti_hierarchy_init(const 
        }
  
        host_data = stm32_exti_host_init(drv_data, node);
-       if (!host_data) {
-               ret = -ENOMEM;
-               goto out_free_mem;
-       }
+       if (!host_data)
+               return -ENOMEM;
  
        for (i = 0; i < drv_data->bank_nr; i++)
                stm32_exti_chip_init(host_data, i, node);
  
  out_unmap:
        iounmap(host_data->base);
- out_free_mem:
        kfree(host_data->chips_data);
        kfree(host_data);
        return ret;