From: Victor Gallardo Date: Thu, 28 Aug 2008 23:03:28 +0000 (-0700) Subject: ppc4xx: fix UIC external_interrupt hang on UIC0 X-Git-Tag: v2008.10-rc1~66^2~3 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=5bc542a593abc9e974fbd34704af85c37c366c60;p=u-boot 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 Signed-off-by: Stefan Roese --- diff --git a/cpu/ppc4xx/uic.c b/cpu/ppc4xx/uic.c index 7944c6c3c2..a95d1cb17d 100644 --- a/cpu/ppc4xx/uic.c +++ b/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; }