[U-Boot] [PATCH v7 2/2] console: usb: kbd: To improve TFTP booting performance

Marek Vasut marex at denx.de
Fri Jul 19 15:53:22 CEST 2013


Dear Jim Lin,

> On Fri, 2013-07-19 at 19:17 +0800, Wolfgang Denk wrote:
> > Dear Jim Lin,
> > 
> > In message <1374226576-13401-2-git-send-email-jilin at nvidia.com> you wrote:
> > > TFTP booting is slow when a USB keyboard is installed and
> > > stdin has usbkbd added.
> > > This fix is to change Ctrl-C polling for USB keyboard to every second
> > > when NET transfer is running.
> > 
> > ...
> > 
> > > +#ifdef CONFIG_CMD_NET
> > > +/* The period of time between two calls of usb_kbd_testc(). */
> > > +static unsigned long kbd_testc_tms;
> > > +#endif
> > > 
> > >  /* Generic keyboard event polling. */
> > >  void usb_kbd_generic_poll(void)
> > > 
> > > @@ -366,6 +370,16 @@ static int usb_kbd_testc(void)
> > > 
> > >  	struct usb_device *usb_kbd_dev;
> > >  	struct usb_kbd_pdata *data;
> > > 
> > > +#ifdef CONFIG_CMD_NET
> > > +	/*
> > > +	 * If net_busy_flag is 1, NET transfer is running,
> > > +	 * then we check key pressed every second to improve
> > > +	 * TFTP booting performance.
> > > +	 */
> > > +	if (net_busy_flag && (get_timer(kbd_testc_tms) < CONFIG_SYS_HZ))
> > > +		return 0;
> > > +	kbd_testc_tms = get_timer(0);
> > > +#endif
> > 
> > You did not comment on my remark about  kbd_testc_tms  being used
> > basically with a random start value for each invocation of a network
> > command.  The "every second" above is wrong.  The actual interval may
> > be much shorter (even nearly zero, at least once), or longer.
> 
> Okay, I will check again.
> 
I'll wait for v3. In the meantime, I homestly dont like having such hacks on 
both sides, but I dont think much can be done about it. Maybe use __maybe_unused 
for the net_busy_flag to drop the ifdef ?

Best regards,
Marek Vasut


More information about the U-Boot mailing list