mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-11-25 20:22:50 +02:00
fix irq problem with the new brcm-2.4 system code
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@3803 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
parent
82648a9522
commit
be8041e41c
@ -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
|
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.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
|
+++ 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
|
+ * 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,
|
+ * Returns the MIPS IRQ assignment of the current core. If unassigned,
|
||||||
+ * 0 is returned.
|
+ * 0 is returned.
|
||||||
+ */
|
+ */
|
||||||
+static uint
|
+uint
|
||||||
+sb_getirq(sb_t *sbh)
|
+sb_irq(sb_t *sbh)
|
||||||
+{
|
+{
|
||||||
+ osl_t *osh;
|
+ osl_t *osh;
|
||||||
+ uint idx;
|
+ uint idx;
|
||||||
@ -10196,19 +10196,6 @@ diff -urN linux.old/arch/mips/bcm947xx/sbmips.c linux.dev/arch/mips/bcm947xx/sbm
|
|||||||
+ return irq;
|
+ 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. */
|
+/* Clears the specified MIPS IRQ. */
|
||||||
+static void
|
+static void
|
||||||
+BCMINITFN(sb_clearirq)(sb_t *sbh, uint irq)
|
+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);
|
+ regs = sb_setcore(sbh, coreid, coreunit);
|
||||||
+ ASSERT(regs);
|
+ ASSERT(regs);
|
||||||
+ flag = sb_getflag(sbh);
|
+ flag = sb_getflag(sbh);
|
||||||
+ oldirq = sb_getirq(sbh);
|
+ oldirq = sb_irq(sbh);
|
||||||
+ if (oldirq)
|
+ if (oldirq)
|
||||||
+ sb_clearirq(sbh, oldirq);
|
+ sb_clearirq(sbh, oldirq);
|
||||||
+
|
+
|
||||||
|
Loading…
Reference in New Issue
Block a user