All of lore.kernel.org
 help / color / mirror / Atom feed
From: Benjamin Tissoires <benjamin.tissoires@redhat.com>
To: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: kt.liao@emc.com.tw, Oliver Haessler <oliver@redhat.com>,
	Benjamin Berg <bberg@redhat.com>,
	linux-input@vger.kernel.org, linux-kernel@vger.kernel.org,
	Benjamin Tissoires <benjamin.tissoires@redhat.com>
Subject: [PATCH 5/8] Input: elantech - query the resolution in query_info
Date: Thu,  5 Apr 2018 15:25:34 +0200	[thread overview]
Message-ID: <20180405132537.3218-6-benjamin.tissoires@redhat.com> (raw)
In-Reply-To: <20180405132537.3218-1-benjamin.tissoires@redhat.com>

The command ETP_RESOLUTION_QUERY also contains the bus information.
It is better to fetch it once, while we are querying for device
information.

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
---
 drivers/input/mouse/elantech.c | 27 +++++++++++++++------------
 drivers/input/mouse/elantech.h |  2 ++
 2 files changed, 17 insertions(+), 12 deletions(-)

diff --git a/drivers/input/mouse/elantech.c b/drivers/input/mouse/elantech.c
index d485664f1563..41af0c9098af 100644
--- a/drivers/input/mouse/elantech.c
+++ b/drivers/input/mouse/elantech.c
@@ -1179,7 +1179,6 @@ static int elantech_set_input_params(struct psmouse *psmouse)
 	struct elantech_data *etd = psmouse->private;
 	struct elantech_device_info *info = &etd->info;
 	unsigned int x_min = 0, y_min = 0, x_max = 0, y_max = 0, width = 0;
-	unsigned int x_res = 31, y_res = 31;
 
 	if (elantech_set_range(psmouse, &x_min, &y_min, &x_max, &y_max, &width))
 		return -1;
@@ -1232,13 +1231,6 @@ static int elantech_set_input_params(struct psmouse *psmouse)
 		break;
 
 	case 4:
-		if (elantech_get_resolution_v4(psmouse, &x_res, &y_res)) {
-			/*
-			 * if query failed, print a warning and leave the values
-			 * zero to resemble synaptics.c behavior.
-			 */
-			psmouse_warn(psmouse, "couldn't query resolution data.\n");
-		}
 		elantech_set_buttonpad_prop(psmouse);
 		__set_bit(BTN_TOOL_QUADTAP, dev->keybit);
 		/* For X to recognize me as touchpad. */
@@ -1267,11 +1259,11 @@ static int elantech_set_input_params(struct psmouse *psmouse)
 		break;
 	}
 
-	input_abs_set_res(dev, ABS_X, x_res);
-	input_abs_set_res(dev, ABS_Y, y_res);
+	input_abs_set_res(dev, ABS_X, info->x_res);
+	input_abs_set_res(dev, ABS_Y, info->y_res);
 	if (info->hw_version > 1) {
-		input_abs_set_res(dev, ABS_MT_POSITION_X, x_res);
-		input_abs_set_res(dev, ABS_MT_POSITION_Y, y_res);
+		input_abs_set_res(dev, ABS_MT_POSITION_X, info->x_res);
+		input_abs_set_res(dev, ABS_MT_POSITION_Y, info->y_res);
 	}
 
 	etd->y_max = y_max;
@@ -1720,6 +1712,17 @@ int elantech_query_info(struct psmouse *psmouse,
 	/* The MSB indicates the presence of the trackpoint */
 	info->has_trackpoint = (info->capabilities[0] & 0x80) == 0x80;
 
+	info->x_res = 31;
+	info->y_res = 31;
+	if (info->hw_version == 4) {
+		if (elantech_get_resolution_v4(psmouse,
+					       &info->x_res,
+					       &info->y_res)) {
+			psmouse_warn(psmouse,
+				     "failed to query resolution data.\n");
+		}
+	}
+
 	return 0;
 }
 
diff --git a/drivers/input/mouse/elantech.h b/drivers/input/mouse/elantech.h
index d8ac27fe4597..851df4ce6232 100644
--- a/drivers/input/mouse/elantech.h
+++ b/drivers/input/mouse/elantech.h
@@ -120,6 +120,8 @@ struct elantech_device_info {
 	unsigned char debug;
 	unsigned char hw_version;
 	unsigned int fw_version;
+	unsigned int x_res;
+	unsigned int y_res;
 	bool paritycheck;
 	bool jumpy_cursor;
 	bool reports_pressure;
-- 
2.14.3

  parent reply	other threads:[~2018-04-05 13:26 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-05 13:25 [PATCH 0/8] Input: support for latest Lenovo thinkpads (series 80) Benjamin Tissoires
2018-04-05 13:25 ` [PATCH 1/8] Input: synaptics - add Lenovo 80 series ids to SMBus Benjamin Tissoires
2018-04-09  3:37   ` Sasha Levin
2018-04-09  9:02     ` Benjamin Tissoires
2018-04-05 13:25 ` [PATCH 2/8] input: elan_i2c_smbus - fix corrupted stack Benjamin Tissoires
2018-04-09  3:37   ` Sasha Levin
2018-04-09  9:01     ` Benjamin Tissoires
2018-04-05 13:25 ` [PATCH 3/8] Input: elan_i2c - add trackstick report Benjamin Tissoires
2018-04-05 23:46   ` Dmitry Torokhov
2018-04-06  6:51     ` Benjamin Tissoires
2018-04-05 13:25 ` [PATCH 4/8] Input: elantech - split device info into a separate structure Benjamin Tissoires
2018-04-06  7:33   ` [RFC PATCH] Input: elantech_query_info() can be static kbuild test robot
2018-04-06  7:33     ` kbuild test robot
2018-04-06  7:33   ` [PATCH 4/8] Input: elantech - split device info into a separate structure kbuild test robot
2018-04-06  7:33     ` kbuild test robot
2018-04-05 13:25 ` Benjamin Tissoires [this message]
2018-04-05 13:25 ` [PATCH 6/8] Input: elantech - add support for SMBus devices Benjamin Tissoires
2018-04-05 13:25 ` [PATCH 7/8] Input: elantech - detect new ICs and setup Host Notify for them Benjamin Tissoires
2018-04-05 13:25 ` [PATCH 8/8] input: psmouse-smbus: allow to control psmouse_deactivate Benjamin Tissoires
2018-04-05 23:51 ` [PATCH 0/8] Input: support for latest Lenovo thinkpads (series 80) Dmitry Torokhov
2018-04-06  6:51   ` Benjamin Tissoires
2018-04-10  5:45     ` 廖崇榮
2018-04-10  7:35       ` Benjamin Tissoires
2018-04-11  4:32         ` 廖崇榮

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180405132537.3218-6-benjamin.tissoires@redhat.com \
    --to=benjamin.tissoires@redhat.com \
    --cc=bberg@redhat.com \
    --cc=dmitry.torokhov@gmail.com \
    --cc=kt.liao@emc.com.tw \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=oliver@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.