Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp4985052imm; Tue, 12 Jun 2018 00:10:09 -0700 (PDT) X-Google-Smtp-Source: ADUXVKK1ELPNeovg/Hg8F42roRaC1HRtEMeZU1sF3draXq2denUgnpDizocC8oNHWuhIN4N5CRFo X-Received: by 2002:aa7:808f:: with SMTP id v15-v6mr2616583pff.38.1528787409402; Tue, 12 Jun 2018 00:10:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1528787409; cv=none; d=google.com; s=arc-20160816; b=SzT2E+X5fwZsDuDeWqjw1iPPUD2/gaR4+zb2v1Zj1Qnlrj0OR4u1M5IOdt+WFTh/3H 8Svh5JFHnMzRr2DgSgmL9AaMnrrwdE9GRfhEMLS3dxV7txOsusHJW5APGHT218oUYSp4 XsLaw6SR9B6Cr6nMTgT4TnLfz4JE2NXs0jG7RjqT584WZb9lX8Q50M8nrEMaObUZa74V O/Er3HbQJboJLkPEDeYdBqOBvi3XwYHjChR6Py3n3cHWKpU+k+OxVev4nMtM5jXbTzdj hM40iXu+zPKlr/pMcwg/URAbZthDxEQA+J318enYCzCzNN503p3RzC6ZjpfBIZVUerq9 IVlQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:to:from :arc-authentication-results; bh=xLf9U4+7NoO98Ua+9eAZAG7U1I5JCClJuvLqWf6iKrU=; b=qC8v8zK+4rBWxQoUE+jpC1pj5VB2fBAEcUPXj7/ie1Ld4iUL7lvkJbBRgO4YIp/80g rxBFmmmUIxD+q5DpKJ07ZQQIqqrCVKlqW4pjC4MxhTFo4p7+5YP6lVcFDoKoY0It0s1N YW9/656klCf2sB9TmWvagXViGtam1l7pogxab03U1+lK5fU1Lyy/FsSLRVE+nWzFPDi0 jrFZOzTg1nLSqC4irSX1qvG2JbO4n8f6HKyZUj2tP9KIGwZj/GLlusXDaNxPGGIDp7CN lUAmlFtgBuzIwveGEgJL7dMzWMi4cLQC3Wb7g2Q7JBL7VZkh53QfVS/ZO1fKogRah+xO 5ihg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=canonical.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id n12-v6si145110pgs.560.2018.06.12.00.09.53; Tue, 12 Jun 2018 00:10:09 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=canonical.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754179AbeFLHJa (ORCPT + 99 others); Tue, 12 Jun 2018 03:09:30 -0400 Received: from youngberry.canonical.com ([91.189.89.112]:60002 "EHLO youngberry.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751677AbeFLHJ3 (ORCPT ); Tue, 12 Jun 2018 03:09:29 -0400 Received: from [125.35.49.90] (helo=localhost.localdomain) by youngberry.canonical.com with esmtpsa (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.76) (envelope-from ) id 1fSdQj-0007Uf-Gp; Tue, 12 Jun 2018 07:09:26 +0000 From: Aaron Ma To: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, aaron.ma@canonical.com, kt.liao@emc.com.tw, dmitry.torokhov@gmail.com Subject: [PATCH] Input: elan: enable middle button of touchpads on ThinkPad P52 Date: Tue, 12 Jun 2018 15:09:06 +0800 Message-Id: <20180612070906.5305-1-aaron.ma@canonical.com> X-Mailer: git-send-email 2.17.1 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org PNPID is better way to identify the type of touchpads. Enable middle button support on 2 types of touchpads on Lenovo P52. Cc: stable@vger.kernel.org Cc: KT Liao Signed-off-by: Aaron Ma --- drivers/input/mouse/elantech.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/input/mouse/elantech.c b/drivers/input/mouse/elantech.c index fb4d902c4403..67b061dd4494 100644 --- a/drivers/input/mouse/elantech.c +++ b/drivers/input/mouse/elantech.c @@ -1175,6 +1175,12 @@ static const struct dmi_system_id elantech_dmi_has_middle_button[] = { { } }; +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 */ @@ -1194,7 +1200,8 @@ static int elantech_set_input_params(struct psmouse *psmouse) __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); -- 2.17.1