From 77e68d6aa06e3d741d02c227db7c4a6306fd0204 Mon Sep 17 00:00:00 2001
From: Peter Denison <openwrt@marshadder.org>
Date: Thu, 21 Jun 2007 23:37:39 +0000
Subject: [PATCH] brcm43xx: Update to 2.6.22-rc5 target

SVN-Revision: 7697
---
 .../patches/100-board_support.patch           | 77 +++++++++++--------
 .../brcm47xx-2.6/patches/110-flash_map.patch  | 25 +++---
 .../patches/120-b44_ssb_support.patch         | 74 +++++++++---------
 .../patches/130-remove_scache.patch           | 34 ++++----
 .../patches/140-export_uevent_handler.patch   |  7 +-
 .../brcm47xx-2.6/patches/150-cpu_fixes.patch  | 35 +++++----
 .../patches/160-kmap_coherent.patch           | 22 ++++--
 .../brcm47xx-2.6/patches/170-cpu_wait.patch   | 11 +--
 8 files changed, 157 insertions(+), 128 deletions(-)

diff --git a/target/linux/brcm47xx-2.6/patches/100-board_support.patch b/target/linux/brcm47xx-2.6/patches/100-board_support.patch
index d80a4fbc8b..b67b8d5e5e 100644
--- a/target/linux/brcm47xx-2.6/patches/100-board_support.patch
+++ b/target/linux/brcm47xx-2.6/patches/100-board_support.patch
@@ -1,6 +1,7 @@
-diff -urN linux.old/arch/mips/Kconfig linux.dev/arch/mips/Kconfig
---- linux.old/arch/mips/Kconfig	2007-01-26 00:51:33.000000000 +0100
-+++ linux.dev/arch/mips/Kconfig	2007-01-26 00:51:18.000000000 +0100
+Index: linux-2.6.22-rc4/arch/mips/Kconfig
+===================================================================
+--- linux-2.6.22-rc4.orig/arch/mips/Kconfig	2007-06-10 21:32:36.000000000 +0100
++++ linux-2.6.22-rc4/arch/mips/Kconfig	2007-06-10 21:33:12.000000000 +0100
 @@ -4,6 +4,10 @@
  	# Horrible source of confusion.  Die, die, die ...
  	select EMBEDDED
@@ -12,7 +13,7 @@ diff -urN linux.old/arch/mips/Kconfig linux.dev/arch/mips/Kconfig
  mainmenu "Linux/MIPS Kernel Configuration"
  
  menu "Machine selection"
-@@ -240,6 +240,23 @@
+@@ -126,6 +130,23 @@
  	 Members include the Acer PICA, MIPS Magnum 4000, MIPS Millenium and
  	 Olivetti M700-10 workstations.
  
@@ -36,9 +37,10 @@ diff -urN linux.old/arch/mips/Kconfig linux.dev/arch/mips/Kconfig
  config LASAT
  	bool "LASAT Networks platforms"
  	select DMA_NONCOHERENT
-diff -urN linux.old/arch/mips/kernel/cpu-probe.c linux.dev/arch/mips/kernel/cpu-probe.c
---- linux.old/arch/mips/kernel/cpu-probe.c	2007-01-26 00:51:33.000000000 +0100
-+++ linux.dev/arch/mips/kernel/cpu-probe.c	2007-01-25 23:34:01.000000000 +0100
+Index: linux-2.6.22-rc4/arch/mips/kernel/cpu-probe.c
+===================================================================
+--- linux-2.6.22-rc4.orig/arch/mips/kernel/cpu-probe.c	2007-06-10 21:32:13.000000000 +0100
++++ linux-2.6.22-rc4/arch/mips/kernel/cpu-probe.c	2007-06-10 21:33:12.000000000 +0100
 @@ -711,6 +711,28 @@
  }
  
@@ -78,9 +80,10 @@ diff -urN linux.old/arch/mips/kernel/cpu-probe.c linux.dev/arch/mips/kernel/cpu-
  	case PRID_COMP_SANDCRAFT:
  		cpu_probe_sandcraft(c);
  		break;
-diff -urN linux.old/arch/mips/kernel/proc.c linux.dev/arch/mips/kernel/proc.c
---- linux.old/arch/mips/kernel/proc.c	2007-01-26 00:51:33.000000000 +0100
-+++ linux.dev/arch/mips/kernel/proc.c	2007-01-25 23:34:01.000000000 +0100
+Index: linux-2.6.22-rc4/arch/mips/kernel/proc.c
+===================================================================
+--- linux-2.6.22-rc4.orig/arch/mips/kernel/proc.c	2007-06-10 21:32:13.000000000 +0100
++++ linux-2.6.22-rc4/arch/mips/kernel/proc.c	2007-06-10 21:33:12.000000000 +0100
 @@ -83,6 +83,8 @@
  	[CPU_VR4181]	= "NEC VR4181",
  	[CPU_VR4181A]	= "NEC VR4181A",
@@ -90,10 +93,11 @@ diff -urN linux.old/arch/mips/kernel/proc.c linux.dev/arch/mips/kernel/proc.c
  	[CPU_PR4450]	= "Philips PR4450",
  };
  
-diff -urN linux.old/arch/mips/Makefile linux.dev/arch/mips/Makefile
---- linux.old/arch/mips/Makefile	2007-01-26 00:51:33.000000000 +0100
-+++ linux.dev/arch/mips/Makefile	2007-01-25 23:34:01.000000000 +0100
-@@ -576,6 +576,18 @@
+Index: linux-2.6.22-rc4/arch/mips/Makefile
+===================================================================
+--- linux-2.6.22-rc4.orig/arch/mips/Makefile	2007-06-10 21:32:56.000000000 +0100
++++ linux-2.6.22-rc4/arch/mips/Makefile	2007-06-10 21:33:12.000000000 +0100
+@@ -560,6 +560,18 @@
  load-$(CONFIG_SIBYTE_BIGSUR)	:= 0xffffffff80100000
  
  #
@@ -112,9 +116,10 @@ diff -urN linux.old/arch/mips/Makefile linux.dev/arch/mips/Makefile
  # SNI RM
  #
  core-$(CONFIG_SNI_RM)		+= arch/mips/sni/
-diff -urN linux.old/arch/mips/mm/tlbex.c linux.dev/arch/mips/mm/tlbex.c
---- linux.old/arch/mips/mm/tlbex.c	2007-01-26 00:51:33.000000000 +0100
-+++ linux.dev/arch/mips/mm/tlbex.c	2007-01-25 23:34:01.000000000 +0100
+Index: linux-2.6.22-rc4/arch/mips/mm/tlbex.c
+===================================================================
+--- linux-2.6.22-rc4.orig/arch/mips/mm/tlbex.c	2007-06-10 21:32:35.000000000 +0100
++++ linux-2.6.22-rc4/arch/mips/mm/tlbex.c	2007-06-10 21:33:12.000000000 +0100
 @@ -892,6 +892,8 @@
  	case CPU_4KSC:
  	case CPU_20KC:
@@ -124,9 +129,10 @@ diff -urN linux.old/arch/mips/mm/tlbex.c linux.dev/arch/mips/mm/tlbex.c
  		tlbw(p);
  		break;
  
-diff -urN linux.old/drivers/Kconfig linux.dev/drivers/Kconfig
---- linux.old/drivers/Kconfig	2007-01-26 00:51:33.000000000 +0100
-+++ linux.dev/drivers/Kconfig	2007-01-25 23:34:01.000000000 +0100
+Index: linux-2.6.22-rc4/drivers/Kconfig
+===================================================================
+--- linux-2.6.22-rc4.orig/drivers/Kconfig	2007-06-10 21:32:13.000000000 +0100
++++ linux-2.6.22-rc4/drivers/Kconfig	2007-06-10 21:33:12.000000000 +0100
 @@ -56,6 +56,8 @@
  
  source "drivers/hwmon/Kconfig"
@@ -136,17 +142,19 @@ diff -urN linux.old/drivers/Kconfig linux.dev/drivers/Kconfig
  source "drivers/mfd/Kconfig"
  
  source "drivers/media/Kconfig"
-diff -urN linux.old/drivers/Makefile linux.dev/drivers/Makefile
---- linux.old/drivers/Makefile	2007-01-26 00:51:33.000000000 +0100
-+++ linux.dev/drivers/Makefile	2007-01-25 23:34:01.000000000 +0100
+Index: linux-2.6.22-rc4/drivers/Makefile
+===================================================================
+--- linux-2.6.22-rc4.orig/drivers/Makefile	2007-06-10 21:32:14.000000000 +0100
++++ linux-2.6.22-rc4/drivers/Makefile	2007-06-10 21:33:12.000000000 +0100
 @@ -81,3 +81,4 @@
  obj-$(CONFIG_DMA_ENGINE)	+= dma/
  obj-$(CONFIG_HID)		+= hid/
  obj-$(CONFIG_PPC_PS3)		+= ps3/
 +obj-$(CONFIG_SSB)		+= ssb/
-diff -urN linux.old/include/asm-mips/bootinfo.h linux.dev/include/asm-mips/bootinfo.h
---- linux.old/include/asm-mips/bootinfo.h	2007-01-26 00:51:33.000000000 +0100
-+++ linux.dev/include/asm-mips/bootinfo.h	2007-01-25 23:34:01.000000000 +0100
+Index: linux-2.6.22-rc4/include/asm-mips/bootinfo.h
+===================================================================
+--- linux-2.6.22-rc4.orig/include/asm-mips/bootinfo.h	2007-06-10 21:32:14.000000000 +0100
++++ linux-2.6.22-rc4/include/asm-mips/bootinfo.h	2007-06-10 21:33:12.000000000 +0100
 @@ -213,6 +213,12 @@
  #define MACH_GROUP_NEC_EMMA2RH 25	/* NEC EMMA2RH (was 23)		*/
  #define  MACH_NEC_MARKEINS	0	/* NEC EMMA2RH Mark-eins	*/
@@ -160,9 +168,10 @@ diff -urN linux.old/include/asm-mips/bootinfo.h linux.dev/include/asm-mips/booti
  #define CL_SIZE			COMMAND_LINE_SIZE
  
  const char *get_system_type(void);
-diff -urN linux.old/include/asm-mips/cpu.h linux.dev/include/asm-mips/cpu.h
---- linux.old/include/asm-mips/cpu.h	2007-01-26 00:51:33.000000000 +0100
-+++ linux.dev/include/asm-mips/cpu.h	2007-01-25 23:34:01.000000000 +0100
+Index: linux-2.6.22-rc4/include/asm-mips/cpu.h
+===================================================================
+--- linux-2.6.22-rc4.orig/include/asm-mips/cpu.h	2007-06-10 21:32:14.000000000 +0100
++++ linux-2.6.22-rc4/include/asm-mips/cpu.h	2007-06-10 21:33:12.000000000 +0100
 @@ -104,6 +104,13 @@
  #define PRID_IMP_SR71000        0x0400
  
@@ -188,10 +197,11 @@ diff -urN linux.old/include/asm-mips/cpu.h linux.dev/include/asm-mips/cpu.h
  
  /*
   * ISA Level encodings
-diff -urN linux.old/include/linux/pci_ids.h linux.dev/include/linux/pci_ids.h
---- linux.old/include/linux/pci_ids.h	2007-01-26 00:51:33.000000000 +0100
-+++ linux.dev/include/linux/pci_ids.h	2007-01-25 23:34:01.000000000 +0100
-@@ -1981,6 +1981,7 @@
+Index: linux-2.6.22-rc4/include/linux/pci_ids.h
+===================================================================
+--- linux-2.6.22-rc4.orig/include/linux/pci_ids.h	2007-06-10 21:32:14.000000000 +0100
++++ linux-2.6.22-rc4/include/linux/pci_ids.h	2007-06-10 21:33:12.000000000 +0100
+@@ -1991,6 +1991,7 @@
  #define PCI_DEVICE_ID_TIGON3_5906M	0x1713
  #define PCI_DEVICE_ID_BCM4401		0x4401
  #define PCI_DEVICE_ID_BCM4401B0		0x4402
@@ -199,4 +209,3 @@ diff -urN linux.old/include/linux/pci_ids.h linux.dev/include/linux/pci_ids.h
  
  #define PCI_VENDOR_ID_TOPIC		0x151f
  #define PCI_DEVICE_ID_TOPIC_TP560	0x0000
-
diff --git a/target/linux/brcm47xx-2.6/patches/110-flash_map.patch b/target/linux/brcm47xx-2.6/patches/110-flash_map.patch
index 13f36c2914..74fe01a25f 100644
--- a/target/linux/brcm47xx-2.6/patches/110-flash_map.patch
+++ b/target/linux/brcm47xx-2.6/patches/110-flash_map.patch
@@ -1,7 +1,8 @@
-diff -urN linux.old/drivers/mtd/maps/Kconfig linux.dev/drivers/mtd/maps/Kconfig
---- linux.old/drivers/mtd/maps/Kconfig	2006-12-11 20:32:53.000000000 +0100
-+++ linux.dev/drivers/mtd/maps/Kconfig	2007-01-03 02:26:02.000000000 +0100
-@@ -326,6 +326,12 @@
+Index: linux-2.6.22-rc4/drivers/mtd/maps/Kconfig
+===================================================================
+--- linux-2.6.22-rc4.orig/drivers/mtd/maps/Kconfig	2007-06-10 21:32:13.000000000 +0100
++++ linux-2.6.22-rc4/drivers/mtd/maps/Kconfig	2007-06-10 21:33:14.000000000 +0100
+@@ -358,6 +358,12 @@
  	  Mapping for the Flaga digital module. If you don't have one, ignore
  	  this setting.
  
@@ -11,13 +12,14 @@ diff -urN linux.old/drivers/mtd/maps/Kconfig linux.dev/drivers/mtd/maps/Kconfig
 +	help
 +	  Support for the flash chips on the BCM947xx board.
 +	  
- config MTD_BEECH
- 	tristate "CFI Flash device mapped on IBM 405LP Beech"
- 	depends on MTD_CFI && BEECH
-diff -urN linux.old/drivers/mtd/maps/Makefile linux.dev/drivers/mtd/maps/Makefile
---- linux.old/drivers/mtd/maps/Makefile	2006-12-11 20:32:53.000000000 +0100
-+++ linux.dev/drivers/mtd/maps/Makefile	2007-01-03 02:26:02.000000000 +0100
-@@ -31,6 +31,7 @@
+ config MTD_WALNUT
+ 	tristate "Flash device mapped on IBM 405GP Walnut"
+ 	depends on MTD_JEDECPROBE && WALNUT
+Index: linux-2.6.22-rc4/drivers/mtd/maps/Makefile
+===================================================================
+--- linux-2.6.22-rc4.orig/drivers/mtd/maps/Makefile	2007-06-10 21:32:13.000000000 +0100
++++ linux-2.6.22-rc4/drivers/mtd/maps/Makefile	2007-06-10 21:33:14.000000000 +0100
+@@ -33,6 +33,7 @@
  obj-$(CONFIG_MTD_PCMCIA)	+= pcmciamtd.o
  obj-$(CONFIG_MTD_RPXLITE)	+= rpxlite.o
  obj-$(CONFIG_MTD_TQM8XXL)	+= tqm8xxl.o
@@ -25,4 +27,3 @@ diff -urN linux.old/drivers/mtd/maps/Makefile linux.dev/drivers/mtd/maps/Makefil
  obj-$(CONFIG_MTD_SA1100)	+= sa1100-flash.o
  obj-$(CONFIG_MTD_IPAQ)		+= ipaq-flash.o
  obj-$(CONFIG_MTD_SBC_GXX)	+= sbc_gxx.o
-
diff --git a/target/linux/brcm47xx-2.6/patches/120-b44_ssb_support.patch b/target/linux/brcm47xx-2.6/patches/120-b44_ssb_support.patch
index 5b44774f94..fcda25363a 100644
--- a/target/linux/brcm47xx-2.6/patches/120-b44_ssb_support.patch
+++ b/target/linux/brcm47xx-2.6/patches/120-b44_ssb_support.patch
@@ -1,6 +1,7 @@
-diff -urN linux.old/drivers/net/b44.c linux.dev/drivers/net/b44.c
---- linux.old/drivers/net/b44.c	2006-12-11 20:32:53.000000000 +0100
-+++ linux.dev/drivers/net/b44.c	2007-01-03 02:26:02.000000000 +0100
+Index: linux-2.6.22-rc4/drivers/net/b44.c
+===================================================================
+--- linux-2.6.22-rc4.orig/drivers/net/b44.c	2007-06-10 21:32:13.000000000 +0100
++++ linux-2.6.22-rc4/drivers/net/b44.c	2007-06-10 21:33:15.000000000 +0100
 @@ -1,7 +1,9 @@
 -/* b44.c: Broadcom 4400 device driver.
 +/* b44.c: Broadcom 4400/47xx device driver.
@@ -59,9 +60,9 @@ diff -urN linux.old/drivers/net/b44.c linux.dev/drivers/net/b44.c
 -
  static void b44_halt(struct b44 *);
  static void b44_init_rings(struct b44 *);
-
+ 
 @@ -118,6 +115,7 @@
-
+ 
  static int dma_desc_align_mask;
  static int dma_desc_sync_size;
 +static int instance;
@@ -200,36 +201,37 @@ diff -urN linux.old/drivers/net/b44.c linux.dev/drivers/net/b44.c
 -	bw32(bp, B44_SBTMSLOW, (SBTMSLOW_CLOCK | SBTMSLOW_FGC));
 -	br32(bp, B44_SBTMSLOW);
 -	udelay(1);
--
++	bw32(bp, B44_CAM_CTRL, (CAM_CTRL_READ |
++			    (index << CAM_CTRL_INDEX_SHIFT)));
+ 
 -	bw32(bp, B44_SBTMSLOW, (SBTMSLOW_CLOCK));
 -	br32(bp, B44_SBTMSLOW);
 -	udelay(1);
 -}
-+	bw32(bp, B44_CAM_CTRL, (CAM_CTRL_READ |
-+			    (index << CAM_CTRL_INDEX_SHIFT)));
++	b44_wait_bit(bp, B44_CAM_CTRL, CAM_CTRL_BUSY, 100, 1);
  
 -static int ssb_core_unit(struct b44 *bp)
 -{
 -#if 0
 -	u32 val = br32(bp, B44_SBADMATCH0);
 -	u32 base;
-+	b44_wait_bit(bp, B44_CAM_CTRL, CAM_CTRL_BUSY, 100, 1);
++	val = br32(bp, B44_CAM_DATA_LO);
  
 -	type = val & SBADMATCH0_TYPE_MASK;
 -	switch (type) {
 -	case 0:
 -		base = val & SBADMATCH0_BS0_MASK;
 -		break;
-+	val = br32(bp, B44_CAM_DATA_LO);
- 
--	case 1:
--		base = val & SBADMATCH0_BS1_MASK;
--		break;
 +	data[2] = (val >> 24) & 0xFF;
 +	data[3] = (val >> 16) & 0xFF;
 +	data[4] = (val >> 8) & 0xFF;
 +	data[5] = (val >> 0) & 0xFF;
  
+-	case 1:
+-		base = val & SBADMATCH0_BS1_MASK;
+-		break;
++	val = br32(bp, B44_CAM_DATA_HI);
+ 
 -	case 2:
 -	default:
 -		base = val & SBADMATCH0_BS2_MASK;
@@ -238,8 +240,7 @@ diff -urN linux.old/drivers/net/b44.c linux.dev/drivers/net/b44.c
 -#endif
 -	return 0;
 -}
-+	val = br32(bp, B44_CAM_DATA_HI);
- 
+-
 -static int ssb_is_core_up(struct b44 *bp)
 -{
 -	return ((br32(bp, B44_SBTMSLOW) & (SBTMSLOW_RESET | SBTMSLOW_REJECT | SBTMSLOW_CLOCK))
@@ -487,7 +488,7 @@ diff -urN linux.old/drivers/net/b44.c linux.dev/drivers/net/b44.c
  		} else {
  			struct sk_buff *copy_skb;
  
-@@ -986,23 +932,23 @@
+@@ -985,23 +931,23 @@
  		goto err_out;
  	}
  
@@ -1098,13 +1099,7 @@ diff -urN linux.old/drivers/net/b44.c linux.dev/drivers/net/b44.c
 -	if (err)
 -		goto out;
 +	bp->dma_offset = ssb_dma_translation(sdev);
- 
--	bp->dev->dev_addr[0] = eeprom[79];
--	bp->dev->dev_addr[1] = eeprom[78];
--	bp->dev->dev_addr[2] = eeprom[81];
--	bp->dev->dev_addr[3] = eeprom[80];
--	bp->dev->dev_addr[4] = eeprom[83];
--	bp->dev->dev_addr[5] = eeprom[82];
++
 +	switch (instance) {
 +	case 1:
 +	       addr = sdev->bus->sprom.r1.et0mac;
@@ -1115,7 +1110,13 @@ diff -urN linux.old/drivers/net/b44.c linux.dev/drivers/net/b44.c
 +	       bp->phy_addr = sdev->bus->sprom.r1.et1phyaddr;
 +	       break;
 +	}
-+
+ 
+-	bp->dev->dev_addr[0] = eeprom[79];
+-	bp->dev->dev_addr[1] = eeprom[78];
+-	bp->dev->dev_addr[2] = eeprom[81];
+-	bp->dev->dev_addr[3] = eeprom[80];
+-	bp->dev->dev_addr[4] = eeprom[83];
+-	bp->dev->dev_addr[5] = eeprom[82];
 +	memcpy(bp->dev->dev_addr, addr, 6);
  
  	if (!is_valid_ether_addr(&bp->dev->dev_addr[0])){
@@ -1139,11 +1140,11 @@ diff -urN linux.old/drivers/net/b44.c linux.dev/drivers/net/b44.c
  	/* XXX - really required?
  	   bp->flags |= B44_FLAG_BUGGY_TXPTR;
 -         */
-+	*/
- 
+-
 - 	if (ssb_get_core_rev(bp) >= 7)
 - 		bp->flags |= B44_FLAG_B0_ANDLATER;
--
++	*/
+ 
 -out:
  	return err;
  }
@@ -1351,7 +1352,7 @@ diff -urN linux.old/drivers/net/b44.c linux.dev/drivers/net/b44.c
 -	struct net_device *dev = pci_get_drvdata(pdev);
 +	struct net_device *dev = ssb_get_drvdata(pdev);
  	struct b44 *bp = netdev_priv(dev);
-	int rc = 0;
+ 	int rc = 0;
  
 -	pci_restore_state(pdev);
 -	rc = pci_enable_device(pdev);
@@ -1404,9 +1405,10 @@ diff -urN linux.old/drivers/net/b44.c linux.dev/drivers/net/b44.c
  }
  
  module_init(b44_init);
-diff -urN linux.old/drivers/net/b44.h linux.dev/drivers/net/b44.h
---- linux.old/drivers/net/b44.h	2006-12-11 20:32:53.000000000 +0100
-+++ linux.dev/drivers/net/b44.h	2007-01-03 02:26:02.000000000 +0100
+Index: linux-2.6.22-rc4/drivers/net/b44.h
+===================================================================
+--- linux-2.6.22-rc4.orig/drivers/net/b44.h	2007-06-10 21:32:13.000000000 +0100
++++ linux-2.6.22-rc4/drivers/net/b44.h	2007-06-10 21:33:15.000000000 +0100
 @@ -129,6 +129,7 @@
  #define  RXCONFIG_FLOW		0x00000020 /* Flow Control Enable */
  #define  RXCONFIG_FLOW_ACCEPT	0x00000040 /* Accept Unicast Flow Control Frame */
@@ -1530,9 +1532,10 @@ diff -urN linux.old/drivers/net/b44.h linux.dev/drivers/net/b44.h
  	struct net_device	*dev;
  
  	dma_addr_t		rx_ring_dma, tx_ring_dma;
-diff -urN linux.old/drivers/net/Kconfig linux.dev/drivers/net/Kconfig
---- linux.old/drivers/net/Kconfig	2007-01-03 02:25:09.000000000 +0100
-+++ linux.dev/drivers/net/Kconfig	2007-01-03 02:26:02.000000000 +0100
+Index: linux-2.6.22-rc4/drivers/net/Kconfig
+===================================================================
+--- linux-2.6.22-rc4.orig/drivers/net/Kconfig	2007-06-10 21:32:48.000000000 +0100
++++ linux-2.6.22-rc4/drivers/net/Kconfig	2007-06-10 21:33:15.000000000 +0100
 @@ -1511,7 +1511,7 @@
  
  config B44
@@ -1542,4 +1545,3 @@ diff -urN linux.old/drivers/net/Kconfig linux.dev/drivers/net/Kconfig
  	select MII
  	help
  	  If you have a network (Ethernet) controller of this type, say Y and
-
diff --git a/target/linux/brcm47xx-2.6/patches/130-remove_scache.patch b/target/linux/brcm47xx-2.6/patches/130-remove_scache.patch
index 1f3b250c42..ed821843be 100644
--- a/target/linux/brcm47xx-2.6/patches/130-remove_scache.patch
+++ b/target/linux/brcm47xx-2.6/patches/130-remove_scache.patch
@@ -1,15 +1,16 @@
-diff -urN linux-2.6.19.ref/arch/mips/Kconfig linux-2.6.19/arch/mips/Kconfig
---- linux-2.6.19.ref/arch/mips/Kconfig	2006-12-04 21:33:48.000000000 +0100
-+++ linux-2.6.19/arch/mips/Kconfig	2006-12-04 21:34:04.000000000 +0100
-@@ -315,7 +315,6 @@
+Index: linux-2.6.22-rc4/arch/mips/Kconfig
+===================================================================
+--- linux-2.6.22-rc4.orig/arch/mips/Kconfig	2007-06-10 21:33:12.000000000 +0100
++++ linux-2.6.22-rc4/arch/mips/Kconfig	2007-06-10 21:33:17.000000000 +0100
+@@ -202,7 +202,6 @@
  	select I8259
  	select MIPS_BOARDS_GEN
  	select MIPS_BONITO64
 -	select MIPS_CPU_SCACHE
- 	select MIPS_GT64120
+ 	select PCI_GT64XXX_PCI0
  	select MIPS_MSC
  	select SWAP_IO_SPACE
-@@ -1538,13 +1537,6 @@
+@@ -1345,13 +1344,6 @@
  	bool
  	select BOARD_SCACHE
  
@@ -23,9 +24,10 @@ diff -urN linux-2.6.19.ref/arch/mips/Kconfig linux-2.6.19/arch/mips/Kconfig
  config R5000_CPU_SCACHE
  	bool
  	select BOARD_SCACHE
-diff -urN linux-2.6.19.ref/arch/mips/kernel/cpu-probe.c linux-2.6.19/arch/mips/kernel/cpu-probe.c
---- linux-2.6.19.ref/arch/mips/kernel/cpu-probe.c	2006-12-04 21:33:48.000000000 +0100
-+++ linux-2.6.19/arch/mips/kernel/cpu-probe.c	2006-12-04 21:34:04.000000000 +0100
+Index: linux-2.6.22-rc4/arch/mips/kernel/cpu-probe.c
+===================================================================
+--- linux-2.6.22-rc4.orig/arch/mips/kernel/cpu-probe.c	2007-06-10 21:33:12.000000000 +0100
++++ linux-2.6.22-rc4/arch/mips/kernel/cpu-probe.c	2007-06-10 21:33:17.000000000 +0100
 @@ -619,6 +619,8 @@
  		break;
  	case PRID_IMP_25KF:
@@ -35,9 +37,10 @@ diff -urN linux-2.6.19.ref/arch/mips/kernel/cpu-probe.c linux-2.6.19/arch/mips/k
  		break;
  	case PRID_IMP_34K:
  		c->cputype = CPU_34K;
-diff -urN linux-2.6.19.ref/arch/mips/mm/c-r4k.c linux-2.6.19/arch/mips/mm/c-r4k.c
---- linux-2.6.19.ref/arch/mips/mm/c-r4k.c	2006-11-29 22:57:37.000000000 +0100
-+++ linux-2.6.19/arch/mips/mm/c-r4k.c	2006-12-04 21:34:04.000000000 +0100
+Index: linux-2.6.22-rc4/arch/mips/mm/c-r4k.c
+===================================================================
+--- linux-2.6.22-rc4.orig/arch/mips/mm/c-r4k.c	2007-06-10 21:32:13.000000000 +0100
++++ linux-2.6.22-rc4/arch/mips/mm/c-r4k.c	2007-06-10 21:33:17.000000000 +0100
 @@ -1038,7 +1038,6 @@
  
  extern int r5k_sc_init(void);
@@ -81,9 +84,10 @@ diff -urN linux-2.6.19.ref/arch/mips/mm/c-r4k.c linux-2.6.19/arch/mips/mm/c-r4k.
  	/* compute a couple of other cache variables */
  	c->scache.waysize = scache_size / c->scache.ways;
  
-diff -urN linux-2.6.19.ref/arch/mips/mm/Makefile linux-2.6.19/arch/mips/mm/Makefile
---- linux-2.6.19.ref/arch/mips/mm/Makefile	2006-11-29 22:57:37.000000000 +0100
-+++ linux-2.6.19/arch/mips/mm/Makefile	2006-12-04 21:34:04.000000000 +0100
+Index: linux-2.6.22-rc4/arch/mips/mm/Makefile
+===================================================================
+--- linux-2.6.22-rc4.orig/arch/mips/mm/Makefile	2007-06-10 21:32:13.000000000 +0100
++++ linux-2.6.22-rc4/arch/mips/mm/Makefile	2007-06-10 21:33:17.000000000 +0100
 @@ -30,4 +30,3 @@
  obj-$(CONFIG_IP22_CPU_SCACHE)	+= sc-ip22.o
  obj-$(CONFIG_R5000_CPU_SCACHE)  += sc-r5k.o
diff --git a/target/linux/brcm47xx-2.6/patches/140-export_uevent_handler.patch b/target/linux/brcm47xx-2.6/patches/140-export_uevent_handler.patch
index 6a6f51aa7b..f6a41f32a2 100644
--- a/target/linux/brcm47xx-2.6/patches/140-export_uevent_handler.patch
+++ b/target/linux/brcm47xx-2.6/patches/140-export_uevent_handler.patch
@@ -1,6 +1,7 @@
-diff -urN linux-2.6.19.ref/lib/kobject_uevent.c linux-2.6.19/lib/kobject_uevent.c
---- linux-2.6.19.ref/lib/kobject_uevent.c	2006-11-29 22:57:37.000000000 +0100
-+++ linux-2.6.19/lib/kobject_uevent.c	2006-12-04 21:33:48.000000000 +0100
+Index: linux-2.6.22-rc4/lib/kobject_uevent.c
+===================================================================
+--- linux-2.6.22-rc4.orig/lib/kobject_uevent.c	2007-06-10 21:32:13.000000000 +0100
++++ linux-2.6.22-rc4/lib/kobject_uevent.c	2007-06-10 21:33:18.000000000 +0100
 @@ -29,6 +29,7 @@
  u64 uevent_seqnum;
  char uevent_helper[UEVENT_HELPER_PATH_LEN] = "/sbin/hotplug";
diff --git a/target/linux/brcm47xx-2.6/patches/150-cpu_fixes.patch b/target/linux/brcm47xx-2.6/patches/150-cpu_fixes.patch
index 834c7ee76f..ef297a4c08 100644
--- a/target/linux/brcm47xx-2.6/patches/150-cpu_fixes.patch
+++ b/target/linux/brcm47xx-2.6/patches/150-cpu_fixes.patch
@@ -1,6 +1,7 @@
-diff -ur linux.old/arch/mips/kernel/genex.S linux.dev/arch/mips/kernel/genex.S
---- linux.old/arch/mips/kernel/genex.S	2007-03-23 16:10:35.572499592 +0100
-+++ linux.dev/arch/mips/kernel/genex.S	2007-03-16 11:54:34.901251992 +0100
+Index: linux-2.6.22-rc4/arch/mips/kernel/genex.S
+===================================================================
+--- linux-2.6.22-rc4.orig/arch/mips/kernel/genex.S	2007-06-10 21:32:12.000000000 +0100
++++ linux-2.6.22-rc4/arch/mips/kernel/genex.S	2007-06-10 21:33:19.000000000 +0100
 @@ -51,6 +51,10 @@
  NESTED(except_vec3_generic, 0, sp)
  	.set	push
@@ -12,9 +13,10 @@ diff -ur linux.old/arch/mips/kernel/genex.S linux.dev/arch/mips/kernel/genex.S
  #if R5432_CP0_INTERRUPT_WAR
  	mfc0	k0, CP0_INDEX
  #endif
-diff -ur linux.old/arch/mips/mm/c-r4k.c linux.dev/arch/mips/mm/c-r4k.c
---- linux.old/arch/mips/mm/c-r4k.c	2007-03-16 12:11:00.344441000 +0100
-+++ linux.dev/arch/mips/mm/c-r4k.c	2007-03-23 16:03:23.596169976 +0100
+Index: linux-2.6.22-rc4/arch/mips/mm/c-r4k.c
+===================================================================
+--- linux-2.6.22-rc4.orig/arch/mips/mm/c-r4k.c	2007-06-10 21:33:17.000000000 +0100
++++ linux-2.6.22-rc4/arch/mips/mm/c-r4k.c	2007-06-10 21:33:19.000000000 +0100
 @@ -29,6 +29,9 @@
  #include <asm/cacheflush.h> /* for run_uncached() */
  
@@ -90,9 +92,10 @@ diff -ur linux.old/arch/mips/mm/c-r4k.c linux.dev/arch/mips/mm/c-r4k.c
  
  	probe_pcache();
  	setup_scache();
-diff -ur linux.old/arch/mips/mm/tlbex.c linux.dev/arch/mips/mm/tlbex.c
---- linux.old/arch/mips/mm/tlbex.c	2007-03-16 11:54:34.826263000 +0100
-+++ linux.dev/arch/mips/mm/tlbex.c	2007-03-23 16:03:23.608168152 +0100
+Index: linux-2.6.22-rc4/arch/mips/mm/tlbex.c
+===================================================================
+--- linux-2.6.22-rc4.orig/arch/mips/mm/tlbex.c	2007-06-10 21:33:12.000000000 +0100
++++ linux-2.6.22-rc4/arch/mips/mm/tlbex.c	2007-06-10 21:33:19.000000000 +0100
 @@ -1229,6 +1229,10 @@
  #endif
  }
@@ -117,9 +120,10 @@ diff -ur linux.old/arch/mips/mm/tlbex.c linux.dev/arch/mips/mm/tlbex.c
  	/*
  	 * create the plain linear handler
  	 */
-diff -ur linux.old/include/asm-mips/r4kcache.h linux.dev/include/asm-mips/r4kcache.h
---- linux.old/include/asm-mips/r4kcache.h	2007-01-10 20:10:37.000000000 +0100
-+++ linux.dev/include/asm-mips/r4kcache.h	2007-03-23 16:38:44.603727816 +0100
+Index: linux-2.6.22-rc4/include/asm-mips/r4kcache.h
+===================================================================
+--- linux-2.6.22-rc4.orig/include/asm-mips/r4kcache.h	2007-06-10 21:32:12.000000000 +0100
++++ linux-2.6.22-rc4/include/asm-mips/r4kcache.h	2007-06-10 21:33:19.000000000 +0100
 @@ -17,6 +17,20 @@
  #include <asm/cpu-features.h>
  #include <asm/mipsmtregs.h>
@@ -322,9 +326,10 @@ diff -ur linux.old/include/asm-mips/r4kcache.h linux.dev/include/asm-mips/r4kcac
 +__BUILD_BLAST_CACHE_RANGE(inv_s, scache, Hit_Invalidate_SD,,, )
  
  #endif /* _ASM_R4KCACHE_H */
-diff -ur linux.old/include/asm-mips/stackframe.h linux.dev/include/asm-mips/stackframe.h
---- linux.old/include/asm-mips/stackframe.h	2007-03-23 16:10:35.573499440 +0100
-+++ linux.dev/include/asm-mips/stackframe.h	2007-03-16 11:54:34.903251688 +0100
+Index: linux-2.6.22-rc4/include/asm-mips/stackframe.h
+===================================================================
+--- linux-2.6.22-rc4.orig/include/asm-mips/stackframe.h	2007-06-10 21:32:12.000000000 +0100
++++ linux-2.6.22-rc4/include/asm-mips/stackframe.h	2007-06-10 21:33:19.000000000 +0100
 @@ -352,6 +352,10 @@
  		.macro	RESTORE_SP_AND_RET
  		LONG_L	sp, PT_R29(sp)
diff --git a/target/linux/brcm47xx-2.6/patches/160-kmap_coherent.patch b/target/linux/brcm47xx-2.6/patches/160-kmap_coherent.patch
index 706a20f83e..67068081d1 100644
--- a/target/linux/brcm47xx-2.6/patches/160-kmap_coherent.patch
+++ b/target/linux/brcm47xx-2.6/patches/160-kmap_coherent.patch
@@ -1,5 +1,7 @@
---- ./arch/mips/mm/init.c.orig	2007-03-22 08:08:34.000000000 -0600
-+++ ./arch/mips/mm/init.c	2007-03-22 08:09:04.000000000 -0600
+Index: linux-2.6.22-rc4/arch/mips/mm/init.c
+===================================================================
+--- linux-2.6.22-rc4.orig/arch/mips/mm/init.c	2007-06-10 21:32:12.000000000 +0100
++++ linux-2.6.22-rc4/arch/mips/mm/init.c	2007-06-10 21:33:21.000000000 +0100
 @@ -207,7 +207,7 @@
  	void *vfrom, *vto;
  
@@ -8,7 +10,7 @@
 +	if (cpu_has_dc_aliases && cpu_use_kmap_coherent) {
  		vfrom = kmap_coherent(from, vaddr);
  		copy_page(vto, vfrom);
- 		kunmap_coherent(from);
+ 		kunmap_coherent();
 @@ -230,7 +230,7 @@
  	struct page *page, unsigned long vaddr, void *dst, const void *src,
  	unsigned long len)
@@ -17,7 +19,7 @@
 +	if (cpu_has_dc_aliases && cpu_use_kmap_coherent) {
  		void *vto = kmap_coherent(page, vaddr) + (vaddr & ~PAGE_MASK);
  		memcpy(vto, src, len);
- 		kunmap_coherent(page);
+ 		kunmap_coherent();
 @@ -246,7 +246,7 @@
  	struct page *page, unsigned long vaddr, void *dst, const void *src,
  	unsigned long len)
@@ -27,8 +29,10 @@
  		void *vfrom =
  			kmap_coherent(page, vaddr) + (vaddr & ~PAGE_MASK);
  		memcpy(dst, vfrom, len);
---- ./include/asm-mips/mach-bcm947xx/cpu-feature-overrides.h.orig	2007-03-22 08:10:54.000000000 -0600
-+++ ./include/asm-mips/mach-bcm947xx/cpu-feature-overrides.h	2007-03-22 08:10:50.000000000 -0600
+Index: linux-2.6.22-rc4/include/asm-mips/mach-bcm947xx/cpu-feature-overrides.h
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.22-rc4/include/asm-mips/mach-bcm947xx/cpu-feature-overrides.h	2007-06-10 21:33:21.000000000 +0100
 @@ -0,0 +1,13 @@
 +/*
 + * This file is subject to the terms and conditions of the GNU General Public
@@ -43,8 +47,10 @@
 +#define cpu_use_kmap_coherent	0
 +
 +#endif /* __ASM_MACH_BCM947XX_CPU_FEATURE_OVERRIDES_H */
---- ./include/asm-mips/cpu-features.h.orig	2007-03-22 08:09:16.000000000 -0600
-+++ ./include/asm-mips/cpu-features.h	2007-03-22 08:09:52.000000000 -0600
+Index: linux-2.6.22-rc4/include/asm-mips/cpu-features.h
+===================================================================
+--- linux-2.6.22-rc4.orig/include/asm-mips/cpu-features.h	2007-06-10 21:32:12.000000000 +0100
++++ linux-2.6.22-rc4/include/asm-mips/cpu-features.h	2007-06-10 21:33:21.000000000 +0100
 @@ -101,6 +101,9 @@
  #ifndef cpu_has_pindexed_dcache
  #define cpu_has_pindexed_dcache	(cpu_data[0].dcache.flags & MIPS_CACHE_PINDEX)
diff --git a/target/linux/brcm47xx-2.6/patches/170-cpu_wait.patch b/target/linux/brcm47xx-2.6/patches/170-cpu_wait.patch
index ce37b1343e..92bf0a37e0 100644
--- a/target/linux/brcm47xx-2.6/patches/170-cpu_wait.patch
+++ b/target/linux/brcm47xx-2.6/patches/170-cpu_wait.patch
@@ -1,12 +1,13 @@
-diff -urN linux-2.6.19.2.old/arch/mips/kernel/cpu-probe.c linux-2.6.19.2/arch/mips/kernel/cpu-probe.c
---- linux-2.6.19.2.old/arch/mips/kernel/cpu-probe.c	2007-05-01 19:28:06.937756121 +0100
-+++ linux-2.6.19.2/arch/mips/kernel/cpu-probe.c	2007-05-01 19:31:46.867756121 +0100
+Index: linux-2.6.22-rc4/arch/mips/kernel/cpu-probe.c
+===================================================================
+--- linux-2.6.22-rc4.orig/arch/mips/kernel/cpu-probe.c	2007-06-10 21:33:17.000000000 +0100
++++ linux-2.6.22-rc4/arch/mips/kernel/cpu-probe.c	2007-06-10 21:33:22.000000000 +0100
 @@ -143,6 +143,8 @@
  	case CPU_34K:
  	case CPU_74K:
   	case CPU_PR4450:
 +	case CPU_BCM3302:
-+        case CPU_BCM4710:
++	case CPU_BCM4710:
  		cpu_wait = r4k_wait;
  		break;
- 	case CPU_TX49XX:		
+ 	case CPU_TX49XX:
-- 
2.30.2