--- /dev/null
+From 6f16f4998f98e42e3f2dedf663cfb691ff0324af Mon Sep 17 00:00:00 2001
+From: Nicolas Pitre <nicolas.pitre@linaro.org>
+Date: Tue, 15 Jan 2013 18:51:32 +0100
+Subject: ARM: 7628/1: head.S: map one extra section for the ATAG/DTB area
+
+From: Nicolas Pitre <nicolas.pitre@linaro.org>
+
+commit 6f16f4998f98e42e3f2dedf663cfb691ff0324af upstream.
+
+We currently use a temporary 1MB section aligned to a 1MB boundary for
+mapping the provided device tree until the final page table is created.
+However, if the device tree happens to cross that 1MB boundary, the end
+of it remains unmapped and the kernel crashes when it attempts to access
+it. Given no restriction on the location of that DTB, it could end up
+with only a few bytes mapped at the end of a section.
+
+Solve this issue by mapping two consecutive sections.
+
+Signed-off-by: Nicolas Pitre <nico@linaro.org>
+Tested-by: Sascha Hauer <s.hauer@pengutronix.de>
+Tested-by: Tomasz Figa <t.figa@samsung.com>
+Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
+[bwh: Backported to 3.2:
+ - Adjust context
+ - The mapping is not conditional; drop the 'ne' suffixes]
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+[yangyl: Backported to 3.4: Adjust context]
+Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ arch/arm/kernel/head.S | 3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/arch/arm/kernel/head.S
++++ b/arch/arm/kernel/head.S
+@@ -254,6 +254,7 @@ __create_page_tables:
+ /*
+ * Then map boot params address in r2 or the first 1MB (2MB with LPAE)
+ * of ram if boot params address is not specified.
++ * We map 2 sections in case the ATAGs/DTB crosses a section boundary.
+ */
+ mov r0, r2, lsr #SECTION_SHIFT
+ movs r0, r0, lsl #SECTION_SHIFT
+@@ -262,6 +263,8 @@ __create_page_tables:
+ add r3, r3, #PAGE_OFFSET
+ add r3, r4, r3, lsr #(SECTION_SHIFT - PMD_ORDER)
+ orr r6, r7, r0
++ str r6, [r3], #1 << PMD_ORDER
++ add r6, r6, #1 << SECTION_SHIFT
+ str r6, [r3]
+
+ #ifdef CONFIG_DEBUG_LL
--- /dev/null
+From 17db9f4f88581b83762735eba9c64f06a85ac069 Mon Sep 17 00:00:00 2001
+From: Arnd Bergmann <arnd@arndb.de>
+Date: Fri, 31 May 2013 22:49:22 +0100
+Subject: ARM: 7742/1: topology: export cpu_topology
+
+From: Arnd Bergmann <arnd@arndb.de>
+
+commit 92bdd3f5eba299b33c2f4407977d6fa2e2a6a0da upstream.
+
+The cpu_topology symbol is required by any driver using the topology
+interfaces, which leads to a couple of build errors:
+
+ERROR: "cpu_topology" [drivers/net/ethernet/sfc/sfc.ko] undefined!
+ERROR: "cpu_topology" [drivers/cpufreq/arm_big_little.ko] undefined!
+ERROR: "cpu_topology" [drivers/block/mtip32xx/mtip32xx.ko] undefined!
+
+The obvious solution is to export this symbol.
+
+Signed-off-by: Arnd Bergmann <arnd@arndb.de>
+Acked-by: Will Deacon <will.deacon@arm.com>
+Cc: Nicolas Pitre <nico@linaro.org>
+Cc: Vincent Guittot <vincent.guittot@linaro.org>
+Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+Cc: Yang Yingliang <yangyingliang@huawei.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/arm/kernel/topology.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/arch/arm/kernel/topology.c
++++ b/arch/arm/kernel/topology.c
+@@ -13,6 +13,7 @@
+
+ #include <linux/cpu.h>
+ #include <linux/cpumask.h>
++#include <linux/export.h>
+ #include <linux/init.h>
+ #include <linux/percpu.h>
+ #include <linux/node.h>
+@@ -42,6 +43,7 @@
+ #define MPIDR_LEVEL2_SHIFT 16
+
+ struct cputopo_arm cpu_topology[NR_CPUS];
++EXPORT_SYMBOL_GPL(cpu_topology);
+
+ const struct cpumask *cpu_coregroup_mask(int cpu)
+ {
--- /dev/null
+From 5b9ca6b68cfa7fffcf9db83dbca90bbcad57d040 Mon Sep 17 00:00:00 2001
+From: Arnd Bergmann <arnd@arndb.de>
+Date: Fri, 31 May 2013 22:50:47 +0100
+Subject: ARM: 7743/1: compressed/head.S: work around new binutils warning
+
+From: Arnd Bergmann <arnd@arndb.de>
+
+commit da94a829305f1c217cfdf6771cb1faca0917e3b9 upstream.
+
+In August 2012, Matthew Gretton-Dann checked a change into binutils
+labelled "Error on obsolete & warn on deprecated registers", apparently as
+part of ARMv8 support. Apparently, this was supposed to emit the message
+"Warning: This coprocessor register access is deprecated in ARMv8" when
+using certain mcr/mrc instructions and building for ARMv8. Unfortunately,
+the message that is actually emitted appears to be '(null)', which is
+less helpful in comparison.
+
+Even more unfortunately, this is biting us on every single kernel
+build with a new gas, because arch/arm/boot/compressed/head.S and some
+other files in that directory are built with -march=all since kernel
+commit 80cec14a8 "[ARM] Add -march=all to assembly file build in
+arch/arm/boot/compressed" back in v2.6.28.
+
+This patch reverts Russell's nice solution and instead marks the head.S
+file to be built for armv7-a, which fortunately lets us build all
+instructions in that file without warnings even on the broken binutils.
+
+Without this patch, building anything results in:
+
+arch/arm/boot/compressed/head.S: Assembler messages:
+arch/arm/boot/compressed/head.S:565: Warning: (null)
+arch/arm/boot/compressed/head.S:676: Warning: (null)
+arch/arm/boot/compressed/head.S:698: Warning: (null)
+arch/arm/boot/compressed/head.S:722: Warning: (null)
+arch/arm/boot/compressed/head.S:726: Warning: (null)
+arch/arm/boot/compressed/head.S:957: Warning: (null)
+arch/arm/boot/compressed/head.S:996: Warning: (null)
+arch/arm/boot/compressed/head.S:997: Warning: (null)
+arch/arm/boot/compressed/head.S:1027: Warning: (null)
+arch/arm/boot/compressed/head.S:1035: Warning: (null)
+arch/arm/boot/compressed/head.S:1046: Warning: (null)
+arch/arm/boot/compressed/head.S:1060: Warning: (null)
+arch/arm/boot/compressed/head.S:1092: Warning: (null)
+arch/arm/boot/compressed/head.S:1094: Warning: (null)
+arch/arm/boot/compressed/head.S:1095: Warning: (null)
+arch/arm/boot/compressed/head.S:1102: Warning: (null)
+arch/arm/boot/compressed/head.S:1134: Warning: (null)
+
+Signed-off-by: Arnd Bergmann <arnd@arndb.de>
+Cc: Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
+Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
+[bwh: Backported to 3.2:
+ - Adjust context
+ - Remove definition of asflags-y as it is now empty]
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+Cc: Yang Yingliang <yangyingliang@huawei.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/arm/boot/compressed/Makefile | 1 -
+ arch/arm/boot/compressed/head-sa1100.S | 1 +
+ arch/arm/boot/compressed/head-shark.S | 1 +
+ arch/arm/boot/compressed/head.S | 1 +
+ 4 files changed, 3 insertions(+), 1 deletion(-)
+
+--- a/arch/arm/boot/compressed/Makefile
++++ b/arch/arm/boot/compressed/Makefile
+@@ -126,7 +126,6 @@ KBUILD_CFLAGS = $(subst -pg, , $(ORIG_CF
+ endif
+
+ ccflags-y := -fpic -fno-builtin -I$(obj)
+-asflags-y := -Wa,-march=all
+
+ # Supply kernel BSS size to the decompressor via a linker symbol.
+ KBSS_SZ = $(shell $(CROSS_COMPILE)size $(obj)/../../../../vmlinux | \
+--- a/arch/arm/boot/compressed/head-sa1100.S
++++ b/arch/arm/boot/compressed/head-sa1100.S
+@@ -11,6 +11,7 @@
+ #include <asm/mach-types.h>
+
+ .section ".start", "ax"
++ .arch armv4
+
+ __SA1100_start:
+
+--- a/arch/arm/boot/compressed/head-shark.S
++++ b/arch/arm/boot/compressed/head-shark.S
+@@ -18,6 +18,7 @@
+
+ .section ".start", "ax"
+
++ .arch armv4
+ b __beginning
+
+ __ofw_data: .long 0 @ the number of memory blocks
+--- a/arch/arm/boot/compressed/head.S
++++ b/arch/arm/boot/compressed/head.S
+@@ -10,6 +10,7 @@
+ */
+ #include <linux/linkage.h>
+
++ .arch armv7-a
+ /*
+ * Debugging stuff
+ *
--- /dev/null
+From acfdd4b1f7590d02e9bae3b73bdbbc4a31b05d38 Mon Sep 17 00:00:00 2001
+From: Will Deacon <will.deacon@arm.com>
+Date: Thu, 25 Jul 2013 11:44:48 +0100
+Subject: ARM: 7791/1: a.out: remove partial a.out support
+
+From: Will Deacon <will.deacon@arm.com>
+
+commit acfdd4b1f7590d02e9bae3b73bdbbc4a31b05d38 upstream.
+
+a.out support on ARM requires that argc, argv and envp are passed in
+r0-r2 respectively, which requires hacking load_aout_binary to
+prevent argc being clobbered by the return code. Whilst mainline kernels
+do set the registers up in start_thread, the aout loader has never
+carried the hack in mainline.
+
+Initialising the registers in this way actually goes against the libc
+expectations for ELF binaries, where argc, argv and envp are passed on
+the stack, with r0 being used to hold a pointer to an exit function for
+cleaning up after the dynamic linker if required. If the pointer is
+NULL, then it is ignored. When execing an ELF binary, Linux currently
+zeroes r0, then sets it to argc and then finally clobbers it with the
+return value of the execve syscall, so we actually end up with:
+
+ r0 = 0
+ stack[0] = argc
+ r1 = stack[1] = argv
+ r2 = stack[2] = envp
+
+libc treats r1 and r2 as undefined. The clobbering of r0 by sys_execve
+works for user-spawned threads, but when executing an ELF binary from a
+kernel thread (via call_usermodehelper), the execve is performed on the
+ret_from_fork path, which restores r0 from the saved pt_regs, resulting
+in argc being presented to the C library. This has horrible consequences
+when the application exits, since we have an exit function registered
+using argc, resulting in a jump to hyperspace.
+
+This patch solves the problem by removing the partial a.out support from
+arch/arm/ altogether.
+
+Cc: Ashish Sangwan <ashishsangwan2@gmail.com>
+Signed-off-by: Will Deacon <will.deacon@arm.com>
+Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
+[bwh: Backported to 3.2:
+ - Adjust context
+ - Adjust uapi filename]
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+[yangyl: Backported to 3.4: Adjust context]
+Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ arch/arm/Kconfig | 1
+ arch/arm/include/asm/a.out-core.h | 45 --------------------------------------
+ arch/arm/include/asm/a.out.h | 34 ----------------------------
+ arch/arm/include/asm/processor.h | 4 ---
+ 4 files changed, 84 deletions(-)
+ delete mode 100644 arch/arm/include/asm/a.out-core.h
+ delete mode 100644 arch/arm/include/asm/a.out.h
+
+--- a/arch/arm/Kconfig
++++ b/arch/arm/Kconfig
+@@ -1,7 +1,6 @@
+ config ARM
+ bool
+ default y
+- select HAVE_AOUT
+ select HAVE_DMA_API_DEBUG
+ select HAVE_IDE if PCI || ISA || PCMCIA
+ select HAVE_MEMBLOCK
+--- a/arch/arm/include/asm/a.out-core.h
++++ /dev/null
+@@ -1,45 +0,0 @@
+-/* a.out coredump register dumper
+- *
+- * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
+- * Written by David Howells (dhowells@redhat.com)
+- *
+- * This program is free software; you can redistribute it and/or
+- * modify it under the terms of the GNU General Public Licence
+- * as published by the Free Software Foundation; either version
+- * 2 of the Licence, or (at your option) any later version.
+- */
+-
+-#ifndef _ASM_A_OUT_CORE_H
+-#define _ASM_A_OUT_CORE_H
+-
+-#ifdef __KERNEL__
+-
+-#include <linux/user.h>
+-#include <linux/elfcore.h>
+-
+-/*
+- * fill in the user structure for an a.out core dump
+- */
+-static inline void aout_dump_thread(struct pt_regs *regs, struct user *dump)
+-{
+- struct task_struct *tsk = current;
+-
+- dump->magic = CMAGIC;
+- dump->start_code = tsk->mm->start_code;
+- dump->start_stack = regs->ARM_sp & ~(PAGE_SIZE - 1);
+-
+- dump->u_tsize = (tsk->mm->end_code - tsk->mm->start_code) >> PAGE_SHIFT;
+- dump->u_dsize = (tsk->mm->brk - tsk->mm->start_data + PAGE_SIZE - 1) >> PAGE_SHIFT;
+- dump->u_ssize = 0;
+-
+- memset(dump->u_debugreg, 0, sizeof(dump->u_debugreg));
+-
+- if (dump->start_stack < 0x04000000)
+- dump->u_ssize = (0x04000000 - dump->start_stack) >> PAGE_SHIFT;
+-
+- dump->regs = *regs;
+- dump->u_fpvalid = dump_fpu (regs, &dump->u_fp);
+-}
+-
+-#endif /* __KERNEL__ */
+-#endif /* _ASM_A_OUT_CORE_H */
+--- a/arch/arm/include/asm/a.out.h
++++ /dev/null
+@@ -1,34 +0,0 @@
+-#ifndef __ARM_A_OUT_H__
+-#define __ARM_A_OUT_H__
+-
+-#include <linux/personality.h>
+-#include <linux/types.h>
+-
+-struct exec
+-{
+- __u32 a_info; /* Use macros N_MAGIC, etc for access */
+- __u32 a_text; /* length of text, in bytes */
+- __u32 a_data; /* length of data, in bytes */
+- __u32 a_bss; /* length of uninitialized data area for file, in bytes */
+- __u32 a_syms; /* length of symbol table data in file, in bytes */
+- __u32 a_entry; /* start address */
+- __u32 a_trsize; /* length of relocation info for text, in bytes */
+- __u32 a_drsize; /* length of relocation info for data, in bytes */
+-};
+-
+-/*
+- * This is always the same
+- */
+-#define N_TXTADDR(a) (0x00008000)
+-
+-#define N_TRSIZE(a) ((a).a_trsize)
+-#define N_DRSIZE(a) ((a).a_drsize)
+-#define N_SYMSIZE(a) ((a).a_syms)
+-
+-#define M_ARM 103
+-
+-#ifndef LIBRARY_START_TEXT
+-#define LIBRARY_START_TEXT (0x00c00000)
+-#endif
+-
+-#endif /* __A_OUT_GNU_H__ */
+--- a/arch/arm/include/asm/processor.h
++++ b/arch/arm/include/asm/processor.h
+@@ -54,7 +54,6 @@ struct thread_struct {
+
+ #define start_thread(regs,pc,sp) \
+ ({ \
+- unsigned long *stack = (unsigned long *)sp; \
+ memset(regs->uregs, 0, sizeof(regs->uregs)); \
+ if (current->personality & ADDR_LIMIT_32BIT) \
+ regs->ARM_cpsr = USR_MODE; \
+@@ -65,9 +64,6 @@ struct thread_struct {
+ regs->ARM_cpsr |= PSR_ENDSTATE; \
+ regs->ARM_pc = pc & ~1; /* pc */ \
+ regs->ARM_sp = sp; /* sp */ \
+- regs->ARM_r2 = stack[2]; /* r2 (envp) */ \
+- regs->ARM_r1 = stack[1]; /* r1 (argv) */ \
+- regs->ARM_r0 = stack[0]; /* r0 (argc) */ \
+ nommu_start_thread(regs); \
+ })
+
--- /dev/null
+From a3aaee9f1070ccec4bf551af5b47b6037a939e1c Mon Sep 17 00:00:00 2001
+From: Shawn Guo <shawn.guo@linaro.org>
+Date: Wed, 22 Aug 2012 21:46:39 +0800
+Subject: ARM: dts: imx51-babbage: fix esdhc cd/wp properties
+
+From: Shawn Guo <shawn.guo@linaro.org>
+
+commit a46d2619d7180bda12bad2bf15bbd0731dfc2dcf upstream.
+
+The binding doc and dts use properties "fsl,{cd,wp}-internal" while
+esdhc driver uses "fsl,{cd,wp}-controller". Fix binding doc and dts
+to get them match driver code.
+
+Reported-by: Chris Ball <cjb@laptop.org>
+Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
+Acked-by: Chris Ball <cjb@laptop.org>
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+Cc: Yang Yingliang <yangyingliang@huawei.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.txt | 8 ++++----
+ arch/arm/boot/dts/imx51-babbage.dts | 4 ++--
+ 2 files changed, 6 insertions(+), 6 deletions(-)
+
+--- a/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.txt
++++ b/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.txt
+@@ -10,8 +10,8 @@ Required properties:
+
+ Optional properties:
+ - fsl,card-wired : Indicate the card is wired to host permanently
+-- fsl,cd-internal : Indicate to use controller internal card detection
+-- fsl,wp-internal : Indicate to use controller internal write protection
++- fsl,cd-controller : Indicate to use controller internal card detection
++- fsl,wp-controller : Indicate to use controller internal write protection
+ - cd-gpios : Specify GPIOs for card detection
+ - wp-gpios : Specify GPIOs for write protection
+
+@@ -21,8 +21,8 @@ esdhc@70004000 {
+ compatible = "fsl,imx51-esdhc";
+ reg = <0x70004000 0x4000>;
+ interrupts = <1>;
+- fsl,cd-internal;
+- fsl,wp-internal;
++ fsl,cd-controller;
++ fsl,wp-controller;
+ };
+
+ esdhc@70008000 {
+--- a/arch/arm/boot/dts/imx51-babbage.dts
++++ b/arch/arm/boot/dts/imx51-babbage.dts
+@@ -29,8 +29,8 @@
+ aips@70000000 { /* aips-1 */
+ spba@70000000 {
+ esdhc@70004000 { /* ESDHC1 */
+- fsl,cd-internal;
+- fsl,wp-internal;
++ fsl,cd-controller;
++ fsl,wp-controller;
+ status = "okay";
+ };
+
--- /dev/null
+From cb80debe9515e8b7385ed1d3d602a08465b9fa3e Mon Sep 17 00:00:00 2001
+From: Russell King <rmk+kernel@arm.linux.org.uk>
+Date: Thu, 28 Nov 2013 21:55:41 +0000
+Subject: ARM: footbridge: fix VGA initialisation
+
+From: Russell King <rmk+kernel@arm.linux.org.uk>
+
+commit 43659222e7a0113912ed02f6b2231550b3e471ac upstream.
+
+It's no good setting vga_base after the VGA console has been
+initialised, because if we do that we get this:
+
+Unable to handle kernel paging request at virtual address 000b8000
+pgd = c0004000
+[000b8000] *pgd=07ffc831, *pte=00000000, *ppte=00000000
+0Internal error: Oops: 5017 [#1] ARM
+Modules linked in:
+CPU: 0 PID: 0 Comm: swapper Not tainted 3.12.0+ #49
+task: c03e2974 ti: c03d8000 task.ti: c03d8000
+PC is at vgacon_startup+0x258/0x39c
+LR is at request_resource+0x10/0x1c
+pc : [<c01725d0>] lr : [<c0022b50>] psr: 60000053
+sp : c03d9f68 ip : 000b8000 fp : c03d9f8c
+r10: 000055aa r9 : 4401a103 r8 : ffffaa55
+r7 : c03e357c r6 : c051b460 r5 : 000000ff r4 : 000c0000
+r3 : 000b8000 r2 : c03e0514 r1 : 00000000 r0 : c0304971
+Flags: nZCv IRQs on FIQs off Mode SVC_32 ISA ARM Segment kernel
+
+which is an access to the 0xb8000 without the PCI offset required to
+make it work.
+
+Fixes: cc22b4c18540 ("ARM: set vga memory base at run-time")
+Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
+[bwh: Backported to 3.2: adjust context]
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+Cc: Yang Yingliang <yangyingliang@huawei.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/arm/mach-footbridge/common.c | 3 +++
+ arch/arm/mach-footbridge/dc21285.c | 2 --
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+
+--- a/arch/arm/mach-footbridge/common.c
++++ b/arch/arm/mach-footbridge/common.c
+@@ -15,6 +15,7 @@
+ #include <linux/init.h>
+ #include <linux/io.h>
+ #include <linux/spinlock.h>
++#include <video/vga.h>
+
+ #include <asm/pgtable.h>
+ #include <asm/page.h>
+@@ -198,6 +199,8 @@ void __init footbridge_map_io(void)
+ */
+ if (footbridge_cfn_mode())
+ iotable_init(ebsa285_host_io_desc, ARRAY_SIZE(ebsa285_host_io_desc));
++
++ vga_base = PCIMEM_BASE;
+ }
+
+ void footbridge_restart(char mode, const char *cmd)
+--- a/arch/arm/mach-footbridge/dc21285.c
++++ b/arch/arm/mach-footbridge/dc21285.c
+@@ -18,7 +18,6 @@
+ #include <linux/irq.h>
+ #include <linux/io.h>
+ #include <linux/spinlock.h>
+-#include <video/vga.h>
+
+ #include <asm/irq.h>
+ #include <asm/mach/pci.h>
+@@ -298,7 +297,6 @@ void __init dc21285_preinit(void)
+ int cfn_mode;
+
+ pcibios_min_mem = 0x81000000;
+- vga_base = PCIMEM_BASE;
+
+ mem_size = (unsigned int)high_memory - PAGE_OFFSET;
+ for (mem_mask = 0x00100000; mem_mask < 0x10000000; mem_mask <<= 1)
--- /dev/null
+From 58569aee5a1a5dcc25c34a0a2ed9a377874e6b05 Mon Sep 17 00:00:00 2001
+From: "Arnaud Patard (Rtp)" <arnaud.patard@rtp-net.org>
+Date: Thu, 26 Jul 2012 12:15:46 +0200
+Subject: ARM: Orion: Set eth packet size csum offload limit
+
+From: "Arnaud Patard (Rtp)" <arnaud.patard@rtp-net.org>
+
+commit 58569aee5a1a5dcc25c34a0a2ed9a377874e6b05 upstream.
+
+The mv643xx ethernet controller limits the packet size for the TX
+checksum offloading. This patch sets this limits for Kirkwood and
+Dove which have smaller limits that the default.
+
+As a side note, this patch is an updated version of a patch sent some years
+ago: http://lists.infradead.org/pipermail/linux-arm-kernel/2010-June/017320.html
+which seems to have been lost.
+
+Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
+Signed-off-by: Jason Cooper <jason@lakedaemon.net>
+[bwh: Backported to 3.2: adjust for the extra two parameters of
+ orion_ge0{0,1}_init()]
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+[yangyl: Backported to 3.4: Adjust context]
+Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ arch/arm/mach-dove/common.c | 2 +-
+ arch/arm/mach-kirkwood/common.c | 4 ++--
+ arch/arm/mach-mv78xx0/common.c | 6 ++++--
+ arch/arm/mach-orion5x/common.c | 3 ++-
+ arch/arm/plat-orion/common.c | 8 ++++++--
+ arch/arm/plat-orion/include/plat/common.h | 6 ++++--
+ include/linux/mv643xx_eth.h | 2 ++
+ 7 files changed, 21 insertions(+), 10 deletions(-)
+
+--- a/arch/arm/mach-dove/common.c
++++ b/arch/arm/mach-dove/common.c
+@@ -90,7 +90,7 @@ void __init dove_ge00_init(struct mv643x
+ {
+ orion_ge00_init(eth_data,
+ DOVE_GE00_PHYS_BASE, IRQ_DOVE_GE00_SUM,
+- 0, get_tclk());
++ 0, get_tclk(), 1600);
+ }
+
+ /*****************************************************************************
+--- a/arch/arm/mach-kirkwood/common.c
++++ b/arch/arm/mach-kirkwood/common.c
+@@ -87,7 +87,7 @@ void __init kirkwood_ge00_init(struct mv
+
+ orion_ge00_init(eth_data,
+ GE00_PHYS_BASE, IRQ_KIRKWOOD_GE00_SUM,
+- IRQ_KIRKWOOD_GE00_ERR, kirkwood_tclk);
++ IRQ_KIRKWOOD_GE00_ERR, kirkwood_tclk, 1600);
+ }
+
+
+@@ -101,7 +101,7 @@ void __init kirkwood_ge01_init(struct mv
+
+ orion_ge01_init(eth_data,
+ GE01_PHYS_BASE, IRQ_KIRKWOOD_GE01_SUM,
+- IRQ_KIRKWOOD_GE01_ERR, kirkwood_tclk);
++ IRQ_KIRKWOOD_GE01_ERR, kirkwood_tclk, 1600);
+ }
+
+
+--- a/arch/arm/mach-mv78xx0/common.c
++++ b/arch/arm/mach-mv78xx0/common.c
+@@ -199,7 +199,8 @@ void __init mv78xx0_ge00_init(struct mv6
+ {
+ orion_ge00_init(eth_data,
+ GE00_PHYS_BASE, IRQ_MV78XX0_GE00_SUM,
+- IRQ_MV78XX0_GE_ERR, get_tclk());
++ IRQ_MV78XX0_GE_ERR, get_tclk(),
++ MV643XX_TX_CSUM_DEFAULT_LIMIT);
+ }
+
+
+@@ -210,7 +211,8 @@ void __init mv78xx0_ge01_init(struct mv6
+ {
+ orion_ge01_init(eth_data,
+ GE01_PHYS_BASE, IRQ_MV78XX0_GE01_SUM,
+- NO_IRQ, get_tclk());
++ NO_IRQ, get_tclk(),
++ MV643XX_TX_CSUM_DEFAULT_LIMIT);
+ }
+
+
+--- a/arch/arm/mach-orion5x/common.c
++++ b/arch/arm/mach-orion5x/common.c
+@@ -95,7 +95,8 @@ void __init orion5x_eth_init(struct mv64
+ {
+ orion_ge00_init(eth_data,
+ ORION5X_ETH_PHYS_BASE, IRQ_ORION5X_ETH_SUM,
+- IRQ_ORION5X_ETH_ERR, orion5x_tclk);
++ IRQ_ORION5X_ETH_ERR, orion5x_tclk,
++ MV643XX_TX_CSUM_DEFAULT_LIMIT);
+ }
+
+
+--- a/arch/arm/plat-orion/common.c
++++ b/arch/arm/plat-orion/common.c
+@@ -261,10 +261,12 @@ void __init orion_ge00_init(struct mv643
+ unsigned long mapbase,
+ unsigned long irq,
+ unsigned long irq_err,
+- int tclk)
++ int tclk,
++ unsigned int tx_csum_limit)
+ {
+ fill_resources(&orion_ge00_shared, orion_ge00_shared_resources,
+ mapbase + 0x2000, SZ_16K - 1, irq_err);
++ orion_ge00_shared_data.tx_csum_limit = tx_csum_limit;
+ ge_complete(&orion_ge00_shared_data, tclk,
+ orion_ge00_resources, irq, &orion_ge00_shared,
+ eth_data, &orion_ge00);
+@@ -314,10 +316,12 @@ void __init orion_ge01_init(struct mv643
+ unsigned long mapbase,
+ unsigned long irq,
+ unsigned long irq_err,
+- int tclk)
++ int tclk,
++ unsigned int tx_csum_limit)
+ {
+ fill_resources(&orion_ge01_shared, orion_ge01_shared_resources,
+ mapbase + 0x2000, SZ_16K - 1, irq_err);
++ orion_ge01_shared_data.tx_csum_limit = tx_csum_limit;
+ ge_complete(&orion_ge01_shared_data, tclk,
+ orion_ge01_resources, irq, &orion_ge01_shared,
+ eth_data, &orion_ge01);
+--- a/arch/arm/plat-orion/include/plat/common.h
++++ b/arch/arm/plat-orion/include/plat/common.h
+@@ -40,13 +40,15 @@ void __init orion_ge00_init(struct mv643
+ unsigned long mapbase,
+ unsigned long irq,
+ unsigned long irq_err,
+- int tclk);
++ int tclk,
++ unsigned int tx_csum_limit);
+
+ void __init orion_ge01_init(struct mv643xx_eth_platform_data *eth_data,
+ unsigned long mapbase,
+ unsigned long irq,
+ unsigned long irq_err,
+- int tclk);
++ int tclk,
++ unsigned int tx_csum_limit);
+
+ void __init orion_ge10_init(struct mv643xx_eth_platform_data *eth_data,
+ unsigned long mapbase,
+--- a/include/linux/mv643xx_eth.h
++++ b/include/linux/mv643xx_eth.h
+@@ -15,6 +15,8 @@
+ #define MV643XX_ETH_SIZE_REG_4 0x2224
+ #define MV643XX_ETH_BASE_ADDR_ENABLE_REG 0x2290
+
++#define MV643XX_TX_CSUM_DEFAULT_LIMIT 0
++
+ struct mv643xx_eth_shared_platform_data {
+ struct mbus_dram_target_info *dram;
+ struct platform_device *shared_smi;
--- /dev/null
+From 325aa5f2c58217c2da531847231c77e612915fbf Mon Sep 17 00:00:00 2001
+From: Sergei Ianovich <ynvich@gmail.com>
+Date: Tue, 10 Dec 2013 08:39:15 +0400
+Subject: ARM: pxa: prevent PXA270 occasional reboot freezes
+
+From: Sergei Ianovich <ynvich@gmail.com>
+
+commit ff88b4724fde18056a4c539f7327389aec0f4c2d upstream.
+
+Erratum 71 of PXA270M Processor Family Specification Update
+(April 19, 2010) explains that watchdog reset time is just
+8us insead of 10ms in EMTS.
+
+If SDRAM is not reset, it causes memory bus congestion and
+the device hangs. We put SDRAM in selfresh mode before watchdog
+reset, removing potential freezes.
+
+Without this patch PXA270-based ICP DAS LP-8x4x hangs after up to 40
+reboots. With this patch it has successfully rebooted 500 times.
+
+Signed-off-by: Sergei Ianovich <ynvich@gmail.com>
+Tested-by: Marek Vasut <marex@denx.de>
+Signed-off-by: Haojian Zhuang <haojian.zhuang@gmail.com>
+Signed-off-by: Olof Johansson <olof@lixom.net>
+[bwh: Backported to 3.2: adjust context]
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+Cc: Yang Yingliang <yangyingliang@huawei.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/arm/mach-pxa/reset.c | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+--- a/arch/arm/mach-pxa/reset.c
++++ b/arch/arm/mach-pxa/reset.c
+@@ -13,6 +13,7 @@
+
+ #include <mach/regs-ost.h>
+ #include <mach/reset.h>
++#include <mach/smemc.h>
+
+ unsigned int reset_status;
+ EXPORT_SYMBOL(reset_status);
+@@ -80,6 +81,12 @@ static void do_hw_reset(void)
+ OWER = OWER_WME;
+ OSSR = OSSR_M3;
+ OSMR3 = OSCR + 368640; /* ... in 100 ms */
++ /*
++ * SDRAM hangs on watchdog reset on Marvell PXA270 (erratum 71)
++ * we put SDRAM into self-refresh to prevent that
++ */
++ while (1)
++ writel_relaxed(MDREFR_SLFRSH, MDREFR);
+ }
+
+ void pxa_restart(char mode, const char *cmd)
+@@ -103,4 +110,3 @@ void pxa_restart(char mode, const char *
+ break;
+ }
+ }
+-
--- /dev/null
+From 17ae25f05e68f0caeddf3590a3e67102a847c8f5 Mon Sep 17 00:00:00 2001
+From: Linus Walleij <linus.walleij@linaro.org>
+Date: Fri, 26 Apr 2013 15:29:55 +0200
+Subject: ARM: u300: fix ages old copy/paste bug
+
+From: Linus Walleij <linus.walleij@linaro.org>
+
+commit 0259d9eb30d003af305626db2d8332805696e60d upstream.
+
+The UART1 is on the fast AHB bridge, not on the slow bus.
+
+Acked-by: Arnd Bergmann <arnd@arndb.de>
+Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
+Signed-off-by: Olof Johansson <olof@lixom.net>
+[bwh: Backported to 3.2: adjust context]
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+Cc: Yang Yingliang <yangyingliang@huawei.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/arm/mach-u300/include/mach/u300-regs.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/arm/mach-u300/include/mach/u300-regs.h
++++ b/arch/arm/mach-u300/include/mach/u300-regs.h
+@@ -101,7 +101,7 @@
+
+ #ifdef CONFIG_MACH_U300_BS335
+ /* Fast UART1 on U335 only */
+-#define U300_UART1_BASE (U300_SLOW_PER_PHYS_BASE+0x7000)
++#define U300_UART1_BASE (U300_FAST_PER_PHYS_BASE+0x7000)
+ #endif
+
+ /*
--- /dev/null
+From ee0a25ab1c315dbd8483b03a5ecd661e130ff18f Mon Sep 17 00:00:00 2001
+From: Arnd Bergmann <arnd@arndb.de>
+Date: Mon, 14 Jan 2013 12:49:02 +0000
+Subject: ARM: w90x900: fix legacy assembly syntax
+
+From: Arnd Bergmann <arnd@arndb.de>
+
+commit fa5ce5f94c0f2bfa41ba68d2d2524298e1fc405e upstream.
+
+New ARM binutils don't allow extraneous whitespace inside
+of brackets, which causes this error on all mach-w90x900
+defconfigs:
+
+arch/arm/kernel/entry-armv.S: Assembler messages:
+arch/arm/kernel/entry-armv.S:214: Error: ARM register expected -- `ldr r0,[ r6,#(0x10C)]'
+arch/arm/kernel/entry-armv.S:214: Error: ARM register expected -- `ldr r0,[ r6,#(0x110)]'
+arch/arm/kernel/entry-armv.S:430: Error: ARM register expected -- `ldr r0,[ r6,#(0x10C)]'
+arch/arm/kernel/entry-armv.S:430: Error: ARM register expected -- `ldr r0,[ r6,#(0x110)]'
+
+This removes the whitespace in order to build the kernel
+again.
+
+Signed-off-by: Arnd Bergmann <arnd@arndb.de>
+Cc: Wan ZongShun <mcuos.com@gmail.com>
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+Cc: Yang Yingliang <yangyingliang@huawei.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/arm/mach-w90x900/include/mach/entry-macro.S | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/arch/arm/mach-w90x900/include/mach/entry-macro.S
++++ b/arch/arm/mach-w90x900/include/mach/entry-macro.S
+@@ -19,8 +19,8 @@
+
+ mov \base, #AIC_BA
+
+- ldr \irqnr, [ \base, #AIC_IPER]
+- ldr \irqnr, [ \base, #AIC_ISNR]
++ ldr \irqnr, [\base, #AIC_IPER]
++ ldr \irqnr, [\base, #AIC_ISNR]
+ cmp \irqnr, #0
+
+ .endm
hid-usbhid-quirk-for-msi-gx680r-led-panel.patch
hid-usbhid-fix-build-problem.patch
hid-hidraw-correctly-deallocate-memory-on-device-disconnect.patch
+arm-dts-imx51-babbage-fix-esdhc-cd-wp-properties.patch
+arm-w90x900-fix-legacy-assembly-syntax.patch
+arm-u300-fix-ages-old-copy-paste-bug.patch
+arm-7742-1-topology-export-cpu_topology.patch
+arm-7743-1-compressed-head.s-work-around-new-binutils-warning.patch
+arm-footbridge-fix-vga-initialisation.patch
+arm-pxa-prevent-pxa270-occasional-reboot-freezes.patch
+arm-orion-set-eth-packet-size-csum-offload-limit.patch
+arm-7628-1-head.s-map-one-extra-section-for-the-atag-dtb-area.patch
+arm-7791-1-a.out-remove-partial-a.out-support.patch