From 4c45806d30714e8ccc96f204d03326c2e533f409 Mon Sep 17 00:00:00 2001
From: florian <florian@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Date: Tue, 1 Mar 2011 16:02:38 +0000
Subject: [PATCH] [brcm63xx] fix patches after 2.6.37 update, patch from
 KanjiMonster

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@25810 3c298f89-4303-0410-b956-a3cf2f4a3e73
---
 .../040-bcm963xx_flashmap.patch               | 34 ++++---------------
 .../patches-2.6.37/141-led_count.patch        | 23 +++++++++++++
 2 files changed, 29 insertions(+), 28 deletions(-)
 create mode 100644 target/linux/brcm63xx/patches-2.6.37/141-led_count.patch

diff --git a/target/linux/brcm63xx/patches-2.6.37/040-bcm963xx_flashmap.patch b/target/linux/brcm63xx/patches-2.6.37/040-bcm963xx_flashmap.patch
index d08b9b12e..daec18162 100644
--- a/target/linux/brcm63xx/patches-2.6.37/040-bcm963xx_flashmap.patch
+++ b/target/linux/brcm63xx/patches-2.6.37/040-bcm963xx_flashmap.patch
@@ -1,14 +1,14 @@
-From b1096781081b328fdac0e14a726ea04c2e9545c7 Mon Sep 17 00:00:00 2001
+From a4d005c91d403d9f3d0272db6cc46202c06ec774 Mon Sep 17 00:00:00 2001
 From: Axel Gembe <ago@bastart.eu.org>
 Date: Mon, 12 May 2008 18:54:09 +0200
 Subject: [PATCH] bcm963xx: flashmap support
 
 Signed-off-by: Axel Gembe <ago@bastart.eu.org>
 ---
- arch/mips/bcm63xx/boards/board_bcm963xx.c |   19 +---------------
- drivers/mtd/maps/bcm963xx-flash.c         |   34 ++++++++++++++++++++++++----
- drivers/mtd/redboot.c                     |   13 ++++++++--
- 3 files changed, 40 insertions(+), 26 deletions(-)
+ arch/mips/bcm63xx/boards/board_bcm963xx.c |   19 +----------------
+ drivers/mtd/maps/bcm963xx-flash.c         |   32 ++++++++++++++++++++++++----
+ drivers/mtd/redboot.c                     |   13 +++++++++--
+ 3 files changed, 38 insertions(+), 26 deletions(-)
 
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -73,29 +73,7 @@ Signed-off-by: Axel Gembe <ago@bastart.eu.org>
  static struct mtd_partition *parsed_parts;
  
  static struct mtd_info *bcm963xx_mtd_info;
-@@ -56,7 +66,7 @@ static int parse_cfe_partitions(struct m
- 	unsigned int rootfsaddr, kerneladdr, spareaddr;
- 	unsigned int rootfslen, kernellen, sparelen, totallen;
- 	int namelen = 0;
--	int i;
-+	int i, offset;
- 	char *boardid;
- 	char *tagversion;
- 
-@@ -84,9 +94,11 @@ static int parse_cfe_partitions(struct m
- 
- 	kerneladdr = kerneladdr - BCM63XX_EXTENDED_SIZE;
- 	rootfsaddr = kerneladdr + kernellen;
-+
-+	rootfslen = ( ( rootfslen % master->erasesize ) > 0 ? (((rootfslen / master->erasesize) + 1 ) * master->erasesize) : rootfslen);
-+
- 	spareaddr = roundup(totallen, master->erasesize) + master->erasesize;
- 	sparelen = master->size - spareaddr - master->erasesize;
--	rootfslen = spareaddr - rootfsaddr;
- 
- 	/* Determine number of partitions */
- 	namelen = 8;
-@@ -214,9 +226,21 @@ static int bcm963xx_probe(struct platfor
+@@ -214,9 +224,21 @@ static int bcm963xx_probe(struct platfor
  			}
  		}
  	} else {
diff --git a/target/linux/brcm63xx/patches-2.6.37/141-led_count.patch b/target/linux/brcm63xx/patches-2.6.37/141-led_count.patch
new file mode 100644
index 000000000..baf092053
--- /dev/null
+++ b/target/linux/brcm63xx/patches-2.6.37/141-led_count.patch
@@ -0,0 +1,23 @@
+--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
+@@ -881,6 +881,7 @@ int __init board_register_devices(void)
+ {
+ 	u32 val;
+ 	int button_count = 0;
++	int led_count = 0;
+ 
+ 	if (board.has_uart0)
+ 		bcm63xx_uart_register(0);
+@@ -922,7 +923,11 @@ int __init board_register_devices(void)
+ 
+ 	platform_device_register_simple("GPIODEV", 0, &gpiodev_resource, 1);
+ 
+-	bcm63xx_led_data.num_leds = ARRAY_SIZE(board.leds);
++	/* count number of LEDs defined by this device */
++	while (led_count < ARRAY_SIZE(board.leds) && board.leds[led_count].name)
++	  led_count++;
++
++	bcm63xx_led_data.num_leds = led_count;
+ 	bcm63xx_led_data.leds = board.leds;
+ 
+ 	platform_device_register(&bcm63xx_gpio_leds);
-- 
2.20.1