Age | Commit message (Collapse) | Author |
|
changes.
ok miod
|
|
machdep.forceukbd is enabled without any USB keyboard being attached.
Found the hard way by sthen@; ok miod@
|
|
for other generic KMS drivers.
ok jsg@, matthieu@
|
|
|
|
keyboards.
From jon (at) elytron (dot) openbsd (dot) amsterdam with some changes by me
ok gkoehler@
|
|
mechanical 'selinfo' to 'klist' replacement in 'vnode' structure because
knote(9) API is already used.
<sys/selinfo.h> headers added where is was required.
ok bluhm
|
|
|
|
|
|
|
|
bounds, in case escape sequences end up with too many semicolons.
Without this, the kernel could be made to access random memory after receiving
some specially crafted DCS or CSI terminal escape sequences.
Reported by David Leadbeater (dgl, dgl dot cx)
|
|
feedback and ok miod@
|
|
When finishing a wseventvar in wsevent_fini(), clear the klist.
Otherwise knotes can be left dangling, which can crash the kernel.
In general, klist_invalidate() should happen after vdevgone() in order
to avoid a race with kevent registration. However, the current wscons
drivers clear the wsevent pointer (sc->sc_base.me_evp) before calling
wsevent_fini(). This prevents the drivers from registering new kevents.
Prompted by a report by Peter J. Philipp on bugs@
OK mvs@ miod@
|
|
Based on a proposal of tobhe@.
ok tobhe@
|
|
works enough to get a console on qemu with more work to come from
others
feedback from miod
ok patrick
|
|
after the original wscons code was written and chose placeholder values.
From NetBSD (wsemul_vt100_chars.c r1.8 and r1.14) via Crystal Kolipe, thanks!
|
|
characters.
|
|
issue reported by Crystal Kolipe on tech@
|
|
Without them, the kernel could be made to crash or reboot after receiving some
specially crafted terminal escape sequences.
Reported by David Leadbeater (dgl, dgl dot cx)
|
|
exoticsilicon dot com.
ok miod
|
|
ok miod
|
|
|
|
exoticsilicon dot com.
ok miod
|
|
Crystal Kolipe kolipe.c at exoticsilicon dot com.
ok miod
|
|
supported by xterm. From Crystal Kolipe kolipe.c at exoticsilicon dot
com.
ok miod
|
|
corruption
and a few other bugs/races after wakeup on Apple Silicon laptops and Lenovo x13s.
ok kettenis@ deraadt@
|
|
|
|
ok guenther
|
|
a stray trailing NUL byte. From Crystal Kolipe.
ok deraadt miod
|
|
down to wsmux. This does not work since we're in interrupt context, as
pointed out by witness.
Instead, defer the work to a task which in turn will execute in process
context.
Problem reported by beck@
ok visa@
|
|
inteldrm(4) it requires a process context. ok kettenis@
|
|
The CONFIGURED flag, which indicates that first-time initialization
has been completed, must be set immediately after the first call to
wstpad_configure. Otherwise, passing touchpad parameters to the
initialization function has no effect for some of them.
|
|
This happens on the new 14" and 16" Macbook Pro where we deliberately use
a framebuffer that skips the first few lines to avoid "the notch".
The offset of the first pixel is added to struct wsdisplay_fbinfo. The
stride is added as well, mirroring the value returned by the
WSDISPLAYIO_LINEBYTES ioctl, such that we can retire that one in the
future. A compat ioctl is implemented to help the transition. The compat
code will be removed after OpenBSD 7.3 has been released.
ok miod@
|
|
contrast) are not valid if they only have one state, i.e. minimum and maximum
values being equal.
Do not expose them to userland in this case, for wsconsctl would attempt to
divide by zero (which is known to have unwelcome consequences).
This allows display drivers trusting not-so-reliable sources (fdt, bogus
hardware...) to not have to perform those checks themselves.
Found the hard way by daniel@. No firm consensus on this workaround, using
one seniority point here, will revert if this spawns complaints.
|
|
Also remove unneeded seltrue() and selfalse().
OK mpi@ jsg@
|
|
Also remove unneeded includes of <sys/poll.h> and <sys/select.h>.
Some addenda from jsg@.
OK miod@ mpi@
|
|
Tested locally. "looks correct" to miod@
From Crystal Kolipe kolipe DOT c AT exoticsilicon DOT com
|
|
This change fixes bugs concerning the transition into the hold/drag state
after double taps or two- or three-finger taps. In addition, it ensures
that button events properly match the logical button state when tap inputs
and button inputs overlap.
|
|
|
|
attached audio device, i.e. audio0. This approach does not work well
while using additional audio devices equipped with physical volume keys
since those would only affect the volume of audio0.
Instead, correlate audio and ucc devices attached over USB in order to
adjust the volume of the correct audio device. This is done by passing a
cookie from the common point of attachment which is later used to
correlate the audio and wskbd device.
The same approach could be adopted for audio and wskbd devices attaching
on a different bus. Keep in mind that it's of importance to make use of
and increment the same global cookie identifier to avoid collisions.
Makes the volume keys on my Logitech G435 Headset do the right thing.
ok ratchov@
|
|
after the allocation and initialization is done. Otherwise, a race is
possible if malloc ends up sleeping.
ok sashan@
Reported-by: syzbot+7f8224e9f1a3487caf25@syzkaller.appspotmail.com
|
|
keyboard attached and /etc/kbdtype being present. The advertised
encoding of a wsmux is a bit fragile as the last attached device will
dictate it. If this happens to be a ucc keyboard, KB_US will always be
the advertised encoding as its encoding is immutable and /etc/kbdtype is
ignored.
Instead, do not advertise the encoding for ucc devices when the parent
mux queries its attached devices. However, asking the device directly
(i.e. bypassing the mux) still returns the encoding as wsconsctl(8)
would otherwise report an error.
Thanks to landry@ for the report and testing.
|
|
ok deraadt@
|
|
encoding is supported. Instead, silently ignore such requests. Gets rid
of the following warning emitted by kbd(8) while booting with a ucc
keyboard attached and /etc/kbdtype being present:
kbd: unsupported encoding uk on /dev/wskbd2
I ended up repurposing KB_MACHDEP as is became unused back in 2008. Note
that running a kernel with this commit applied requires kbd and
wsconsctl to be recompiled in order to show correct encodings.
Problem reported by landry@ and ok deraadt@
|
|
Revision 1.29 of wstpad.c has removed the 'maxdist' checks
for multi-finger taps. While this change makes tap detection
more reliable, and does not affect inputs intended for pointer
movement, it might interfere with short scroll gestures.
This version reorganizes the filtering code, and reintroduces
a weaker version of those checks for MT touchpads.
|
|
In order to distinguish tap gestures from short movements, the mechanism
checks whether the distance between the first and the last position of a
touch exceeds the 'maxdist' limit. Some touchpads provide unreliable
coordinates when more than one contact is being made simultaneously, and
in this case the filter may be too strong - and superfluous, because only
one-finger contacts should trigger pointer movement.
|
|
ok gnezdo@
|
|
ok jsg@
|
|
Thanks to RJ Johnson for this work!
ok mpi@
|
|
ok visa
|
|
|