Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 834680 Details for
Bug 1030802
ETPS/2 Elantech Touchpad click problems
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
PATCH v2: proper detect wether v3/v4 is a clickpad or not
0001-elantech-Properly-differentiate-between-clickpads-an.patch (text/plain), 4.71 KB, created by
Hans de Goede
on 2013-12-10 10:02:46 UTC
(
hide
)
Description:
PATCH v2: proper detect wether v3/v4 is a clickpad or not
Filename:
MIME Type:
Creator:
Hans de Goede
Created:
2013-12-10 10:02:46 UTC
Size:
4.71 KB
patch
obsolete
>From e1c7fa5fbb6688bd464658ff8a93bdf23c442065 Mon Sep 17 00:00:00 2001 >From: Hans de Goede <hdegoede@redhat.com> >Date: Mon, 9 Dec 2013 15:18:04 +0100 >Subject: [PATCH v2] elantech: Properly differentiate between clickpads and > normal touchpads > >The current assumption in the elantech driver that hw version 3 touchpads are >never clickpads and hw version 4 touchpads are always clickpads is wrong. > >There are several bug reports for this, ie: >https://bugzilla.redhat.com/show_bug.cgi?id=1030802 >http://superuser.com/questions/619582/right-elantech-touchpad-button-not-working-in-linux > >I've spend a couple of hours wading through various bugzillas, >launchpads and forum posts to create a list of fw-versions and capabilities >for different laptop models to find a good method to differentiate between >clickpads and versions with separate hardware buttons. > >Which shows that a device being a clickpad is reliable indicated by bit 12 >being set in the fw_version. I've included the gathered list inside the driver, >so that we've this info at hand if we need to revisit this later. > >Signed-off-by: Hans de Goede <hdegoede@redhat.com> >--- > drivers/input/mouse/elantech.c | 45 +++++++++++++++++++++++++++++++++++++++--- > 1 file changed, 42 insertions(+), 3 deletions(-) > >diff --git a/drivers/input/mouse/elantech.c b/drivers/input/mouse/elantech.c >index 597e9b8..ef1cf52 100644 >--- a/drivers/input/mouse/elantech.c >+++ b/drivers/input/mouse/elantech.c >@@ -486,6 +486,7 @@ static void elantech_input_sync_v4(struct psmouse *psmouse) > unsigned char *packet = psmouse->packet; > > input_report_key(dev, BTN_LEFT, packet[0] & 0x01); >+ input_report_key(dev, BTN_RIGHT, packet[0] & 0x02); > input_mt_report_pointer_emulation(dev, true); > input_sync(dev); > } >@@ -984,6 +985,44 @@ static int elantech_get_resolution_v4(struct psmouse *psmouse, > } > > /* >+ * Advertise INPUT_PROP_BUTTONPAD for clickpads. The testing of bit 12 in >+ * fw_version for this is based on the following fw_version & caps table: >+ * >+ * Laptop-model: fw_version: caps: buttons: >+ * Acer S3 0x461f00 10, 13, 0e clickpad >+ * Acer S7-392 0x581f01 50, 17, 0d clickpad >+ * Acer V5-131 0x461f02 01, 16, 0c clickpad >+ * Acer V5-551 0x461f00 ? clickpad >+ * Asus K53SV 0x450f01 78, 15, 0c 2 hw buttons >+ * Asus G46VW 0x460f02 00, 18, 0c 2 hw buttons >+ * Asus G750JX 0x360f00 00, 16, 0c 2 hw buttons >+ * Asus UX31 0x361f00 20, 15, 0e clickpad >+ * Asus UX32VD 0x361f02 00, 15, 0e clickpad >+ * Avatar AVIU-145A2 0x361f00 ? clickpad >+ * Gigabyte U2442 0x450f01 58, 17, 0c 2 hw buttons >+ * Lenovo L430 0x350f02 b9, 15, 0c 2 hw buttons (*) >+ * Samsung NF210 0x150b00 78, 14, 0a 2 hw buttons >+ * Samsung NP770Z5E 0x575f01 10, 15, 0f clickpad >+ * Samsung NP700Z5B 0x361f06 21, 15, 0f clickpad >+ * Samsung NP900X3E-A02 0x575f03 ? clickpad >+ * Samsung NP-QX410 0x851b00 19, 14, 0c clickpad >+ * Samsung RC512 0x450f00 08, 15, 0c 2 hw buttons >+ * Samsung RF710 0x450f00 ? 2 hw buttons >+ * System76 Pangolin 0x250f01 ? 2 hw buttons >+ * (*) + 3 trackpoint buttons >+ */ >+static void elantech_set_buttonpad_prop(struct psmouse *psmouse) >+{ >+ struct input_dev *dev = psmouse->dev; >+ struct elantech_data *etd = psmouse->private; >+ >+ if (etd->fw_version & 0x001000) { >+ __set_bit(INPUT_PROP_BUTTONPAD, dev->propbit); >+ __clear_bit(BTN_RIGHT, dev->keybit); >+ } >+} >+ >+/* > * Set the appropriate event bits for the input subsystem > */ > static int elantech_set_input_params(struct psmouse *psmouse) >@@ -1026,6 +1065,8 @@ static int elantech_set_input_params(struct psmouse *psmouse) > __set_bit(INPUT_PROP_SEMI_MT, dev->propbit); > /* fall through */ > case 3: >+ if (etd->hw_version == 3) >+ elantech_set_buttonpad_prop(psmouse); > input_set_abs_params(dev, ABS_X, x_min, x_max, 0, 0); > input_set_abs_params(dev, ABS_Y, y_min, y_max, 0, 0); > if (etd->reports_pressure) { >@@ -1047,9 +1088,7 @@ static int elantech_set_input_params(struct psmouse *psmouse) > */ > psmouse_warn(psmouse, "couldn't query resolution data.\n"); > } >- /* v4 is clickpad, with only one button. */ >- __set_bit(INPUT_PROP_BUTTONPAD, dev->propbit); >- __clear_bit(BTN_RIGHT, dev->keybit); >+ elantech_set_buttonpad_prop(psmouse); > __set_bit(BTN_TOOL_QUADTAP, dev->keybit); > /* For X to recognize me as touchpad. */ > input_set_abs_params(dev, ABS_X, x_min, x_max, 0, 0); >-- >1.8.4.2 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 1030802
:
833060
|
833171
|
834347
|
834349
| 834680