summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2014-05-05 14:19:02 +0200
committerHans de Goede <hdegoede@redhat.com>2014-05-06 14:52:41 +0200
commit47a9033633be816248bd0e80b40656d0fa8b8ca2 (patch)
treec28d40e461fa7a9b8c86abd1bd6e66ff318f5f53
parent34d445d5825fc3f7318e6c8b1f7d8935e3f2a752 (diff)
downloadkernel-47a9033633be816248bd0e80b40656d0fa8b8ca2.tar.gz
kernel-47a9033633be816248bd0e80b40656d0fa8b8ca2.tar.xz
kernel-47a9033633be816248bd0e80b40656d0fa8b8ca2.zip
Add a patch to fix the Synaptics Touch Pad V 103S found on some keyboard
docks for win8 tablets - Add a patch to fix the elantech touchpad on Gigabyte U2442 laptops - Add a patch to fix backlight control on the Samsung NC210/NC110 (rhbz#861573) - Add a patch to fix backlight & wifi on the Asus EEE PC 1015PX (rhbz#1067181)
-rw-r--r--0001-hid-quirks-Add-NO_INIT_REPORTS-quirk-for-Synaptics-T.patch44
-rw-r--r--0002-elantech-Fix-elantech-on-Gigabyte-U2442.patch124
-rw-r--r--0003-samsung-laptop-Add-broken-acpi-video-quirk-for-NC210.patch39
-rw-r--r--0004-acpi-blacklist-Add-dmi_enable_osi_linux-quirk-for-As.patch49
-rw-r--r--kernel.spec27
5 files changed, 283 insertions, 0 deletions
diff --git a/0001-hid-quirks-Add-NO_INIT_REPORTS-quirk-for-Synaptics-T.patch b/0001-hid-quirks-Add-NO_INIT_REPORTS-quirk-for-Synaptics-T.patch
new file mode 100644
index 00000000..6d533544
--- /dev/null
+++ b/0001-hid-quirks-Add-NO_INIT_REPORTS-quirk-for-Synaptics-T.patch
@@ -0,0 +1,44 @@
+From 6186594c2c72d403832cf07d66cf6d6c6daad8f1 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Fri, 2 May 2014 16:15:33 +0200
+Subject: [PATCH 1/4] hid-quirks: Add NO_INIT_REPORTS quirk for Synaptics Touch
+ Pad V 103S
+
+This touchpad seriously dislikes init reports, not only timeing out, but
+also refusing to work after this.
+
+Cc: stable@vger.kernel.org
+Reported-and-tested-by: Vincent Fortier <th0ma7@gmail.com>
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+---
+ drivers/hid/hid-ids.h | 1 +
+ drivers/hid/usbhid/hid-quirks.c | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
+index c8af720..43f246e 100644
+--- a/drivers/hid/hid-ids.h
++++ b/drivers/hid/hid-ids.h
+@@ -834,6 +834,7 @@
+ #define USB_DEVICE_ID_SYNAPTICS_LTS2 0x1d10
+ #define USB_DEVICE_ID_SYNAPTICS_HD 0x0ac3
+ #define USB_DEVICE_ID_SYNAPTICS_QUAD_HD 0x1ac3
++#define USB_DEVICE_ID_SYNAPTICS_TP_V103 0x5710
+
+ #define USB_VENDOR_ID_THINGM 0x27b8
+ #define USB_DEVICE_ID_BLINK1 0x01ed
+diff --git a/drivers/hid/usbhid/hid-quirks.c b/drivers/hid/usbhid/hid-quirks.c
+index dbd8387..8e4ddb3 100644
+--- a/drivers/hid/usbhid/hid-quirks.c
++++ b/drivers/hid/usbhid/hid-quirks.c
+@@ -119,6 +119,7 @@ static const struct hid_blacklist {
+ { USB_VENDOR_ID_SYNAPTICS, USB_DEVICE_ID_SYNAPTICS_LTS2, HID_QUIRK_NO_INIT_REPORTS },
+ { USB_VENDOR_ID_SYNAPTICS, USB_DEVICE_ID_SYNAPTICS_HD, HID_QUIRK_NO_INIT_REPORTS },
+ { USB_VENDOR_ID_SYNAPTICS, USB_DEVICE_ID_SYNAPTICS_QUAD_HD, HID_QUIRK_NO_INIT_REPORTS },
++ { USB_VENDOR_ID_SYNAPTICS, USB_DEVICE_ID_SYNAPTICS_TP_V103, HID_QUIRK_NO_INIT_REPORTS },
+
+ { 0, 0 }
+ };
+--
+1.9.0
+
diff --git a/0002-elantech-Fix-elantech-on-Gigabyte-U2442.patch b/0002-elantech-Fix-elantech-on-Gigabyte-U2442.patch
new file mode 100644
index 00000000..4d426778
--- /dev/null
+++ b/0002-elantech-Fix-elantech-on-Gigabyte-U2442.patch
@@ -0,0 +1,124 @@
+From 219bc087cb6043d919575a86aa37912919e99dde Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Fri, 18 Apr 2014 10:50:57 +0200
+Subject: [PATCH 2/4] elantech: Fix elantech on Gigabyte U2442
+
+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 identifty 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
+
+Cc: stable@vger.kernel.org
+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>
+
+--
+
+Changes in v2: Add cc: stable.
+---
+ Documentation/input/elantech.txt | 5 ++++-
+ drivers/input/mouse/elantech.c | 26 +++++++++++++++++++++++++-
+ drivers/input/mouse/elantech.h | 1 +
+ 3 files changed, 30 insertions(+), 2 deletions(-)
+
+diff --git a/Documentation/input/elantech.txt b/Documentation/input/elantech.txt
+index 5602eb7..e1ae127 100644
+--- 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
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+diff --git a/drivers/input/mouse/elantech.c b/drivers/input/mouse/elantech.c
+index 088d354..b96e978 100644
+--- 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>
+@@ -831,7 +832,11 @@ static int elantech_set_absolute_mode(struct psmouse *psmouse)
+ 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;
+
+@@ -1331,6 +1336,22 @@ static int elantech_reconnect(struct psmouse *psmouse)
+ }
+
+ /*
++ * 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)
+@@ -1390,6 +1411,9 @@ static int elantech_set_properties(struct elantech_data *etd)
+ */
+ etd->crc_enabled = ((etd->fw_version & 0x4000) == 0x4000);
+
++ /* Enable real hardware resolution on hw_version 3 ? */
++ etd->set_hw_resolution = !dmi_check_system(no_hw_res_dmi_table);
++
+ return 0;
+ }
+
+diff --git a/drivers/input/mouse/elantech.h b/drivers/input/mouse/elantech.h
+index 036a04a..9e0e2a1 100644
+--- a/drivers/input/mouse/elantech.h
++++ b/drivers/input/mouse/elantech.h
+@@ -130,6 +130,7 @@ struct elantech_data {
+ bool jumpy_cursor;
+ bool reports_pressure;
+ bool crc_enabled;
++ bool set_hw_resolution;
+ unsigned char hw_version;
+ unsigned int fw_version;
+ unsigned int single_finger_reports;
+--
+1.9.0
+
diff --git a/0003-samsung-laptop-Add-broken-acpi-video-quirk-for-NC210.patch b/0003-samsung-laptop-Add-broken-acpi-video-quirk-for-NC210.patch
new file mode 100644
index 00000000..d76aa216
--- /dev/null
+++ b/0003-samsung-laptop-Add-broken-acpi-video-quirk-for-NC210.patch
@@ -0,0 +1,39 @@
+From f46debb4f324d6ab66782de6ad3b884fbf223ec4 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Thu, 1 May 2014 14:20:06 +0200
+Subject: [PATCH 3/4] samsung-laptop: Add broken-acpi-video quirk for
+ NC210/NC110
+
+Reported (and tested) here:
+https://bugzilla.redhat.com/show_bug.cgi?id=861573
+
+Cc: stable@vger.kernel.org
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+---
+ drivers/platform/x86/samsung-laptop.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/drivers/platform/x86/samsung-laptop.c b/drivers/platform/x86/samsung-laptop.c
+index d1f03005..98f61f6 100644
+--- a/drivers/platform/x86/samsung-laptop.c
++++ b/drivers/platform/x86/samsung-laptop.c
+@@ -1534,6 +1534,16 @@ static struct dmi_system_id __initdata samsung_dmi_table[] = {
+ },
+ .driver_data = &samsung_broken_acpi_video,
+ },
++ {
++ .callback = samsung_dmi_matched,
++ .ident = "NC210",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
++ DMI_MATCH(DMI_PRODUCT_NAME, "NC210/NC110"),
++ DMI_MATCH(DMI_BOARD_NAME, "NC210/NC110"),
++ },
++ .driver_data = &samsung_broken_acpi_video,
++ },
+ { },
+ };
+ MODULE_DEVICE_TABLE(dmi, samsung_dmi_table);
+--
+1.9.0
+
diff --git a/0004-acpi-blacklist-Add-dmi_enable_osi_linux-quirk-for-As.patch b/0004-acpi-blacklist-Add-dmi_enable_osi_linux-quirk-for-As.patch
new file mode 100644
index 00000000..c2d5e3ec
--- /dev/null
+++ b/0004-acpi-blacklist-Add-dmi_enable_osi_linux-quirk-for-As.patch
@@ -0,0 +1,49 @@
+From b3550bb61f5bc2fab7ecbe2ab70a505c656db133 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Mon, 5 May 2014 10:32:22 +0200
+Subject: [PATCH 4/4] acpi-blacklist: Add dmi_enable_osi_linux quirk for Asus
+ EEE PC 1015PX
+
+Without this this EEE PC exports a non working WMI interface, with this it
+exports a working "good old" eeepc_laptop interface, fixing brightness control
+not working as well as rfkill being stuck in a permanent wireless blocked
+state.
+
+This is not an ideal way to fix this, but various attempts to fix this
+otherwise have failed, see:
+https://bugzilla.redhat.com/show_bug.cgi?id=1067181
+
+Cc: stable@vger.kernel.org
+Reported-and-tested-by: lou.cardone@gmail.com
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+---
+ drivers/acpi/blacklist.c | 13 +++++++++++++
+ 1 file changed, 13 insertions(+)
+
+diff --git a/drivers/acpi/blacklist.c b/drivers/acpi/blacklist.c
+index afec452..96fa4acd 100644
+--- a/drivers/acpi/blacklist.c
++++ b/drivers/acpi/blacklist.c
+@@ -374,6 +374,19 @@ static struct dmi_system_id acpi_osi_dmi_table[] __initdata = {
+ DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T500"),
+ },
+ },
++ /*
++ * Without this this EEEpc exports a non working WMI interface, with
++ * this it exports a working "good old" eeepc_laptop interface, fixing
++ * both brightness control, and rfkill not working.
++ */
++ {
++ .callback = dmi_enable_osi_linux,
++ .ident = "Asus EEE PC 1015PX",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK Computer INC."),
++ DMI_MATCH(DMI_PRODUCT_NAME, "1015PX"),
++ },
++ },
+ {}
+ };
+
+--
+1.9.0
+
diff --git a/kernel.spec b/kernel.spec
index d93ca540..cc89f068 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -772,6 +772,16 @@ Patch25075: locks-allow-__break_lease-to-sleep-even-when-break_t.patch
#CVE-2014-0196 rhbz 1094232 1094240
Patch25076: n_tty-Fix-n_tty_write-crash-when-echoing-in-raw-mode.patch
+#misc input fixes
+Patch25077: 0001-hid-quirks-Add-NO_INIT_REPORTS-quirk-for-Synaptics-T.patch
+Patch25078: 0002-elantech-Fix-elantech-on-Gigabyte-U2442.patch
+
+#rhbz 861573
+Patch25079: 0003-samsung-laptop-Add-broken-acpi-video-quirk-for-NC210.patch
+
+#rhbz 1067181
+Patch25080: 0004-acpi-blacklist-Add-dmi_enable_osi_linux-quirk-for-As.patch
+
# END OF PATCH DEFINITIONS
%endif
@@ -1497,6 +1507,16 @@ ApplyPatch locks-allow-__break_lease-to-sleep-even-when-break_t.patch
#CVE-2014-0196 rhbz 1094232 1094240
ApplyPatch n_tty-Fix-n_tty_write-crash-when-echoing-in-raw-mode.patch
+#misc input fixes
+ApplyPatch 0001-hid-quirks-Add-NO_INIT_REPORTS-quirk-for-Synaptics-T.patch
+ApplyPatch 0002-elantech-Fix-elantech-on-Gigabyte-U2442.patch
+
+#rhbz 861573
+ApplyPatch 0003-samsung-laptop-Add-broken-acpi-video-quirk-for-NC210.patch
+
+#rhbz 1067181
+ApplyPatch 0004-acpi-blacklist-Add-dmi_enable_osi_linux-quirk-for-As.patch
+
# END OF PATCH APPLICATIONS
%endif
@@ -2308,6 +2328,13 @@ fi
# ||----w |
# || ||
%changelog
+* Tue May 06 2014 Hans de Goede <hdegoede@redhat.com>
+- Add a patch to fix the Synaptics Touch Pad V 103S found on some keyboard
+ docks for win8 tablets
+- Add a patch to fix the elantech touchpad on Gigabyte U2442 laptops
+- Add a patch to fix backlight control on the Samsung NC210/NC110 (rhbz#861573)
+- Add a patch to fix backlight & wifi on the Asus EEE PC 1015PX (rhbz#1067181)
+
* Tue May 06 2014 Josh Boyer <jwboyer@fedoraproject.org>
- CVE-2014-0196 pty race leading to memory corruption (rhbz 1094232 1094240)
- Add patch to fix smdb soft-lockup (rhbz 1082586)