diff options
Diffstat (limited to 'arch/arm/mach-s5pv310/irq-combiner.c')
-rw-r--r-- | arch/arm/mach-s5pv310/irq-combiner.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/arm/mach-s5pv310/irq-combiner.c b/arch/arm/mach-s5pv310/irq-combiner.c index c3f88c3faf6c..aad5c3d525d1 100644 --- a/arch/arm/mach-s5pv310/irq-combiner.c +++ b/arch/arm/mach-s5pv310/irq-combiner.c | |||
@@ -24,6 +24,7 @@ static DEFINE_SPINLOCK(irq_controller_lock); | |||
24 | 24 | ||
25 | struct combiner_chip_data { | 25 | struct combiner_chip_data { |
26 | unsigned int irq_offset; | 26 | unsigned int irq_offset; |
27 | unsigned int irq_mask; | ||
27 | void __iomem *base; | 28 | void __iomem *base; |
28 | }; | 29 | }; |
29 | 30 | ||
@@ -62,6 +63,7 @@ static void combiner_handle_cascade_irq(unsigned int irq, struct irq_desc *desc) | |||
62 | spin_lock(&irq_controller_lock); | 63 | spin_lock(&irq_controller_lock); |
63 | status = __raw_readl(chip_data->base + COMBINER_INT_STATUS); | 64 | status = __raw_readl(chip_data->base + COMBINER_INT_STATUS); |
64 | spin_unlock(&irq_controller_lock); | 65 | spin_unlock(&irq_controller_lock); |
66 | status &= chip_data->irq_mask; | ||
65 | 67 | ||
66 | if (status == 0) | 68 | if (status == 0) |
67 | goto out; | 69 | goto out; |
@@ -104,10 +106,12 @@ void __init combiner_init(unsigned int combiner_nr, void __iomem *base, | |||
104 | 106 | ||
105 | combiner_data[combiner_nr].base = base; | 107 | combiner_data[combiner_nr].base = base; |
106 | combiner_data[combiner_nr].irq_offset = irq_start; | 108 | combiner_data[combiner_nr].irq_offset = irq_start; |
109 | combiner_data[combiner_nr].irq_mask = 0xff << ((combiner_nr % 4) << 3); | ||
107 | 110 | ||
108 | /* Disable all interrupts */ | 111 | /* Disable all interrupts */ |
109 | 112 | ||
110 | __raw_writel(0xffffffff, base + COMBINER_ENABLE_CLEAR); | 113 | __raw_writel(combiner_data[combiner_nr].irq_mask, |
114 | base + COMBINER_ENABLE_CLEAR); | ||
111 | 115 | ||
112 | /* Setup the Linux IRQ subsystem */ | 116 | /* Setup the Linux IRQ subsystem */ |
113 | 117 | ||