Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
[pandora-kernel.git] / arch / arm / mach-exynos4 / cpu.c
index 940bc12..a348434 100644 (file)
@@ -32,6 +32,8 @@
 #include <mach/regs-irq.h>
 #include <mach/regs-pmu.h>
 
+unsigned int gic_bank_offset __read_mostly;
+
 extern int combiner_init(unsigned int combiner_nr, void __iomem *base,
                         unsigned int irq_start);
 extern void combiner_cascade_irq(unsigned int combiner_nr, unsigned int irq);
@@ -203,16 +205,18 @@ static void exynos4_gic_irq_fix_base(struct irq_data *d)
        struct gic_chip_data *gic_data = irq_data_get_irq_chip_data(d);
 
        gic_data->cpu_base = S5P_VA_GIC_CPU +
-                           (EXYNOS4_GIC_BANK_OFFSET * smp_processor_id());
+                           (gic_bank_offset * smp_processor_id());
 
        gic_data->dist_base = S5P_VA_GIC_DIST +
-                           (EXYNOS4_GIC_BANK_OFFSET * smp_processor_id());
+                           (gic_bank_offset * smp_processor_id());
 }
 
 void __init exynos4_init_irq(void)
 {
        int irq;
 
+       gic_bank_offset = soc_is_exynos4412() ? 0x4000 : 0x8000;
+
        gic_init(0, IRQ_PPI(0), S5P_VA_GIC_DIST, S5P_VA_GIC_CPU);
        gic_arch_extn.irq_eoi = exynos4_gic_irq_fix_base;
        gic_arch_extn.irq_unmask = exynos4_gic_irq_fix_base;