freebsd-nq/sys
Rui Paulo 017d485987 synaptics: more support for semi-MT trackpads.
Several improvements to the Synaptics driver to support
semi-multitouch trackpads and some other fixes:

- Two finger scrolling support for "semi-MT" touchpads. Those include
many of the older Synaptics touchpads before "true" multitouch support
(indicated by capMultiFinger). Semi-MT touchpads can report a second
finger position, but the X or Y coordinate may be swapped with some
coordinate of the first finger. This is a result of how the hardware
works internally. Therefore, all that can be reliably extracted is the
bounding box of the two finger positions. Semi-MT touchpads can be
recognized by the capAdvancedGestures capability bit. After setting the
mode byte, advanced gestures mode has to be enabled. Then, data packets
compatible with the capMultiFinger format are sent, so the same two
finger scrolling code can be leveraged. Enabling advanced gestures mode
on true multitouch touchpads should be harmless. Linux seems to always
enable advanced gestures mode.

- Put mode setting logic into own functions synaptics_preferred_mode()
and synaptics_set_mode() to have this in one place.
synaptics_passthrough_on() and synaptics_passthrough_off() currently
always use 0xc1 as the mode byte, which may be wrong for touchpads that
don't have capExtended.

- Expose X and Y resolution of touchpad to userland. Also expose minimum
and maximum X and Y coordinates. This is useful for programs in
userspace that read raw PSM packets (with PSM_LEVEL_NATIVE enabled) and
need to interpret the coordinates.

- Also send "extended w mode" packets (see section 3.2.9 of
511-000275-01_RevB.pdf) to userspace if PSM_LEVEL_NATIVE is enabled.
This is useful for userspace programs/drivers such as
xf86-input-synaptics that can handle these packets.

- Fix parsing of nExtendedQueries, and request extended/continued
capability bits depending on this value.

- capReportsMax, capClearPad, capAdvancedGestures and capCoveredPad must
be extracted from status[0] and not status[2], I think.

Submitted by:	Jan Kokemüller jan.kokemueller at gmail.com
2015-05-10 20:36:57 +00:00
..
amd64 Initialize pcids array for the proc0 pmap. 2015-05-10 09:09:07 +00:00
arm Use the new gic option on all configs that need it. 2015-05-10 12:13:27 +00:00
arm64 Port x86 busdma to ARM64 2015-05-08 18:47:19 +00:00
boot Create a relocatable instance of ubldr for ARM. The original ubldr, 2015-05-10 19:14:28 +00:00
bsm
cam Handle EDQUOT backend storage errors same as ENOSPC. 2015-05-06 19:47:31 +00:00
cddl Fix a couple bugs in 64-bit powerpc fasttrap argument retrieval. 2015-05-10 04:33:01 +00:00
compat On exec, single-threading must be enforced before arguments space is 2015-05-10 09:00:40 +00:00
conf Add the gic to files.arm under "device gic" and use it with the 2015-05-10 09:33:03 +00:00
contrib Move ALTQ from contrib to net/altq. The ALTQ code is for many years 2015-04-16 20:22:40 +00:00
crypto In the version of gcc in the FreeBSD tree, this modification was made to 2015-04-16 17:42:52 +00:00
ddb
dev synaptics: more support for semi-MT trackpads. 2015-05-10 20:36:57 +00:00
fs Fix the NFS server's handling of a bogus NFSv2 ROOT RPC. 2015-04-25 00:58:24 +00:00
gdb
geom Add apple-boot, apple-hfs and apple-ufs aliases to MBR scheme. 2015-05-05 09:33:02 +00:00
gnu The GNU Amlogic DTS files have some errors (e.g. bad register 2015-04-11 08:17:39 +00:00
i386 On exec, single-threading must be enforced before arguments space is 2015-05-10 09:00:40 +00:00
isa
kern On exec, single-threading must be enforced before arguments space is 2015-05-10 09:00:40 +00:00
kgssapi
libkern Move zlib.c from net to libkern. 2015-04-22 14:38:58 +00:00
mips The add_bounce_page() function can be called when loading physical 2015-04-28 06:12:37 +00:00
modules Include makefiles necessary to make ixgbe build with the new code. 2015-04-30 22:56:43 +00:00
net Pass mtag argument into m_tag_locate() to continue the search from 2015-05-06 14:02:57 +00:00
net80211 Turn ieee80211_start_scan_locked() into a swscan module private method. 2015-05-10 06:59:34 +00:00
netgraph Move zlib.c from net to libkern. 2015-04-22 14:38:58 +00:00
netinet MFH: r281855-r282312 2015-05-01 18:07:18 +00:00
netinet6 Mark data checksum as valid for multicast packets, that we send back 2015-05-07 14:17:43 +00:00
netipsec Fix the comment. We will not do SPD lookup again, because 2015-04-28 11:03:47 +00:00
netnatm
netpfil Fix panic when prepare_batch_buffer() returns error. 2015-05-06 07:53:43 +00:00
netsmb
nfs Avoid closing unallocated socket in case socreate fails. 2015-02-28 20:30:29 +00:00
nfsclient Remove some oldnfs remnants. 2015-04-18 16:08:06 +00:00
nfsserver Use M_SIZE() instead of hand-crafted (and mostly correct) NFSMSIZ() macro 2015-01-07 17:22:56 +00:00
nlm
ofed Don't drop the idr lock before verifying that the newly-inserted element 2015-05-02 00:26:38 +00:00
opencrypto Move zlib.c from net to libkern. 2015-04-22 14:38:58 +00:00
pc98 Fix kernel build ${MACHINE} path 2015-04-16 22:34:10 +00:00
powerpc Missed ofw_machdep.c in r282264. 2015-04-30 03:15:07 +00:00
rpc Remove hard limits on number of accepting NFS connections. 2015-04-07 10:25:27 +00:00
security cred: add proc_set_cred helper 2015-03-16 00:10:03 +00:00
sparc64 Update this driver to not save copies of registers that are no longer used 2015-04-24 13:12:04 +00:00
sys synaptics: more support for semi-MT trackpads. 2015-05-10 20:36:57 +00:00
teken mdoc: improvements to SEE ALSO. 2014-12-27 07:07:37 +00:00
tools
ufs Limit the number of cylinder groups that will be searched when 2015-04-24 23:27:50 +00:00
vm Satisfy vm_object uma zone destructor requirements after r282660 when 2015-05-10 08:21:03 +00:00
x86 Rewrite amd64 PCID implementation to follow an algorithm described in 2015-05-09 19:11:01 +00:00
xdr
xen xen: introduce a newbus function to allocate unused memory 2015-05-08 14:48:40 +00:00
Makefile