]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.10-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 3 Jun 2014 23:40:48 +0000 (16:40 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 3 Jun 2014 23:40:48 +0000 (16:40 -0700)
added patches:
alsa-hda-fix-onboard-audio-on-intel-h97-z97-chipsets.patch
input-atkbd-fix-keyboard-not-working-on-some-lg-laptops.patch
input-elantech-fix-touchpad-initialization-on-gigabyte-u2442.patch
input-synaptics-add-min-max-quirk-for-the-thinkpad-w540.patch
input-synaptics-t540p-unify-with-other-len0034-models.patch
trace-module-maintain-a-valid-user-count.patch

queue-3.10/alsa-hda-fix-onboard-audio-on-intel-h97-z97-chipsets.patch [new file with mode: 0644]
queue-3.10/input-atkbd-fix-keyboard-not-working-on-some-lg-laptops.patch [new file with mode: 0644]
queue-3.10/input-elantech-fix-touchpad-initialization-on-gigabyte-u2442.patch [new file with mode: 0644]
queue-3.10/input-synaptics-add-min-max-quirk-for-the-thinkpad-w540.patch [new file with mode: 0644]
queue-3.10/input-synaptics-t540p-unify-with-other-len0034-models.patch [new file with mode: 0644]
queue-3.10/series
queue-3.10/trace-module-maintain-a-valid-user-count.patch [new file with mode: 0644]

diff --git a/queue-3.10/alsa-hda-fix-onboard-audio-on-intel-h97-z97-chipsets.patch b/queue-3.10/alsa-hda-fix-onboard-audio-on-intel-h97-z97-chipsets.patch
new file mode 100644 (file)
index 0000000..65fbdf9
--- /dev/null
@@ -0,0 +1,34 @@
+From 77f07800cb456bed6e5c345e6e4e83e8eda62437 Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Fri, 23 May 2014 09:02:44 +0200
+Subject: ALSA: hda - Fix onboard audio on Intel H97/Z97 chipsets
+
+From: Takashi Iwai <tiwai@suse.de>
+
+commit 77f07800cb456bed6e5c345e6e4e83e8eda62437 upstream.
+
+The recent Intel H97/Z97 chipsets need the similar setups like other
+Intel chipsets for snooping, etc.  Especially without snooping, the
+audio playback stutters or gets corrupted.  This fix patch just adds
+the corresponding PCI ID entry with the proper flags.
+
+Reported-and-tested-by: Arthur Borsboom <arthurborsboom@gmail.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/pci/hda/hda_intel.c |    3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/sound/pci/hda/hda_intel.c
++++ b/sound/pci/hda/hda_intel.c
+@@ -3856,6 +3856,9 @@ static DEFINE_PCI_DEVICE_TABLE(azx_ids)
+       /* Lynx Point */
+       { PCI_DEVICE(0x8086, 0x8c20),
+         .driver_data = AZX_DRIVER_PCH | AZX_DCAPS_INTEL_PCH },
++      /* 9 Series */
++      { PCI_DEVICE(0x8086, 0x8ca0),
++        .driver_data = AZX_DRIVER_PCH | AZX_DCAPS_INTEL_PCH },
+       /* Wellsburg */
+       { PCI_DEVICE(0x8086, 0x8d20),
+         .driver_data = AZX_DRIVER_PCH | AZX_DCAPS_INTEL_PCH },
diff --git a/queue-3.10/input-atkbd-fix-keyboard-not-working-on-some-lg-laptops.patch b/queue-3.10/input-atkbd-fix-keyboard-not-working-on-some-lg-laptops.patch
new file mode 100644 (file)
index 0000000..996eeb5
--- /dev/null
@@ -0,0 +1,83 @@
+From 3d725caa9dcc78c3dc9e7ea0c04f626468edd9c9 Mon Sep 17 00:00:00 2001
+From: Sheng-Liang Song <ssl@chromium.org>
+Date: Thu, 24 Apr 2014 16:28:29 -0700
+Subject: Input: atkbd - fix keyboard not working on some LG laptops
+
+From: Sheng-Liang Song <ssl@chromium.org>
+
+commit 3d725caa9dcc78c3dc9e7ea0c04f626468edd9c9 upstream.
+
+After issuing ATKBD_CMD_RESET_DIS, keyboard on some LG laptops stops
+working. The workaround is to stop issuing ATKBD_CMD_RESET_DIS commands.
+
+In order to keep changes in atkbd driver to the minimum we check DMI
+signature and only skip ATKBD_CMD_RESET_DIS if we are running on LG
+LW25-B7HV or P1-J273B.
+
+Signed-off-by: Sheng-Liang Song <ssl@chromium.org>
+Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/input/keyboard/atkbd.c |   29 ++++++++++++++++++++++++++++-
+ 1 file changed, 28 insertions(+), 1 deletion(-)
+
+--- a/drivers/input/keyboard/atkbd.c
++++ b/drivers/input/keyboard/atkbd.c
+@@ -243,6 +243,12 @@ static void (*atkbd_platform_fixup)(stru
+ static void *atkbd_platform_fixup_data;
+ static unsigned int (*atkbd_platform_scancode_fixup)(struct atkbd *, unsigned int);
++/*
++ * Certain keyboards to not like ATKBD_CMD_RESET_DIS and stop responding
++ * to many commands until full reset (ATKBD_CMD_RESET_BAT) is performed.
++ */
++static bool atkbd_skip_deactivate;
++
+ static ssize_t atkbd_attr_show_helper(struct device *dev, char *buf,
+                               ssize_t (*handler)(struct atkbd *, char *));
+ static ssize_t atkbd_attr_set_helper(struct device *dev, const char *buf, size_t count,
+@@ -768,7 +774,8 @@ static int atkbd_probe(struct atkbd *atk
+  * Make sure nothing is coming from the keyboard and disturbs our
+  * internal state.
+  */
+-      atkbd_deactivate(atkbd);
++      if (!atkbd_skip_deactivate)
++              atkbd_deactivate(atkbd);
+       return 0;
+ }
+@@ -1638,6 +1645,12 @@ static int __init atkbd_setup_scancode_f
+       return 1;
+ }
++static int __init atkbd_deactivate_fixup(const struct dmi_system_id *id)
++{
++      atkbd_skip_deactivate = true;
++      return 1;
++}
++
+ static const struct dmi_system_id atkbd_dmi_quirk_table[] __initconst = {
+       {
+               .matches = {
+@@ -1775,6 +1788,20 @@ static const struct dmi_system_id atkbd_
+               .callback = atkbd_setup_scancode_fixup,
+               .driver_data = atkbd_oqo_01plus_scancode_fixup,
+       },
++      {
++              .matches = {
++                      DMI_MATCH(DMI_SYS_VENDOR, "LG Electronics"),
++                      DMI_MATCH(DMI_PRODUCT_NAME, "LW25-B7HV"),
++              },
++              .callback = atkbd_deactivate_fixup,
++      },
++      {
++              .matches = {
++                      DMI_MATCH(DMI_SYS_VENDOR, "LG Electronics"),
++                      DMI_MATCH(DMI_PRODUCT_NAME, "P1-J273B"),
++              },
++              .callback = atkbd_deactivate_fixup,
++      },
+       { }
+ };
diff --git a/queue-3.10/input-elantech-fix-touchpad-initialization-on-gigabyte-u2442.patch b/queue-3.10/input-elantech-fix-touchpad-initialization-on-gigabyte-u2442.patch
new file mode 100644 (file)
index 0000000..3a0d03a
--- /dev/null
@@ -0,0 +1,117 @@
+From 36189cc3cd57ab0f1cd75241f93fe01de928ac06 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Mon, 5 May 2014 09:36:43 -0700
+Subject: Input: elantech - fix touchpad initialization on Gigabyte U2442
+
+From: Hans de Goede <hdegoede@redhat.com>
+
+commit 36189cc3cd57ab0f1cd75241f93fe01de928ac06 upstream.
+
+The hw_version 3 Elantech touchpad on the Gigabyte U2442 does not accept
+0x0b as initialization value for r10, this stand-alone version of the
+driver: http://planet76.com/drivers/elantech/psmouse-elantech-v6.tar.bz2
+
+Uses 0x03 which does work, so this means not setting bit 3 of r10 which
+sets: "Enable Real H/W Resolution In Absolute mode"
+
+Which will result in half the x and y resolution we get with that bit set,
+so simply not setting it everywhere is not a solution. We've been unable to
+find a way to identify touchpads where setting the bit will fail, so this
+patch uses a dmi based blacklist for this.
+
+https://bugzilla.kernel.org/show_bug.cgi?id=61151
+
+Reported-by: Philipp Wolfer <ph.wolfer@gmail.com>
+Tested-by: Philipp Wolfer <ph.wolfer@gmail.com>
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ Documentation/input/elantech.txt |    5 ++++-
+ drivers/input/mouse/elantech.c   |   26 +++++++++++++++++++++++++-
+ drivers/input/mouse/elantech.h   |    1 +
+ 3 files changed, 30 insertions(+), 2 deletions(-)
+
+--- a/Documentation/input/elantech.txt
++++ b/Documentation/input/elantech.txt
+@@ -504,9 +504,12 @@ byte 5:
+ * reg_10
+    bit   7   6   5   4   3   2   1   0
+-         0   0   0   0   0   0   0   A
++         0   0   0   0   R   F   T   A
+          A: 1 = enable absolute tracking
++         T: 1 = enable two finger mode auto correct
++         F: 1 = disable ABS Position Filter
++         R: 1 = enable real hardware resolution
+ 6.2 Native absolute mode 6 byte packet format
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+--- a/drivers/input/mouse/elantech.c
++++ b/drivers/input/mouse/elantech.c
+@@ -11,6 +11,7 @@
+  */
+ #include <linux/delay.h>
++#include <linux/dmi.h>
+ #include <linux/slab.h>
+ #include <linux/module.h>
+ #include <linux/input.h>
+@@ -801,7 +802,11 @@ static int elantech_set_absolute_mode(st
+               break;
+       case 3:
+-              etd->reg_10 = 0x0b;
++              if (etd->set_hw_resolution)
++                      etd->reg_10 = 0x0b;
++              else
++                      etd->reg_10 = 0x03;
++
+               if (elantech_write_reg(psmouse, 0x10, etd->reg_10))
+                       rc = -1;
+@@ -1301,6 +1306,22 @@ static int elantech_reconnect(struct psm
+ }
+ /*
++ * Some hw_version 3 models go into error state when we try to set bit 3 of r10
++ */
++static const struct dmi_system_id no_hw_res_dmi_table[] = {
++#if defined(CONFIG_DMI) && defined(CONFIG_X86)
++      {
++              /* Gigabyte U2442 */
++              .matches = {
++                      DMI_MATCH(DMI_SYS_VENDOR, "GIGABYTE"),
++                      DMI_MATCH(DMI_PRODUCT_NAME, "U2442"),
++              },
++      },
++#endif
++      { }
++};
++
++/*
+  * determine hardware version and set some properties according to it.
+  */
+ static int elantech_set_properties(struct elantech_data *etd)
+@@ -1351,6 +1372,9 @@ static int elantech_set_properties(struc
+                       etd->reports_pressure = true;
+       }
++      /* Enable real hardware resolution on hw_version 3 ? */
++      etd->set_hw_resolution = !dmi_check_system(no_hw_res_dmi_table);
++
+       return 0;
+ }
+--- a/drivers/input/mouse/elantech.h
++++ b/drivers/input/mouse/elantech.h
+@@ -129,6 +129,7 @@ struct elantech_data {
+       bool paritycheck;
+       bool jumpy_cursor;
+       bool reports_pressure;
++      bool set_hw_resolution;
+       unsigned char hw_version;
+       unsigned int fw_version;
+       unsigned int single_finger_reports;
diff --git a/queue-3.10/input-synaptics-add-min-max-quirk-for-the-thinkpad-w540.patch b/queue-3.10/input-synaptics-add-min-max-quirk-for-the-thinkpad-w540.patch
new file mode 100644 (file)
index 0000000..e63c9c7
--- /dev/null
@@ -0,0 +1,37 @@
+From 0b5fe736fe923f1f5e05413878d5990e92ffbdf5 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Wed, 14 May 2014 11:10:40 -0700
+Subject: Input: synaptics - add min/max quirk for the ThinkPad W540
+
+From: Hans de Goede <hdegoede@redhat.com>
+
+commit 0b5fe736fe923f1f5e05413878d5990e92ffbdf5 upstream.
+
+https://bugzilla.redhat.com/show_bug.cgi?id=1096436
+
+Tested-and-reported-by: ajayr@bigfoot.com
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/input/mouse/synaptics.c |    8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+--- a/drivers/input/mouse/synaptics.c
++++ b/drivers/input/mouse/synaptics.c
+@@ -1563,6 +1563,14 @@ static const struct dmi_system_id min_ma
+               .driver_data = (int []){1024, 5112, 2024, 4832},
+       },
+       {
++              /* Lenovo ThinkPad W540 */
++              .matches = {
++                      DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
++                      DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad W540"),
++              },
++              .driver_data = (int []){1024, 5112, 2024, 4832},
++      },
++      {
+               /* Lenovo Yoga S1 */
+               .matches = {
+                       DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
diff --git a/queue-3.10/input-synaptics-t540p-unify-with-other-len0034-models.patch b/queue-3.10/input-synaptics-t540p-unify-with-other-len0034-models.patch
new file mode 100644 (file)
index 0000000..df6222b
--- /dev/null
@@ -0,0 +1,34 @@
+From 6d396ede224dc596d92d7cab433713536e68916c Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Mon, 19 May 2014 22:52:30 -0700
+Subject: Input: synaptics - T540p - unify with other LEN0034 models
+
+From: Hans de Goede <hdegoede@redhat.com>
+
+commit 6d396ede224dc596d92d7cab433713536e68916c upstream.
+
+The T540p has a touchpad with pnp-id LEN0034, all the models with this
+pnp-id have the same min/max values, except the T540p where the values are
+slightly off. Fix them to be identical.
+
+This is a preparation patch for simplifying the quirk table.
+
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/input/mouse/synaptics.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/input/mouse/synaptics.c
++++ b/drivers/input/mouse/synaptics.c
+@@ -1552,7 +1552,7 @@ static const struct dmi_system_id min_ma
+                       DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+                       DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T540"),
+               },
+-              .driver_data = (int []){1024, 5056, 2058, 4832},
++              .driver_data = (int []){1024, 5112, 2024, 4832},
+       },
+       {
+               /* Lenovo ThinkPad L540 */
index dba430b25c2f6d36f356187fc5d72169b5ba7b13..72d55179afdbf80f90f40a6eff5d2918074f1257 100644 (file)
@@ -60,3 +60,9 @@ media-media-device-fix-infoleak-in-ioctl-media_enum_entities.patch
 i2c-i801-add-device-ids-for-intel-wildcat-point-lp-pch.patch
 i2c-i801-enable-intel-baytrail-smbus.patch
 drivers-hv-vmbus-negotiate-version-3.0-when-running-on.patch
+trace-module-maintain-a-valid-user-count.patch
+input-atkbd-fix-keyboard-not-working-on-some-lg-laptops.patch
+input-elantech-fix-touchpad-initialization-on-gigabyte-u2442.patch
+input-synaptics-add-min-max-quirk-for-the-thinkpad-w540.patch
+input-synaptics-t540p-unify-with-other-len0034-models.patch
+alsa-hda-fix-onboard-audio-on-intel-h97-z97-chipsets.patch
diff --git a/queue-3.10/trace-module-maintain-a-valid-user-count.patch b/queue-3.10/trace-module-maintain-a-valid-user-count.patch
new file mode 100644 (file)
index 0000000..6d629c8
--- /dev/null
@@ -0,0 +1,44 @@
+From 098507ae3ec2331476fb52e85d4040c1cc6d0ef4 Mon Sep 17 00:00:00 2001
+From: Romain Izard <romain.izard.pro@gmail.com>
+Date: Tue, 4 Mar 2014 10:09:39 +0100
+Subject: trace: module: Maintain a valid user count
+
+From: Romain Izard <romain.izard.pro@gmail.com>
+
+commit 098507ae3ec2331476fb52e85d4040c1cc6d0ef4 upstream.
+
+The replacement of the 'count' variable by two variables 'incs' and
+'decs' to resolve some race conditions during module unloading was done
+in parallel with some cleanup in the trace subsystem, and was integrated
+as a merge.
+
+Unfortunately, the formula for this replacement was wrong in the tracing
+code, and the refcount in the traces was not usable as a result.
+
+Use 'count = incs - decs' to compute the user count.
+
+Link: http://lkml.kernel.org/p/1393924179-9147-1-git-send-email-romain.izard.pro@gmail.com
+
+Acked-by: Ingo Molnar <mingo@kernel.org>
+Cc: Rusty Russell <rusty@rustcorp.com.au>
+Cc: Frederic Weisbecker <fweisbec@gmail.com>
+Fixes: c1ab9cab7509 "merge conflict resolution"
+Signed-off-by: Romain Izard <romain.izard.pro@gmail.com>
+Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ include/trace/events/module.h |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/include/trace/events/module.h
++++ b/include/trace/events/module.h
+@@ -78,7 +78,7 @@ DECLARE_EVENT_CLASS(module_refcnt,
+       TP_fast_assign(
+               __entry->ip     = ip;
+-              __entry->refcnt = __this_cpu_read(mod->refptr->incs) + __this_cpu_read(mod->refptr->decs);
++              __entry->refcnt = __this_cpu_read(mod->refptr->incs) - __this_cpu_read(mod->refptr->decs);
+               __assign_str(name, mod->name);
+       ),