* [PATCH] input: don't queue keys while the input console isn't stdin
@ 2026-11-08 13:40 Ahmad Fatoum
2026-11-09 9:08 ` Sascha Hauer
0 siblings, 1 reply; 2+ messages in thread
From: Ahmad Fatoum @ 2026-11-08 13:40 UTC (permalink / raw)
To: barebox; +Cc: Ahmad Fatoum
Applications like bareDOOM take the keyboard over by registering their
own input notifier and deactivating the input console. The input console
notifier keeps queueing every key press into its FIFO all the same, so
once the application exits and reactivates the console, the shell
receives the last 32 keys pressed during the game.
Let's only queue keys and start the key repeat while the console is
actually active as stdin.
Tested with DOOM on TinyEMU: the shell prompt stays empty after quitting.
Signed-off-by: Ahmad Fatoum <a.fatoum@barebox.org>
---
drivers/input/input.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/input/input.c b/drivers/input/input.c
index 5ee63d94d6f4..b77de20ae975 100644
--- a/drivers/input/input.c
+++ b/drivers/input/input.c
@@ -128,7 +128,7 @@ static void input_console_repeat(void *ctx)
{
struct input_console *ic = ctx;
- if (ic->current_key) {
+ if (ic->current_key && (ic->console.f_active & CONSOLE_STDIN)) {
kfifo_putc(ic->fifo, ic->current_key);
poller_call_async(&ic->poller, 40 * MSECOND,
input_console_repeat, ic);
@@ -196,6 +196,9 @@ static void input_console_notify(struct input_notifier *in,
pr_debug("map %02x KEY: 0x%04x code: %d\n", modstate, ascii, ev->code);
if (ev->value) {
+ if (!(ic->console.f_active & CONSOLE_STDIN))
+ return;
+
kfifo_putc(ic->fifo, ascii);
ic->current_key = ascii;
poller_call_async(&ic->poller, 400 * MSECOND,
--
2.47.3
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH] input: don't queue keys while the input console isn't stdin
2026-11-08 13:40 [PATCH] input: don't queue keys while the input console isn't stdin Ahmad Fatoum
@ 2026-11-09 9:08 ` Sascha Hauer
0 siblings, 0 replies; 2+ messages in thread
From: Sascha Hauer @ 2026-11-09 9:08 UTC (permalink / raw)
To: barebox, Ahmad Fatoum
On Sun, 08 Nov 2026 14:40:37 +0100, Ahmad Fatoum wrote:
> Applications like bareDOOM take the keyboard over by registering their
> own input notifier and deactivating the input console. The input console
> notifier keeps queueing every key press into its FIFO all the same, so
> once the application exits and reactivates the console, the shell
> receives the last 32 keys pressed during the game.
>
> Let's only queue keys and start the key repeat while the console is
> actually active as stdin.
>
> [...]
Applied, thanks!
[1/1] input: don't queue keys while the input console isn't stdin
https://git.pengutronix.de/cgit/barebox/commit/?id=fc1c4aa8c477 (link may not be stable)
Best regards,
--
Sascha Hauer <s.hauer@pengutronix.de>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-11-09 9:09 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-11-08 13:40 [PATCH] input: don't queue keys while the input console isn't stdin Ahmad Fatoum
2026-11-09 9:08 ` Sascha Hauer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox