Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1598160

[PATCH v2 9/9] [NEEDS F21] Input: synaptics - switch forcepad devices over to SMbus access

Path csiph.com!aioe.org!bofh.it!news.nic.it!robomod
From Dmitry Torokhov <dmitry.torokhov@gmail.com>
Newsgroups linux.kernel
Subject [PATCH v2 9/9] [NEEDS F21] Input: synaptics - switch forcepad devices over to SMbus access
Date Sat, 11 Mar 2017 00:10:02 +0100
Message-ID <tjBPA-2pi-7@gated-at.bofh.it> (permalink)
References <tjBPz-2pi-5@gated-at.bofh.it>
Dkim-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=NSQJF9PQrIaiGvWueOUHl7ne5K4ZscDR0pvCb6/8nko=; b=nYPayRZWdvwElZlMIhjD3KSGorD/Sl/5i967HCRI96JS/+yTAke7e59cHSC64MnNYq OLBbXe5NM8NOZb9fltXo+CqIxLXnxex+d1DAtvD1jkXswMcksUlx87GrHyA/T4siUM6C FDhU1jevint9OFTlPhD+jROwpCC/EmayvIBdgka53NdWxqpAvgmzxPWDIhxfm6ddqtJQ bfswPt+mJqY5dwLA6R1B3EBTcRzs1kAGLo4WoJt6ZwUpk12KcIdQJvEhzMs6MvgUnsHb /Y2uJoiNkBz4lb6eZB6qm1oS9NgCMM8H/fItt0b4nakGtqYkaW+qbc6O9QfqjdiA9iY7 aWxQ==
X-Google-Dkim-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=NSQJF9PQrIaiGvWueOUHl7ne5K4ZscDR0pvCb6/8nko=; b=XP7ns8z+AK3MZKBBMeNnIswqtS6peExH4y58a5cV2zircDUPlqaneMmCBHzWXjbBOp 8WyE51zF4za0kPHk8VsvCwcxWiErA1ZwqEMa/PSAAcKcKLy85u44Molm1p6PPE4ZaoUw 0bI+4TSXWnzJahb04Z8OJO9F3Hg0ZcCgpIHm8cSBBOGAz10kaMbtnpeCvSPCdjd3Z0gw QILj+zJ2jZFjVaGH17eO21yOrSOJcEm7zhcuSbnDZp8wB+D584SdcPLaDWiL1WFRz9DZ M2/rf7KuU7g68T2865WWNURdnu/B6lX/mzXcabb0mRsjj9zK59bnpJ/EQGAvi2OgTEzd d01A==
X-Gm-Message-State AMke39nMVEwv5Wt2WMOFMly9pRbxd2YOi8h4LzoMTiQD4j7VAylnno/g1cGMnsJwkDPszQ==
X-Received by 10.99.36.71 with SMTP id k68mr23446714pgk.68.1489186885263; Fri, 10 Mar 2017 15:01:25 -0800 (PST)
X-Mailer git-send-email 2.12.0.246.ga2ecc84866-goog
Sender robomod@news.nic.it
List-ID <linux-kernel.vger.kernel.org>
X-Mailing-List linux-kernel@vger.kernel.org
Approved robomod@news.nic.it
Lines 72
Organization linux.* mail to news gateway
X-Original-Cc Andrew Duggan <aduggan@synaptics.com>, linux-kernel@vger.kernel.org, linux-input@vger.kernel.org
X-Original-Date Fri, 10 Mar 2017 15:01:14 -0800
X-Original-Message-ID <20170310230114.788-10-dmitry.torokhov@gmail.com>
X-Original-References <20170310230114.788-1-dmitry.torokhov@gmail.com>
X-Original-Sender linux-kernel-owner@vger.kernel.org
Xref csiph.com linux.kernel:1598160

Show key headers only | View raw


Synaptics "forcedpad" devices use address 0x20 instead of 0x2c.
Unfortunately the fact that the device is a forcepad is not exported
through PS/2 interface, so we need a bit of DMI magic to switch over to the
correct address.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
---
 drivers/input/mouse/synaptics.c | 23 ++++++++++++++---------
 1 file changed, 14 insertions(+), 9 deletions(-)

diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c
index 26794f06ad9c..1b9ae3a7f915 100644
--- a/drivers/input/mouse/synaptics.c
+++ b/drivers/input/mouse/synaptics.c
@@ -171,6 +171,13 @@ static const char * const smbus_pnp_ids[] = {
 	NULL
 };
 
+/* This list has been kindly provided by Synaptics. */
+static const char * const forcepad_pnp_ids[] = {
+	"SYN300D",
+	"SYN3014",
+	NULL
+};
+
 /*
  * Send a command to the synpatics touchpad by special commands
  */
@@ -493,13 +500,6 @@ static const struct min_max_quirk min_max_pnpid_table[] = {
 	{ }
 };
 
-/* This list has been kindly provided by Synaptics. */
-static const char * const forcepad_pnp_ids[] = {
-	"SYN300D",
-	"SYN3014",
-	NULL
-};
-
 /*****************************************************************************
  *	Synaptics communications functions
  ****************************************************************************/
@@ -1721,11 +1721,14 @@ static int synaptics_create_intertouch(struct psmouse *psmouse,
 				!!SYN_CAP_EXT_BUTTONS_STICK(info->ext_cap_10),
 		},
 	};
-	const struct i2c_board_info intertouch_board = {
+	struct i2c_board_info intertouch_board = {
 		I2C_BOARD_INFO("rmi4_smbus", 0x2c),
 		.flags = I2C_CLIENT_HOST_NOTIFY,
 	};
 
+	if (psmouse_matches_pnp_id(psmouse, forcepad_pnp_ids))
+		intertouch_board.addr = 0x20;
+
 	return psmouse_smbus_init(psmouse, &intertouch_board,
 				  &pdata, sizeof(pdata),
 				  leave_breadcrumbs);
@@ -1746,8 +1749,10 @@ static int synaptics_setup_intertouch(struct psmouse *psmouse,
 
 	if (synaptics_intertouch == SYNAPTICS_INTERTOUCH_NOT_SET) {
 		if (!psmouse_matches_pnp_id(psmouse, topbuttonpad_pnp_ids) &&
-		    !psmouse_matches_pnp_id(psmouse, smbus_pnp_ids))
+		    !psmouse_matches_pnp_id(psmouse, smbus_pnp_ids) &&
+		    !psmouse_matches_pnp_id(psmouse, forcepad_pnp_ids)) {
 			return -ENXIO;
+		}
 	}
 
 	psmouse_info(psmouse, "Trying to set up SMBus access\n");
-- 
2.12.0.246.ga2ecc84866-goog

Back to linux.kernel | Previous | Next | Find similar | Unroll thread


Thread

[PATCH v2 9/9] [NEEDS F21] Input: synaptics - switch forcepad devices over to SMbus access Dmitry Torokhov <dmitry.torokhov@gmail.com> - 2017-03-11 00:10 +0100

csiph-web