--- /dev/null
+From 80bb3ef109ff40a7593d9481c17de9bbc4d7c0e2 Mon Sep 17 00:00:00 2001
+From: Xiangyu Lu <luxiangyu@huawei.com>
+Date: Tue, 15 Apr 2014 09:38:17 +0100
+Subject: ARM: 8027/1: fix do_div() bug in big-endian systems
+
+From: Xiangyu Lu <luxiangyu@huawei.com>
+
+commit 80bb3ef109ff40a7593d9481c17de9bbc4d7c0e2 upstream.
+
+In big-endian systems, "%1" get the most significant part of the value, cause the instruction to get the wrong result.
+
+When viewing ftrace record in big-endian ARM systems, we found that
+the timestamp errors:
+
+swapper-0 [001] 1325.970000: 0:120:R ==> [001] 16:120:R events/1
+events/1-16 [001] 1325.970000: 16:120:S ==> [001] 0:120:R swapper
+swapper-0 [000] 1325.1000000: 0:120:R + [000] 15:120:R events/0
+swapper-0 [000] 1325.1000000: 0:120:R ==> [000] 15:120:R events/0
+swapper-0 [000] 1326.030000: 0:120:R + [000] 1150:120:R sshd
+swapper-0 [000] 1326.030000: 0:120:R ==> [000] 1150:120:R sshd
+
+When viewed ftrace records, it will call the do_div(n, base) function, which achieved arch/arm/include/asm/div64.h in. When n = 10000000, base = 1000000, in do_div(n, base) will execute "umull %Q0, %R0, %1, %Q2".
+
+Reviewed-by: Dave Martin <Dave.Martin@arm.com>
+Reviewed-by: Nicolas Pitre <nico@linaro.org>
+Signed-off-by: Alex Wu <wuquanming@huawei.com>
+Signed-off-by: Xiangyu Lu <luxiangyu@huawei.com>
+Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/arm/include/asm/div64.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/arm/include/asm/div64.h
++++ b/arch/arm/include/asm/div64.h
+@@ -156,7 +156,7 @@
+ /* Select the best insn combination to perform the */ \
+ /* actual __m * __n / (__p << 64) operation. */ \
+ if (!__c) { \
+- asm ( "umull %Q0, %R0, %1, %Q2\n\t" \
++ asm ( "umull %Q0, %R0, %Q1, %Q2\n\t" \
+ "mov %Q0, #0" \
+ : "=&r" (__res) \
+ : "r" (__m), "r" (__n) \
--- /dev/null
+From 56b700fd6f1e49149880fb1b6ffee0dca5be45fb Mon Sep 17 00:00:00 2001
+From: Liu Hua <sdu.liu@huawei.com>
+Date: Fri, 18 Apr 2014 07:45:36 +0100
+Subject: ARM: 8030/1: ARM : kdump : add arch_crash_save_vmcoreinfo
+
+From: Liu Hua <sdu.liu@huawei.com>
+
+commit 56b700fd6f1e49149880fb1b6ffee0dca5be45fb upstream.
+
+For vmcore generated by LPAE enabled kernel, user space
+utility such as crash needs additional infomation to
+parse.
+
+So this patch add arch_crash_save_vmcoreinfo as what PAE enabled
+i386 linux does.
+
+Reviewed-by: Will Deacon <will.deacon@arm.com>
+Signed-off-by: Liu Hua <sdu.liu@huawei.com>
+Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/arm/kernel/machine_kexec.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+--- a/arch/arm/kernel/machine_kexec.c
++++ b/arch/arm/kernel/machine_kexec.c
+@@ -138,3 +138,10 @@ void machine_kexec(struct kimage *image)
+
+ soft_restart(reboot_code_buffer_phys);
+ }
++
++void arch_crash_save_vmcoreinfo(void)
++{
++#ifdef CONFIG_ARM_LPAE
++ VMCOREINFO_CONFIG(ARM_LPAE);
++#endif
++}
--- /dev/null
+From 698b48532539484b012fb7c4176b959d32a17d00 Mon Sep 17 00:00:00 2001
+From: Stefan Sørensen <stefan.sorensen@spectralink.com>
+Date: Thu, 6 Mar 2014 16:27:15 +0100
+Subject: ARM: OMAP2+: INTC: Acknowledge stuck active interrupts
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Stefan Sørensen <stefan.sorensen@spectralink.com>
+
+commit 698b48532539484b012fb7c4176b959d32a17d00 upstream.
+
+When an interrupt has become active on the INTC it will stay active
+until it is acked, even if masked or de-asserted. The
+INTC_PENDING_IRQn registers are however updated and since these are
+used by omap_intc_handle_irq to determine which interrupt to handle,
+it will never see the active interrupt. This will result in a storm of
+useless interrupts that is only stopped when another higher priority
+interrupt is asserted.
+
+Fix by sending the INTC an acknowledge if we find no interrupts to
+handle.
+
+Signed-off-by: Stefan Sørensen <stefan.sorensen@spectralink.com>
+Signed-off-by: Tony Lindgren <tony@atomide.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/arm/mach-omap2/irq.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+--- a/arch/arm/mach-omap2/irq.c
++++ b/arch/arm/mach-omap2/irq.c
+@@ -220,6 +220,7 @@ void __init ti81xx_init_irq(void)
+ static inline void omap_intc_handle_irq(void __iomem *base_addr, struct pt_regs *regs)
+ {
+ u32 irqnr;
++ int handled_irq = 0;
+
+ do {
+ irqnr = readl_relaxed(base_addr + 0x98);
+@@ -247,8 +248,15 @@ out:
+ if (irqnr) {
+ irqnr = irq_find_mapping(domain, irqnr);
+ handle_IRQ(irqnr, regs);
++ handled_irq = 1;
+ }
+ } while (irqnr);
++
++ /* If an irq is masked or deasserted while active, we will
++ * keep ending up here with no irq handled. So remove it from
++ * the INTC with an ack.*/
++ if (!handled_irq)
++ omap_ack_irq(NULL);
+ }
+
+ asmlinkage void __exception_irq_entry omap2_intc_handle_irq(struct pt_regs *regs)
--- /dev/null
+From c6c56697ae4bf1226263c19e8353343d7083f40e Mon Sep 17 00:00:00 2001
+From: Roger Quadros <rogerq@ti.com>
+Date: Thu, 10 Apr 2014 10:18:17 +0300
+Subject: ARM: OMAP3: hwmod data: Correct clock domains for USB modules
+
+From: Roger Quadros <rogerq@ti.com>
+
+commit c6c56697ae4bf1226263c19e8353343d7083f40e upstream.
+
+OMAP3 doesn't contain "l3_init_clkdm" clock domain. Use the
+proper clock domains for USB Host and USB TLL modules.
+
+Gets rid of the following warnings during boot
+ omap_hwmod: usb_host_hs: could not associate to clkdm l3_init_clkdm
+ omap_hwmod: usb_tll_hs: could not associate to clkdm l3_init_clkdm
+
+Reported-by: Nishanth Menon <nm@ti.com>
+Cc: Paul Walmsley <paul@pwsan.com>
+Signed-off-by: Roger Quadros <rogerq@ti.com>
+Fixes: de231388cb80a8ef3e779bbfa0564ba0157b7377 ("ARM: OMAP: USB: EHCI and OHCI hwmod structures for OMAP3")
+Cc: Keshava Munegowda <keshava_mgowda@ti.com>
+Cc: Partha Basak <parthab@india.ti.com>
+Signed-off-by: Paul Walmsley <paul@pwsan.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
++++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
+@@ -3408,7 +3408,7 @@ static struct omap_hwmod_irq_info omap3x
+ static struct omap_hwmod omap3xxx_usb_host_hs_hwmod = {
+ .name = "usb_host_hs",
+ .class = &omap3xxx_usb_host_hs_hwmod_class,
+- .clkdm_name = "l3_init_clkdm",
++ .clkdm_name = "usbhost_clkdm",
+ .mpu_irqs = omap3xxx_usb_host_hs_irqs,
+ .main_clk = "usbhost_48m_fck",
+ .prcm = {
+@@ -3519,7 +3519,7 @@ static struct omap_hwmod_ocp_if *omap3xx
+ static struct omap_hwmod omap3xxx_usb_tll_hs_hwmod = {
+ .name = "usb_tll_hs",
+ .class = &omap3xxx_usb_tll_hs_hwmod_class,
+- .clkdm_name = "l3_init_clkdm",
++ .clkdm_name = "core_l4_clkdm",
+ .mpu_irqs = omap3xxx_usb_tll_hs_irqs,
+ .main_clk = "usbtll_fck",
+ .prcm = {
--- /dev/null
+From c02b50e90be9f41d6802049a1a08246e9eb1a22c Mon Sep 17 00:00:00 2001
+From: Andrea Adami <andrea.adami@gmail.com>
+Date: Tue, 8 Apr 2014 14:53:44 +0200
+Subject: ARM: pxa: hx4700.h: include "irqs.h" for PXA_NR_BUILTIN_GPIO
+
+From: Andrea Adami <andrea.adami@gmail.com>
+
+commit c02b50e90be9f41d6802049a1a08246e9eb1a22c upstream.
+
+hx4700 needs the same fix as in
+9705e74671f0e4f994d86b00cecf441917c64a66
+"ARM: pxa: fix various compilation problems"
+
+Fix build errors. Initial one is:
+/linux/arch/arm/mach-pxa/include/mach/hx4700.h:18:32: error:
+ 'PXA_NR_BUILTIN_GPIO' undeclared here (not in a function)
+| #define HX4700_ASIC3_GPIO_BASE PXA_NR_BUILTIN_GPIO
+
+Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
+Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
+Signed-off-by: Arnd Bergmann <arnd@arndb.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/arm/mach-pxa/include/mach/hx4700.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/arch/arm/mach-pxa/include/mach/hx4700.h
++++ b/arch/arm/mach-pxa/include/mach/hx4700.h
+@@ -14,6 +14,7 @@
+
+ #include <linux/gpio.h>
+ #include <linux/mfd/asic3.h>
++#include "irqs.h" /* PXA_NR_BUILTIN_GPIO */
+
+ #define HX4700_ASIC3_GPIO_BASE PXA_NR_BUILTIN_GPIO
+ #define HX4700_EGPIO_BASE (HX4700_ASIC3_GPIO_BASE + ASIC3_NUM_GPIOS)
--- /dev/null
+From 1555b652970e541fa1cb80c61ffc696bbfb92bb7 Mon Sep 17 00:00:00 2001
+From: Brian Austin <brian.austin@cirrus.com>
+Date: Tue, 18 Mar 2014 13:56:21 -0500
+Subject: ASoC: cs42l73: Fix mask bits for SOC_VALUE_ENUM_SINGLE
+
+From: Brian Austin <brian.austin@cirrus.com>
+
+commit 1555b652970e541fa1cb80c61ffc696bbfb92bb7 upstream.
+
+The mask bits values were wrong for the SOC_VALUE_ENUM_SINGLE for the mono mix controls.
+
+Reported-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Brian Austin <brian.austin@cirrus.com>
+Signed-off-by: Mark Brown <broonie@linaro.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/soc/codecs/cs42l73.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- a/sound/soc/codecs/cs42l73.c
++++ b/sound/soc/codecs/cs42l73.c
+@@ -327,7 +327,7 @@ static const char * const cs42l73_mono_m
+ static const unsigned int cs42l73_mono_mix_values[] = { 0, 1, 2 };
+
+ static const struct soc_enum spk_asp_enum =
+- SOC_VALUE_ENUM_SINGLE(CS42L73_MMIXCTL, 6, 1,
++ SOC_VALUE_ENUM_SINGLE(CS42L73_MMIXCTL, 6, 3,
+ ARRAY_SIZE(cs42l73_mono_mix_texts),
+ cs42l73_mono_mix_texts,
+ cs42l73_mono_mix_values);
+@@ -345,7 +345,7 @@ static const struct snd_kcontrol_new spk
+ SOC_DAPM_ENUM("Route", spk_xsp_enum);
+
+ static const struct soc_enum esl_asp_enum =
+- SOC_VALUE_ENUM_SINGLE(CS42L73_MMIXCTL, 2, 5,
++ SOC_VALUE_ENUM_SINGLE(CS42L73_MMIXCTL, 2, 3,
+ ARRAY_SIZE(cs42l73_mono_mix_texts),
+ cs42l73_mono_mix_texts,
+ cs42l73_mono_mix_values);
+@@ -354,7 +354,7 @@ static const struct snd_kcontrol_new esl
+ SOC_DAPM_ENUM("Route", esl_asp_enum);
+
+ static const struct soc_enum esl_xsp_enum =
+- SOC_VALUE_ENUM_SINGLE(CS42L73_MMIXCTL, 0, 7,
++ SOC_VALUE_ENUM_SINGLE(CS42L73_MMIXCTL, 0, 3,
+ ARRAY_SIZE(cs42l73_mono_mix_texts),
+ cs42l73_mono_mix_texts,
+ cs42l73_mono_mix_values);