#
95ee2897 |
|
16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: two-line .h pattern Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/
|
#
4a0db5e2 |
|
17-Nov-2022 |
Vladimir Kondratyev <wulf@FreeBSD.org> |
evdev: Extend EVIOCGRAB ioctl scope to cover sysmouse interface of psm(4), ums(4) and sysmouse(4) drivers. EVIOCGRAB ioctl execution on /dev/input/event# device node gains exclusive access to this device to caller. It is used mostly for development purposes and remote control software. See e.g. https://reviews.freebsd.org/D30020 which is the reason of creation of this change. MFC after: 2 weeks Tested by: corvink Differential revision: https://reviews.freebsd.org/D30542
|
#
efd8749f |
|
02-Oct-2021 |
Gordon Bergling <gbe@FreeBSD.org> |
evdev: Fix a typo in a commit - s/prefered/preferred/ MFC after: 3 days
|
#
35bc295b |
|
02-Sep-2021 |
Vladimir Kondratyev <wulf@FreeBSD.org> |
evdev: Do not export multitouch functions which are unused outside evdev
|
#
f76051c7 |
|
24-Aug-2021 |
Vladimir Kondratyev <wulf@FreeBSD.org> |
evdev: Add implicit mode for touch tracking. In implicit mode assignment of slot number and tracking id is performed automatically on each synchronization requested by device driver. This is done with creation of intermediate buffer for multitouch events. This buffer holds untracked events until synchronization is requested by device driver. It is needed as touch assigment requires knowledges of all touch positions pushed in current and previous reports. MFC after: 2 weeks
|
#
4c0a134e |
|
24-Aug-2021 |
Vladimir Kondratyev <wulf@FreeBSD.org> |
evdev: Import support for touch-tracking. Touch tracking is a process of assignment of unique trackingID to each initiated contact on the surface. Keeping the trackingIDs persistent across multitouch reports requires solving of so called Euclidian Bipartite Matching problem. This commit imports EBM-solver implementation based on Dinitz-Kronrod algorithm to find minimum cost matching between contacts listed in two consecutive reports. Obtained from: OpenBSD MFC after: 2 weeks
|
#
66bd52f5 |
|
24-Aug-2021 |
Vladimir Kondratyev <wulf@FreeBSD.org> |
evdev: Make MT tracking IDs monotonically increasing sequence. MFC after: 2 weeks
|
#
05936028 |
|
24-Aug-2021 |
Vladimir Kondratyev <wulf@FreeBSD.org> |
evdev: Give short aliases to items of evdev_mt_slot array with using of unioned anonymous structure. Access to the same data by using different members of union generally works despite it is not supported by C specs. Also add helper function to report entire slot state. MFC after: 2 weeks
|
#
98a7606b |
|
24-Aug-2021 |
Vladimir Kondratyev <wulf@FreeBSD.org> |
evdev: Multitouch code style changes. 1. Move touch count reporting helpers to utils. They are not multitouch. 2. Use evdev_mt prefix for private multitouch support routines. 3. Use int instead of int32_t where fixed size is not required. 4. Export some internal functions. This change should be no-op. MFC after: 2 weeks
|
#
d276eae6 |
|
21-Apr-2020 |
Vladimir Kondratyev <wulf@FreeBSD.org> |
evdev: Make open(2) and close(3) handlers sleepable. At the beginning of evdev there was a LOR between hardware driver's and evdev client list locks as they were taken in different order at driver's interrupt and evdev open()/close() handlers. The LOR was fixed with introduction of evdev_register_mtx() function which allowed to use a hardware driver's lock as evdev client list lock. While this works good with PS/2 and USB, this does not work with I2C. Unlike PS/2 and USB, I2C open()/close() handlers do unbound sleeps while waiting for I2C bus to release and while performing IO. This change uses epoch(9) for traversing evdev client list in interrupt handler to avoid the LOR thus making possible to convert evdev client list lock to sleepable sx. While here add brief locking protocol description. Reviewed by: markj Differential revision: https://reviews.freebsd.org/D27865
|
#
5af73ad5 |
|
30-Nov-2020 |
Vladimir Kondratyev <wulf@FreeBSD.org> |
evdev: Remove useless "initial value" parameter from evdev_support_abs() It can not be used for setting of state of multitouch events. If necessary, use evdev_push_event() instead of it.
|
#
48f2b006 |
|
13-Aug-2018 |
Vladimir Kondratyev <wulf@FreeBSD.org> |
evdev: Remove evdev.ko linkage dependency on kbd driver Move evdev_ev_kbd_event() helper from evdev to kbd.c as otherwise evdev unconditionally requires all keyboard and console stuff to be compiled into the kernel. This dependency happens as evdev_ev_kbd_event() helper references kbdsw global variable defined in kbd.c through use of kbdd_ioctl() macro. While here make all keyboard drivers respect evdev_rcpt_mask while setting typematic rate and LEDs with evdev interface. Requested by: Milan Obuch <bsd@dino.sk> Reviewed by: hselasky, gonzo Differential Revision: https://reviews.freebsd.org/D16614
|
#
911aed94 |
|
13-Aug-2018 |
Vladimir Kondratyev <wulf@FreeBSD.org> |
evdev: remove soft context from evdev methods parameter list. Now softc should be retrieved from struct edvev * pointer with evdev_get_softc() helper. wmt(4) is a sample of driver that support both KPI. Reviewed by: hselasky, gonzo Differential Revision: https://reviews.freebsd.org/D16614
|
#
c6e80942 |
|
01-Nov-2017 |
Vladimir Kondratyev <wulf@FreeBSD.org> |
evdev: Disable value normalization and state filtering for SND events. Some events can take sound pitch as a value so can not be represented as binary on/off events. Tracking for on/off state is left in place as it is a part of the evdev API. Reviewed by: gonzo Approved by: gonzo (mentor) MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D12676
|
#
4af79d4f |
|
10-Dec-2016 |
Oleksandr Tymoshenko <gonzo@FreeBSD.org> |
[evdev] Adds evdev support to sysmouse(4) driver For horizontal (T-axis) wheel reporting which is not supported by sysmouse protocol kern.evdev.sysmouse_t_axis sysctl is introduced. It can take following values: 0 - no T-axis events (default) 1 - T-axis events are originated in ums(4) driver. 2 - T-axis events are originated in psm(4) driver. Submitted by: Vladimir Kondratiev <wulf@cicgroup.ru> MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D8597
|
#
73362d0e |
|
22-Oct-2016 |
Oleksandr Tymoshenko <gonzo@FreeBSD.org> |
EVDEV: Add shortcut functions for event types Add wrappers around generic evdev_push_event for specific event types: EV_KEY/EV_REL/EV_ABS etc... Submitted by: Vladimir Kondratiev <wulf@cicgroup.ru>
|
#
c736a757 |
|
08-Oct-2016 |
Oleksandr Tymoshenko <gonzo@FreeBSD.org> |
Implement EVDEV_FLAG_MT_AUTOREL flag (autorelease touchpoints) Automaticaly release (send ABS_MT_TRACKING_ID = -1) MT-slots that has not been listed in current MT protocol type B report. Slot is counted as listed if corresponding ABS_MT_SLOT event has been sent regardless of other MT events. Events are sent on SYN_REPORT event. Submitted by: Vladimir Kondratiev <wulf@cicgroup.ru>
|
#
bfbd1bb7 |
|
08-Oct-2016 |
Oleksandr Tymoshenko <gonzo@FreeBSD.org> |
Allow using of driver's mutex instead internal one for evdev locking. Add new API call: evdev_register_mtx which takes lock argument that should be used instead of internal one for evdev locking. Useful for cases if evdev_push_event() is always called with driver's lock taken and reduces amount of lock aquisitions. This allows to avoid LOR between ev_open/ev_close invocations and evdev_push_event() Such LOR can happen when ev_open/ev_close methods acquire driver lock and evdev_push_event() is called with this lock taken. Submitted by: Vladimir Kondratiev <wulf@cicgroup.ru>
|
#
5163e77f |
|
03-Oct-2016 |
Oleksandr Tymoshenko <gonzo@FreeBSD.org> |
const-ify struct evdev_methods Submitted by: Vladimir Kondratiev <wulf@cicgroup.ru> Suggested by: hselasky
|
#
2b3f6d66 |
|
11-Sep-2016 |
Oleksandr Tymoshenko <gonzo@FreeBSD.org> |
Add evdev protocol implementation evdev is a generic input event interface compatible with Linux evdev API at ioctl level. It allows using unmodified (apart from header name) input evdev drivers in Xorg, Wayland, Qt. This commit has only generic kernel API. evdev support for individual hardware drivers like ukbd, ums, atkbd, etc. will be committed later. Project was started by Jakub Klama as part of GSoC 2014. Jakub's evdev implementation was later used as a base, updated and finished by Vladimir Kondratiev. Submitted by: Vladimir Kondratiev <wulf@cicgroup.ru> Reviewed by: adrian, hans Differential Revision: https://reviews.freebsd.org/D6998
|