summaryrefslogtreecommitdiffstats
path: root/target/linux/brcm63xx-2.6/patches/001-brcm_boards.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/brcm63xx-2.6/patches/001-brcm_boards.patch')
-rw-r--r--target/linux/brcm63xx-2.6/patches/001-brcm_boards.patch53
1 files changed, 23 insertions, 30 deletions
diff --git a/target/linux/brcm63xx-2.6/patches/001-brcm_boards.patch b/target/linux/brcm63xx-2.6/patches/001-brcm_boards.patch
index 38ce5e1ee..6fc7f7697 100644
--- a/target/linux/brcm63xx-2.6/patches/001-brcm_boards.patch
+++ b/target/linux/brcm63xx-2.6/patches/001-brcm_boards.patch
@@ -1365,8 +1365,8 @@ diff -urN linux-2.6.17/arch/mips/brcm-boards/bcm963xx/bcm63xx_led.c linux-2.6.17
+
diff -urN linux-2.6.17/arch/mips/brcm-boards/bcm963xx/board.c linux-2.6.17-brcm63xx/arch/mips/brcm-boards/bcm963xx/board.c
--- linux-2.6.17/arch/mips/brcm-boards/bcm963xx/board.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.17-brcm63xx/arch/mips/brcm-boards/bcm963xx/board.c 2006-07-14 15:39:56.000000000 +0200
-@@ -0,0 +1,1615 @@
++++ linux-2.6.17-brcm63xx/arch/mips/brcm-boards/bcm963xx/board.c 2006-07-25 10:59:34.000000000 +0200
+@@ -0,0 +1,1619 @@
+/*
+<:copyright-gpl
+ Copyright 2002 Broadcom Corp. All Rights Reserved.
@@ -1413,6 +1413,7 @@ diff -urN linux-2.6.17/arch/mips/brcm-boards/bcm963xx/board.c linux-2.6.17-brcm6
+#include <linux/sched.h>
+#include <linux/list.h>
+#include <linux/if.h>
++#include <linux/spinlock.h>
+
+#include <bcm_map_part.h>
+#include <board.h>
@@ -1423,6 +1424,8 @@ diff -urN linux-2.6.17/arch/mips/brcm-boards/bcm963xx/board.c linux-2.6.17-brcm6
+#include "board.h"
+#include "bcm_map_part.h"
+
++static DEFINE_SPINLOCK(board_lock);
++
+/* Typedefs. */
+#if defined (NON_CONSECUTIVE_MAC)
+// used to be the last octet. Now changed to the first 5 bits of the the forth octet
@@ -1827,8 +1830,9 @@ diff -urN linux-2.6.17/arch/mips/brcm-boards/bcm963xx/board.c linux-2.6.17-brcm6
+ int i;
+
+ /* Disable interrupts. */
-+ cli();
-+
++ //cli();
++ spin_lock_irq(&board_lock);
++
+ /* Reset all blocks. */
+ PERF->BlockSoftReset &= ~BSR_ALL_BLOCKS;
+ for( i = 0; i < 1000000; i++ )
@@ -5379,8 +5383,8 @@ diff -urN linux-2.6.17/arch/mips/brcm-boards/bcm963xx/boardparms.c linux-2.6.17-
+
diff -urN linux-2.6.17/arch/mips/brcm-boards/bcm963xx/boardparms.h linux-2.6.17-brcm63xx/arch/mips/brcm-boards/bcm963xx/boardparms.h
--- linux-2.6.17/arch/mips/brcm-boards/bcm963xx/boardparms.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.17-brcm63xx/arch/mips/brcm-boards/bcm963xx/boardparms.h 2006-07-13 19:11:33.000000000 +0200
-@@ -0,0 +1,766 @@
++++ linux-2.6.17-brcm63xx/arch/mips/brcm-boards/bcm963xx/boardparms.h 2006-07-25 10:18:49.000000000 +0200
+@@ -0,0 +1,758 @@
+/*
+<:copyright-gpl
+
@@ -5413,10 +5417,6 @@ diff -urN linux-2.6.17/arch/mips/brcm-boards/bcm963xx/boardparms.h linux-2.6.17-
+#if !defined(_BOARDPARMS_H)
+#define _BOARDPARMS_H
+
-+#if __cplusplus
-+extern "C" {
-+#endif
-+
+/* Return codes. */
+#define BP_SUCCESS 0
+#define BP_BOARD_ID_NOT_FOUND 1
@@ -6141,10 +6141,6 @@ diff -urN linux-2.6.17/arch/mips/brcm-boards/bcm963xx/boardparms.h linux-2.6.17-
+
+#endif /* __ASSEMBLER__ */
+
-+#if __cplusplus
-+}
-+#endif
-+
+#endif /* _BOARDPARMS_H */
+
diff -urN linux-2.6.17/arch/mips/brcm-boards/bcm963xx/cfiflash.c linux-2.6.17-brcm63xx/arch/mips/brcm-boards/bcm963xx/cfiflash.c
@@ -6845,8 +6841,8 @@ diff -urN linux-2.6.17/arch/mips/brcm-boards/bcm963xx/cfiflash.c linux-2.6.17-br
+}
diff -urN linux-2.6.17/arch/mips/brcm-boards/bcm963xx/cfiflash.h linux-2.6.17-brcm63xx/arch/mips/brcm-boards/bcm963xx/cfiflash.h
--- linux-2.6.17/arch/mips/brcm-boards/bcm963xx/cfiflash.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.17-brcm63xx/arch/mips/brcm-boards/bcm963xx/cfiflash.h 2006-07-13 19:11:33.000000000 +0200
-@@ -0,0 +1,150 @@
++++ linux-2.6.17-brcm63xx/arch/mips/brcm-boards/bcm963xx/cfiflash.h 2006-07-25 10:19:20.000000000 +0200
+@@ -0,0 +1,142 @@
+/************************************************************************/
+/* */
+/* AMD CFI Enabled Flash Memory Drivers */
@@ -6881,10 +6877,6 @@ diff -urN linux-2.6.17/arch/mips/brcm-boards/bcm963xx/cfiflash.h linux-2.6.17-br
+#ifndef _CFIFLASH_H
+#define _CFIFLASH_H
+
-+#if defined __cplusplus
-+extern "C" {
-+#endif
-+
+/* include board/CPU specific definitions */
+#include "bcmtypes.h"
+#include "board.h"
@@ -6992,15 +6984,11 @@ diff -urN linux-2.6.17/arch/mips/brcm-boards/bcm963xx/cfiflash.h linux-2.6.17-br
+extern unsigned char *flash_get_memptr(WORD sector);
+extern int flash_get_blk(int addr);
+
-+#if defined __cplusplus
-+}
-+#endif
-+
+#endif
diff -urN linux-2.6.17/arch/mips/brcm-boards/bcm963xx/irq.c linux-2.6.17-brcm63xx/arch/mips/brcm-boards/bcm963xx/irq.c
--- linux-2.6.17/arch/mips/brcm-boards/bcm963xx/irq.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.17-brcm63xx/arch/mips/brcm-boards/bcm963xx/irq.c 2006-07-14 15:31:35.000000000 +0200
-@@ -0,0 +1,294 @@
++++ linux-2.6.17-brcm63xx/arch/mips/brcm-boards/bcm963xx/irq.c 2006-07-25 10:58:52.000000000 +0200
+@@ -0,0 +1,299 @@
+/*
+<:copyright-gpl
+ Copyright 2002 Broadcom Corp. All Rights Reserved.
@@ -7033,6 +7021,7 @@ diff -urN linux-2.6.17/arch/mips/brcm-boards/bcm963xx/irq.c linux-2.6.17-brcm63x
+#include <linux/kernel.h>
+#include <linux/slab.h>
+#include <linux/module.h>
++#include <linux/spinlock.h>
+
+#include <asm/irq.h>
+#include <asm/mipsregs.h>
@@ -7041,6 +7030,8 @@ diff -urN linux-2.6.17/arch/mips/brcm-boards/bcm963xx/irq.c linux-2.6.17-brcm63x
+#include <bcm_map_part.h>
+#include <bcm_intr.h>
+
++static DEFINE_SPINLOCK(irq_lock);
++
+static void irq_dispatch_int(struct pt_regs *regs)
+{
+ unsigned int pendingIrqs;
@@ -7094,7 +7085,8 @@ diff -urN linux-2.6.17/arch/mips/brcm-boards/bcm963xx/irq.c linux-2.6.17-brcm63x
+ irq_dispatch_ext(INTERRUPT_ID_EXTERNAL_2, regs);
+ else if (cause & CAUSEF_IP6)
+ irq_dispatch_ext(INTERRUPT_ID_EXTERNAL_3, regs);
-+ cli();
++ //cli();
++ spin_lock_irq(&irq_lock);
+ }
+}
+
@@ -7114,7 +7106,8 @@ diff -urN linux-2.6.17/arch/mips/brcm-boards/bcm963xx/irq.c linux-2.6.17-brcm63x
+ irq_dispatch_ext(INTERRUPT_ID_EXTERNAL_2, regs);
+ else if (cause & CAUSEF_IP6)
+ irq_dispatch_ext(INTERRUPT_ID_EXTERNAL_3, regs);
-+ cli();
++ //cli();
++ spin_lock_irq(&irq_lock);
+ }
+}
+
@@ -7740,7 +7733,7 @@ diff -urN linux-2.6.17/arch/mips/brcm-boards/bcm963xx/prom.c linux-2.6.17-brcm63
+
diff -urN linux-2.6.17/arch/mips/brcm-boards/bcm963xx/ser_init.c linux-2.6.17-brcm63xx/arch/mips/brcm-boards/bcm963xx/ser_init.c
--- linux-2.6.17/arch/mips/brcm-boards/bcm963xx/ser_init.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.17-brcm63xx/arch/mips/brcm-boards/bcm963xx/ser_init.c 2006-07-13 19:11:33.000000000 +0200
++++ linux-2.6.17-brcm63xx/arch/mips/brcm-boards/bcm963xx/ser_init.c 2006-07-25 10:51:12.000000000 +0200
@@ -0,0 +1,180 @@
+/*
+<:copyright-gpl
@@ -7909,7 +7902,7 @@ diff -urN linux-2.6.17/arch/mips/brcm-boards/bcm963xx/ser_init.c linux-2.6.17-br
+ return (uStatus & RXFIFONE);
+}
+
-+#if CONFIG_REMOTE_DEBUG
++#if defined (CONFIG_REMOTE_DEBUG)
+/* Prevent other code from writing to the serial port */
+void _putc(char c) { }
+void _puts(const char *ptr) { }