diff options
author | Hans de Goede <hdegoede@redhat.com> | 2014-05-05 14:19:02 +0200 |
---|---|---|
committer | Hans de Goede <hdegoede@redhat.com> | 2014-05-06 14:52:41 +0200 |
commit | 47a9033633be816248bd0e80b40656d0fa8b8ca2 (patch) | |
tree | c28d40e461fa7a9b8c86abd1bd6e66ff318f5f53 | |
parent | 34d445d5825fc3f7318e6c8b1f7d8935e3f2a752 (diff) | |
download | kernel-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.patch | 44 | ||||
-rw-r--r-- | 0002-elantech-Fix-elantech-on-Gigabyte-U2442.patch | 124 | ||||
-rw-r--r-- | 0003-samsung-laptop-Add-broken-acpi-video-quirk-for-NC210.patch | 39 | ||||
-rw-r--r-- | 0004-acpi-blacklist-Add-dmi_enable_osi_linux-quirk-for-As.patch | 49 | ||||
-rw-r--r-- | kernel.spec | 27 |
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) |