
On Thu, Aug 3, 2017 at 2:25 PM, Simon Glass sjg@chromium.org wrote:
Hi Rob,
On 3 August 2017 at 07:17, Rob Clark robdclark@gmail.com wrote:
stdin might not be set, which would cause iomux_doenv() to fail therefore causing probe_usb_keyboard() to fail. Furthermore if we do have iomux enabled, the sensible thing (in terms of user experience) would be to simply add ourselves to the list of stdin devices.
Is this intended to fix a bug? What board do you see this on, and under what circumstances?
yes, db410c w/ distro-bootcmd + usb keyboard.. stdin is not set.
Signed-off-by: Rob Clark robdclark@gmail.com
v2: address Bin Meng's comments common/usb_kbd.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+)
diff --git a/common/usb_kbd.c b/common/usb_kbd.c index d2d29cc98f..72cf78abd4 100644 --- a/common/usb_kbd.c +++ b/common/usb_kbd.c @@ -517,7 +517,21 @@ static int probe_usb_keyboard(struct usb_device *dev)
stdinname = getenv("stdin");
#if CONFIG_IS_ENABLED(CONSOLE_MUX)
char *devname = DEVNAME;
/* stdin might not be set yet.. either way, with console-mux the
/*
- stdin might not be
hmm, somehow I screwed up and re-sent the wrong patch, rather than the one that *actually* addressed Bin's comments (this was one of them)
BR, -R
* sensible thing to do is add ourselves to the list of stdio
* devices:
*/
if (stdinname) {
char *newstdin = malloc(strlen(stdinname) + strlen(","DEVNAME) + 1);
sprintf(newstdin, "%s,"DEVNAME, stdinname);
stdinname = newstdin;
} else {
stdinname = devname;
} error = iomux_doenv(stdin, stdinname);
if (stdinname != devname)
free(stdinname); if (error) return error;
#else
2.13.0
Regards, Simon