History log of /freebsd-13.1/sys/dev/evdev/evdev.h (Results 1 – 17 of 17)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: release/12.4.0, release/13.1.0, release/12.3.0
# d58ccf3b 02-Oct-2021 Gordon Bergling <[email protected]>

evdev: Fix a typo in a commit

- s/prefered/preferred/

(cherry picked from commit efd8749fe5cccb6c3d6b5f3c3515bf89ad306bcc)


# 4174302b 24-Aug-2021 Vladimir Kondratyev <[email protected]>

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 w

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.

(cherry picked from commit f76051c7dabe952b75127a8031d87d78b603be20)

show more ...


# b79de251 24-Aug-2021 Vladimir Kondratyev <[email protected]>

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 multitou

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

(cherry picked from commit 4c0a134e32a7f4dec556fea15c8de22f69864492)

show more ...


# f160aa0d 24-Aug-2021 Vladimir Kondratyev <[email protected]>

evdev: Make MT tracking IDs monotonically increasing sequence.

(cherry picked from commit 66bd52f5e241bd2548015f847f12cdff69176c40)


# 759a5cd1 24-Aug-2021 Vladimir Kondratyev <[email protected]>

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 su

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.

(cherry picked from commit 059360287e3344f48f5a7839e2d6d54016b18b19)

show more ...


# a437dfa5 24-Aug-2021 Vladimir Kondratyev <[email protected]>

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 i

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.

(cherry picked from commit 98a7606b85e05132f328a2498dccab78df31cb7e)

show more ...


Revision tags: release/13.0.0, release/12.2.0, release/11.4.0
# d276eae6 21-Apr-2020 Vladimir Kondratyev <[email protected]>

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

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

show more ...


# 5af73ad5 30-Nov-2020 Vladimir Kondratyev <[email protected]>

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.


Revision tags: release/12.1.0, release/11.3.0, release/12.0.0
# 48f2b006 13-Aug-2018 Vladimir Kondratyev <[email protected]>

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

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 <[email protected]>
Reviewed by: hselasky, gonzo
Differential Revision: https://reviews.freebsd.org/D16614

show more ...


# 911aed94 13-Aug-2018 Vladimir Kondratyev <[email protected]>

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

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

show more ...


Revision tags: release/11.2.0
# c6e80942 01-Nov-2017 Vladimir Kondratyev <[email protected]>

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 lef

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

show more ...


Revision tags: release/10.4.0, release/11.1.0
# 4af79d4f 10-Dec-2016 Oleksandr Tymoshenko <[email protected]>

[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 foll

[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 <[email protected]>
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D8597

show more ...


# 73362d0e 22-Oct-2016 Oleksandr Tymoshenko <[email protected]>

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 <[email protected]>


# c736a757 08-Oct-2016 Oleksandr Tymoshenko <[email protected]>

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 co

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 <[email protected]>

show more ...


# bfbd1bb7 08-Oct-2016 Oleksandr Tymoshenko <[email protected]>

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. Us

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 <[email protected]>

show more ...


# 5163e77f 03-Oct-2016 Oleksandr Tymoshenko <[email protected]>

const-ify struct evdev_methods

Submitted by: Vladimir Kondratiev <[email protected]>
Suggested by: hselasky


Revision tags: release/11.0.1, release/11.0.0
# 2b3f6d66 11-Sep-2016 Oleksandr Tymoshenko <[email protected]>

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

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 <[email protected]>
Reviewed by: adrian, hans
Differential Revision: https://reviews.freebsd.org/D6998

show more ...