aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/evdev/evdev.h
Commit message (Collapse)AuthorAgeFilesLines
* evdev: Fix a typo in a commitGordon Bergling2021-10-061-1/+1
| | | | | | - s/prefered/preferred/ (cherry picked from commit efd8749fe5cccb6c3d6b5f3c3515bf89ad306bcc)
* evdev: Remove evdev.ko linkage dependency on kbd driverVladimir Kondratyev2018-08-131-1/+0
| | | | | | | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=337721
* evdev: remove soft context from evdev methods parameter list.Vladimir Kondratyev2018-08-131-5/+5
| | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=337720
* evdev: Disable value normalization and state filtering for SND events.Vladimir Kondratyev2017-11-011-1/+1
| | | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=325298
* [evdev] Adds evdev support to sysmouse(4) driverOleksandr Tymoshenko2016-12-101-0/+16
| | | | | | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=309823
* EVDEV: Add shortcut functions for event typesOleksandr Tymoshenko2016-10-221-2/+64
| | | | | | | | | | 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> Notes: svn path=/head/; revision=307804
* Implement EVDEV_FLAG_MT_AUTOREL flag (autorelease touchpoints)Oleksandr Tymoshenko2016-10-081-0/+2
| | | | | | | | | | | | | | | 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> Notes: svn path=/head/; revision=306857
* Allow using of driver's mutex instead internal one for evdev locking.Oleksandr Tymoshenko2016-10-081-0/+1
| | | | | | | | | | | | | | | 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> Notes: svn path=/head/; revision=306855
* const-ify struct evdev_methodsOleksandr Tymoshenko2016-10-031-1/+2
| | | | | | | | Submitted by: Vladimir Kondratiev <wulf@cicgroup.ru> Suggested by: hselasky Notes: svn path=/head/; revision=306647
* Add evdev protocol implementationOleksandr Tymoshenko2016-09-111-0/+128
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 Notes: svn path=/head/; revision=305706