瀏覽代碼

ppc4xx: fix UIC external_interrupt hang on UIC0

This patch fixes a UIC external_interrupt hang if critical or non-critical
interrupt is set at the same time as a normal interrupt is set on UIC0.

Signed-off-by: Victor Gallardo <vgallardo@amcc.com>
Signed-off-by: Stefan Roese <sr@denx.de>
Victor Gallardo 16 年之前
父節點
當前提交
5bc542a593
共有 1 個文件被更改,包括 2 次插入2 次删除
  1. 2 2
      cpu/ppc4xx/uic.c

+ 2 - 2
cpu/ppc4xx/uic.c

@@ -129,11 +129,11 @@ void external_interrupt(struct pt_regs *regs)
 		uic_interrupt(UIC3_DCR_BASE, 96);
 #endif
 
+	mtdcr(uic0sr, (uic_msr & UICB0_ALL));
+
 	if (uic_msr & ~(UICB0_ALL))
 		uic_interrupt(UIC0_DCR_BASE, 0);
 
-	mtdcr(uic0sr, uic_msr);
-
 	return;
 }