]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 29 Apr 2014 23:45:31 +0000 (16:45 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 29 Apr 2014 23:45:31 +0000 (16:45 -0700)
added patches:
arm-8027-1-fix-do_div-bug-in-big-endian-systems.patch
arm-8030-1-arm-kdump-add-arch_crash_save_vmcoreinfo.patch
arm-omap2-intc-acknowledge-stuck-active-interrupts.patch
arm-omap3-hwmod-data-correct-clock-domains-for-usb-modules.patch
arm-pxa-hx4700.h-include-irqs.h-for-pxa_nr_builtin_gpio.patch
asoc-cs42l73-fix-mask-bits-for-soc_value_enum_single.patch

queue-3.4/arm-8027-1-fix-do_div-bug-in-big-endian-systems.patch [new file with mode: 0644]
queue-3.4/arm-8030-1-arm-kdump-add-arch_crash_save_vmcoreinfo.patch [new file with mode: 0644]
queue-3.4/arm-omap2-intc-acknowledge-stuck-active-interrupts.patch [new file with mode: 0644]
queue-3.4/arm-omap3-hwmod-data-correct-clock-domains-for-usb-modules.patch [new file with mode: 0644]
queue-3.4/arm-pxa-hx4700.h-include-irqs.h-for-pxa_nr_builtin_gpio.patch [new file with mode: 0644]
queue-3.4/asoc-cs42l73-fix-mask-bits-for-soc_value_enum_single.patch [new file with mode: 0644]

diff --git a/queue-3.4/arm-8027-1-fix-do_div-bug-in-big-endian-systems.patch b/queue-3.4/arm-8027-1-fix-do_div-bug-in-big-endian-systems.patch
new file mode 100644 (file)
index 0000000..9756b2d
--- /dev/null
@@ -0,0 +1,45 @@
+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)                  \
diff --git a/queue-3.4/arm-8030-1-arm-kdump-add-arch_crash_save_vmcoreinfo.patch b/queue-3.4/arm-8030-1-arm-kdump-add-arch_crash_save_vmcoreinfo.patch
new file mode 100644 (file)
index 0000000..86da081
--- /dev/null
@@ -0,0 +1,38 @@
+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
++}
diff --git a/queue-3.4/arm-omap2-intc-acknowledge-stuck-active-interrupts.patch b/queue-3.4/arm-omap2-intc-acknowledge-stuck-active-interrupts.patch
new file mode 100644 (file)
index 0000000..07e45f2
--- /dev/null
@@ -0,0 +1,57 @@
+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)
diff --git a/queue-3.4/arm-omap3-hwmod-data-correct-clock-domains-for-usb-modules.patch b/queue-3.4/arm-omap3-hwmod-data-correct-clock-domains-for-usb-modules.patch
new file mode 100644 (file)
index 0000000..bd8d6cb
--- /dev/null
@@ -0,0 +1,49 @@
+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 = {
diff --git a/queue-3.4/arm-pxa-hx4700.h-include-irqs.h-for-pxa_nr_builtin_gpio.patch b/queue-3.4/arm-pxa-hx4700.h-include-irqs.h-for-pxa_nr_builtin_gpio.patch
new file mode 100644 (file)
index 0000000..98a71aa
--- /dev/null
@@ -0,0 +1,37 @@
+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)
diff --git a/queue-3.4/asoc-cs42l73-fix-mask-bits-for-soc_value_enum_single.patch b/queue-3.4/asoc-cs42l73-fix-mask-bits-for-soc_value_enum_single.patch
new file mode 100644 (file)
index 0000000..810f53e
--- /dev/null
@@ -0,0 +1,49 @@
+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);