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)
This commit is contained in:
parent
34d445d582
commit
47a9033633
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
27
kernel.spec
27
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)
|
||||
|
|
Loading…
Reference in New Issue