From dc209153d4ddd94daaf8d5d8d307bc8e8ae3f208 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Tue, 3 Jun 2014 16:40:48 -0700 Subject: [PATCH] 3.10-stable patches 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 --- ...oard-audio-on-intel-h97-z97-chipsets.patch | 34 +++++ ...board-not-working-on-some-lg-laptops.patch | 83 +++++++++++++ ...pad-initialization-on-gigabyte-u2442.patch | 117 ++++++++++++++++++ ...-min-max-quirk-for-the-thinkpad-w540.patch | 37 ++++++ ...540p-unify-with-other-len0034-models.patch | 34 +++++ queue-3.10/series | 6 + ...e-module-maintain-a-valid-user-count.patch | 44 +++++++ 7 files changed, 355 insertions(+) create mode 100644 queue-3.10/alsa-hda-fix-onboard-audio-on-intel-h97-z97-chipsets.patch create mode 100644 queue-3.10/input-atkbd-fix-keyboard-not-working-on-some-lg-laptops.patch create mode 100644 queue-3.10/input-elantech-fix-touchpad-initialization-on-gigabyte-u2442.patch create mode 100644 queue-3.10/input-synaptics-add-min-max-quirk-for-the-thinkpad-w540.patch create mode 100644 queue-3.10/input-synaptics-t540p-unify-with-other-len0034-models.patch create mode 100644 queue-3.10/trace-module-maintain-a-valid-user-count.patch 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 index 00000000000..65fbdf9801c --- /dev/null +++ b/queue-3.10/alsa-hda-fix-onboard-audio-on-intel-h97-z97-chipsets.patch @@ -0,0 +1,34 @@ +From 77f07800cb456bed6e5c345e6e4e83e8eda62437 Mon Sep 17 00:00:00 2001 +From: Takashi Iwai +Date: Fri, 23 May 2014 09:02:44 +0200 +Subject: ALSA: hda - Fix onboard audio on Intel H97/Z97 chipsets + +From: Takashi Iwai + +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 +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..996eeb5e7a8 --- /dev/null +++ b/queue-3.10/input-atkbd-fix-keyboard-not-working-on-some-lg-laptops.patch @@ -0,0 +1,83 @@ +From 3d725caa9dcc78c3dc9e7ea0c04f626468edd9c9 Mon Sep 17 00:00:00 2001 +From: Sheng-Liang Song +Date: Thu, 24 Apr 2014 16:28:29 -0700 +Subject: Input: atkbd - fix keyboard not working on some LG laptops + +From: Sheng-Liang Song + +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 +Signed-off-by: Dmitry Torokhov +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..3a0d03ab501 --- /dev/null +++ b/queue-3.10/input-elantech-fix-touchpad-initialization-on-gigabyte-u2442.patch @@ -0,0 +1,117 @@ +From 36189cc3cd57ab0f1cd75241f93fe01de928ac06 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Mon, 5 May 2014 09:36:43 -0700 +Subject: Input: elantech - fix touchpad initialization on Gigabyte U2442 + +From: Hans de Goede + +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 +Tested-by: Philipp Wolfer +Signed-off-by: Hans de Goede +Signed-off-by: Dmitry Torokhov +Signed-off-by: Greg Kroah-Hartman + +--- + 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 ++#include + #include + #include + #include +@@ -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 index 00000000000..e63c9c7d8e0 --- /dev/null +++ b/queue-3.10/input-synaptics-add-min-max-quirk-for-the-thinkpad-w540.patch @@ -0,0 +1,37 @@ +From 0b5fe736fe923f1f5e05413878d5990e92ffbdf5 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Wed, 14 May 2014 11:10:40 -0700 +Subject: Input: synaptics - add min/max quirk for the ThinkPad W540 + +From: Hans de Goede + +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 +Signed-off-by: Dmitry Torokhov +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..df6222baa00 --- /dev/null +++ b/queue-3.10/input-synaptics-t540p-unify-with-other-len0034-models.patch @@ -0,0 +1,34 @@ +From 6d396ede224dc596d92d7cab433713536e68916c Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Mon, 19 May 2014 22:52:30 -0700 +Subject: Input: synaptics - T540p - unify with other LEN0034 models + +From: Hans de Goede + +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 +Signed-off-by: Dmitry Torokhov +Signed-off-by: Greg Kroah-Hartman + +--- + 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 */ diff --git a/queue-3.10/series b/queue-3.10/series index dba430b25c2..72d55179afd 100644 --- a/queue-3.10/series +++ b/queue-3.10/series @@ -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 index 00000000000..6d629c8d0ed --- /dev/null +++ b/queue-3.10/trace-module-maintain-a-valid-user-count.patch @@ -0,0 +1,44 @@ +From 098507ae3ec2331476fb52e85d4040c1cc6d0ef4 Mon Sep 17 00:00:00 2001 +From: Romain Izard +Date: Tue, 4 Mar 2014 10:09:39 +0100 +Subject: trace: module: Maintain a valid user count + +From: Romain Izard + +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 +Cc: Rusty Russell +Cc: Frederic Weisbecker +Fixes: c1ab9cab7509 "merge conflict resolution" +Signed-off-by: Romain Izard +Signed-off-by: Steven Rostedt +Signed-off-by: Greg Kroah-Hartman + +--- + 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); + ), + -- 2.47.3