Re: [PATCH] Input: Lenovo S10-3t's touchpad support

Takashi Iwai
2010-11-30T07:12:39Z

At Tue, 30 Nov 2010 10:18:40 +0800,
Li, Yan I wrote:
>
> On Sat, Nov 27, 2010 at 03:55:28PM +0800, Dmitry Torokhov wrote:
> > > So far we've found that the S10-3ts are shipped with two slightly
> > > different models of touchpads, of which the 0x0c cap is either
> > > 0x5a0400 or 0x4a0500. They are not Clickpad and return BTN_LEFT and
> > > BTN_RIGHT normally.
> >
> > Hmm, this is weird. According to my data:
> >
> > >> Treat it as a two-bit field.
> > >> 0x00 == not a clickpad
> > >> 0x01 == 1 button clickpad
> > >> 0x02 == 2 button clickpad
> > >> 0x03 == reserved
>
> Wait, you said there are "2 button clickpad"? If so the current way
> the kernel handles clickpad is totally wrong:
>
> if (SYN_CAP_CLICKPAD(priv->ext_cap_0c)) {
> /* Clickpads report only left button */
> __clear_bit(BTN_RIGHT, dev->keybit);
> __clear_bit(BTN_MIDDLE, dev->keybit);
> }
>
> It could only handle those "1 button clickpad", which emits solely
> BTN_MIDDLE (and the kernel sends it out as BTN_LEFT instead). It can't
> handle "2 button clickpad" correctly.

The "normal" clickpad also reports that bit. I don't see any
difference between Lenovo and HP machines wrt caps values.
It shows the exact same numbers below:

Synaptics Touchpad, model: 1, fw: 7.4, id: 0x1e0b1, caps:
0xd04771/0xe40000/0x5a0400

Takashi