summaryrefslogtreecommitdiff
path: root/common/usb_kbd.c
diff options
context:
space:
mode:
authorTom Rini <trini@ti.com>2013-08-27 09:49:43 -0400
committerTom Rini <trini@ti.com>2013-08-27 09:49:43 -0400
commit529c0d9b8cdfae232e4ed082fd8cde5416b266b7 (patch)
treeea7b948c6faafb4ad9d754eca568a2ae2a0100fc /common/usb_kbd.c
parent880a41273265233004516351189aad126f964c86 (diff)
parentc95e2b9eaeadc0f985030ffa0638278acc2d8727 (diff)
downloadolio-uboot-2014.01-529c0d9b8cdfae232e4ed082fd8cde5416b266b7.tar.xz
olio-uboot-2014.01-529c0d9b8cdfae232e4ed082fd8cde5416b266b7.zip
Merge branch 'master' of git://git.denx.de/u-boot-usb
Diffstat (limited to 'common/usb_kbd.c')
-rw-r--r--common/usb_kbd.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/common/usb_kbd.c b/common/usb_kbd.c
index 2ca3767ec..1ad67caf1 100644
--- a/common/usb_kbd.c
+++ b/common/usb_kbd.c
@@ -104,6 +104,11 @@ struct usb_kbd_pdata {
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. */
void usb_kbd_generic_poll(void)
{
@@ -349,6 +354,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 (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);
usb_kbd_dev = (struct usb_device *)dev->priv;
data = usb_kbd_dev->privptr;