summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorZhao Chenhui <chenhui.zhao@freescale.com>2013-05-15 06:40:41 (GMT)
committerFleming Andrew-AFLEMING <AFLEMING@freescale.com>2013-05-22 13:24:52 (GMT)
commitfa7ba988b278e1d4ac5a414071b6bdaf138228a3 (patch)
treef61fed026a6a7d36692781da113a3e17b87db3bc /arch
parent2627e0bb46a97406abdf6528f66c50b997b77b40 (diff)
downloadlinux-fsl-qoriq-fa7ba988b278e1d4ac5a414071b6bdaf138228a3.tar.xz
powerpc/mpic: fix interrupts distribution problem on 64-bit platforms
For the mpic with a flag MPIC_SINGLE_DEST_CPU, only one bit should be set in interrupt destination registers. This change is applicable to 32-bit and 64-bit platforms. Change-Id: If573a1911eca4465f253f427fa141e42fdceabae Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/2504 Reviewed-by: Wood Scott-B07421 <scottwood@freescale.com> Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/powerpc/sysdev/mpic.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c
index 5af0ff9..c8e41c0 100644
--- a/arch/powerpc/sysdev/mpic.c
+++ b/arch/powerpc/sysdev/mpic.c
@@ -54,7 +54,7 @@ static DEFINE_RAW_SPINLOCK(mpic_lock);
#ifdef CONFIG_PPC32 /* XXX for now */
#ifdef CONFIG_IRQ_ALL_CPUS
-#define distribute_irqs (!(mpic->flags & MPIC_SINGLE_DEST_CPU))
+#define distribute_irqs (1)
#else
#define distribute_irqs (0)
#endif
@@ -1728,7 +1728,7 @@ void mpic_setup_this_cpu(void)
* it differently, then we should make sure we also change the default
* values of irq_desc[].affinity in irq.c.
*/
- if (distribute_irqs) {
+ if (distribute_irqs && !(mpic->flags & MPIC_SINGLE_DEST_CPU)) {
for (i = 0; i < mpic->num_sources ; i++)
mpic_irq_write(i, MPIC_INFO(IRQ_DESTINATION),
mpic_irq_read(i, MPIC_INFO(IRQ_DESTINATION)) | msk);