From 66eeee56c145aed1c845985ebec66e2821148c14 Mon Sep 17 00:00:00 2001
From: florian <florian@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Date: Sun, 22 Aug 2010 17:07:37 +0000
Subject: [PATCH] [kernel] update to 2.6.32.20

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@22766 3c298f89-4303-0410-b956-a3cf2f4a3e73
---
 include/kernel-version.mk                     |   4 +-
 target/linux/adm5120/Makefile                 |   2 +-
 target/linux/ar7/Makefile                     |   2 +-
 target/linux/ar71xx/Makefile                  |   2 +-
 target/linux/atheros/Makefile                 |   2 +-
 target/linux/avr32/Makefile                   |   2 +-
 target/linux/brcm63xx/Makefile                |   2 +-
 target/linux/cobalt/Makefile                  |   2 +-
 target/linux/etrax/Makefile                   |   2 +-
 target/linux/gemini/Makefile                  |   2 +-
 .../patches-2.6.32/025-mips_disable_fpu.patch |   2 +-
 .../030-pci_disable_common_quirks.patch       |   2 +-
 .../040-arm-update-mach-types.patch           |   2 +-
 .../053-lzo_compression_for_initramfs.patch   |   4 +-
 .../260-crypto_optional_tests.patch           |   4 +-
 .../patches-2.6.32/975-ssb_update.patch       | 165 +++---------------
 .../977-ssb_export_fallback_sprom.patch       |   2 +-
 .../977-textsearch_kconfig_hacks.patch        |   2 +-
 .../patches-2.6.32/980-vm_exports.patch       |   4 +-
 target/linux/iop32x/Makefile                  |   2 +-
 target/linux/ixp4xx/Makefile                  |   2 +-
 target/linux/malta/Makefile                   |   2 +-
 target/linux/omap35xx/Makefile                |   2 +-
 target/linux/ppc40x/Makefile                  |   2 +-
 target/linux/ppc44x/Makefile                  |   2 +-
 target/linux/pxa/Makefile                     |   2 +-
 target/linux/rb532/Makefile                   |   2 +-
 target/linux/rdc/Makefile                     |   2 +-
 target/linux/sibyte/Makefile                  |   2 +-
 target/linux/uml/Makefile                     |   2 +-
 target/linux/x86/Makefile                     |   2 +-
 31 files changed, 54 insertions(+), 179 deletions(-)

diff --git a/include/kernel-version.mk b/include/kernel-version.mk
index eaa20c472..aeb33b3ba 100644
--- a/include/kernel-version.mk
+++ b/include/kernel-version.mk
@@ -11,8 +11,8 @@ endif
 ifeq ($(LINUX_VERSION),2.6.31.14)
   LINUX_KERNEL_MD5SUM:=3e7feb224197d8e174a90dd3759979fd
 endif
-ifeq ($(LINUX_VERSION),2.6.32.16)
-  LINUX_KERNEL_MD5SUM:=d94d91ef3be4eb76765401b4fa462759
+ifeq ($(LINUX_VERSION),2.6.32.20)
+  LINUX_KERNEL_MD5SUM:=c254831e3f59b9fef14e61871e5f4738
 endif
 ifeq ($(LINUX_VERSION),2.6.33.6)
   LINUX_KERNEL_MD5SUM:=7d8f8a4a09866a786fb59c53fba8232a
diff --git a/target/linux/adm5120/Makefile b/target/linux/adm5120/Makefile
index 0eee0b494..4a7e11185 100644
--- a/target/linux/adm5120/Makefile
+++ b/target/linux/adm5120/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 BOARD:=adm5120
 BOARDNAME:=Infineon/ADMtek ADM5120
-LINUX_VERSION:=2.6.32.16
+LINUX_VERSION:=2.6.32.20
 SUBTARGETS:=router_le router_be
 INITRAMFS_EXTRA_FILES:=
 
diff --git a/target/linux/ar7/Makefile b/target/linux/ar7/Makefile
index ff9ebe0ba..facd3ba98 100644
--- a/target/linux/ar7/Makefile
+++ b/target/linux/ar7/Makefile
@@ -11,7 +11,7 @@ BOARD:=ar7
 BOARDNAME:=TI AR7
 FEATURES:=squashfs jffs2 atm
 
-LINUX_VERSION:=2.6.32.16
+LINUX_VERSION:=2.6.32.20
 
 include $(INCLUDE_DIR)/target.mk
 
diff --git a/target/linux/ar71xx/Makefile b/target/linux/ar71xx/Makefile
index dfac9f66b..f14019fb2 100644
--- a/target/linux/ar71xx/Makefile
+++ b/target/linux/ar71xx/Makefile
@@ -13,7 +13,7 @@ FEATURES:=squashfs jffs2 targz
 CFLAGS:=-Os -pipe -mips32r2 -mtune=mips32r2 -funit-at-a-time
 SUBTARGETS:=generic nand
 
-LINUX_VERSION:=2.6.32.16
+LINUX_VERSION:=2.6.32.20
 
 include $(INCLUDE_DIR)/target.mk
 
diff --git a/target/linux/atheros/Makefile b/target/linux/atheros/Makefile
index db5b4e029..d8786ed8c 100644
--- a/target/linux/atheros/Makefile
+++ b/target/linux/atheros/Makefile
@@ -11,7 +11,7 @@ BOARD:=atheros
 BOARDNAME:=Atheros AR231x/AR5312
 FEATURES:=squashfs jffs2
 
-LINUX_VERSION:=2.6.32.16
+LINUX_VERSION:=2.6.32.20
 
 include $(INCLUDE_DIR)/target.mk
 
diff --git a/target/linux/avr32/Makefile b/target/linux/avr32/Makefile
index 1a8cd5535..76536acde 100644
--- a/target/linux/avr32/Makefile
+++ b/target/linux/avr32/Makefile
@@ -10,7 +10,7 @@ ARCH:=avr32
 BOARD:=avr32
 BOARDNAME:=Atmel AVR32
 FEATURES:=squashfs
-LINUX_VERSION:=2.6.32.16
+LINUX_VERSION:=2.6.32.20
 
 include $(INCLUDE_DIR)/target.mk
 
diff --git a/target/linux/brcm63xx/Makefile b/target/linux/brcm63xx/Makefile
index 94ee4c5fc..b6ccf192b 100644
--- a/target/linux/brcm63xx/Makefile
+++ b/target/linux/brcm63xx/Makefile
@@ -10,7 +10,7 @@ ARCH:=mips
 BOARD:=brcm63xx
 BOARDNAME:=Broadcom BCM63xx
 FEATURES:=squashfs jffs2 usb atm pci pcmcia
-LINUX_VERSION:=2.6.32.16
+LINUX_VERSION:=2.6.32.20
 
 include $(INCLUDE_DIR)/target.mk
 
diff --git a/target/linux/cobalt/Makefile b/target/linux/cobalt/Makefile
index 53655e307..0167b61bd 100644
--- a/target/linux/cobalt/Makefile
+++ b/target/linux/cobalt/Makefile
@@ -12,7 +12,7 @@ BOARDNAME:=Cobalt Microservers
 FEATURES:=targz pci ext2
 CFLAGS:=-O2 -pipe -mtune=r5000 -funit-at-a-time
 
-LINUX_VERSION:=2.6.32.16
+LINUX_VERSION:=2.6.32.20
 
 include $(INCLUDE_DIR)/target.mk
 
diff --git a/target/linux/etrax/Makefile b/target/linux/etrax/Makefile
index a84fe4a73..469fa4414 100644
--- a/target/linux/etrax/Makefile
+++ b/target/linux/etrax/Makefile
@@ -10,7 +10,7 @@ ARCH:=cris
 BOARD:=etrax
 BOARDNAME:=Axis ETRAX 100LX
 FEATURES:=squashfs jffs2 usb
-LINUX_VERSION:=2.6.32.16
+LINUX_VERSION:=2.6.32.20
 DEVICE_TYPE=
 
 include $(INCLUDE_DIR)/target.mk
diff --git a/target/linux/gemini/Makefile b/target/linux/gemini/Makefile
index 1e2cb76b2..885169bab 100644
--- a/target/linux/gemini/Makefile
+++ b/target/linux/gemini/Makefile
@@ -12,7 +12,7 @@ BOARDNAME:=Cortina Systems CS351x
 FEATURES:=squashfs
 CFLAGS:=-Os -pipe -march=armv4 -mtune=arm9tdmi -funit-at-a-time
 
-LINUX_VERSION:=2.6.32.16
+LINUX_VERSION:=2.6.32.20
 
 include $(INCLUDE_DIR)/target.mk
 
diff --git a/target/linux/generic/patches-2.6.32/025-mips_disable_fpu.patch b/target/linux/generic/patches-2.6.32/025-mips_disable_fpu.patch
index e1e9f7369..a3511d742 100644
--- a/target/linux/generic/patches-2.6.32/025-mips_disable_fpu.patch
+++ b/target/linux/generic/patches-2.6.32/025-mips_disable_fpu.patch
@@ -71,7 +71,7 @@ Signed-off-by: Florian Fainelli <florian@openwrt.org>
  /* Control registers */
  
  #define FPCREG_RID	0	/* $0  = revision id */
-@@ -1274,6 +1276,13 @@ int fpu_emulator_cop1Handler(struct pt_r
+@@ -1281,6 +1283,13 @@ int fpu_emulator_cop1Handler(struct pt_r
  
  	return sig;
  }
diff --git a/target/linux/generic/patches-2.6.32/030-pci_disable_common_quirks.patch b/target/linux/generic/patches-2.6.32/030-pci_disable_common_quirks.patch
index 2854428e1..9ecc67356 100644
--- a/target/linux/generic/patches-2.6.32/030-pci_disable_common_quirks.patch
+++ b/target/linux/generic/patches-2.6.32/030-pci_disable_common_quirks.patch
@@ -33,7 +33,7 @@
  /* Enable 1k I/O space granularity on the Intel P64H2 */
  static void __devinit quirk_p64h2_1k_io(struct pci_dev *dev)
  {
-@@ -2522,6 +2525,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
+@@ -2526,6 +2529,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
  DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1518, quirk_i82576_sriov);
  
  #endif	/* CONFIG_PCI_IOV */
diff --git a/target/linux/generic/patches-2.6.32/040-arm-update-mach-types.patch b/target/linux/generic/patches-2.6.32/040-arm-update-mach-types.patch
index 9c87fe27e..84f482011 100644
--- a/target/linux/generic/patches-2.6.32/040-arm-update-mach-types.patch
+++ b/target/linux/generic/patches-2.6.32/040-arm-update-mach-types.patch
@@ -37,7 +37,7 @@
  sony_prs505		MACH_SONY_PRS505	SONY_PRS505		2007
  hanlin_v3		MACH_HANLIN_V3		HANLIN_V3		2008
  sapphira		MACH_SAPPHIRA		SAPPHIRA		2009
-@@ -2256,7 +2257,7 @@ oratisalog		MACH_ORATISALOG		ORATISALOG	
+@@ -2256,7 +2257,7 @@ oratisalog		MACH_ORATISALOG		ORATISALOG
  oratismadi		MACH_ORATISMADI		ORATISMADI		2269
  oratisot16		MACH_ORATISOT16		ORATISOT16		2270
  oratisdesk		MACH_ORATISDESK		ORATISDESK		2271
diff --git a/target/linux/generic/patches-2.6.32/053-lzo_compression_for_initramfs.patch b/target/linux/generic/patches-2.6.32/053-lzo_compression_for_initramfs.patch
index c05c3833d..33446746e 100644
--- a/target/linux/generic/patches-2.6.32/053-lzo_compression_for_initramfs.patch
+++ b/target/linux/generic/patches-2.6.32/053-lzo_compression_for_initramfs.patch
@@ -1,6 +1,6 @@
 --- a/lib/Kconfig
 +++ b/lib/Kconfig
-@@ -120,6 +120,10 @@ config DECOMPRESS_LZMA
+@@ -126,6 +126,10 @@ config DECOMPRESS_LZMA
  config DECOMPRESS_LZMA_NEEDED
  	 boolean
  
@@ -13,7 +13,7 @@
  #
 --- a/lib/Makefile
 +++ b/lib/Makefile
-@@ -69,6 +69,7 @@ obj-$(CONFIG_LZO_DECOMPRESS) += lzo/
+@@ -81,6 +81,7 @@ obj-$(CONFIG_LZMA_DECOMPRESS) += lzma/
  lib-$(CONFIG_DECOMPRESS_GZIP) += decompress_inflate.o
  lib-$(CONFIG_DECOMPRESS_BZIP2) += decompress_bunzip2.o
  lib-$(CONFIG_DECOMPRESS_LZMA) += decompress_unlzma.o
diff --git a/target/linux/generic/patches-2.6.32/260-crypto_optional_tests.patch b/target/linux/generic/patches-2.6.32/260-crypto_optional_tests.patch
index 0808c778e..b689fa63e 100644
--- a/target/linux/generic/patches-2.6.32/260-crypto_optional_tests.patch
+++ b/target/linux/generic/patches-2.6.32/260-crypto_optional_tests.patch
@@ -22,7 +22,7 @@
  struct tcrypt_result {
  	struct completion completion;
  	int err;
-@@ -2350,8 +2352,11 @@ static int alg_find_test(const char *alg
+@@ -2434,8 +2436,11 @@ static int alg_find_test(const char *alg
  	return -1;
  }
  
@@ -34,7 +34,7 @@
  	int i;
  	int j;
  	int rc;
-@@ -2406,5 +2411,8 @@ notest:
+@@ -2490,5 +2495,8 @@ notest:
  	return 0;
  non_fips_alg:
  	return -EINVAL;
diff --git a/target/linux/generic/patches-2.6.32/975-ssb_update.patch b/target/linux/generic/patches-2.6.32/975-ssb_update.patch
index 5931d29e8..e9568f42b 100644
--- a/target/linux/generic/patches-2.6.32/975-ssb_update.patch
+++ b/target/linux/generic/patches-2.6.32/975-ssb_update.patch
@@ -1,15 +1,6 @@
 --- a/drivers/ssb/driver_chipcommon.c
 +++ b/drivers/ssb/driver_chipcommon.c
-@@ -233,6 +233,8 @@ void ssb_chipcommon_init(struct ssb_chip
- {
- 	if (!cc->dev)
- 		return; /* We don't have a ChipCommon */
-+	if (cc->dev->id.revision >= 11)
-+		cc->status = chipco_read32(cc, SSB_CHIPCO_CHIPSTAT);
- 	ssb_pmu_init(cc);
- 	chipco_powercontrol_init(cc);
- 	ssb_chipco_set_clockmode(cc, SSB_CLKMODE_FAST);
-@@ -370,6 +372,7 @@ u32 ssb_chipco_gpio_control(struct ssb_c
+@@ -373,6 +373,7 @@ u32 ssb_chipco_gpio_control(struct ssb_c
  {
  	return chipco_write32_masked(cc, SSB_CHIPCO_GPIOCTL, mask, value);
  }
@@ -341,36 +332,9 @@
  #include <linux/pci.h>
  #include <linux/delay.h>
  
-@@ -167,7 +168,7 @@ err_pci:
- }
- 
- /* Get the word-offset for a SSB_SPROM_XXX define. */
--#define SPOFF(offset)	(((offset) - SSB_SPROM_BASE) / sizeof(u16))
-+#define SPOFF(offset)	((offset) / sizeof(u16))
- /* Helper to extract some _offset, which is one of the SSB_SPROM_XXX defines. */
- #define SPEX16(_outvar, _offset, _mask, _shift)	\
- 	out->_outvar = ((in[SPOFF(_offset)] & (_mask)) >> (_shift))
-@@ -253,7 +254,7 @@ static int sprom_do_read(struct ssb_bus
- 	int i;
- 
- 	for (i = 0; i < bus->sprom_size; i++)
--		sprom[i] = ioread16(bus->mmio + SSB_SPROM_BASE + (i * 2));
-+		sprom[i] = ioread16(bus->mmio + bus->sprom_offset + (i * 2));
- 
- 	return 0;
- }
-@@ -284,7 +285,7 @@ static int sprom_do_write(struct ssb_bus
- 			ssb_printk("75%%");
- 		else if (i % 2)
- 			ssb_printk(".");
--		writew(sprom[i], bus->mmio + SSB_SPROM_BASE + (i * 2));
-+		writew(sprom[i], bus->mmio + bus->sprom_offset + (i * 2));
- 		mmiowb();
- 		msleep(20);
+@@ -642,6 +643,14 @@ static int ssb_pci_sprom_get(struct ssb_
  	}
-@@ -620,6 +621,14 @@ static int ssb_pci_sprom_get(struct ssb_
- 	int err = -ENOMEM;
- 	u16 *buf;
+ 	ssb_dprintk(KERN_INFO PFX "SPROM offset is 0x%x\n", bus->sprom_offset);
  
 +	if (!ssb_is_sprom_available(bus)) {
 +		ssb_printk(KERN_ERR PFX "No SPROM available!\n");
@@ -700,10 +664,12 @@
  	if (err)
  		ssb_printk(KERN_ERR PFX "SPROM write: Could not thaw all devices\n");
  out_unlock:
-@@ -179,3 +176,17 @@ const struct ssb_sprom *ssb_get_fallback
- {
- 	return fallback_sprom;
- }
+@@ -192,5 +189,19 @@ bool ssb_is_sprom_available(struct ssb_b
+ 	    bus->chipco.dev->id.revision >= 31)
+ 		return bus->chipco.capabilities & SSB_CHIPCO_CAP_SPROM;
+ 
++	return true;
++}
 +
 +/* http://bcm-v4.sipsolutions.net/802.11/IsSpromAvailable */
 +bool ssb_is_sprom_available(struct ssb_bus *bus)
@@ -716,8 +682,8 @@
 +	    bus->chipco.dev->id.revision >= 31)
 +		return bus->chipco.capabilities & SSB_CHIPCO_CAP_SPROM;
 +
-+	return true;
-+}
+ 	return true;
+ }
 --- a/drivers/ssb/ssb_private.h
 +++ b/drivers/ssb/ssb_private.h
 @@ -176,19 +176,27 @@ extern const struct ssb_sprom *ssb_get_f
@@ -796,110 +762,19 @@
  
  	/* See enum ssb_quirks */
  	unsigned int quirks;
-@@ -301,6 +305,7 @@ struct ssb_bus {
- 	/* ID information about the Chip. */
- 	u16 chip_id;
- 	u16 chip_rev;
-+	u16 sprom_offset;
- 	u16 sprom_size;		/* number of words in sprom */
- 	u8 chip_package;
- 
-@@ -390,6 +395,9 @@ extern int ssb_bus_sdiobus_register(stru
- 
- extern void ssb_bus_unregister(struct ssb_bus *bus);
+@@ -393,6 +397,9 @@ extern void ssb_bus_unregister(struct ss
  
+ /* Does the device have an SPROM? */
+ extern bool ssb_is_sprom_available(struct ssb_bus *bus);
++
 +/* Does the device have an SPROM? */
 +extern bool ssb_is_sprom_available(struct ssb_bus *bus);
-+
+ 
  /* Set a fallback SPROM.
   * See kdoc at the function definition for complete documentation. */
- extern int ssb_arch_set_fallback_sprom(const struct ssb_sprom *sprom);
---- a/include/linux/ssb/ssb_driver_chipcommon.h
-+++ b/include/linux/ssb/ssb_driver_chipcommon.h
-@@ -53,6 +53,7 @@
- #define  SSB_CHIPCO_CAP_64BIT		0x08000000	/* 64-bit Backplane */
- #define  SSB_CHIPCO_CAP_PMU		0x10000000	/* PMU available (rev >= 20) */
- #define  SSB_CHIPCO_CAP_ECI		0x20000000	/* ECI available (rev >= 20) */
-+#define  SSB_CHIPCO_CAP_SPROM		0x40000000	/* SPROM present */
- #define SSB_CHIPCO_CORECTL		0x0008
- #define  SSB_CHIPCO_CORECTL_UARTCLK0	0x00000001	/* Drive UART with internal clock */
- #define	 SSB_CHIPCO_CORECTL_SE		0x00000002	/* sync clk out enable (corerev >= 3) */
-@@ -385,6 +386,7 @@
- 
- 
- /** Chip specific Chip-Status register contents. */
-+#define SSB_CHIPCO_CHST_4322_SPROM_EXISTS	0x00000040 /* SPROM present */
- #define SSB_CHIPCO_CHST_4325_SPROM_OTP_SEL	0x00000003
- #define SSB_CHIPCO_CHST_4325_DEFCIS_SEL		0 /* OTP is powered up, use def. CIS, no SPROM */
- #define SSB_CHIPCO_CHST_4325_SPROM_SEL		1 /* OTP is powered up, SPROM is present */
-@@ -398,6 +400,18 @@
- #define SSB_CHIPCO_CHST_4325_RCAL_VALUE_SHIFT	4
- #define SSB_CHIPCO_CHST_4325_PMUTOP_2B 		0x00000200 /* 1 for 2b, 0 for to 2a */
- 
-+/** Macros to determine SPROM presence based on Chip-Status register. */
-+#define SSB_CHIPCO_CHST_4312_SPROM_PRESENT(status) \
-+	((status & SSB_CHIPCO_CHST_4325_SPROM_OTP_SEL) != \
-+		SSB_CHIPCO_CHST_4325_OTP_SEL)
-+#define SSB_CHIPCO_CHST_4322_SPROM_PRESENT(status) \
-+	(status & SSB_CHIPCO_CHST_4322_SPROM_EXISTS)
-+#define SSB_CHIPCO_CHST_4325_SPROM_PRESENT(status) \
-+	(((status & SSB_CHIPCO_CHST_4325_SPROM_OTP_SEL) != \
-+		SSB_CHIPCO_CHST_4325_DEFCIS_SEL) && \
-+	 ((status & SSB_CHIPCO_CHST_4325_SPROM_OTP_SEL) != \
-+		SSB_CHIPCO_CHST_4325_OTP_SEL))
-+
- 
- 
- /** Clockcontrol masks and values **/
-@@ -564,6 +578,7 @@ struct ssb_chipcommon_pmu {
- struct ssb_chipcommon {
- 	struct ssb_device *dev;
- 	u32 capabilities;
-+	u32 status;
- 	/* Fast Powerup Delay constant */
- 	u16 fast_pwrup_delay;
- 	struct ssb_chipcommon_pmu pmu;
 --- a/include/linux/ssb/ssb_regs.h
 +++ b/include/linux/ssb/ssb_regs.h
-@@ -170,26 +170,27 @@
- #define SSB_SPROMSIZE_WORDS_R4		220
- #define SSB_SPROMSIZE_BYTES_R123	(SSB_SPROMSIZE_WORDS_R123 * sizeof(u16))
- #define SSB_SPROMSIZE_BYTES_R4		(SSB_SPROMSIZE_WORDS_R4 * sizeof(u16))
--#define SSB_SPROM_BASE			0x1000
--#define SSB_SPROM_REVISION		0x107E
-+#define SSB_SPROM_BASE1			0x1000
-+#define SSB_SPROM_BASE31		0x0800
-+#define SSB_SPROM_REVISION		0x007E
- #define  SSB_SPROM_REVISION_REV		0x00FF	/* SPROM Revision number */
- #define  SSB_SPROM_REVISION_CRC		0xFF00	/* SPROM CRC8 value */
- #define  SSB_SPROM_REVISION_CRC_SHIFT	8
- 
- /* SPROM Revision 1 */
--#define SSB_SPROM1_SPID			0x1004	/* Subsystem Product ID for PCI */
--#define SSB_SPROM1_SVID			0x1006	/* Subsystem Vendor ID for PCI */
--#define SSB_SPROM1_PID			0x1008	/* Product ID for PCI */
--#define SSB_SPROM1_IL0MAC		0x1048	/* 6 bytes MAC address for 802.11b/g */
--#define SSB_SPROM1_ET0MAC		0x104E	/* 6 bytes MAC address for Ethernet */
--#define SSB_SPROM1_ET1MAC		0x1054	/* 6 bytes MAC address for 802.11a */
--#define SSB_SPROM1_ETHPHY		0x105A	/* Ethernet PHY settings */
-+#define SSB_SPROM1_SPID			0x0004	/* Subsystem Product ID for PCI */
-+#define SSB_SPROM1_SVID			0x0006	/* Subsystem Vendor ID for PCI */
-+#define SSB_SPROM1_PID			0x0008	/* Product ID for PCI */
-+#define SSB_SPROM1_IL0MAC		0x0048	/* 6 bytes MAC address for 802.11b/g */
-+#define SSB_SPROM1_ET0MAC		0x004E	/* 6 bytes MAC address for Ethernet */
-+#define SSB_SPROM1_ET1MAC		0x0054	/* 6 bytes MAC address for 802.11a */
-+#define SSB_SPROM1_ETHPHY		0x005A	/* Ethernet PHY settings */
- #define  SSB_SPROM1_ETHPHY_ET0A		0x001F	/* MII Address for enet0 */
- #define  SSB_SPROM1_ETHPHY_ET1A		0x03E0	/* MII Address for enet1 */
- #define  SSB_SPROM1_ETHPHY_ET1A_SHIFT	5
- #define  SSB_SPROM1_ETHPHY_ET0M		(1<<14)	/* MDIO for enet0 */
- #define  SSB_SPROM1_ETHPHY_ET1M		(1<<15)	/* MDIO for enet1 */
--#define SSB_SPROM1_BINF			0x105C	/* Board info */
-+#define SSB_SPROM1_BINF			0x005C	/* Board info */
- #define  SSB_SPROM1_BINF_BREV		0x00FF	/* Board Revision */
- #define  SSB_SPROM1_BINF_CCODE		0x0F00	/* Country Code */
- #define  SSB_SPROM1_BINF_CCODE_SHIFT	8
-@@ -197,63 +198,63 @@
+@@ -198,63 +198,63 @@
  #define  SSB_SPROM1_BINF_ANTBG_SHIFT	12
  #define  SSB_SPROM1_BINF_ANTA		0xC000	/* Available A-PHY antennas */
  #define  SSB_SPROM1_BINF_ANTA_SHIFT	14
@@ -991,7 +866,7 @@
  #define  SSB_SPROM3_CCKPO_1M		0x000F	/* 1M Rate PO */
  #define  SSB_SPROM3_CCKPO_2M		0x00F0	/* 2M Rate PO */
  #define  SSB_SPROM3_CCKPO_2M_SHIFT	4
-@@ -264,100 +265,100 @@
+@@ -265,100 +265,100 @@
  #define  SSB_SPROM3_OFDMGPO		0x107A	/* G-PHY OFDM Power Offset (4 bytes, BigEndian) */
  
  /* SPROM Revision 4 */
@@ -1149,7 +1024,7 @@
  #define  SSB_SPROM8_RSSISMF2G		0x000F
  #define  SSB_SPROM8_RSSISMC2G		0x00F0
  #define  SSB_SPROM8_RSSISMC2G_SHIFT	4
-@@ -365,7 +366,7 @@
+@@ -366,7 +366,7 @@
  #define  SSB_SPROM8_RSSISAV2G_SHIFT	8
  #define  SSB_SPROM8_BXA2G		0x1800
  #define  SSB_SPROM8_BXA2G_SHIFT		11
@@ -1158,7 +1033,7 @@
  #define  SSB_SPROM8_RSSISMF5G		0x000F
  #define  SSB_SPROM8_RSSISMC5G		0x00F0
  #define  SSB_SPROM8_RSSISMC5G_SHIFT	4
-@@ -373,47 +374,47 @@
+@@ -374,47 +374,47 @@
  #define  SSB_SPROM8_RSSISAV5G_SHIFT	8
  #define  SSB_SPROM8_BXA5G		0x1800
  #define  SSB_SPROM8_BXA5G_SHIFT		11
diff --git a/target/linux/generic/patches-2.6.32/977-ssb_export_fallback_sprom.patch b/target/linux/generic/patches-2.6.32/977-ssb_export_fallback_sprom.patch
index 2a22a3a38..3fab48385 100644
--- a/target/linux/generic/patches-2.6.32/977-ssb_export_fallback_sprom.patch
+++ b/target/linux/generic/patches-2.6.32/977-ssb_export_fallback_sprom.patch
@@ -10,7 +10,7 @@
  bool ssb_is_sprom_available(struct ssb_bus *bus)
 --- a/include/linux/ssb/ssb.h
 +++ b/include/linux/ssb/ssb.h
-@@ -401,6 +401,7 @@ extern bool ssb_is_sprom_available(struc
+@@ -404,6 +404,7 @@ extern bool ssb_is_sprom_available(struc
  /* Set a fallback SPROM.
   * See kdoc at the function definition for complete documentation. */
  extern int ssb_arch_set_fallback_sprom(const struct ssb_sprom *sprom);
diff --git a/target/linux/generic/patches-2.6.32/977-textsearch_kconfig_hacks.patch b/target/linux/generic/patches-2.6.32/977-textsearch_kconfig_hacks.patch
index 94d6b91d8..d2e41fe9a 100644
--- a/target/linux/generic/patches-2.6.32/977-textsearch_kconfig_hacks.patch
+++ b/target/linux/generic/patches-2.6.32/977-textsearch_kconfig_hacks.patch
@@ -1,6 +1,6 @@
 --- a/lib/Kconfig
 +++ b/lib/Kconfig
-@@ -152,16 +152,16 @@ config REED_SOLOMON_DEC16
+@@ -158,16 +158,16 @@ config REED_SOLOMON_DEC16
  # Textsearch support is select'ed if needed
  #
  config TEXTSEARCH
diff --git a/target/linux/generic/patches-2.6.32/980-vm_exports.patch b/target/linux/generic/patches-2.6.32/980-vm_exports.patch
index b80eb2519..5319fe337 100644
--- a/target/linux/generic/patches-2.6.32/980-vm_exports.patch
+++ b/target/linux/generic/patches-2.6.32/980-vm_exports.patch
@@ -68,7 +68,7 @@
   * macro override instead of weak attribute alias, to workaround
 --- a/kernel/sched.c
 +++ b/kernel/sched.c
-@@ -6113,6 +6113,7 @@ int can_nice(const struct task_struct *p
+@@ -6165,6 +6165,7 @@ int can_nice(const struct task_struct *p
  	return (nice_rlim <= p->signal->rlim[RLIMIT_NICE].rlim_cur ||
  		capable(CAP_SYS_NICE));
  }
@@ -86,7 +86,7 @@
  
  /**
   * zap_vma_ptes - remove ptes mapping the vma
-@@ -2486,6 +2487,7 @@ int vmtruncate_range(struct inode *inode
+@@ -2496,6 +2497,7 @@ int vmtruncate_range(struct inode *inode
  
  	return 0;
  }
diff --git a/target/linux/iop32x/Makefile b/target/linux/iop32x/Makefile
index bc4f27d36..8f0bdc2b6 100644
--- a/target/linux/iop32x/Makefile
+++ b/target/linux/iop32x/Makefile
@@ -11,7 +11,7 @@ BOARD:=iop32x
 BOARDNAME:=Intel IOP32x
 FEATURES:=squashfs
 
-LINUX_VERSION:=2.6.32.16
+LINUX_VERSION:=2.6.32.20
 
 include $(INCLUDE_DIR)/target.mk
 
diff --git a/target/linux/ixp4xx/Makefile b/target/linux/ixp4xx/Makefile
index f65dc91d3..3704c8d72 100644
--- a/target/linux/ixp4xx/Makefile
+++ b/target/linux/ixp4xx/Makefile
@@ -12,7 +12,7 @@ BOARDNAME:=Intel IXP4xx
 FEATURES:=squashfs
 SUBTARGETS=generic harddisk
 
-LINUX_VERSION:=2.6.32.16
+LINUX_VERSION:=2.6.32.20
 
 include $(INCLUDE_DIR)/target.mk
 
diff --git a/target/linux/malta/Makefile b/target/linux/malta/Makefile
index 8981d1874..638329444 100644
--- a/target/linux/malta/Makefile
+++ b/target/linux/malta/Makefile
@@ -12,7 +12,7 @@ CFLAGS:=-Os -pipe -mips32r2 -mtune=mips32r2 -funit-at-a-time
 SUBTARGETS:=le be
 INITRAMFS_EXTRA_FILES:=
 
-LINUX_VERSION:=2.6.32.16
+LINUX_VERSION:=2.6.32.20
 
 include $(INCLUDE_DIR)/target.mk
 
diff --git a/target/linux/omap35xx/Makefile b/target/linux/omap35xx/Makefile
index 7d7f1aa7d..ddd31a62a 100644
--- a/target/linux/omap35xx/Makefile
+++ b/target/linux/omap35xx/Makefile
@@ -12,7 +12,7 @@ BOARDNAME:=TI OMAP35xx
 FEATURES:=broken
 SUBTARGETS=beagleboard gumstix
 
-LINUX_VERSION:=2.6.32.16
+LINUX_VERSION:=2.6.32.20
 KERNELNAME:="uImage"
 
 DEVICE_TYPE=developerboard
diff --git a/target/linux/ppc40x/Makefile b/target/linux/ppc40x/Makefile
index 29d7f0d9b..aaf395de6 100644
--- a/target/linux/ppc40x/Makefile
+++ b/target/linux/ppc40x/Makefile
@@ -12,7 +12,7 @@ BOARDNAME:=AMCC/IBM PPC40x
 FEATURES:=squashfs
 CFLAGS:=-Os -pipe -funit-at-a-time -mcpu=405
 
-LINUX_VERSION:=2.6.32.16
+LINUX_VERSION:=2.6.32.20
 
 include $(INCLUDE_DIR)/target.mk
 
diff --git a/target/linux/ppc44x/Makefile b/target/linux/ppc44x/Makefile
index bd8157a19..c0e0f601a 100644
--- a/target/linux/ppc44x/Makefile
+++ b/target/linux/ppc44x/Makefile
@@ -12,7 +12,7 @@ BOARDNAME:=AMCC/IBM PPC44x
 FEATURES:=squashfs
 CFLAGS:=-Os -pipe -funit-at-a-time -mcpu=440
 
-LINUX_VERSION:=2.6.32.16
+LINUX_VERSION:=2.6.32.20
 
 include $(INCLUDE_DIR)/target.mk
 
diff --git a/target/linux/pxa/Makefile b/target/linux/pxa/Makefile
index 0877dd21e..dcfeafa6e 100644
--- a/target/linux/pxa/Makefile
+++ b/target/linux/pxa/Makefile
@@ -11,7 +11,7 @@ BOARD:=pxa
 BOARDNAME:=Marvell/Intel PXA2xx
 FEATURES:=squashfs
 
-LINUX_VERSION:=2.6.32.16
+LINUX_VERSION:=2.6.32.20
 
 include $(INCLUDE_DIR)/target.mk
 
diff --git a/target/linux/rb532/Makefile b/target/linux/rb532/Makefile
index f400b77bd..3953c546d 100644
--- a/target/linux/rb532/Makefile
+++ b/target/linux/rb532/Makefile
@@ -11,7 +11,7 @@ BOARD:=rb532
 BOARDNAME:=Mikrotik RouterBoard 532
 FEATURES:=jffs2 pci targz
 
-LINUX_VERSION:=2.6.32.16
+LINUX_VERSION:=2.6.32.20
 
 include $(INCLUDE_DIR)/target.mk
 DEFAULT_PACKAGES += wpad-mini kmod-madwifi kmod-input-rb532
diff --git a/target/linux/rdc/Makefile b/target/linux/rdc/Makefile
index 1df5d454d..a49f16d42 100644
--- a/target/linux/rdc/Makefile
+++ b/target/linux/rdc/Makefile
@@ -12,7 +12,7 @@ BOARDNAME:=RDC 321x
 FEATURES:=squashfs jffs2 pci usb pcmcia
 CFLAGS:=-Os -pipe -march=i486 -mtune=i486 -funit-at-a-time
 
-LINUX_VERSION:=2.6.32.16
+LINUX_VERSION:=2.6.32.20
 
 include $(INCLUDE_DIR)/target.mk
 
diff --git a/target/linux/sibyte/Makefile b/target/linux/sibyte/Makefile
index 5758cb477..dab43957b 100644
--- a/target/linux/sibyte/Makefile
+++ b/target/linux/sibyte/Makefile
@@ -12,7 +12,7 @@ BOARDNAME:=Broadcom/SiByte SB-1
 FEATURES:=fpu
 CFLAGS:=-Os -pipe -march=sb1 -funit-at-a-time
 
-LINUX_VERSION:=2.6.32.16
+LINUX_VERSION:=2.6.32.20
 
 include $(INCLUDE_DIR)/target.mk
 
diff --git a/target/linux/uml/Makefile b/target/linux/uml/Makefile
index a962114df..95262b82d 100644
--- a/target/linux/uml/Makefile
+++ b/target/linux/uml/Makefile
@@ -23,7 +23,7 @@ BOARDNAME:=User Mode Linux
 FEATURES:=ext2 audio
 LINUX_CONFIG:=$(CURDIR)/config/$(ARCH)
 
-LINUX_VERSION:=2.6.32.16
+LINUX_VERSION:=2.6.32.20
 
 include $(INCLUDE_DIR)/target.mk
 
diff --git a/target/linux/x86/Makefile b/target/linux/x86/Makefile
index e4c48ee95..895bc5bbd 100644
--- a/target/linux/x86/Makefile
+++ b/target/linux/x86/Makefile
@@ -12,7 +12,7 @@ BOARDNAME:=x86
 FEATURES:=squashfs jffs2 ext2 vdi vmdk pcmcia targz
 SUBTARGETS=generic olpc xen_domu ep80579 net5501
 
-LINUX_VERSION:=2.6.32.16
+LINUX_VERSION:=2.6.32.20
 
 include $(INCLUDE_DIR)/target.mk
 
-- 
2.20.1