| From: Aaron Ma <aaron.ma@canonical.com> |
| Date: Thu, 21 Jun 2018 17:14:01 -0700 |
| Subject: Input: elantech - enable middle button of touchpads on ThinkPad P52 |
| |
| commit 24bb555e6e46d96e2a954aa0295029a81cc9bbaa upstream. |
| |
| PNPID is better way to identify the type of touchpads. |
| Enable middle button support on 2 types of touchpads on Lenovo P52. |
| |
| Signed-off-by: Aaron Ma <aaron.ma@canonical.com> |
| Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> |
| Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> |
| Signed-off-by: Ben Hutchings <ben@decadent.org.uk> |
| --- |
| drivers/input/mouse/elantech.c | 9 ++++++++- |
| 1 file changed, 8 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/input/mouse/elantech.c |
| +++ b/drivers/input/mouse/elantech.c |
| @@ -1080,6 +1080,12 @@ static const struct dmi_system_id elante |
| { } |
| }; |
| |
| +static const char * const middle_button_pnp_ids[] = { |
| + "LEN2131", /* ThinkPad P52 w/ NFC */ |
| + "LEN2132", /* ThinkPad P52 */ |
| + NULL |
| +}; |
| + |
| /* |
| * Set the appropriate event bits for the input subsystem |
| */ |
| @@ -1099,7 +1105,8 @@ static int elantech_set_input_params(str |
| __clear_bit(EV_REL, dev->evbit); |
| |
| __set_bit(BTN_LEFT, dev->keybit); |
| - if (dmi_check_system(elantech_dmi_has_middle_button)) |
| + if (dmi_check_system(elantech_dmi_has_middle_button) || |
| + psmouse_matches_pnp_id(psmouse, middle_button_pnp_ids)) |
| __set_bit(BTN_MIDDLE, dev->keybit); |
| __set_bit(BTN_RIGHT, dev->keybit); |
| |