From: Felix Fietkau Date: Sat, 20 May 2006 02:35:12 +0000 (+0000) Subject: fix irq problem with the new brcm-2.4 system code X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fsvn-archive%2Farchive.git;a=commitdiff_plain;h=1846688ccf1f9e06ab198af801d47c71da3f0fad;hp=723a474411bfebbab35c308725c18cbcebb09df5 fix irq problem with the new brcm-2.4 system code SVN-Revision: 3803 --- diff --git a/openwrt/target/linux/brcm-2.4/patches/001-bcm47xx.patch b/openwrt/target/linux/brcm-2.4/patches/001-bcm47xx.patch index a67c567742..af82c3c770 100644 --- a/openwrt/target/linux/brcm-2.4/patches/001-bcm47xx.patch +++ b/openwrt/target/linux/brcm-2.4/patches/001-bcm47xx.patch @@ -10087,7 +10087,7 @@ diff -urN linux.old/arch/mips/bcm947xx/prom.c linux.dev/arch/mips/bcm947xx/prom. diff -urN linux.old/arch/mips/bcm947xx/sbmips.c linux.dev/arch/mips/bcm947xx/sbmips.c --- linux.old/arch/mips/bcm947xx/sbmips.c 1970-01-01 01:00:00.000000000 +0100 +++ linux.dev/arch/mips/bcm947xx/sbmips.c 2006-05-02 04:43:13.000000000 +0200 -@@ -0,0 +1,1145 @@ +@@ -0,0 +1,1132 @@ +/* + * BCM47XX Sonics SiliconBackplane MIPS core routines + * @@ -10162,8 +10162,8 @@ diff -urN linux.old/arch/mips/bcm947xx/sbmips.c linux.dev/arch/mips/bcm947xx/sbm + * Returns the MIPS IRQ assignment of the current core. If unassigned, + * 0 is returned. + */ -+static uint -+sb_getirq(sb_t *sbh) ++uint ++sb_irq(sb_t *sbh) +{ + osl_t *osh; + uint idx; @@ -10196,19 +10196,6 @@ diff -urN linux.old/arch/mips/bcm947xx/sbmips.c linux.dev/arch/mips/bcm947xx/sbm + return irq; +} + -+/* -+ * Return the MIPS IRQ assignment of the current core. If necessary -+ * map cores sharing the MIPS hw IRQ0 to virtual dedicated OS IRQs. -+ */ -+uint -+sb_irq(sb_t *sbh) -+{ -+ uint irq = sb_getirq(sbh); -+ if (irq == 0 && shirq_map_base) -+ irq = sb_getflag(sbh) + shirq_map_base; -+ return irq; -+} -+ +/* Clears the specified MIPS IRQ. */ +static void +BCMINITFN(sb_clearirq)(sb_t *sbh, uint irq) @@ -10250,7 +10237,7 @@ diff -urN linux.old/arch/mips/bcm947xx/sbmips.c linux.dev/arch/mips/bcm947xx/sbm + regs = sb_setcore(sbh, coreid, coreunit); + ASSERT(regs); + flag = sb_getflag(sbh); -+ oldirq = sb_getirq(sbh); ++ oldirq = sb_irq(sbh); + if (oldirq) + sb_clearirq(sbh, oldirq); +