console: usb: kbd: To improve TFTP booting performance
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. Signed-off-by: Jim Lin <jilin@nvidia.com>
This commit is contained in:
parent
b63056d6a4
commit
07551f2343
@ -104,6 +104,11 @@ struct usb_kbd_pdata {
|
|||||||
uint8_t flags;
|
uint8_t flags;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
extern int __maybe_unused net_busy_flag;
|
||||||
|
|
||||||
|
/* The period of time between two calls of usb_kbd_testc(). */
|
||||||
|
static unsigned long __maybe_unused kbd_testc_tms;
|
||||||
|
|
||||||
/* Generic keyboard event polling. */
|
/* Generic keyboard event polling. */
|
||||||
void usb_kbd_generic_poll(void)
|
void usb_kbd_generic_poll(void)
|
||||||
{
|
{
|
||||||
@ -365,6 +370,16 @@ static int usb_kbd_getc(void)
|
|||||||
struct usb_device *usb_kbd_dev;
|
struct usb_device *usb_kbd_dev;
|
||||||
struct usb_kbd_pdata *data;
|
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 (first check may be
|
||||||
|
* less than 1 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
|
||||||
dev = stdio_get_by_name(DEVNAME);
|
dev = stdio_get_by_name(DEVNAME);
|
||||||
usb_kbd_dev = (struct usb_device *)dev->priv;
|
usb_kbd_dev = (struct usb_device *)dev->priv;
|
||||||
data = usb_kbd_dev->privptr;
|
data = usb_kbd_dev->privptr;
|
||||||
|
Loading…
Reference in New Issue
Block a user