Received: by 2002:a25:86ce:0:0:0:0:0 with SMTP id y14csp955260ybm; Tue, 21 May 2019 06:30:44 -0700 (PDT) X-Google-Smtp-Source: APXvYqwqVR1/DzIZiv7Ss3N1b8JH+jPw9xGIQoI9l8R3nMhbglIFK0cPzxh9LwhSC8XrhZ7fooSH X-Received: by 2002:aa7:9577:: with SMTP id x23mr86859822pfq.164.1558445444512; Tue, 21 May 2019 06:30:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558445444; cv=none; d=google.com; s=arc-20160816; b=EVvHwquhEvuwfMGXnHY18vmD6Y6vNDWbcSpGlvr2vrNF2/trUBH0rjGesFbWJI1L8l 6O1Rp38Nr7a64b2zaoT63AD3Yc0mXes9dQFC7/usfyaYEAChRMxnIG4G3OHT/T6MnEKa GMrfYR6X5VYzSJSSLAAECc50/XiA3vIWVREUKXyhUby77zz7zSL1ohpAbETRQa1s8RKR Xyg7vMRBRjibez0BWO7KSRb/F8k/eG9MERqMviOAMhhE68vrNRJK4HRB16EoU6Vert3o 0WbI/5m6j1ajOOctxfZL9dyxsY7VJsJLtwtuK/r2o7+t2YHMFzLkXW7Y9FSEtRbL24Q6 mjYQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=rbtwbzeFS46jMIb3lytDWjGfdy5QMZBfs+EXyB1jKUE=; b=JfaAVOQayM2O/rzN6jfE+WpkrOxqcPdqJA5ZXUNbEdBP5pAd9YT0bgs7WpcjQI4Dot ZSGMGZH+rxJTnPzBbfr75q7hrb4IDVHmlbHOgrN5ygNdXlCc8oyQFpzi8SSMj5gsauYo DdhXCh6kLWXq7sM0CQ8TFJspmDvwDMaGEZ9h1dSCE6GETVkeKqWCzAhL4aFpdLeTvXmt 3+dTHxDBO3lZB1DbHqg5GCyP68X6GKDjX5DfZppyvCX6ny73lXpHdJa6xS+omvKxa7E3 B8dDkpuKiUnSp/Yx6MeoMdcUP3bDlyi9mGM7EkxDxU+QW6l3H7ZiKv7SMk2lB4JBTP8C rqDg== 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=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 33si20797219pld.265.2019.05.21.06.30.29; Tue, 21 May 2019 06:30:44 -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=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728391AbfEUN17 (ORCPT + 99 others); Tue, 21 May 2019 09:27:59 -0400 Received: from mx1.redhat.com ([209.132.183.28]:33610 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728249AbfEUN16 (ORCPT ); Tue, 21 May 2019 09:27:58 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id C3E86356E5; Tue, 21 May 2019 13:27:57 +0000 (UTC) Received: from plouf.redhat.com (ovpn-116-49.ams2.redhat.com [10.36.116.49]) by smtp.corp.redhat.com (Postfix) with ESMTP id B9FED6109F; Tue, 21 May 2019 13:27:51 +0000 (UTC) From: Benjamin Tissoires To: Dmitry Torokhov , KT Liao , Rob Herring , Aaron Ma , Hans de Goede Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Benjamin Tissoires Subject: [PATCH v2 07/10] Input: elan_i2c - handle physical middle button Date: Tue, 21 May 2019 15:27:09 +0200 Message-Id: <20190521132712.2818-8-benjamin.tissoires@redhat.com> In-Reply-To: <20190521132712.2818-1-benjamin.tissoires@redhat.com> References: <20190521132712.2818-1-benjamin.tissoires@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Tue, 21 May 2019 13:27:57 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Some models have a middle button, we should export it as well. Signed-off-by: Benjamin Tissoires -- new in v2 Is it really worth having a separate property, or should we just expose a middle button whatsoever? --- drivers/input/mouse/elan_i2c_core.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/drivers/input/mouse/elan_i2c_core.c b/drivers/input/mouse/elan_i2c_core.c index 53cac610ba33..7ff044c6cd11 100644 --- a/drivers/input/mouse/elan_i2c_core.c +++ b/drivers/input/mouse/elan_i2c_core.c @@ -99,6 +99,7 @@ struct elan_tp_data { u8 max_baseline; bool baseline_ready; u8 clickpad; + bool middle_button; }; static int elan_get_fwinfo(u16 ic_type, u16 *validpage_count, @@ -420,6 +421,9 @@ static int elan_query_device_parameters(struct elan_tp_data *data) if (device_property_read_bool(&client->dev, "elan,clickpad")) data->clickpad = 1; + if (device_property_read_bool(&client->dev, "elan,middle-button")) + data->middle_button = true; + return 0; } @@ -958,8 +962,9 @@ static void elan_report_absolute(struct elan_tp_data *data, u8 *packet) finger_data += ETP_FINGER_DATA_LEN; } - input_report_key(input, BTN_LEFT, tp_info & 0x01); - input_report_key(input, BTN_RIGHT, tp_info & 0x02); + input_report_key(input, BTN_LEFT, tp_info & BIT(0)); + input_report_key(input, BTN_MIDDLE, tp_info & BIT(2)); + input_report_key(input, BTN_RIGHT, tp_info & BIT(1)); input_report_abs(input, ABS_DISTANCE, hover_event != 0); input_mt_report_pointer_emulation(input, true); input_sync(input); @@ -1091,10 +1096,13 @@ static int elan_setup_input_device(struct elan_tp_data *data) __set_bit(EV_ABS, input->evbit); __set_bit(INPUT_PROP_POINTER, input->propbit); - if (data->clickpad) + if (data->clickpad) { __set_bit(INPUT_PROP_BUTTONPAD, input->propbit); - else + } else { __set_bit(BTN_RIGHT, input->keybit); + if (data->middle_button) + __set_bit(BTN_MIDDLE, input->keybit); + } __set_bit(BTN_LEFT, input->keybit); /* Set up ST parameters */ -- 2.21.0