]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 9 Apr 2014 23:13:42 +0000 (16:13 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 9 Apr 2014 23:13:42 +0000 (16:13 -0700)
added patches:
arm-7628-1-head.s-map-one-extra-section-for-the-atag-dtb-area.patch
arm-7742-1-topology-export-cpu_topology.patch
arm-7743-1-compressed-head.s-work-around-new-binutils-warning.patch
arm-7791-1-a.out-remove-partial-a.out-support.patch
arm-dts-imx51-babbage-fix-esdhc-cd-wp-properties.patch
arm-footbridge-fix-vga-initialisation.patch
arm-orion-set-eth-packet-size-csum-offload-limit.patch
arm-pxa-prevent-pxa270-occasional-reboot-freezes.patch
arm-u300-fix-ages-old-copy-paste-bug.patch
arm-w90x900-fix-legacy-assembly-syntax.patch

queue-3.4/arm-7628-1-head.s-map-one-extra-section-for-the-atag-dtb-area.patch [new file with mode: 0644]
queue-3.4/arm-7742-1-topology-export-cpu_topology.patch [new file with mode: 0644]
queue-3.4/arm-7743-1-compressed-head.s-work-around-new-binutils-warning.patch [new file with mode: 0644]
queue-3.4/arm-7791-1-a.out-remove-partial-a.out-support.patch [new file with mode: 0644]
queue-3.4/arm-dts-imx51-babbage-fix-esdhc-cd-wp-properties.patch [new file with mode: 0644]
queue-3.4/arm-footbridge-fix-vga-initialisation.patch [new file with mode: 0644]
queue-3.4/arm-orion-set-eth-packet-size-csum-offload-limit.patch [new file with mode: 0644]
queue-3.4/arm-pxa-prevent-pxa270-occasional-reboot-freezes.patch [new file with mode: 0644]
queue-3.4/arm-u300-fix-ages-old-copy-paste-bug.patch [new file with mode: 0644]
queue-3.4/arm-w90x900-fix-legacy-assembly-syntax.patch [new file with mode: 0644]
queue-3.4/series

diff --git a/queue-3.4/arm-7628-1-head.s-map-one-extra-section-for-the-atag-dtb-area.patch b/queue-3.4/arm-7628-1-head.s-map-one-extra-section-for-the-atag-dtb-area.patch
new file mode 100644 (file)
index 0000000..b5f2e92
--- /dev/null
@@ -0,0 +1,52 @@
+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
diff --git a/queue-3.4/arm-7742-1-topology-export-cpu_topology.patch b/queue-3.4/arm-7742-1-topology-export-cpu_topology.patch
new file mode 100644 (file)
index 0000000..75651da
--- /dev/null
@@ -0,0 +1,49 @@
+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)
+ {
diff --git a/queue-3.4/arm-7743-1-compressed-head.s-work-around-new-binutils-warning.patch b/queue-3.4/arm-7743-1-compressed-head.s-work-around-new-binutils-warning.patch
new file mode 100644 (file)
index 0000000..1b9288e
--- /dev/null
@@ -0,0 +1,105 @@
+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
+  *
diff --git a/queue-3.4/arm-7791-1-a.out-remove-partial-a.out-support.patch b/queue-3.4/arm-7791-1-a.out-remove-partial-a.out-support.patch
new file mode 100644 (file)
index 0000000..5e96d0c
--- /dev/null
@@ -0,0 +1,173 @@
+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);                                       \
+ })
diff --git a/queue-3.4/arm-dts-imx51-babbage-fix-esdhc-cd-wp-properties.patch b/queue-3.4/arm-dts-imx51-babbage-fix-esdhc-cd-wp-properties.patch
new file mode 100644 (file)
index 0000000..2220ed7
--- /dev/null
@@ -0,0 +1,62 @@
+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";
+                               };
diff --git a/queue-3.4/arm-footbridge-fix-vga-initialisation.patch b/queue-3.4/arm-footbridge-fix-vga-initialisation.patch
new file mode 100644 (file)
index 0000000..b390ed5
--- /dev/null
@@ -0,0 +1,80 @@
+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)
diff --git a/queue-3.4/arm-orion-set-eth-packet-size-csum-offload-limit.patch b/queue-3.4/arm-orion-set-eth-packet-size-csum-offload-limit.patch
new file mode 100644 (file)
index 0000000..84bcf04
--- /dev/null
@@ -0,0 +1,161 @@
+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;
diff --git a/queue-3.4/arm-pxa-prevent-pxa270-occasional-reboot-freezes.patch b/queue-3.4/arm-pxa-prevent-pxa270-occasional-reboot-freezes.patch
new file mode 100644 (file)
index 0000000..fe2dc01
--- /dev/null
@@ -0,0 +1,61 @@
+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;
+       }
+ }
+-
diff --git a/queue-3.4/arm-u300-fix-ages-old-copy-paste-bug.patch b/queue-3.4/arm-u300-fix-ages-old-copy-paste-bug.patch
new file mode 100644 (file)
index 0000000..cd4e50e
--- /dev/null
@@ -0,0 +1,34 @@
+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
+ /*
diff --git a/queue-3.4/arm-w90x900-fix-legacy-assembly-syntax.patch b/queue-3.4/arm-w90x900-fix-legacy-assembly-syntax.patch
new file mode 100644 (file)
index 0000000..49129e5
--- /dev/null
@@ -0,0 +1,45 @@
+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
index b040002c80d3049b19bedc6502ecd5d52bda7098..41a6842751cd95d5e2531e9a1a147cd8cc5cdd45 100644 (file)
@@ -26,3 +26,13 @@ hid-clean-up-quirk-for-sony-rf-receivers.patch
 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