<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/dev/evdev/cdev.c, branch releng/14.3</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=releng%2F14.3</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=releng%2F14.3'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2024-12-03T01:03:42Z</updated>
<entry>
<title>kern: Make fileops and filterops tables const where possible</title>
<updated>2024-12-03T01:03:42Z</updated>
<author>
<name>Mark Johnston</name>
<email>markj@FreeBSD.org</email>
</author>
<published>2024-11-25T22:39:31Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=48155c983c4ba7158e738bd1d4b3144751bd1d86'/>
<id>urn:sha1:48155c983c4ba7158e738bd1d4b3144751bd1d86</id>
<content type='text'>
No functional change intended.

MFC after:	1 week

(cherry picked from commit ef9ffb8594eee294334ced627755bf5b46b48f9f)
</content>
</entry>
<entry>
<title>sys: Remove $FreeBSD$: two-line .h pattern</title>
<updated>2023-08-16T17:54:11Z</updated>
<author>
<name>Warner Losh</name>
<email>imp@FreeBSD.org</email>
</author>
<published>2023-08-16T17:54:11Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=95ee2897e98f5d444f26ed2334cc7c439f9c16c6'/>
<id>urn:sha1:95ee2897e98f5d444f26ed2334cc7c439f9c16c6</id>
<content type='text'>
Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/
</content>
</entry>
<entry>
<title>evdev: Multitouch code style changes.</title>
<updated>2021-08-24T22:43:41Z</updated>
<author>
<name>Vladimir Kondratyev</name>
<email>wulf@FreeBSD.org</email>
</author>
<published>2021-08-24T22:43:41Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=98a7606b85e05132f328a2498dccab78df31cb7e'/>
<id>urn:sha1:98a7606b85e05132f328a2498dccab78df31cb7e</id>
<content type='text'>
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.

MFC after:	2 weeks
</content>
</entry>
<entry>
<title>evdev: Make variable-size ioctls return actual length of copyouted data</title>
<updated>2021-01-20T20:10:07Z</updated>
<author>
<name>Vladimir Kondratyev</name>
<email>wulf@FreeBSD.org</email>
</author>
<published>2021-01-20T20:10:07Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=7a810290b8f6c6885fdb9917cf590d46fa270a61'/>
<id>urn:sha1:7a810290b8f6c6885fdb9917cf590d46fa270a61</id>
<content type='text'>
on success instead of 0 to match Linux.
Imprivata binary depends on this.

Submitted by:	Shunchao Hu &lt;ankohuu_outlook.com&gt;
Reviewed by:	wulf
Differential revision:	https://reviews.freebsd.org/D28218
</content>
</entry>
<entry>
<title>hid:  Add missing input enter/exit epoch pairs.</title>
<updated>2021-01-14T20:04:47Z</updated>
<author>
<name>Vladimir Kondratyev</name>
<email>wulf@FreeBSD.org</email>
</author>
<published>2021-01-14T19:48:53Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=b360682ac940a4cef1c922c33d685db24a67c96b'/>
<id>urn:sha1:b360682ac940a4cef1c922c33d685db24a67c96b</id>
<content type='text'>
This was affecting unloading keyboard driver and kdb-related code.
</content>
</entry>
<entry>
<title>evdev: Allow open() handler to be interrupted by a signal</title>
<updated>2021-01-07T23:18:42Z</updated>
<author>
<name>Vladimir Kondratyev</name>
<email>wulf@FreeBSD.org</email>
</author>
<published>2020-04-21T22:38:14Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=3b8c8b35de3a1a8a24169d144189b6a4db82ce10'/>
<id>urn:sha1:3b8c8b35de3a1a8a24169d144189b6a4db82ce10</id>
<content type='text'>
It is possible that the client list lock is taken by other process for too
long due to e.g. IO timeouts. Allow user to terminate open() in this case.

Reviewed by:	markj (as part of D27865)
</content>
</entry>
<entry>
<title>evdev: Make open(2) and close(3) handlers sleepable.</title>
<updated>2021-01-07T23:18:41Z</updated>
<author>
<name>Vladimir Kondratyev</name>
<email>wulf@FreeBSD.org</email>
</author>
<published>2020-04-21T10:26:58Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=d276eae674d22214d6a58d1f4871053ceb0cb9f5'/>
<id>urn:sha1:d276eae674d22214d6a58d1f4871053ceb0cb9f5</id>
<content type='text'>
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
</content>
</entry>
<entry>
<title>evdev: return error rather than zero-length data on blocked read()</title>
<updated>2020-03-29T23:01:36Z</updated>
<author>
<name>Vladimir Kondratyev</name>
<email>wulf@FreeBSD.org</email>
</author>
<published>2020-03-29T23:01:36Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=006eb44926d6949e0b60b21920f1ea93f03efd2f'/>
<id>urn:sha1:006eb44926d6949e0b60b21920f1ea93f03efd2f</id>
<content type='text'>
if blocked process has been woken up by evdev device destruction.

MFC after:	2 weeks
</content>
</entry>
<entry>
<title>evdev: Add COMPAT_FREEBSD32 support for amd64 arch</title>
<updated>2020-03-29T23:00:33Z</updated>
<author>
<name>Vladimir Kondratyev</name>
<email>wulf@FreeBSD.org</email>
</author>
<published>2020-03-29T23:00:33Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=80ddbddfd70fbf6e99d9be0d0572e9206f8ec139'/>
<id>urn:sha1:80ddbddfd70fbf6e99d9be0d0572e9206f8ec139</id>
<content type='text'>
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 after:	2 weeks
</content>
</entry>
<entry>
<title>evdev: disable evdev if it is invoked from KDB or panic context</title>
<updated>2018-10-27T21:04:34Z</updated>
<author>
<name>Vladimir Kondratyev</name>
<email>wulf@FreeBSD.org</email>
</author>
<published>2018-10-27T21:04:34Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=5ef2488947aacf30ce897230b8bf20be543e7447'/>
<id>urn:sha1:5ef2488947aacf30ce897230b8bf20be543e7447</id>
<content type='text'>
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.

Tested by:	dumbbell (as part of D15070)
Objected by:	bde (as 'KDB lock an already locked mutex' problem solution)
MFC after:	1 month
</content>
</entry>
</feed>
