Message ID | 7d5077ef-c185-c6b1-d602-df8d9f7dade3@secunet.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Friday 23 March 2018 15:23:55 Dennis Wassenberg wrote: > The Lenovo Thinkpad L570 uses V8 protocol. > Add 0x73 0x03 0x28 devices to use V8 protovol which makes > trackstick and mouse buttons work with Lenovo Thinkpad L570. > > Signed-off-by: Dennis Wassenberg <dennis.wassenberg@secunet.com> > --- > drivers/input/mouse/alps.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c > index dbe57da..5523d4e 100644 > --- a/drivers/input/mouse/alps.c > +++ b/drivers/input/mouse/alps.c > @@ -136,6 +136,8 @@ > { { 0x73, 0x02, 0x0a }, { ALPS_PROTO_V2, 0xf8, 0xf8, 0 } }, > { { 0x73, 0x02, 0x14 }, { ALPS_PROTO_V2, 0xf8, 0xf8, ALPS_FW_BK_2 } }, /* Ahtec Laptop */ > { { 0x73, 0x02, 0x50 }, { ALPS_PROTO_V2, 0xcf, 0xcf, ALPS_FOUR_BUTTONS } }, /* Dell Vostro 1400 */ > + { { 0x73, 0x03, 0x28 }, { ALPS_PROTO_V8, 0x18, 0x18, > + ALPS_DUALPOINT | ALPS_DUALPOINT_WITH_PRESSURE | ALPS_BUTTONPAD } }, /* Lenovo L570 */ > }; > > static const struct alps_protocol_info alps_v3_protocol_data = { Hi! alps_model_data table is used for fixed identification of v1 and v2 protocols. Why you need to add there v8 protocol which autodetection is already done in alps_identify() function? There is already code: } else if (e7[0] == 0x73 && e7[1] == 0x03 && (e7[2] == 0x14 || e7[2] == 0x28)) { protocol = &alps_v8_protocol_data; Which matches above your E7 detection 0x73, 0x03, 0x28. Also you patch matches basically all v8 device and therefore has potential to break proper v8 autodetection for other v8 devices...
Hi, oh ok, understood. Thanks for this hint. So maybe there is something wrong with the alps_update_dual_info_ss4_v2 function or the reporting of the hardware. alps_update_dual_info_ss4_v2 detects the ThinkPad L570 as ss4plus device but not as dualpoint device. This means that the ALPS_DUALPOINT and the ALPS_DUALPOINT_WITH_PRESSURE flag will not be set which results in a non function trackstick and hardware mouse buttons. Each time I touch the trackstick I get the message: "alps: Rejected trackstick packet from non DualPoint device". The value of otp[0][0] inside alps_update_dual_info_ss4_v2 is 0xCE. Are there any ideas why it is not detected as dualpoint device? Thank you & best regards, Dennis On 23.03.2018 15:33, Pali Rohár wrote: > On Friday 23 March 2018 15:23:55 Dennis Wassenberg wrote: >> The Lenovo Thinkpad L570 uses V8 protocol. >> Add 0x73 0x03 0x28 devices to use V8 protovol which makes >> trackstick and mouse buttons work with Lenovo Thinkpad L570. >> >> Signed-off-by: Dennis Wassenberg <dennis.wassenberg@secunet.com> >> --- >> drivers/input/mouse/alps.c | 2 ++ >> 1 file changed, 2 insertions(+) >> >> diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c >> index dbe57da..5523d4e 100644 >> --- a/drivers/input/mouse/alps.c >> +++ b/drivers/input/mouse/alps.c >> @@ -136,6 +136,8 @@ >> { { 0x73, 0x02, 0x0a }, { ALPS_PROTO_V2, 0xf8, 0xf8, 0 } }, >> { { 0x73, 0x02, 0x14 }, { ALPS_PROTO_V2, 0xf8, 0xf8, ALPS_FW_BK_2 } }, /* Ahtec Laptop */ >> { { 0x73, 0x02, 0x50 }, { ALPS_PROTO_V2, 0xcf, 0xcf, ALPS_FOUR_BUTTONS } }, /* Dell Vostro 1400 */ >> + { { 0x73, 0x03, 0x28 }, { ALPS_PROTO_V8, 0x18, 0x18, >> + ALPS_DUALPOINT | ALPS_DUALPOINT_WITH_PRESSURE | ALPS_BUTTONPAD } }, /* Lenovo L570 */ >> }; >> >> static const struct alps_protocol_info alps_v3_protocol_data = { > > Hi! alps_model_data table is used for fixed identification of v1 and v2 > protocols. Why you need to add there v8 protocol which autodetection is > already done in alps_identify() function? There is already code: > > } else if (e7[0] == 0x73 && e7[1] == 0x03 && > (e7[2] == 0x14 || e7[2] == 0x28)) { > protocol = &alps_v8_protocol_data; > > Which matches above your E7 detection 0x73, 0x03, 0x28. > > Also you patch matches basically all v8 device and therefore has > potential to break proper v8 autodetection for other v8 devices... > -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c index dbe57da..5523d4e 100644 --- a/drivers/input/mouse/alps.c +++ b/drivers/input/mouse/alps.c @@ -136,6 +136,8 @@ { { 0x73, 0x02, 0x0a }, { ALPS_PROTO_V2, 0xf8, 0xf8, 0 } }, { { 0x73, 0x02, 0x14 }, { ALPS_PROTO_V2, 0xf8, 0xf8, ALPS_FW_BK_2 } }, /* Ahtec Laptop */ { { 0x73, 0x02, 0x50 }, { ALPS_PROTO_V2, 0xcf, 0xcf, ALPS_FOUR_BUTTONS } }, /* Dell Vostro 1400 */ + { { 0x73, 0x03, 0x28 }, { ALPS_PROTO_V8, 0x18, 0x18, + ALPS_DUALPOINT | ALPS_DUALPOINT_WITH_PRESSURE | ALPS_BUTTONPAD } }, /* Lenovo L570 */ }; static const struct alps_protocol_info alps_v3_protocol_data = {
The Lenovo Thinkpad L570 uses V8 protocol. Add 0x73 0x03 0x28 devices to use V8 protovol which makes trackstick and mouse buttons work with Lenovo Thinkpad L570. Signed-off-by: Dennis Wassenberg <dennis.wassenberg@secunet.com> --- drivers/input/mouse/alps.c | 2 ++ 1 file changed, 2 insertions(+)