Merge branch 'ppi-irq-core-for-rmk' of git://github.com/mzyngier/arm-platforms into...
Russell King [Sun, 23 Oct 2011 13:42:30 +0000 (14:42 +0100)]
1  2 
arch/arm/Kconfig
arch/arm/common/gic.c
arch/arm/include/asm/hardware/gic.h
arch/arm/kernel/Makefile
arch/arm/mach-msm/board-msm8x60.c

Simple merge
  #include <linux/kernel.h>
  #include <linux/list.h>
  #include <linux/smp.h>
 +#include <linux/cpu_pm.h>
  #include <linux/cpumask.h>
  #include <linux/io.h>
+ #include <linux/interrupt.h>
+ #include <linux/percpu.h>
+ #include <linux/slab.h>
  
  #include <asm/irq.h>
  #include <asm/mach/irq.h>
@@@ -277,9 -286,24 +287,26 @@@ static void __init gic_dist_init(struc
        if (gic_irqs > 1020)
                gic_irqs = 1020;
  
 +      gic->gic_irqs = gic_irqs;
 +
        /*
+        * Nobody would be insane enough to use PPIs on a secondary
+        * GIC, right?
+        */
+       if (gic == &gic_data[0]) {
+               nrppis = (32 - irq_start) & 31;
+               /* The GIC only supports up to 16 PPIs. */
+               if (nrppis > 16)
+                       BUG();
+               ppi_base = gic->irq_offset + 32 - nrppis;
+       }
+       pr_info("Configuring GIC with %d sources (%d PPIs)\n",
+               gic_irqs, (gic == &gic_data[0]) ? nrppis : 0);
+       /*
         * Set all global interrupts to be level triggered, active low.
         */
        for (i = 32; i < gic_irqs; i += 16)
Simple merge
Simple merge
Simple merge