Hi Martin, On 28-05-15 18:29, Martin Herkt wrote: > This makes the driver work with the ElanTech touchpad of my > ASUS PU551LD laptop (fw signature 0x480f0a). There may be more > touchpads with firmware versions in the 0x4? range, so I've added > those to the exception as well. I actually send a patch fixing the exact same bug earlier today... > diff --git a/drivers/input/mouse/elantech.c b/drivers/input/mouse/elantech.c > index 79363b6..cd3e2a3 100644 > --- a/drivers/input/mouse/elantech.c > +++ b/drivers/input/mouse/elantech.c > @@ -1379,7 +1379,8 @@ static bool elantech_is_signature_valid(const unsigned char *param) > * Some models have a revision higher then 20. Meaning param[2] may > * be 10 or 20, skip the rates check for these. > */ > - if (param[0] == 0x46 && (param[1] & 0xef) == 0x0f && param[2] < 40) > + if (param[0] >= 0x40 && param[0] < 0x50 && This is wrong, the bits of param[0] which define the hw version of the touchpads are in the low nibble, so your check will also match older touchpads where we do not want to skip the rare check. > + (param[1] & 0xef) == 0x0f && param[2] < 40) > return true; > > for (i = 0; i < ARRAY_SIZE(rates); i++) I've attached my patch, which actually checks the low nibble of param[0]. It has already been tested on an Asus PU551LA laptop, so it should work for your laptop too. Regards, Hans