[PATCH] usb: kbd: allow probing even if usbkbd not in stdin

Köry Maincent kory.maincent at bootlin.com
Mon Jun 27 12:03:32 CEST 2022


Hello Marek,

On Fri, 24 Jun 2022 20:12:31 +0200
Marek Vasut <marex at denx.de> wrote:

> On 6/22/22 10:59, kory.maincent at bootlin.com wrote:
> > From: Kory Maincent <kory.maincent at bootlin.com>
> > 
> > For now the driver does not probe if usbkbd was not present in stdin.
> > This presents two issues, we can not probe the driver before setting stdin  
> 
> Environment should be up and running before USB, so this is likely not a 
> problem.

Having a driver probing only in this specific state is weird?
It should probe whatever the state of stdin.

> 
> > and we can not use this driver in other manner than stdin console.
> > 
> > This patch fixes this by adding an else statement. It simply probes the
> > driver without console management in the case "usbkbd" is not in stdin.  
> 
> Can you document the usecase in a bit more detail ?

My usecase is to get a key press from the USB keyboard and do some thing about
it in board_init. I do not want to multiplex the keyboard input to stdin but I
still want to read character from it.

> What exactly is the problem you are solving here ?
> >   	stdinname = env_get("stdin");
> >   #if CONFIG_IS_ENABLED(CONSOLE_MUX)
> > -	error = iomux_doenv(stdin, stdinname);
> > -	if (error)
> > -		return error;
> > +	if (strstr(stdinname, DEVNAME) != NULL) {
> > +		error = iomux_doenv(stdin, stdinname);
> > +		if (error)
> > +			return error;
> > +	}
> >   #else
> >   	/* Check if this is the standard input device. */
> > -	if (strcmp(stdinname, DEVNAME))
> > -		return 1;
> > -
> > -	/* Reassign the console */
> > -	if (overwrite_console())
> > -		return 1;
> > +	if (!strcmp(stdinname, DEVNAME)) {  
> 
> Maybe use strcmp() == NULL to be consistent with the != NULL check above ?

Yes, you are right.

Regards,
Köry


More information about the U-Boot mailing list