Commit 027e56e68543780870fda74360ca45e392c50e1c
1 parent
0630e45c88
Exists in
master
and in
7 other branches
sh: Hook up hard_smp_processor_id() for INTC2 block.
We need to know the CPU ID in order to calculate the mask and ack registers effectively. Stub this in for UP. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Showing 2 changed files with 9 additions and 2 deletions Side-by-side Diff
arch/sh/kernel/cpu/irq/intc2.c
... | ... | @@ -13,6 +13,7 @@ |
13 | 13 | #include <linux/kernel.h> |
14 | 14 | #include <linux/interrupt.h> |
15 | 15 | #include <linux/io.h> |
16 | +#include <asm/smp.h> | |
16 | 17 | |
17 | 18 | static inline struct intc2_desc *get_intc2_desc(unsigned int irq) |
18 | 19 | { |
19 | 20 | |
... | ... | @@ -24,14 +25,18 @@ |
24 | 25 | { |
25 | 26 | struct intc2_data *p = get_irq_chip_data(irq); |
26 | 27 | struct intc2_desc *d = get_intc2_desc(irq); |
27 | - ctrl_outl(1 << p->msk_shift, d->msk_base + p->msk_offset); | |
28 | + | |
29 | + ctrl_outl(1 << p->msk_shift, d->msk_base + p->msk_offset + | |
30 | + (hard_smp_processor_id() * 4)); | |
28 | 31 | } |
29 | 32 | |
30 | 33 | static void enable_intc2_irq(unsigned int irq) |
31 | 34 | { |
32 | 35 | struct intc2_data *p = get_irq_chip_data(irq); |
33 | 36 | struct intc2_desc *d = get_intc2_desc(irq); |
34 | - ctrl_outl(1 << p->msk_shift, d->mskclr_base + p->msk_offset); | |
37 | + | |
38 | + ctrl_outl(1 << p->msk_shift, d->mskclr_base + p->msk_offset + | |
39 | + (hard_smp_processor_id() * 4)); | |
35 | 40 | } |
36 | 41 | |
37 | 42 | /* |