<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/dev/evdev, branch upstream/11.1.0</title>
<subtitle>FreeBSD source tree</subtitle>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/'/>
<entry>
<title>MFC r315176-r315178</title>
<updated>2017-05-08T22:35:15+00:00</updated>
<author>
<name>Oleksandr Tymoshenko</name>
<email>gonzo@FreeBSD.org</email>
</author>
<published>2017-05-08T22:35:15+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=a4e5852e32c2c3d52f07288cd5f3d4eefce6c10e'/>
<id>a4e5852e32c2c3d52f07288cd5f3d4eefce6c10e</id>
<content type='text'>
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 &lt;wulf@cicgroup.ru&gt;
Differential Revision:	https://reviews.freebsd.org/D9320

r315177:
[evdev] Fix race condition between client's event queue reading and dropping

Submitted by:	Vladimir Kondratiev &lt;wulf@cicgroup.ru&gt;
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 &lt;wulf@cicgroup.ru&gt;
Differential Revision:	https://reviews.freebsd.org/D9320
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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 &lt;wulf@cicgroup.ru&gt;
Differential Revision:	https://reviews.freebsd.org/D9320

r315177:
[evdev] Fix race condition between client's event queue reading and dropping

Submitted by:	Vladimir Kondratiev &lt;wulf@cicgroup.ru&gt;
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 &lt;wulf@cicgroup.ru&gt;
Differential Revision:	https://reviews.freebsd.org/D9320
</pre>
</div>
</content>
</entry>
<entry>
<title>MFC r310612:</title>
<updated>2017-01-07T00:18:51+00:00</updated>
<author>
<name>Oleksandr Tymoshenko</name>
<email>gonzo@FreeBSD.org</email>
</author>
<published>2017-01-07T00:18:51+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=edb9119498b1b6a3cecc3b020b05ab2bdf30c5d1'/>
<id>edb9119498b1b6a3cecc3b020b05ab2bdf30c5d1</id>
<content type='text'>
[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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[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
</pre>
</div>
</content>
</entry>
<entry>
<title>MFC r309823:</title>
<updated>2016-12-22T21:29:57+00:00</updated>
<author>
<name>Oleksandr Tymoshenko</name>
<email>gonzo@FreeBSD.org</email>
</author>
<published>2016-12-22T21:29:57+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=adeee9c97e2ee2d7ed01c0acfb7d5fdf6c4c83c7'/>
<id>adeee9c97e2ee2d7ed01c0acfb7d5fdf6c4c83c7</id>
<content type='text'>
[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 &lt;wulf@cicgroup.ru&gt;
Differential Revision:	https://reviews.freebsd.org/D8597
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[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 &lt;wulf@cicgroup.ru&gt;
Differential Revision:	https://reviews.freebsd.org/D8597
</pre>
</div>
</content>
</entry>
<entry>
<title>MFC r307804-r307805</title>
<updated>2016-11-06T21:41:26+00:00</updated>
<author>
<name>Oleksandr Tymoshenko</name>
<email>gonzo@FreeBSD.org</email>
</author>
<published>2016-11-06T21:41:26+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=75e1ba6bcdd6dc6c3fed123d909b462405af8b00'/>
<id>75e1ba6bcdd6dc6c3fed123d909b462405af8b00</id>
<content type='text'>
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 &lt;wulf@cicgroup.ru&gt;

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 &lt;wulf@cicgroup.ru&gt;
MFC after:	1 week
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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 &lt;wulf@cicgroup.ru&gt;

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 &lt;wulf@cicgroup.ru&gt;
MFC after:	1 week
</pre>
</div>
</content>
</entry>
<entry>
<title>MFC r306647, r306855, r306857</title>
<updated>2016-10-22T16:38:39+00:00</updated>
<author>
<name>Oleksandr Tymoshenko</name>
<email>gonzo@FreeBSD.org</email>
</author>
<published>2016-10-22T16:38:39+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=427263cd19a6fd8c4c0a63259c5893d9a0b379ec'/>
<id>427263cd19a6fd8c4c0a63259c5893d9a0b379ec</id>
<content type='text'>
r306647:
const-ify struct evdev_methods

Submitted by:	Vladimir Kondratiev &lt;wulf@cicgroup.ru&gt;
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 &lt;wulf@cicgroup.ru&gt;

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 &lt;wulf@cicgroup.ru&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
r306647:
const-ify struct evdev_methods

Submitted by:	Vladimir Kondratiev &lt;wulf@cicgroup.ru&gt;
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 &lt;wulf@cicgroup.ru&gt;

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 &lt;wulf@cicgroup.ru&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>MFC r306530, r306531, r306532, r306579:</title>
<updated>2016-10-22T15:26:32+00:00</updated>
<author>
<name>Oleksandr Tymoshenko</name>
<email>gonzo@FreeBSD.org</email>
</author>
<published>2016-10-22T15:26:32+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=885af1a3171a0a7a84a7649df5517f8546f7b556'/>
<id>885af1a3171a0a7a84a7649df5517f8546f7b556</id>
<content type='text'>
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 &lt;wulf@cicgroup.ru&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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 &lt;wulf@cicgroup.ru&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>MFC r306578:</title>
<updated>2016-10-22T02:31:49+00:00</updated>
<author>
<name>Oleksandr Tymoshenko</name>
<email>gonzo@FreeBSD.org</email>
</author>
<published>2016-10-22T02:31:49+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=17f3385a11b43052a8977d0486554592e1313339'/>
<id>17f3385a11b43052a8977d0486554592e1313339</id>
<content type='text'>
Fix gcc compilation error

input_absinfo.code is unsigned so condition is always false
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix gcc compilation error

input_absinfo.code is unsigned so condition is always false
</pre>
</div>
</content>
</entry>
<entry>
<title>MFC r305706, r305749, r306274</title>
<updated>2016-10-22T01:38:21+00:00</updated>
<author>
<name>Oleksandr Tymoshenko</name>
<email>gonzo@FreeBSD.org</email>
</author>
<published>2016-10-22T01:38:21+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=0a53c4be5e547c67e7bedb5646a4f276c075ea8f'/>
<id>0a53c4be5e547c67e7bedb5646a4f276c075ea8f</id>
<content type='text'>
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 &lt;wulf@cicgroup.ru&gt;
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 &lt;wulf@cicgroup.ru&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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 &lt;wulf@cicgroup.ru&gt;
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 &lt;wulf@cicgroup.ru&gt;
</pre>
</div>
</content>
</entry>
</feed>
