| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
- s/prefered/preferred/
(cherry picked from commit efd8749fe5cccb6c3d6b5f3c3515bf89ad306bcc)
|
| |
|
|
|
|
|
|
|
|
| |
Allow evdev's rcpt_mask and sysmouse_t_axis parameters to be specified in
/boot/loader.conf .
Sponsored by: Mellanox Technologies // NVIDIA Networking
Notes:
svn path=/stable/12/; revision=366882
|
| |
|
|
|
|
|
|
|
|
| |
evdev: Add AT translated set1 scancodes for 'Eisu' & 'Kana' keys.
PR: 247292
Submitted by: Yuichiro NAITO <naito.yuichiro@gmail.com>
Notes:
svn path=/stable/12/; revision=362597
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[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
Notes:
svn path=/stable/12/; revision=362206
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Original commit messages:
Change kern.evdev.rcpt_mask from 3 to 12 by default. This makes us much
more evdev-friendly, and will prevent everyone using xorg and wayland with
evdev devices (the default) from needing to change this locally.
powerpc32 still uses the old value for the keyboard part, becaues the adb
keyboard driver used there is not evdev compatible.
In r360126, I meant to have a different mask only on powerpc, not powerpc64.
Update the check to check that we're not compiling for powerpc64.
Approved by: wulf (implicit, mfc)
Relnotes: yes
Differential Revision: https://reviews.freebsd.org/D24370
Notes:
svn path=/stable/12/; revision=360637
|
| |
|
|
|
|
|
|
|
|
| |
[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.
Notes:
svn path=/stable/12/; revision=360351
|
| |
|
|
|
|
|
|
|
|
|
|
| |
removing elements in the middle.
This fixes a panic when detaching USB mouse.
PR: 245732
Reviewed by: wulf
Notes:
svn path=/stable/12/; revision=360184
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
Notes:
svn path=/stable/12/; revision=359906
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
Notes:
svn path=/stable/12/; revision=344983
|
| |
|
|
|
|
|
| |
evdev: Fix pause key release event in AT keyboard set 1 to evdev xlat-or.
Notes:
svn path=/stable/12/; revision=343159
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
evdev: Use console lock as evdev lock for all supported keyboard drivers.
Now evdev part of keyboard drivers does not take any locks if corresponding
input/eventN device node is not opened by userland consumers.
Do not assert console lock inside evdev to handle the cases when keyboard
driver is called from some special single-threaded context like shutdown
thread.
MFC r339824:
evdev: disable evdev if it is invoked from KDB or panic context
This allow to prevent deadlock on entering KDB if one of evdev locks is
already taken by userspace process.
Also this change discards all but LED console events produced by KDB as
unrelated to userspace.
Notes:
svn path=/stable/12/; revision=340518
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
MFC after: 2 weeks
Notes:
svn path=/head/; revision=334555
|
| |
|
|
|
|
|
|
| |
Reviewed by: gonzo
Differential Revision: https://reviews.freebsd.org/D13456
Notes:
svn path=/head/; revision=333111
|
| |
|
|
|
|
|
|
|
|
|
| |
Submitted by: dumbbell
Reviewed by: gonzo, wulf
Approved by: gonzo (mentor)
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D12983
Notes:
svn path=/head/; revision=326021
|
| |
|
|
|
|
|
|
|
| |
Reviewed by: gonzo
Approved by: gonzo (mentor)
MFC after: 2 weeks
Notes:
svn path=/head/; revision=326020
|
| |
|
|
|
|
|
|
|
|
| |
Suggested by: netchild
Reviewed by: gonzo
Approved by: gonzo (mentor)
MFC after: 1 week
Notes:
svn path=/head/; revision=326019
|
| |
|
|
|
|
|
|
|
|
| |
Reviewed by: gonzo
Approved by: gonzo (mentor)
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D12676
Notes:
svn path=/head/; revision=325299
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
| |
Reviewed by: gonzo
Approved by: gonzo (mentor)
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D12676
Notes:
svn path=/head/; revision=325296
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This fixes turning ukbd(4) LEDs on/off with evdev interface as well
Reviewed by: gonzo
Approved by: gonzo (mentor)
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D12676
Notes:
svn path=/head/; revision=325295
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
w/o EVDEV_SUPPORT as it's value has no meaning in this case.
Now presence of this sysctl can be used for discovery if evdev support
for hybrid devices is compiled into kernel or not.
Hide "kern.evdev.sysmouse_t_axis" sysctl for the same reason.
Reviewed by: gonzo
Approved by: gonzo (mentor)
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D12676
Notes:
svn path=/head/; revision=325294
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is the extra key on 102/105-keys keyboards, located on the right
of the Left Shift key. For instance on a French layout, this is the '<'
key.
This fixes an issue where the key fires no evdev event and thus remains
inactive in an evdev/libinput-enabled X.Org server. The issue only
occurred on an AT keyboard; the same key on a USB keyboard worked fine.
PR: 222609 (only for reference)
Approved by: wulf@
Differential Revision: https://reviews.freebsd.org/D12883
Notes:
svn path=/head/; revision=325269
|
| |
|
|
|
|
|
|
| |
Approved by: gonzo (mentor)
MFC after: 2 weeks
Notes:
svn path=/head/; revision=321399
|
| |
|
|
|
|
|
|
|
| |
Reviewed by: gonzo
Approved by: gonzo (mentor)
MFC after: 2 weeks
Notes:
svn path=/head/; revision=321398
|
| |
|
|
|
|
|
|
|
|
| |
Pointed out by: bde
Reviewed by: gonzo
Approved by: gonzo (mentor)
MFC after: 2 weeks
Notes:
svn path=/head/; revision=321397
|
| |
|
|
|
|
|
|
|
|
|
| |
kbdmux(4) drivers
Submitted by: Vladimir Kondratiev <wulf@cicgroup.ru>
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D9320
Notes:
svn path=/head/; revision=315178
|
| |
|
|
|
|
|
|
|
| |
Submitted by: Vladimir Kondratiev <wulf@cicgroup.ru>
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D9320
Notes:
svn path=/head/; revision=315177
|
| |
|
|
|
|
|
|
|
|
|
| |
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
Notes:
svn path=/head/; revision=315176
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
MFC after: 3 days
Notes:
svn path=/head/; revision=310612
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
Submitted by: Vladimir Kondratiev <wulf@cicgroup.ru>
Suggested by: hselasky
Notes:
svn path=/head/; revision=306647
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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>
Notes:
svn path=/head/; revision=306579
|
| |
|
|
|
|
|
| |
input_absinfo.code is unsigned so condition is always false
Notes:
svn path=/head/; revision=306578
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
Notes:
svn path=/head/; revision=306530
|
| |
|
|
|
|
|
|
|
|
| |
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>
Notes:
svn path=/head/; revision=306274
|
| |
|
|
|
|
|
| |
Reported by: hans
Notes:
svn path=/head/; revision=305749
|
|
|
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
|