Skip to contentSkip to conversation

input: ALPS - Invert the Y axis and adjust scaling on SS5 tracksticks

PATCH In review Dima Ryazanov 1 participant 2 messages Jan 10, 2017 – Jan 16, 2017

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 input: ALPS - Invert the Y axis and adjust scaling on SS5 tracksticks

This patch fixes the trackstick on my Dell Latitude E7470. Currently, it's upside down and too fast (that is, much faster than when using the generic PS/2 driver).

It also matches the trackpoint logic in alps_process_packet_v6.
---
(I'm aware that scaling in the driver is not ideal - but at least the vertical orientation should be fixed.)

---
 drivers/input/mouse/alps.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/input/mouse/alps.c +2 -2
index 328edc8..5fa7a15 100644
@@ -1346,8 +1346,8 @@ static void alps_process_packet_ss4_v2(struct psmouse *psmouse)
 			return;
 		}
 
-		input_report_rel(dev2, REL_X, SS4_TS_X_V2(packet));
-		input_report_rel(dev2, REL_Y, SS4_TS_Y_V2(packet));
+		input_report_rel(dev2, REL_X, SS4_TS_X_V2(packet) / 4);
+		input_report_rel(dev2, REL_Y, -SS4_TS_Y_V2(packet) / 4);
 		input_report_abs(dev2, ABS_PRESSURE, SS4_TS_Z_V2(packet));
 
 		input_report_key(dev2, BTN_LEFT, f->ts_left);
Signature · 1 line
2.9.3
#1 lore raw

Actually, sorry, disregard this patch.

The Y axis has already been fixed by 47e3a5edc6538d66e470aaed3b7c57255cb37ca1, and the sensitivity should probably be adjusted in hwdb rather than the driver.

Quoted 32 lines · Dima Ryazanov

This patch fixes the trackstick on my Dell Latitude E7470. Currently, it's upside down and too fast (that is, much faster than when using the generic PS/2 driver).

It also matches the trackpoint logic in alps_process_packet_v6.
---
(I'm aware that scaling in the driver is not ideal - but at least the vertical orientation should be fixed.)

---
 drivers/input/mouse/alps.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/input/mouse/alps.c +2 -3
index 328edc8..5fa7a15 100644
@@ -1346,8 +1346,8 @@ static void alps_process_packet_ss4_v2(struct psmouse *psmouse)
                        return;
                }
 
-               input_report_rel(dev2, REL_X, SS4_TS_X_V2(packet));
-               input_report_rel(dev2, REL_Y, SS4_TS_Y_V2(packet));
+               input_report_rel(dev2, REL_X, SS4_TS_X_V2(packet) / 4);
+               input_report_rel(dev2, REL_Y, -SS4_TS_Y_V2(packet) / 4);
                input_report_abs(dev2, ABS_PRESSURE, SS4_TS_Z_V2(packet));
 
                input_report_key(dev2, BTN_LEFT, f->ts_left);
--

2.9.3