diff options
| -rw-r--r-- | arch/powerpc/platforms/pasemi/setup.c | 2 | ||||
| -rw-r--r-- | arch/powerpc/sysdev/mpic.c | 5 | ||||
| -rw-r--r-- | include/asm-powerpc/mpic.h | 3 |
3 files changed, 9 insertions, 1 deletions
diff --git a/arch/powerpc/platforms/pasemi/setup.c b/arch/powerpc/platforms/pasemi/setup.c index eb271fded8..1940e67887 100644 --- a/arch/powerpc/platforms/pasemi/setup.c +++ b/arch/powerpc/platforms/pasemi/setup.c | |||
| @@ -224,7 +224,7 @@ static __init void pas_init_IRQ(void) | |||
| 224 | openpic_addr = of_read_number(opprop, naddr); | 224 | openpic_addr = of_read_number(opprop, naddr); |
| 225 | printk(KERN_DEBUG "OpenPIC addr: %lx\n", openpic_addr); | 225 | printk(KERN_DEBUG "OpenPIC addr: %lx\n", openpic_addr); |
| 226 | 226 | ||
| 227 | mpic_flags = MPIC_PRIMARY | MPIC_LARGE_VECTORS; | 227 | mpic_flags = MPIC_PRIMARY | MPIC_LARGE_VECTORS | MPIC_NO_BIAS; |
| 228 | 228 | ||
| 229 | nmiprop = of_get_property(mpic_node, "nmi-source", NULL); | 229 | nmiprop = of_get_property(mpic_node, "nmi-source", NULL); |
| 230 | if (nmiprop) | 230 | if (nmiprop) |
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c index 5a9d8c141e..f88ff09c47 100644 --- a/arch/powerpc/sysdev/mpic.c +++ b/arch/powerpc/sysdev/mpic.c | |||
| @@ -1279,6 +1279,11 @@ void __init mpic_init(struct mpic *mpic) | |||
| 1279 | mpic_read(mpic->gregs, MPIC_INFO(GREG_GLOBAL_CONF_0)) | 1279 | mpic_read(mpic->gregs, MPIC_INFO(GREG_GLOBAL_CONF_0)) |
| 1280 | | MPIC_GREG_GCONF_8259_PTHROU_DIS); | 1280 | | MPIC_GREG_GCONF_8259_PTHROU_DIS); |
| 1281 | 1281 | ||
| 1282 | if (mpic->flags & MPIC_NO_BIAS) | ||
| 1283 | mpic_write(mpic->gregs, MPIC_INFO(GREG_GLOBAL_CONF_0), | ||
| 1284 | mpic_read(mpic->gregs, MPIC_INFO(GREG_GLOBAL_CONF_0)) | ||
| 1285 | | MPIC_GREG_GCONF_NO_BIAS); | ||
| 1286 | |||
| 1282 | /* Set current processor priority to 0 */ | 1287 | /* Set current processor priority to 0 */ |
| 1283 | mpic_cpu_write(MPIC_INFO(CPU_CURRENT_TASK_PRI), 0); | 1288 | mpic_cpu_write(MPIC_INFO(CPU_CURRENT_TASK_PRI), 0); |
| 1284 | 1289 | ||
diff --git a/include/asm-powerpc/mpic.h b/include/asm-powerpc/mpic.h index e7ac8109b6..943c5a3fac 100644 --- a/include/asm-powerpc/mpic.h +++ b/include/asm-powerpc/mpic.h | |||
| @@ -22,6 +22,7 @@ | |||
| 22 | #define MPIC_GREG_GLOBAL_CONF_0 0x00020 | 22 | #define MPIC_GREG_GLOBAL_CONF_0 0x00020 |
| 23 | #define MPIC_GREG_GCONF_RESET 0x80000000 | 23 | #define MPIC_GREG_GCONF_RESET 0x80000000 |
| 24 | #define MPIC_GREG_GCONF_8259_PTHROU_DIS 0x20000000 | 24 | #define MPIC_GREG_GCONF_8259_PTHROU_DIS 0x20000000 |
| 25 | #define MPIC_GREG_GCONF_NO_BIAS 0x10000000 | ||
| 25 | #define MPIC_GREG_GCONF_BASE_MASK 0x000fffff | 26 | #define MPIC_GREG_GCONF_BASE_MASK 0x000fffff |
| 26 | #define MPIC_GREG_GCONF_MCK 0x08000000 | 27 | #define MPIC_GREG_GCONF_MCK 0x08000000 |
| 27 | #define MPIC_GREG_GLOBAL_CONF_1 0x00030 | 28 | #define MPIC_GREG_GLOBAL_CONF_1 0x00030 |
| @@ -350,6 +351,8 @@ struct mpic | |||
| 350 | #define MPIC_LARGE_VECTORS 0x00000100 | 351 | #define MPIC_LARGE_VECTORS 0x00000100 |
| 351 | /* Enable delivery of prio 15 interrupts as MCK instead of EE */ | 352 | /* Enable delivery of prio 15 interrupts as MCK instead of EE */ |
| 352 | #define MPIC_ENABLE_MCK 0x00000200 | 353 | #define MPIC_ENABLE_MCK 0x00000200 |
| 354 | /* Disable bias among target selection, spread interrupts evenly */ | ||
| 355 | #define MPIC_NO_BIAS 0x00000400 | ||
| 353 | 356 | ||
| 354 | /* MPIC HW modification ID */ | 357 | /* MPIC HW modification ID */ |
| 355 | #define MPIC_REGSET_MASK 0xf0000000 | 358 | #define MPIC_REGSET_MASK 0xf0000000 |
