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

Jim Lin jilin at nvidia.com
Wed Jul 31 12:30:33 CEST 2013


On Fri, 2013-07-19 at 21:53 +0800, Marek Vasut wrote:
> 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 ?
I don't quite understand what you wanted me to do.
Could you give me an example? What to add and what to remove.
Thanks.

--nvpublic





More information about the U-Boot mailing list