I obtained a copy of the Synaptics protocol document and attempted to
decode the responses to queries returned by the Linux psmouse driver.

The given values appear normal though it is reporting as a rectangular
touchpad even though it is circular.

Linux dmesg reports:
synaptics: Touchpad model: 1, fw: 8.1, id: 0x1e2a1, caps:
0xf00423/0x840300/0x22800/0x0, board id: 3 136, fw id: 2550122

0xf00423 in response to capabilities query 0x02 corresponds to:
cap-extended=1
nExtqueries=7 (which may be incorrect due to a firmware bug, see below)
multifinger reporting=1
multifinger support=1
palmdetect=1

0x840300 in response to ExModelId query $09:
ext W mode supported
hscroll and vscroll  (separate zones)- both no.

0x22800 in response to ExtCaps query $0c:
Multifinger 1.0 supported
reports max (cmd 0d)
reports min (cmd 0f)
not a clickpad (true)

The Linux synaptics.c psmouse driver contains a comment relating to the
firmware version of this touchpad: 
"Firmware v8.1 does not report proper number of extended
capabilities, but has been proven to report correct min coordinates."

There appears to be a trap for this firmware version in line 1046 of
pms.c, as part of the function synaptics_get_hwinfo:

if ((SYNAPTICS_CAP_EXTENDED_QUERIES(syn->capabilities) >= 7 ||
            SYNAPTICS_ID_FULL(syn->identify) == 0x801) &&
            (syn->ext_capabilities & SYNAPTICS_EXT_CAP_MIN_COORDS) &&
            synaptics_query(sc, SYNAPTICS_QUE_EXT_MIN_COORDS,
&min_coords)) return (-1);

... but with my limited capabilities I don't understand how it works.
It seems to exit the function if the fw version is 8.1, 'reports
min_coords' is true, and a query for min_coords fails. Is that correct?

Can anyone help with some pointers into how to proceed, so I can find
out why this Synaptics device doesn't get attached except as a "Standard
PS/2 mouse"?

Or does anyone know if it is possible to upgrade or downgrade the
touchpad firmware? 

-- 
Chris Billington

Reply via email to