Message ID | a1682c1c-3894-0439-f224-b6c6fc73eba6@techfak.uni-bielefeld.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Julian, See below .. On Wed, Apr 26, 2017 at 11:18:44PM +0200, Julian Exner wrote: > On 26/04/17 00:10, Dmitry Torokhov wrote: > > Hmm.. I do not recall seeing real trackpoints with only 2 buttons. Let's > > try defaulting to 3 and see what happens. > > This patch assumes three buttons when the trackpoint_read command failed. > This is just a quick fix. trackpoint_read may fail for other reasons than > the extended-button-data command not being available, e.g. errors in the ps2 > communication. A more narrow solution should check if a resend request was > received, resend, and if the resend failed assume three buttons. > diff --git a/drivers/input/mouse/trackpoint.c b/drivers/input/mouse/trackpoint.c > index 354d47e..70c3a48 100644 > --- a/drivers/input/mouse/trackpoint.c > +++ b/drivers/input/mouse/trackpoint.c > @@ -380,8 +380,8 @@ int trackpoint_detect(struct psmouse *psmouse, bool set_properties) > return 0; > > if (trackpoint_read(&psmouse->ps2dev, TP_EXT_BTN, &button_info)) { > - psmouse_warn(psmouse, "failed to get extended button data\n"); > - button_info = 0; > + psmouse_warn(psmouse, "failed to get extended button data, assuming 3 buttons are present\n"); > + button_info = 0x33; > } > > psmouse->private = kzalloc(sizeof(struct trackpoint_data), GFP_KERNEL); Good, this patch is confirmed to make the trackpoint middle button work on Thinkpad e570 when applied to vanilla 4.10 kernel. Now in order to submit the patch for inclusion to the linux kernel, and before I'll grant a Reviewed-by: tag, it would be best when you follow the guidelines in Documentation/SubmittingPatches (recently moved to : Documentation/process/submitting-patches.rst ) Attention points there are: 2) Describe your changes 6) No MIME 11) Sign your work (Signed-off: line) 14) The canonical patch format Thanks, Kind regards, Ulrik -- 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
Hi Julian, Oscar, Peter, you are right and it was even for Lenovo ! Oscar, I reviewed the exact same patch proposed by Julian one month, as you can read below. Since he was missing some formalities in the way of submission I pointed him to submitting-patches.rst . I was kind of surprised at first that the value was 0x33 instead of 0x3 until I read the documentation pointers Julian provided. I really would like this patch to become part of the linux kernel and I hope that Julian will go through the formalities for patch submission. Or alternatively, Oscar, can you confirm that you fully wrote the patch yourself and just happened to have the same diff as Julian. Dmitry, what do you suggest as the best way forward? Thanks, Kind regards, Ulrik On Fri, Apr 28, 2017 at 11:05:32PM +0200, ulrik.debie-os@e2big.org wrote: > Date: Fri, 28 Apr 2017 23:05:32 +0200 > From: ulrik.debie-os@e2big.org > To: Julian Exner <jexner@techfak.uni-bielefeld.de> > Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>, > "linux-input@vger.kernel.org" <linux-input@vger.kernel.org>, > aduggan@synaptics.com > Subject: Re: Input: mouse: Trackpoint middle button not recognized on > Thinkpad E470 > X-Mailing-List: linux-input@vger.kernel.org > > Hi Julian, > > See below .. > > On Wed, Apr 26, 2017 at 11:18:44PM +0200, Julian Exner wrote: > > On 26/04/17 00:10, Dmitry Torokhov wrote: > > > Hmm.. I do not recall seeing real trackpoints with only 2 buttons. Let's > > > try defaulting to 3 and see what happens. > > > > This patch assumes three buttons when the trackpoint_read command failed. > > This is just a quick fix. trackpoint_read may fail for other reasons than > > the extended-button-data command not being available, e.g. errors in the ps2 > > communication. A more narrow solution should check if a resend request was > > received, resend, and if the resend failed assume three buttons. > > > diff --git a/drivers/input/mouse/trackpoint.c b/drivers/input/mouse/trackpoint.c > > index 354d47e..70c3a48 100644 > > --- a/drivers/input/mouse/trackpoint.c > > +++ b/drivers/input/mouse/trackpoint.c > > @@ -380,8 +380,8 @@ int trackpoint_detect(struct psmouse *psmouse, bool set_properties) > > return 0; > > > > if (trackpoint_read(&psmouse->ps2dev, TP_EXT_BTN, &button_info)) { > > - psmouse_warn(psmouse, "failed to get extended button data\n"); > > - button_info = 0; > > + psmouse_warn(psmouse, "failed to get extended button data, assuming 3 buttons are present\n"); > > + button_info = 0x33; > > } > > > > psmouse->private = kzalloc(sizeof(struct trackpoint_data), GFP_KERNEL); > > Good, this patch is confirmed to make the trackpoint middle button work on > Thinkpad e570 when applied to vanilla 4.10 kernel. > > Now in order to submit the patch for inclusion to the linux kernel, > and before I'll grant a Reviewed-by: tag, it would be best when you > follow the guidelines in Documentation/SubmittingPatches > (recently moved to : Documentation/process/submitting-patches.rst ) > > Attention points there are: > 2) Describe your changes > 6) No MIME > 11) Sign your work (Signed-off: line) > 14) The canonical patch format > > Thanks, > Kind regards, > Ulrik > -- > 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 -- 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
Hi all, sorry for neglecting this thread for so long. And thanks Ulrik for pointing me to the formalities. > I was kind of surprised at first that the value was 0x33 instead of 0x3 > until I read the documentation pointers Julian provided. It seems like some kind of softswitch or masking for the individual buttons. One of the 4-bit nibbles indicates the number of available buttons in hardware, the other one the number of activated buttons. > I really would like this patch to become part of the linux kernel and > I hope that Julian will go through the formalities for patch submission. I'm willing to do so, but I'm very short on time currently. Additionally, I checked on a Thinkpad forum and was told that there are Thinkpads from the 90s with two buttons (e.g. ThinkPad 760 and those before ThinkPad 390/600/770). So I'm a bit afraid that simply setting the default to three buttons may break something for these models and a more elaborate patch may be necessary. Kind regards, Julian -- 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
On Tue, Jun 06, 2017 at 08:09:50PM +0200, Julian Exner wrote: > Hi all, > > sorry for neglecting this thread for so long. And thanks Ulrik for pointing > me to the formalities. > > > I was kind of surprised at first that the value was 0x33 instead of 0x3 > > until I read the documentation pointers Julian provided. > > It seems like some kind of softswitch or masking for the individual buttons. > One of the 4-bit nibbles indicates the number of available buttons in > hardware, the other one the number of activated buttons. > > > I really would like this patch to become part of the linux kernel and > > I hope that Julian will go through the formalities for patch submission. > > I'm willing to do so, but I'm very short on time currently. Additionally, I > checked on a Thinkpad forum and was told that there are Thinkpads from the > 90s with two buttons (e.g. ThinkPad 760 and those before ThinkPad > 390/600/770). So I'm a bit afraid that simply setting the default to three > buttons may break something for these models and a more elaborate patch may > be necessary. how many of these do you expect to still be alive *and* in need of a new kernel? wikipedia says the 760 was produced 1995 to 1998 which would make the newest of them 19 years old now. I'd rather have a hwdb quirk for those in userspace, because disabling event codes is trivial. Cheers, Peter -- 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
Hi, On Wed, Jun 07, 2017 at 09:22:09AM +1000, Peter Hutterer wrote: > > On Tue, Jun 06, 2017 at 08:09:50PM +0200, Julian Exner wrote: > > Hi all, > > > > sorry for neglecting this thread for so long. And thanks Ulrik for pointing > > me to the formalities. > > > > > I was kind of surprised at first that the value was 0x33 instead of 0x3 > > > until I read the documentation pointers Julian provided. > > > > It seems like some kind of softswitch or masking for the individual buttons. > > One of the 4-bit nibbles indicates the number of available buttons in > > hardware, the other one the number of activated buttons. > > > > > I really would like this patch to become part of the linux kernel and > > > I hope that Julian will go through the formalities for patch submission. > > > > I'm willing to do so, but I'm very short on time currently. Additionally, I > > checked on a Thinkpad forum and was told that there are Thinkpads from the > > 90s with two buttons (e.g. ThinkPad 760 and those before ThinkPad > > 390/600/770). So I'm a bit afraid that simply setting the default to three > > buttons may break something for these models and a more elaborate patch may > > be necessary. > > how many of these do you expect to still be alive *and* in need of a new > kernel? wikipedia says the 760 was produced 1995 to 1998 which would make > the newest of them 19 years old now. I'd rather have a hwdb quirk for those > in userspace, because disabling event codes is trivial. And next to that, question is if it actually would be using this specific driver AND would fail to read out the amount of buttons via the extended button request. Up until commit from Mon Nov 16 22:12:21 2009 315eb996d550 Input: psmouse - rework setting of BTN_MIDDLE capability it was default middle button for all trackpoints; after that the middle button was disabled when < 3 buttons reported or the readout of the buttons failed. Ulrik -- 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/trackpoint.c b/drivers/input/mouse/trackpoint.c index 354d47e..70c3a48 100644 --- a/drivers/input/mouse/trackpoint.c +++ b/drivers/input/mouse/trackpoint.c @@ -380,8 +380,8 @@ int trackpoint_detect(struct psmouse *psmouse, bool set_properties) return 0; if (trackpoint_read(&psmouse->ps2dev, TP_EXT_BTN, &button_info)) { - psmouse_warn(psmouse, "failed to get extended button data\n"); - button_info = 0; + psmouse_warn(psmouse, "failed to get extended button data, assuming 3 buttons are present\n"); + button_info = 0x33; } psmouse->private = kzalloc(sizeof(struct trackpoint_data), GFP_KERNEL);