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

2013-08-12 Thread Stephen Warren
On 08/11/2013 12:08 PM, Marek Vasut wrote:
 Dear Jim Lin,
 
 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.

 diff --git a/include/usb.h b/include/usb.h

 +extern int __maybe_unused net_busy_flag;
 
 I wonder what would happen if you declared it here as
 
 static int __maybe_unused
 
 Would it have some side-effects?

Then each file that includes this header will get a separate copy of the
variable.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


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

2013-08-12 Thread Marek Vasut
Dear Stephen Warren,

 On 08/11/2013 12:08 PM, Marek Vasut wrote:
  Dear Jim Lin,
  
  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.
  
  diff --git a/include/usb.h b/include/usb.h
  
  +extern int __maybe_unused net_busy_flag;
  
  I wonder what would happen if you declared it here as
  
  static int __maybe_unused
  
  Would it have some side-effects?
 
 Then each file that includes this header will get a separate copy of the
 variable.

Ah, you're right.

Best regards,
Marek Vasut
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


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

2013-08-11 Thread Marek Vasut
Dear Jim Lin,

 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 ji...@nvidia.com
 ---
 Changes in v2:
  1. Change configuration name from CONFIG_CTRLC_POLL_MS to
 CONFIG_CTRLC_POLL_S. 2. New code will be executed only when
 CONFIG_CTRLC_POLL_S is defined in configuration header file.
  3. Add description in README.console.
 Changes in v3:
  1. Move changes to common/usb_kbd.c and doc/README.usb
  2. Rename config setting to CONFIG_USBKB_TESTC_PERIOD.
  3. Remove slow response on USB-keyboard input when TFTP boot is not
 running. Changes in v4:
  1. Remove changes in doc/README.usb, common/usb_kbd.c and
 CONFIG_USBKB_TESTC_PERIOD
  2. Modify net/net.c
 Changes in v5:
  1. Change variable name to ctrlc_t_start.
  2. Use two calls of get_timer(0) to get time gap.
 Changes in v6:
  1. In common/usb_kbd.c, check net_busy_flag to determine whether we poll
 USB keyboard status.
  2. In include/usb.h, add external variable declaration net_busy_flag
 Changes in v7:
  1. In common/usb_kbd.c and include/usb.h, add #ifdef CONFIG_CMD_NET.
  2. In common/usb_kbd.c, modify code to get correct time gap.
 Changes in v8:
  1. Add __maybe_unused for variable kbd_testc_tms.
 
  common/usb_kbd.c |   13 +
  include/usb.h|2 +-
  2 files changed, 14 insertions(+), 1 deletions(-)
 
 diff --git a/common/usb_kbd.c b/common/usb_kbd.c
 index 3174b5e..4e7b304 100644
 --- a/common/usb_kbd.c
 +++ b/common/usb_kbd.c
 @@ -121,6 +121,9 @@ struct usb_kbd_pdata {
   uint8_t flags;
  };
 
 +/* 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)
  {
 @@ -366,6 +369,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;
 diff --git a/include/usb.h b/include/usb.h
 index d7b082d..5c95bf5 100644
 --- a/include/usb.h
 +++ b/include/usb.h
 @@ -206,7 +206,7 @@ int usb_host_eth_scan(int mode);
 
  int drv_usb_kbd_init(void);
  int usb_kbd_deregister(void);
 -
 +extern int __maybe_unused net_busy_flag;

I wonder what would happen if you declared it here as

static int __maybe_unused

Would it have some side-effects?

  #endif
  /* routines */
  int usb_init(void); /* initialize the USB Controller */

Othewise,

Acked-by: Marek Vasut ma...@denx.de

Best regards,
Marek Vasut
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


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

2013-08-09 Thread Jim Lin
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 ji...@nvidia.com
---
Changes in v2:
 1. Change configuration name from CONFIG_CTRLC_POLL_MS to CONFIG_CTRLC_POLL_S.
 2. New code will be executed only when CONFIG_CTRLC_POLL_S is defined in
configuration header file.
 3. Add description in README.console.
Changes in v3:
 1. Move changes to common/usb_kbd.c and doc/README.usb
 2. Rename config setting to CONFIG_USBKB_TESTC_PERIOD.
 3. Remove slow response on USB-keyboard input when TFTP boot is not running.
Changes in v4:
 1. Remove changes in doc/README.usb, common/usb_kbd.c and
CONFIG_USBKB_TESTC_PERIOD 
 2. Modify net/net.c
Changes in v5:
 1. Change variable name to ctrlc_t_start.
 2. Use two calls of get_timer(0) to get time gap.
Changes in v6:
 1. In common/usb_kbd.c, check net_busy_flag to determine whether we poll
USB keyboard status.
 2. In include/usb.h, add external variable declaration net_busy_flag
Changes in v7:
 1. In common/usb_kbd.c and include/usb.h, add #ifdef CONFIG_CMD_NET.
 2. In common/usb_kbd.c, modify code to get correct time gap.
Changes in v8:
 1. Add __maybe_unused for variable kbd_testc_tms.

 common/usb_kbd.c |   13 +
 include/usb.h|2 +-
 2 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/common/usb_kbd.c b/common/usb_kbd.c
index 3174b5e..4e7b304 100644
--- a/common/usb_kbd.c
+++ b/common/usb_kbd.c
@@ -121,6 +121,9 @@ struct usb_kbd_pdata {
uint8_t flags;
 };
 
+/* 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)
 {
@@ -366,6 +369,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;
diff --git a/include/usb.h b/include/usb.h
index d7b082d..5c95bf5 100644
--- a/include/usb.h
+++ b/include/usb.h
@@ -206,7 +206,7 @@ int usb_host_eth_scan(int mode);
 
 int drv_usb_kbd_init(void);
 int usb_kbd_deregister(void);
-
+extern int __maybe_unused net_busy_flag;
 #endif
 /* routines */
 int usb_init(void); /* initialize the USB Controller */
-- 
1.7.7

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot