
On Monday 26 June 2023 10:07:35 Simon Glass wrote:
Hi Pali,
On Sat, 24 Jun 2023 at 09:44, Pali Rohár pali@kernel.org wrote:
On Saturday 17 June 2023 11:49:47 Simon Glass wrote:
This series is an attempt to get the keyboard working properly with bootmenu.
It fixes the board's tstc() function, which should be in drivers/input
It also adjusts stopping of the menu autodelay - it should only stop when a whole escape sequence is received, not when the first escape character is received. That is pretty minor, so we could drop that patch.
This series also adds some debugging output. This seems to make things work correctly, suggesting that there is some other problem.
I also see this message fairly often:
cyclic function rx51_watchdog took too long: 10000us vs 1000us max
Simon Glass (6): menu: Re-enable the ANSI codes nokia_rx51: Correct tstc() implementation bootmenu: Cancel delay only when a real key is pressed boobtmenu: Add debugging getch: debugging menu: Add debugging
board/nokia/rx51/rx51.c | 3 +++ cmd/bootmenu.c | 19 ++++++++++++------- common/cli_getch.c | 23 ++++++++++++++++++++--- common/menu.c | 7 ++++++- 4 files changed, 41 insertions(+), 11 deletions(-)
-- 2.41.0.162.gfafddb0af9-goog
Hello, it looks like that this patch series is not finish yet (contains some commented code, etc.). Anyway, I have tested it and it makes it even worse. For example PAGE DOWN key in bootmenu on emulated UART terminal completely stopped working and do nothing. So this patch series still does not fix this problem.
Indeed, but I was hoping it would help you to find the problem.
The keyboard driver is currently returning 0 from tst() even when characters are available (i.e. a call to getc() will return valid chars but tstc() returns 0.
No, look again, rx51 tstc is returning 1 if there is something in SW buffer.
I attempted to fix this, but perhaps you can do a proper fix? With that bug in place, it cannot work properly with the menu.
See the docs for tstc:
/**
- tstc() - check if a key is available
- @dev: Device to check
- @return 0 if no key is available, 1 if a key is available, -ve on
- error
*/ int (*tstc)(struct udevice *dev);
Regards, Simon
I think it matches doc; I do not see issue here.