366883 |
20-Oct-2020 |
hselasky |
MFC r366533: Allow evdev's rcpt_mask and sysmouse_t_axis parameters to be specified in /boot/loader.conf .
Sponsored by: Mellanox Technologies // NVIDIA Networking |
362598 |
25-Jun-2020 |
wulf |
MFC r362260:
evdev: Add AT translated set1 scancodes for 'Eisu' & 'Kana' keys.
PR: 247292 Submitted by: Yuichiro NAITO <naito.yuichiro@gmail.com> |
362207 |
15-Jun-2020 |
wulf |
MFC r360624:
[evdev] Add AT translated set1 scancodes for F-unlocked F1-12 keys.
"F lock" is a switch between two sets of scancodes for function keys F1-F12 found on some Logitech and Microsoft PS/2 keyboards [1]. When "F lock" is pressed, then F1-F12 act as function keys and produce usual keyscans for these keys. When "F lock" is depressed, F1-F12 produced the same keyscans but prefixed with E0. Some laptops use [2] E0-prefixed F1-F12 scancodes for non-standard keys.
[1] https://www.win.tue.nl/~aeb/linux/kbd/scancodes-6.html [2] https://reviews.freebsd.org/D21565
MFC r360625:
[evdev] Sync event codes with Linux kernel 5.6 |
360352 |
26-Apr-2020 |
wulf |
MFC r359905:
[evdev] Use proper mutex reference in autorepeat callout initialization.
This fixes panic occuring when evdev key autorepeat is enabled by driver which initializes evdev with external mutex. |
360185 |
22-Apr-2020 |
delphij |
MFC r360104: Use LIST_FOREACH_SAFE instead of LIST_FOREACH as we are removing elements in the middle.
This fixes a panic when detaching USB mouse.
PR: 245732 Reviewed by: wulf |
359907 |
13-Apr-2020 |
wulf |
MFC r359428: evdev: Add COMPAT_FREEBSD32 support for amd64 arch
Incompatibility between i386 and amd64 evdev ABIs was caused by presence of 'struct timeval' in evdev protocol. Replace it with 'struct timeval32' for 32 bit binaries.
Big-endian platforms may require additional work due to bitstr_t (array of unsigned longs) usage in ioctl interface.
MFC r359429: evdev: return error rather than zero-length data on blocked read() if blocked process has been woken up by evdev device destruction. |
344986 |
10-Mar-2019 |
wulf |
Fix build breakage caused by r344984
This is a direct commit to stable/11 |
344984 |
10-Mar-2019 |
wulf |
MFC r344494,r344495:
evdev: export event device properties through sysctl interface
A big security advantage of Wayland is not allowing applications to read input devices all the time. Having /dev/input/* accessible to the user account subverts this advantage.
libudev-devd was opening the evdev devices to detect their types (mouse, keyboard, touchpad, etc). This don't work if /dev/input/* is inaccessible. With the kernel exposing this information as sysctls (kern.evdev.input.*), we can work w/o /dev/input/* access, preserving the Wayland security model.
Submitted by: Greg V <greg@unrelenting.technology> Reviewed by: wulf, imp Differential Revision: https://reviews.freebsd.org/D18694 |
343160 |
18-Jan-2019 |
wulf |
MFC r340926:
evdev: Fix pause key release event in AT keyboard set 1 to evdev xlat-or. |
337290 |
04-Aug-2018 |
wulf |
MFC r334555:
[evdev] Sync event codes with Linux kernel 4.16 |
326543 |
04-Dec-2017 |
wulf |
MFC r325295:
evdev: Lock Giant around keyboard ioctls This fixes turning ukbd(4) LEDs on/off with evdev interface as well
MFC r325296:
evdev: Take driver's lock in cdev write handler if necessary
MFC r325297:
sysmouse(4): Fix ums(4)-style T-axis reporting via evdev protocol
- Do not report T-axis wheel events as button presses - Reverse T-axis to match Linux - Remove wrong comment. T-axis buttons state should be checked by level not by edge to allow continuous wheel tilt reporting
MFC r325298:
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.
MFC r325299:
evdev: Do not start/stop softrepeat callout if no clients attached
Approved by: gonzo (mentor) |
326541 |
04-Dec-2017 |
wulf |
MFC r325269:
evdev: Translate KEY_102ND in evdev_scancode2key()
MFC r326020:
Fix evdev codes for slash and asterisk numpad keys of AT-keyboards
MFC r326021:
evdev: change USB scancode 0x54 from KEY_SLASH to KEY_KPSLASH
Submitted by: dumbbell (r325269, r326021) Approved by: gonzo (mentor) |
326540 |
04-Dec-2017 |
wulf |
MFC r325294:
evdev: Hide "kern.evdev.rcpt_mask" sysctl if kernel is compiled w/o EVDEV_SUPPORT as it's value has no meaning in this case.
MFC r326019:
evdev: Export EVDEV_SUPPORT kernel option through feature facility
Approved by: gonzo (mentor) |
324768 |
19-Oct-2017 |
wulf |
MFC r321397-r321399
r321397: evdev: style(9), sort headers alphabetically
r321398: evdev: Macroize common locking sequences
r321399: Change my email address to wulf@FreeBSD.org in copyright headers.
Approved by: gonzo (mentor) |
317989 |
08-May-2017 |
gonzo |
MFC r315176-r315178
r315176: [evdev] Do not ignore result evdev_register in UI_DEV_CREATE handler
Make sure that uinput state field reflects actual state by checking evdev_register result for errors
Submitted by: Vladimir Kondratiev <wulf@cicgroup.ru> Differential Revision: https://reviews.freebsd.org/D9320
r315177: [evdev] Fix race condition between client's event queue reading and dropping
Submitted by: Vladimir Kondratiev <wulf@cicgroup.ru> Differential Revision: https://reviews.freebsd.org/D9320
r315178: [evdev] Fix Right Alt and Keypad Enter event codes for atkbd(4) and kbdmux(4) drivers
Submitted by: Vladimir Kondratiev <wulf@cicgroup.ru> Differential Revision: https://reviews.freebsd.org/D9320 |
311571 |
07-Jan-2017 |
gonzo |
MFC r310612:
[evdev] Fix build for older versions of clang
There was report of stable/11 build failure on older versions of FreeBSD. The problem was a reference to static variable in inline function. Although fairly recent versions of clang can cope with this situation just fine there is no strict requirement to make functions in question inline, they're not in any time-critical codepath. So to keep HEAD and 11-STABLE buildable on older FreeBSDs some of the util functions were converted from inline to normal.
Reported by: hselasky |
310431 |
22-Dec-2016 |
gonzo |
MFC r309823:
[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> Differential Revision: https://reviews.freebsd.org/D8597 |
308388 |
06-Nov-2016 |
gonzo |
MFC r307804-r307805
r307804: 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>
r307805: EVDEV: ums evdev support improvements: locking and event reporting
- Use ums lock as evdev lock - Do not cap axes values to sysmouse limits for evdev reports - Do not map T-axis events to buttons for evdev reports - Use shortcuts for event reporting
Submitted by: Vladimir Kondratiev <wulf@cicgroup.ru> MFC after: 1 week |
307777 |
22-Oct-2016 |
gonzo |
MFC r306647, r306855, r306857
r306647: const-ify struct evdev_methods
Submitted by: Vladimir Kondratiev <wulf@cicgroup.ru> Suggested by: hselasky
r306855: 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>
r306857: 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> |
307775 |
22-Oct-2016 |
gonzo |
MFC r306530, r306531, r306532, r306579:
r306530: Declare a module for evdev and add dependency to ukbd(4) and ums(4)
Prepare for making evdev a module. "Pure" evdev device drivers (like touchscreen) and evdev itself can be built as a modules regardless of "options EVDEV" in kernel config. So if people does not require evdev functionality in hybrid drivers like ums and ukbd they can, for instance, kldload evdev and utouchscreen to run FreeBSD in kiosk mode.
r306531: Add dependency to evdev module (if required)
r306532: Add dependency to evdev module
r306579: Modularize evdev
- Convert "options EVDEV" to "device evdev" and "device uinput", add modules for both new devices. They are isolated subsystems and do not require any compile-time changes to general kernel subsytems - For hybrid drivers that have evdev as an optional way to deliver input events add option EVDEV_SUPPORT. Update all existing hybrid drivers to use it instead of EVDEV - Remove no-op DECLARE_MODULE in evdev, it's not required, MODULE_VERSION is enough - Add evdev module dependency to uinput
Submitted by: Vladimir Kondratiev <wulf@cicgroup.ru> |
307766 |
22-Oct-2016 |
gonzo |
MFC r306578:
Fix gcc compilation error
input_absinfo.code is unsigned so condition is always false |
307760 |
22-Oct-2016 |
gonzo |
MFC r305706, r305749, r306274
r305706: 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
r305749: Remove semicolon from the end of the macro definition
Reported by: hans
r306274: Handle NULL argument in evdev_free
Add check for evdev argument of evdev_free being NULL. This is valid value and should not cause crash. In this case evdev_free does nothing
Submitted by: Vladimir Kondratiev <wulf@cicgroup.ru> |
305706 |
11-Sep-2016 |
gonzo |
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
|