@@ -25,6 +25,9 @@
#include <asm/prom.h>
#include <asm/udbg.h>
#include <asm/mpic.h>
+#ifdef CONFIG_PPC64
+#include <asm/code-patching.h>
+#endif
#include <linux/of_platform.h>
#include <sysdev/fsl_soc.h>
@@ -37,8 +40,12 @@ void __init corenet_ds_pic_init(void)
unsigned int flags = MPIC_BIG_ENDIAN | MPIC_SINGLE_DEST_CPU |
MPIC_NO_RESET;
- if (ppc_md.get_irq == mpic_get_coreint_irq)
+ if (ppc_md.get_irq == mpic_get_coreint_irq) {
flags |= MPIC_ENABLE_COREINT;
+#ifdef CONFIG_PPC64
+ patch_exception(0x0a0, exc_external_input_edge_book3e);
+#endif
+ }
mpic = mpic_alloc(NULL, 0, flags, 0, 512, " OpenPIC ");
BUG_ON(mpic == NULL);
Enable the external_input_edge exception handler for the fsl ppc64 board when external proxy is enabled. This will leave the irq still hard enabled when a interrupt occurs with irq soft disabled. Signed-off-by: Kevin Hao <haokexin@gmail.com> --- arch/powerpc/platforms/85xx/corenet_ds.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)