[PATCH 0/6] nokia_nx51: Attempts to debug keyboard

Simon Glass sjg at chromium.org
Mon Jun 26 11:07:35 CEST 2023


Hi Pali,

On Sat, 24 Jun 2023 at 09:44, Pali Rohár <pali at 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. 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


More information about the U-Boot mailing list