lkml.org 
[lkml]   [2020]   [Sep]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH] Input: trackpoint - Add Suspend mode for Elan TrackPoint
Date
From: "jingle.wu" <jingle.wu@elan.corp-partner.google.com>

Add suspend command for elan trackpoint
---
drivers/input/mouse/trackpoint.c | 16 ++++++++++++++++
drivers/input/mouse/trackpoint.h | 1 +
2 files changed, 17 insertions(+)

diff --git a/drivers/input/mouse/trackpoint.c b/drivers/input/mouse/trackpoint.c
index 3eefee2ee2a1..b3cba973a4eb 100644
--- a/drivers/input/mouse/trackpoint.c
+++ b/drivers/input/mouse/trackpoint.c
@@ -389,6 +389,20 @@ static int trackpoint_reconnect(struct psmouse *psmouse)
return 0;
}

+static void trackpoint_cleanup(struct psmouse *psmouse)
+{
+ struct trackpoint_data *tp = psmouse->private;
+ u8 param[3] = { TP_TOGGLE, TP_TOGGLE_BURST, TP_TOGGLE_ELAN_SLEEP };
+
+ if (tp->variant_id == TP_VARIANT_ELAN) {
+ if (ps2_command(&psmouse->ps2dev, param,
+ MAKE_PS2_CMD(3, 0, TP_COMMAND))) {
+ psmouse_err(psmouse,
+ "failed to suspend trackpont.\n");
+ }
+ }
+}
+
int trackpoint_detect(struct psmouse *psmouse, bool set_properties)
{
struct ps2dev *ps2dev = &psmouse->ps2dev;
@@ -421,6 +435,8 @@ int trackpoint_detect(struct psmouse *psmouse, bool set_properties)
psmouse->reconnect = trackpoint_reconnect;
psmouse->disconnect = trackpoint_disconnect;

+ psmouse->cleanup = trackpoint_cleanup;
+
if (variant_id != TP_VARIANT_IBM) {
/* Newer variants do not support extended button query. */
button_info = 0x33;
diff --git a/drivers/input/mouse/trackpoint.h b/drivers/input/mouse/trackpoint.h
index 5cb93ed26085..c7fa75452976 100644
--- a/drivers/input/mouse/trackpoint.h
+++ b/drivers/input/mouse/trackpoint.h
@@ -107,6 +107,7 @@
#define TP_TOGGLE_EXT_TAG 0x22 /* Bit 3 of the first packet coming from the
external device will be forced to 1 */
#define TP_MASK_EXT_TAG 0x04
+#define TP_TOGGLE_ELAN_SLEEP 0x8


/* Power on Self Test Results */
--
2.17.1
\
 
 \ /
  Last update: 2020-09-04 04:52    [W:0.399 / U:0.028 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site