On Tue, May 21, 2019 at 7:09 AM Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx> wrote: > > Hi Aaron, > > On Sun, May 19, 2019 at 03:27:11PM +0800, Aaron Ma wrote: > > Lenovo ThinkPad X240 does not have the top software button. > > When this wrong ID in top button list, smbus mode will fail to probe, > > so keep it working at PS2 mode. > > > > Cc: stable@xxxxxxxxxxxxxxx > > Signed-off-by: Aaron Ma <aaron.ma@xxxxxxxxxxxxx> > > --- > > drivers/input/mouse/synaptics.c | 1 - > > 1 file changed, 1 deletion(-) > > > > diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c > > index b6da0c1267e3..6ae7bc92476b 100644 > > --- a/drivers/input/mouse/synaptics.c > > +++ b/drivers/input/mouse/synaptics.c > > @@ -140,7 +140,6 @@ static const char * const topbuttonpad_pnp_ids[] = { > > "LEN002E", > > "LEN0033", /* Helix */ > > "LEN0034", /* T431s, L440, L540, T540, W540, X1 Carbon 2nd */ > > - "LEN0035", /* X240 */ > > According to the history this came from Synaptics through Hans, so I'd > like to make sure there are no several X240 versions floating around... A quick google image search showed that the X240 had 2 versions: one with the top software buttons, one without. And this definitively rings a bell. I am sure we asked Lenovo and Synaptics to change the PnPID when they would do such a change, but they "forgot" during the *40 series refresh. We have code in place to fix the reported ranges of the coordinates, and we had to check against the board id (see min_max_pnpid_table[] in synaptics.c). Unfortunately, X240 (LEN0035) is not part of this table, so I don't know which refresh of the board ID has implemented the non top software buttons. Cheers, Benjamin > > > "LEN0036", /* T440 */ > > "LEN0037", /* X1 Carbon 2nd */ > > "LEN0038", > > -- > > 2.17.1 > > > > Thanks. > > -- > Dmitry