summaryrefslogtreecommitdiff
path: root/sys/dev/pckbc
AgeCommit message (Collapse)Author
2018-05-13Add support for Elantech trackpoints to pms. Extend the list ofUlf Brosziewski
"IC types" that identify Elantech-V4 touchpads. Thanks to Ryan Lennox for help and testing. ok mpi@
2018-04-29'juming' -> 'jumping' in comment.Kenneth R Westerback
Pointed out by Ryan Lennox via tech@
2018-01-29pms: minor cleanups in the alps code.Ulf Brosziewski
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.
2018-01-06pckbd: don't change translation mode if controller is in table 2Joshua Stein
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.
2017-12-04add the alps touchpad that can be found in the ideapad 710sRobert Nagy
ok mpi@
2017-11-14Detect touchpad reset announcements. On rare occasions, the touchpad is resetanton
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@
2017-11-14Print out the offending data causing pms sync to fail.anton
ok bru@, mpi@ (as part of a larger diff)
2017-10-28Adapt the Elantech handlers (v1-3) to the new wsmouse infrastructure.Ulf Brosziewski
The new versions use wsmouse_configure, and leave compat-mode handling to wsmouse. ok stsp
2017-08-26bug fixUlf Brosziewski
2017-08-25Query the lower coordinate limits.Ulf Brosziewski
2017-07-21Show Synaptics Model IDs.Ulf Brosziewski
2017-06-18pms/alps: configure compat modeUlf Brosziewski
2017-06-06Set the weak variant of hysteresis as default.Ulf Brosziewski
2017-05-08improved coordinate filtersUlf Brosziewski
ok mpi@
2017-03-06Use nitems() when passing all known parameters to wsmouse_configure().Martin Pieuchot
ok bru@
2017-02-27pms/elantech-v4: configure wsmouse for handling compat-modeUlf Brosziewski
ok @matthieu @stsp @mpi
2017-02-27pms/synaptics: configure wsmouse for handling compat-modeUlf Brosziewski
ok @matthieu @stsp @mpi
2016-10-23Improved parameter handling in wsmouse and new ioctls for reading andUlf Brosziewski
setting parameter values. ok matthieu@
2016-08-31sys/arch/sgi/hpc/wskbdmap_sgi.c should be regen'd too.Jeremie Courreges-Anglas
Requested by miod
2016-08-31Estonian keymapJeremie Courreges-Anglas
Original diff from Taavi Tani in 2005 (!), adapted to -current by Mart Tonso. ok mpi@
2016-05-22Use the new input functions of wsmouse in mouse and touchscreen drivers.Ulf Brosziewski
ok kettenis@
2016-04-14Re-enable pckbd on resume (similar to what we do on boot). Fixes problemsMike Larkin
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.
2016-03-30Add support for multitouch input to wsmouse.Ulf Brosziewski
This change adds new input-processing functions to wsmouse and adapts the touchpad drivers. ok mpi@, shadchin@
2016-02-27pakets -> packetsmmcc
2015-09-05Support Synaptics touchpads without W mode.bru
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@
2015-09-05Improve tap-and-drag detection for ALPS touchpads.bru
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@
2015-08-23fairly trivial sizes for free()Theo de Raadt
2015-07-20Tweak previous; the Synaptics TrackPoint in my ThinkPad T500 works again.Kent R. Spillner
ok krw@
2015-07-19Don't emit values for 'width' thatKenneth R Westerback
/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@
2015-06-08pms(4): Don't match Elantech v4 devices with firmware versions 0xX7XXXX.Stefan Sperling
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@
2015-05-25Match newer elantech v4 touchpads, logic taken from Linux.Martin Pieuchot
Based on a submission from and ok jcs@.
2015-05-04Print irq informations in pckbc_set_inputhandler().Martin Pieuchot
ok miod@
2015-04-10Add support for CRC-enabled elantech v3 touchpads.Stefan Sperling
Patch by Fasse <fasse.f2@gmail.com> ok mpi@
2015-03-26Use the 0x10 extended capability to determine if the trackstickJonathan Gray
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@
2015-03-16Revert 1.39. Resetting after specifically putting the keyboard in aJoshua Stein
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
2015-03-14Remove some includes include-what-you-use claims don'tJonathan Gray
have any direct symbols used. Tested for indirect use by compiling amd64/i386/sparc64 kernels. ok tedu@ deraadt@
2015-03-12On first cnpoll, reset the keyboard and pms hard. This is requiredTheo de Raadt
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
2015-02-09Complete rewrite of the Elantech clickpads v4 packet parser in order toMartin Pieuchot
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.
2015-01-15Define a new wscons mouse type for Synaptics clickpad devices that lackJonathan Gray
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@
2015-01-07Only MS IntelliMouse have a Z axis, prevent a false positive triggeredMartin Pieuchot
by -Wuninitialized reported by jsg@. ok stsp@
2014-08-29Fix checking sync for old synaptics touchpad (ver 5.9)Alexandr Shadchin
From Thierry Deval <thierry at deval dot be> ok mpi@
2014-08-19Make sure state changes are properly serialized.Martin Pieuchot
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@
2014-07-24Speed up the boot sequence by deferring the scan of xt keyboard code set.Martin Pieuchot
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@
2014-07-12add a size argument to free. will be used soon, but for now default to 0.Ted Unangst
after discussions with beck deraadt kettenis.
2014-05-18Fix tail packet check in elantech v3 touchpad code. Due to a typo thisStefan Sperling
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.
2014-04-25Do no reprobe for a supported protocol when enabling a pointingMartin Pieuchot
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@
2014-03-23my bad, last commit was not ok deraadt, revert it.Alexandre Ratchov
2014-03-13Don't use volume keys when in raw-mode (this doesn't work), and letAlexandre Ratchov
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
2014-01-26Attempt to make user changes of keyboard layout a bit more `sticky' on wsmuxMiod Vallat
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@
2013-10-30Fix jagged diagonal lines (kernel part)Alexandr Shadchin
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.