diff options
author | David Daney <ddaney@caviumnetworks.com> | 2011-02-17 17:47:52 -0500 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2011-05-19 04:55:49 -0400 |
commit | e650ce0f083ff9354a10ad66e6bf8c193e8a2755 (patch) | |
tree | 60452f8a170bdb7d39cff836dd2fc4fe7de605a1 /arch/mips/cavium-octeon | |
parent | 7716e6548abed1582a7759666e79d5c612a906c7 (diff) |
MIPS: Octeon: Don't request interrupts for unused IPI mailbox bits.
We only use the three low-order mailbox bits. Leave the upper bits alone
for possible use by drivers and other software.
Signed-off-by: David Daney <ddaney@caviumnetworks.com>
To: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/2090/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/cavium-octeon')
-rw-r--r-- | arch/mips/cavium-octeon/smp.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/arch/mips/cavium-octeon/smp.c b/arch/mips/cavium-octeon/smp.c index ba78b21cc8d0..716fae6f941a 100644 --- a/arch/mips/cavium-octeon/smp.c +++ b/arch/mips/cavium-octeon/smp.c | |||
@@ -37,7 +37,7 @@ static irqreturn_t mailbox_interrupt(int irq, void *dev_id) | |||
37 | uint64_t action; | 37 | uint64_t action; |
38 | 38 | ||
39 | /* Load the mailbox register to figure out what we're supposed to do */ | 39 | /* Load the mailbox register to figure out what we're supposed to do */ |
40 | action = cvmx_read_csr(CVMX_CIU_MBOX_CLRX(coreid)); | 40 | action = cvmx_read_csr(CVMX_CIU_MBOX_CLRX(coreid)) & 0xffff; |
41 | 41 | ||
42 | /* Clear the mailbox to clear the interrupt */ | 42 | /* Clear the mailbox to clear the interrupt */ |
43 | cvmx_write_csr(CVMX_CIU_MBOX_CLRX(coreid), action); | 43 | cvmx_write_csr(CVMX_CIU_MBOX_CLRX(coreid), action); |
@@ -200,16 +200,15 @@ void octeon_prepare_cpus(unsigned int max_cpus) | |||
200 | if (labi->labi_signature != LABI_SIGNATURE) | 200 | if (labi->labi_signature != LABI_SIGNATURE) |
201 | panic("The bootloader version on this board is incorrect."); | 201 | panic("The bootloader version on this board is incorrect."); |
202 | #endif | 202 | #endif |
203 | 203 | /* | |
204 | cvmx_write_csr(CVMX_CIU_MBOX_CLRX(cvmx_get_core_num()), 0xffffffff); | 204 | * Only the low order mailbox bits are used for IPIs, leave |
205 | * the other bits alone. | ||
206 | */ | ||
207 | cvmx_write_csr(CVMX_CIU_MBOX_CLRX(cvmx_get_core_num()), 0xffff); | ||
205 | if (request_irq(OCTEON_IRQ_MBOX0, mailbox_interrupt, IRQF_DISABLED, | 208 | if (request_irq(OCTEON_IRQ_MBOX0, mailbox_interrupt, IRQF_DISABLED, |
206 | "mailbox0", mailbox_interrupt)) { | 209 | "SMP-IPI", mailbox_interrupt)) { |
207 | panic("Cannot request_irq(OCTEON_IRQ_MBOX0)\n"); | 210 | panic("Cannot request_irq(OCTEON_IRQ_MBOX0)\n"); |
208 | } | 211 | } |
209 | if (request_irq(OCTEON_IRQ_MBOX1, mailbox_interrupt, IRQF_DISABLED, | ||
210 | "mailbox1", mailbox_interrupt)) { | ||
211 | panic("Cannot request_irq(OCTEON_IRQ_MBOX1)\n"); | ||
212 | } | ||
213 | } | 212 | } |
214 | 213 | ||
215 | /** | 214 | /** |