On Wed 04 Mar 2015 at 22:16:28 +0000, Christos Zoulas wrote:
> Sure why don't you send a full patch that also has the above comment
> reproduced...
Here it is. I adjusted the comment to zero-based.
I also gave it a quick test and worked the same as the previous patch.
Index: synaptics.c
===================================================================
RCS file: /cvsroot/src/sys/dev/pckbport/synaptics.c,v
retrieving revision 1.32
diff -u -r1.32 synaptics.c
--- synaptics.c 23 May 2014 01:11:29 -0000 1.32
+++ synaptics.c 4 Mar 2015 22:42:41 -0000
@@ -197,18 +197,46 @@
cmd[0] = PMS_SEND_DEV_STATUS;
res |= pckbport_poll_cmd(psc->sc_kbctag,
psc->sc_kbcslot, cmd, 1, 3, resp, 0);
+/*
+ * The following describes response for the
+ * SYNAPTICS_CONTINUED_CAPABILITIES query.
+ *
+ * byte mask name meaning
+ * ---- ---- ------- ------------
+ * 0 0x01 adjustable threshold capacitive button sensitivity
+ * can be adjusted
+ * 0 0x02 report max query 0x0d gives max coord reported
+ * 0 0x04 clearpad sensor is ClearPad product
+ * 0 0x08 advanced gesture not particularly meaningful
+ * 0 0x10 clickpad bit 0 1-button ClickPad
+ * 0 0x60 multifinger mode identifies firmware finger counting
+ * (not reporting!) algorithm.
+ * Not particularly meaningful
+ * 0 0x80 covered pad W clipped to 14, 15 == pad mostly covered
+ * 1 0x01 clickpad bit 1 2-button ClickPad
+ * 1 0x02 deluxe LED controls touchpad support LED commands
+ * ala multimedia control bar
+ * 1 0x04 reduced filtering firmware does less filtering on
+ * position data, driver should watch
+ * for noise.
+ * 1 0x08 image sensor image sensor tracks 5 fingers, but only
+ * reports 2.
+ * 1 0x01 uniform clickpad whole clickpad moves instead of being
+ * hinged at the top.
+ * 1 0x20 report min query 0x0f gives min coord reported
+ */
if (res == 0) {
- u_char clickpad_type = (resp[1] & 0x1);
- clickpad_type |= ((resp[0] >> 4) & 0x1);
+ u_char clickpad_type = (resp[0] & 0x10);
+ clickpad_type |= (resp[1] & 0x01);
aprint_debug_dev(psc->sc_dev, "%s: Continued "
"Capabilities 0x%02x 0x%02x 0x%02x.\n", __func__,
resp[0], resp[1], resp[2]);
switch (clickpad_type) {
- case 1:
+ case 0x10:
sc->flags |= SYN_FLAG_HAS_ONE_BUTTON_CLICKPAD;
break;
- case 2:
+ case 0x01:
sc->flags |= SYN_FLAG_HAS_TWO_BUTTON_CLICKPAD;
break;
default:
> christos
-Olaf.
--
___ Olaf 'Rhialto' Seibert -- The Doctor: No, 'eureka' is Greek for
\X/ rhialto/at/xs4all.nl -- 'this bath is too hot.'
Attachment:
pgp5G2dm3Qchn.pgp
Description: PGP signature