Age | Commit message (Collapse) | Author |
|
"IC types" that identify Elantech-V4 touchpads.
Thanks to Ryan Lennox for help and testing.
ok mpi@
|
|
Pointed out by Ryan Lennox via tech@
|
|
1. Update the ALPS_*_BEZEL values, which don't match the actual limits
accurately. The new values are used by Linux for all models with the
protocols "V1" and "V2".
2. Models with the ID 0x7331 are not supported properly, remove it
from the list.
3. Report to wsmouse that multiple contacts aren't recognized.
|
|
This was changed a decade ago to forcibly try table 3 first in order
to make some now-long-gone hardware work.
Newer Lenovo machines seem to have trouble being asked to change
modes which manifests as a long boot delay as it waits for each
request to timeout, or by causing the keyboard to generate junk when
typing.
Assume table 2 by default and just leave it alone if it's already
there. This is how Linux has operated for quite a while and seems
to help on these Lenovo machines.
Tested by a few with these machines and has been in snaps for a bit.
|
|
ok mpi@
|
|
due to power failure and an announcement is transmitted as input by the device
making it detectable. At this point, the device must be re-enabled to continue
working since any configuration done prior to the reset is lost.
Detection is implemented using a watchdog and enabled for all protocols. So far,
the announcement has been observed on Synaptics by me and on Elantech v4 by
bru@. Extra care has been taken to handle potential false positives: when the
announcement byte sequence is part of a valid input packet.
with help and ok bru@, mpi@
|
|
ok bru@, mpi@ (as part of a larger diff)
|
|
The new versions use wsmouse_configure, and leave compat-mode handling
to wsmouse.
ok stsp
|
|
|
|
|
|
|
|
|
|
|
|
ok mpi@
|
|
ok bru@
|
|
ok @matthieu @stsp @mpi
|
|
ok @matthieu @stsp @mpi
|
|
setting parameter values.
ok matthieu@
|
|
Requested by miod
|
|
Original diff from Taavi Tani in 2005 (!), adapted to -current by Mart
Tonso. ok mpi@
|
|
ok kettenis@
|
|
on (at least) various HP laptops that previously had no working keyboard
after resuming from 'zzz'.
Reported by Aleksandar Lakic, who also verified several versions of the
diff during development, thanks.
discussed with miod and kettenis, tested by many others on tech@ - thanks.
|
|
This change adds new input-processing functions to wsmouse and
adapts the touchpad drivers.
ok mpi@, shadchin@
|
|
|
|
Emulate W mode if a Synaptics model doesn't provide it, and check
for the success of the resolution query during setup.
ok shadchin@, mpi@
|
|
The ALPS mechanism for gesture detection can produce long delays between
a packet that signals a tap and the next packet, which either signals
the end of the gesture or the start of a drag-operation. The time spans
can exceed the timeouts used by the generic detection mechanism in the
synaptics driver. Reporting both the touch and the release event when
the second packet has arrived ensures that the tap will be recognized.
ok mpi@ shadchin@
|
|
|
|
ok krw@
|
|
/usr/xenocara/driver/xf86-input-synaptics/src/wsconscomm.c
doesn't understand.
'Fixes' synaptics trackpad in Dell L400 laptop so the cursor can
be moved in X. Problem noted and experimental Dell L400 donated by
Paolo Aglialoro. Thanks!
ok miod@ mpi@ jcs@
|
|
Apparently we don't support these touchpads properly so leave them in
PS/2 compat mode. Regression reported by Remi Locherer on bugs@. And stop
matching devices with firmware versions higher than 0xX8XXXX since we cannot
be sure they work.
ok mpi@
|
|
Based on a submission from and ok jcs@.
|
|
ok miod@
|
|
Patch by Fasse <fasse.f2@gmail.com>
ok mpi@
|
|
buttons are wired to the trackpad and need to be re-routed to the
trackstick. Without this change the buttons on 2015 thinkpads
get picked up as extended buttons that show up as scroll up/down.
Remove the X1 Carbon 2015 (LEN0048) and X250 (LEN0046) from the
top button area/soft buttons quirks list. Also avoid using the
quirk list entirely if the capability bit is set.
Based on work from jcs@ with feedback from mpi@
ok mpi@ jcs@
|
|
different table will most likely just revert the keyboard to its
default table anyway.
Instead, just flush the kbd slot before choosing a table and then
still forcefully enable the slot, which is enough to fix UKC on the
3rd gen X1 carbon while having a much smaller chance of breaking
anything else.
ok deraadt
|
|
have any direct symbols used. Tested for indirect use by compiling
amd64/i386/sparc64 kernels.
ok tedu@ deraadt@
|
|
to make "boot -c" support work on a variety of newer machines.
Do not anticipate this harming older machines, but we'll have to wait
and see with this change in the tree.
with jcs
|
|
support "click-and-drag".
This implements a simple filter to keep track of a moving finger on the
clickpad. For the moment wsmouse(4) and wscons(4) are still unaware of
multitouch events and pms(4) has to do the translation, but this is a
small steps in this direction.
All the good work has been done by Ulf Brosziewski.
|
|
physical buttons. This will be used if the acpi pnpid for the mouse
matches a list provided by Synaptics found in Linux.
Combined with the xenocara changes this will remove the need for an xorg
config file for the x240/t440/t540 generation of thinkpads.
ok matthieu@ shadchin@ kettenis@
|
|
by -Wuninitialized reported by jsg@.
ok stsp@
|
|
From Thierry Deval <thierry at deval dot be>
ok mpi@
|
|
When pms(4) is attached to a touchpad it generally presents two different
wsmouse(4) devices: one for the touchpad itself and one for the clitpad
and/or some interleaved packets. But since both devices are writing to
the same pckbc slot, a race can occur if they try to change the state at
the same time.
So prevent two process opening the two /dev/wsmouse* node at the same time
to corrupt the magic sequences needed to enable/disable the touchpad.
ok schadchin@
|
|
If you were wondering why there's a pause of 5 seconds after loading the
kernel and before seeing the copyright in blue when booting some of your
machines, well this is for you!
mlarkin@ found that this delay is caused by some code probing for xt scan
code tables when pckbd(4) initialize the console keyboard. So this diff
implements an idea from deraadt@ to only do the scan once, either during
*attach() or if we enter ddb> or ukc> before that!
ok miod@, mlarkin@, deraadt@, shadchin@
|
|
after discussions with beck deraadt kettenis.
|
|
code was masking out bits which were also tested in the same expression.
Reported by cppcheck via jsg@ (Expression '(X & 0xfc) != 0x2' is always true).
Tested with Elantech Touchpad, version 3, firmware 0x250f00.
|
|
device of type PMS_STANDARD, probing during autoconf(9) is enough!.
In such case, the device can be a simple PS/2 mouse, a unsupported
touchpad or a downgraded touchpad if something bad happened. But
it is very unlikely that reprobing will improve the situation and
transform a standard mouse into a multitouch-aware touchpad ;)
This fixes the 12 seconds delay seen on various Dell laptops (E4310
and Latitude D630) when starting Xorg, reported by KÄrlis MiÄ·elsons
on bugs@.
ok stsp@, dcoppa@, shadchin@
|
|
|
|
Xorg driver do the translation and handle them as regular keys. Fixes
confusion caused by the volume being changed twice in contradictory
ways: once by X programs and once by the pckbd(4) driver.
ok deraadt, kettenis
|
|
kernels:
- keyboard drivers will now tell wskbd if the keyboard layout they ask
for is a default value, or a value they are 100% sure of (either
because your kernel has a XXXKBD_LAYOUT option, or because the
driver can tell the keyboard layout, e.g. by the country code on USB
keyboards which provide it, such as Sun's)
- when attaching a keyboard with a non-default layout, the layout will
become the default layout of the mux for new keyboard attachments if
the mux doesn't have a layout set already.
- when changing the keyboard layout of a particular keyboard with an
ioctl (i.e. using kbd(8) or wsconsctl(8)), the layout will become the
default layout of the mux for new keyboard attachments.
ok mpi@
|
|
Send WSCONS_EVENT_SYNC every time you call wsmouse_input(). Used to synchronize
and separate events into packets of input data changes occurring at the same
moment in time. For example, motion of a mouse may set the DELTA_X and DELTA_Y
values for one motion, then emit a SYNC.
ok matthieu@. tested edd@, Henri Kemppainen and Alf Schlichting.
|