]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.10-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 4 Dec 2014 19:19:58 +0000 (11:19 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 4 Dec 2014 19:19:58 +0000 (11:19 -0800)
added patches:
asoc-sgtl5000-fix-small_pop-bit-definition.patch
asoc-wm_adsp-avoid-attempt-to-free-buffers-that-might-still-be-in-use.patch
iio-fix-iio_event_code_extract_dir-bit-mask.patch
of-base-fix-powerpc-address-parsing-hack.patch
powerpc-pseries-fix-endiannes-issue-in-rtas-call-from-xmon.patch
powerpc-pseries-honor-the-generic-no_64bit_msi-flag.patch

queue-3.10/asoc-sgtl5000-fix-small_pop-bit-definition.patch [new file with mode: 0644]
queue-3.10/asoc-wm_adsp-avoid-attempt-to-free-buffers-that-might-still-be-in-use.patch [new file with mode: 0644]
queue-3.10/iio-fix-iio_event_code_extract_dir-bit-mask.patch [new file with mode: 0644]
queue-3.10/of-base-fix-powerpc-address-parsing-hack.patch [new file with mode: 0644]
queue-3.10/powerpc-pseries-fix-endiannes-issue-in-rtas-call-from-xmon.patch [new file with mode: 0644]
queue-3.10/powerpc-pseries-honor-the-generic-no_64bit_msi-flag.patch [new file with mode: 0644]
queue-3.10/series

diff --git a/queue-3.10/asoc-sgtl5000-fix-small_pop-bit-definition.patch b/queue-3.10/asoc-sgtl5000-fix-small_pop-bit-definition.patch
new file mode 100644 (file)
index 0000000..bf0e97c
--- /dev/null
@@ -0,0 +1,53 @@
+From c251ea7bd7a04f1f2575467e0de76e803cf59149 Mon Sep 17 00:00:00 2001
+From: Fabio Estevam <fabio.estevam@freescale.com>
+Date: Fri, 14 Nov 2014 02:14:47 -0200
+Subject: ASoC: sgtl5000: Fix SMALL_POP bit definition
+
+From: Fabio Estevam <fabio.estevam@freescale.com>
+
+commit c251ea7bd7a04f1f2575467e0de76e803cf59149 upstream.
+
+On a mx28evk with a sgtl5000 codec we notice a loud 'click' sound  to happen
+5 seconds after the end of a playback.
+
+The SMALL_POP bit should fix this, but its definition is incorrect:
+according to the sgtl5000 manual it is bit 0 of CHIP_REF_CTRL register, not
+bit 1.
+
+Fix the definition accordingly and enable the bit as intended per the code
+comment.
+
+After applying this change, no loud 'click' sound is heard after playback
+
+Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/soc/codecs/sgtl5000.c |    3 +--
+ sound/soc/codecs/sgtl5000.h |    2 +-
+ 2 files changed, 2 insertions(+), 3 deletions(-)
+
+--- a/sound/soc/codecs/sgtl5000.c
++++ b/sound/soc/codecs/sgtl5000.c
+@@ -1317,8 +1317,7 @@ static int sgtl5000_probe(struct snd_soc
+       /* enable small pop, introduce 400ms delay in turning off */
+       snd_soc_update_bits(codec, SGTL5000_CHIP_REF_CTRL,
+-                              SGTL5000_SMALL_POP,
+-                              SGTL5000_SMALL_POP);
++                              SGTL5000_SMALL_POP, 1);
+       /* disable short cut detector */
+       snd_soc_write(codec, SGTL5000_CHIP_SHORT_CTRL, 0);
+--- a/sound/soc/codecs/sgtl5000.h
++++ b/sound/soc/codecs/sgtl5000.h
+@@ -275,7 +275,7 @@
+ #define SGTL5000_BIAS_CTRL_MASK                       0x000e
+ #define SGTL5000_BIAS_CTRL_SHIFT              1
+ #define SGTL5000_BIAS_CTRL_WIDTH              3
+-#define SGTL5000_SMALL_POP                    0x0001
++#define SGTL5000_SMALL_POP                    0
+ /*
+  * SGTL5000_CHIP_MIC_CTRL
diff --git a/queue-3.10/asoc-wm_adsp-avoid-attempt-to-free-buffers-that-might-still-be-in-use.patch b/queue-3.10/asoc-wm_adsp-avoid-attempt-to-free-buffers-that-might-still-be-in-use.patch
new file mode 100644 (file)
index 0000000..a72d02a
--- /dev/null
@@ -0,0 +1,33 @@
+From 9da7a5a9fdeeb76b2243f6b473363a7e6147ab6f Mon Sep 17 00:00:00 2001
+From: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
+Date: Mon, 17 Nov 2014 10:48:21 +0000
+Subject: ASoC: wm_adsp: Avoid attempt to free buffers that might still be in use
+
+From: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
+
+commit 9da7a5a9fdeeb76b2243f6b473363a7e6147ab6f upstream.
+
+We should not free any buffers associated with writing out coefficients
+to the DSP until all the async writes have completed. This patch updates
+the out of memory path when allocating a new buffer to include a call to
+regmap_async_complete.
+
+Reported-by: JS Park <aitdark.park@samsung.com>
+Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/soc/codecs/wm_adsp.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/sound/soc/codecs/wm_adsp.c
++++ b/sound/soc/codecs/wm_adsp.c
+@@ -964,6 +964,7 @@ static int wm_adsp_load_coeff(struct wm_
+                         file, blocks, pos - firmware->size);
+ out_fw:
++      regmap_async_complete(regmap);
+       release_firmware(firmware);
+       wm_adsp_buf_free(&buf_list);
+ out:
diff --git a/queue-3.10/iio-fix-iio_event_code_extract_dir-bit-mask.patch b/queue-3.10/iio-fix-iio_event_code_extract_dir-bit-mask.patch
new file mode 100644 (file)
index 0000000..62f23f3
--- /dev/null
@@ -0,0 +1,32 @@
+From ccf54555da9a5e91e454b909ca6a5303c7d6b910 Mon Sep 17 00:00:00 2001
+From: Cristina Ciocan <cristina.ciocan@intel.com>
+Date: Tue, 11 Nov 2014 16:07:42 +0200
+Subject: iio: Fix IIO_EVENT_CODE_EXTRACT_DIR bit mask
+
+From: Cristina Ciocan <cristina.ciocan@intel.com>
+
+commit ccf54555da9a5e91e454b909ca6a5303c7d6b910 upstream.
+
+The direction field is set on 7 bits, thus we need to AND it with 0111 111 mask
+in order to retrieve it, that is 0x7F, not 0xCF as it is now.
+
+Fixes: ade7ef7ba (staging:iio: Differential channel handling)
+Signed-off-by: Cristina Ciocan <cristina.ciocan@intel.com>
+Signed-off-by: Jonathan Cameron <jic23@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ include/linux/iio/events.h |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/include/linux/iio/events.h
++++ b/include/linux/iio/events.h
+@@ -90,7 +90,7 @@ enum iio_event_direction {
+ #define IIO_EVENT_CODE_EXTRACT_TYPE(mask) ((mask >> 56) & 0xFF)
+-#define IIO_EVENT_CODE_EXTRACT_DIR(mask) ((mask >> 48) & 0xCF)
++#define IIO_EVENT_CODE_EXTRACT_DIR(mask) ((mask >> 48) & 0x7F)
+ #define IIO_EVENT_CODE_EXTRACT_CHAN_TYPE(mask) ((mask >> 32) & 0xFF)
diff --git a/queue-3.10/of-base-fix-powerpc-address-parsing-hack.patch b/queue-3.10/of-base-fix-powerpc-address-parsing-hack.patch
new file mode 100644 (file)
index 0000000..2a7e239
--- /dev/null
@@ -0,0 +1,67 @@
+From 746c9e9f92dde2789908e51a354ba90a1962a2eb Mon Sep 17 00:00:00 2001
+From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Date: Fri, 14 Nov 2014 17:55:03 +1100
+Subject: of/base: Fix PowerPC address parsing hack
+
+From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+
+commit 746c9e9f92dde2789908e51a354ba90a1962a2eb upstream.
+
+We have a historical hack that treats missing ranges properties as the
+equivalent of an empty one. This is needed for ancient PowerMac "bad"
+device-trees, and shouldn't be enabled for any other PowerPC platform,
+otherwise we get some nasty layout of devices in sysfs or even
+duplication when a set of otherwise identically named devices is
+created multiple times under a different parent node with no ranges
+property.
+
+This fix is needed for the PowerNV i2c busses to be exposed properly
+and will fix a number of other embedded cases.
+
+Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Acked-by: Grant Likely <grant.likely@linaro.org>
+Signed-off-by: Rob Herring <robh@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/of/address.c |   19 ++++++++++++++++---
+ 1 file changed, 16 insertions(+), 3 deletions(-)
+
+--- a/drivers/of/address.c
++++ b/drivers/of/address.c
+@@ -334,6 +334,21 @@ static struct of_bus *of_match_bus(struc
+       return NULL;
+ }
++static int of_empty_ranges_quirk(void)
++{
++      if (IS_ENABLED(CONFIG_PPC)) {
++              /* To save cycles, we cache the result */
++              static int quirk_state = -1;
++
++              if (quirk_state < 0)
++                      quirk_state =
++                              of_machine_is_compatible("Power Macintosh") ||
++                              of_machine_is_compatible("MacRISC");
++              return quirk_state;
++      }
++      return false;
++}
++
+ static int of_translate_one(struct device_node *parent, struct of_bus *bus,
+                           struct of_bus *pbus, __be32 *addr,
+                           int na, int ns, int pna, const char *rprop)
+@@ -359,12 +374,10 @@ static int of_translate_one(struct devic
+        * This code is only enabled on powerpc. --gcl
+        */
+       ranges = of_get_property(parent, rprop, &rlen);
+-#if !defined(CONFIG_PPC)
+-      if (ranges == NULL) {
++      if (ranges == NULL && !of_empty_ranges_quirk()) {
+               pr_err("OF: no ranges; cannot translate\n");
+               return 1;
+       }
+-#endif /* !defined(CONFIG_PPC) */
+       if (ranges == NULL || rlen == 0) {
+               offset = of_read_number(addr, na);
+               memset(addr, 0, pna * 4);
diff --git a/queue-3.10/powerpc-pseries-fix-endiannes-issue-in-rtas-call-from-xmon.patch b/queue-3.10/powerpc-pseries-fix-endiannes-issue-in-rtas-call-from-xmon.patch
new file mode 100644 (file)
index 0000000..583b98b
--- /dev/null
@@ -0,0 +1,65 @@
+From 3b8a3c01096925a824ed3272601082289d9c23a5 Mon Sep 17 00:00:00 2001
+From: Laurent Dufour <ldufour@linux.vnet.ibm.com>
+Date: Mon, 24 Nov 2014 15:07:53 +0100
+Subject: powerpc/pseries: Fix endiannes issue in RTAS call from xmon
+
+From: Laurent Dufour <ldufour@linux.vnet.ibm.com>
+
+commit 3b8a3c01096925a824ed3272601082289d9c23a5 upstream.
+
+On pseries system (LPAR) xmon failed to enter when running in LE mode,
+system is hunging. Inititating xmon will lead to such an output on the
+console:
+
+SysRq : Entering xmon
+cpu 0x15: Vector: 0  at [c0000003f39ffb10]
+    pc: c00000000007ed7c: sysrq_handle_xmon+0x5c/0x70
+    lr: c00000000007ed7c: sysrq_handle_xmon+0x5c/0x70
+    sp: c0000003f39ffc70
+   msr: 8000000000009033
+  current = 0xc0000003fafa7180
+  paca    = 0xc000000007d75e80  softe: 0        irq_happened: 0x01
+    pid   = 14617, comm = bash
+Bad kernel stack pointer fafb4b0 at eca7cc4
+cpu 0x15: Vector: 300 (Data Access) at [c000000007f07d40]
+    pc: 000000000eca7cc4
+    lr: 000000000eca7c44
+    sp: fafb4b0
+   msr: 8000000000001000
+   dar: 10000000
+ dsisr: 42000000
+  current = 0xc0000003fafa7180
+  paca    = 0xc000000007d75e80  softe: 0        irq_happened: 0x01
+    pid   = 14617, comm = bash
+cpu 0x15: Exception 300 (Data Access) in xmon, returning to main loop
+xmon: WARNING: bad recursive fault on cpu 0x15
+
+The root cause is that xmon is calling RTAS to turn off the surveillance
+when entering xmon, and RTAS is requiring big endian parameters.
+
+This patch is byte swapping the RTAS arguments when running in LE mode.
+
+Signed-off-by: Laurent Dufour <ldufour@linux.vnet.ibm.com>
+Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/powerpc/xmon/xmon.c |    6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- a/arch/powerpc/xmon/xmon.c
++++ b/arch/powerpc/xmon/xmon.c
+@@ -288,10 +288,10 @@ static inline void disable_surveillance(
+       args.token = rtas_token("set-indicator");
+       if (args.token == RTAS_UNKNOWN_SERVICE)
+               return;
+-      args.nargs = 3;
+-      args.nret = 1;
++      args.nargs = cpu_to_be32(3);
++      args.nret = cpu_to_be32(1);
+       args.rets = &args.args[3];
+-      args.args[0] = SURVEILLANCE_TOKEN;
++      args.args[0] = cpu_to_be32(SURVEILLANCE_TOKEN);
+       args.args[1] = 0;
+       args.args[2] = 0;
+       enter_rtas(__pa(&args));
diff --git a/queue-3.10/powerpc-pseries-honor-the-generic-no_64bit_msi-flag.patch b/queue-3.10/powerpc-pseries-honor-the-generic-no_64bit_msi-flag.patch
new file mode 100644 (file)
index 0000000..bbd880f
--- /dev/null
@@ -0,0 +1,29 @@
+From 415072a041bf50dbd6d56934ffc0cbbe14c97be8 Mon Sep 17 00:00:00 2001
+From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Date: Tue, 7 Oct 2014 16:12:55 +1100
+Subject: powerpc/pseries: Honor the generic "no_64bit_msi" flag
+
+From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+
+commit 415072a041bf50dbd6d56934ffc0cbbe14c97be8 upstream.
+
+Instead of the arch specific quirk which we are deprecating
+
+Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/powerpc/platforms/pseries/msi.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/powerpc/platforms/pseries/msi.c
++++ b/arch/powerpc/platforms/pseries/msi.c
+@@ -426,7 +426,7 @@ static int rtas_setup_msi_irqs(struct pc
+        */
+ again:
+       if (type == PCI_CAP_ID_MSI) {
+-              if (pdn->force_32bit_msi) {
++              if (pdev->no_64bit_msi) {
+                       rc = rtas_change_msi(pdn, RTAS_CHANGE_32MSI_FN, nvec);
+                       if (rc < 0) {
+                               /*
index 6526983e3f5605ae756a9c05790266f80bb37f8d..e67c71511fa84cc65d6343bc0c546809f0377728 100644 (file)
@@ -14,3 +14,9 @@ qmi_wwan-add-support-for-hp-lt4112-lte-hspa-gobi-4g-modem.patch
 pptp-fix-stack-info-leak-in-pptp_getname.patch
 ipx-fix-locking-regression-in-ipx_sendmsg-and-ipx_recvmsg.patch
 pci-msi-add-device-flag-indicating-that-64-bit-msis-don-t-work.patch
+asoc-sgtl5000-fix-small_pop-bit-definition.patch
+asoc-wm_adsp-avoid-attempt-to-free-buffers-that-might-still-be-in-use.patch
+of-base-fix-powerpc-address-parsing-hack.patch
+powerpc-pseries-honor-the-generic-no_64bit_msi-flag.patch
+powerpc-pseries-fix-endiannes-issue-in-rtas-call-from-xmon.patch
+iio-fix-iio_event_code_extract_dir-bit-mask.patch