summaryrefslogtreecommitdiff
path: root/net/net.c
diff options
context:
space:
mode:
authorBartlomiej Sieka <tur@semihalf.com>2008-10-01 15:26:28 +0200
committerWolfgang Denk <wd@denx.de>2008-10-18 21:54:00 +0200
commit49f3bdbba8071f56d950a9498b6cdb998b35340a (patch)
treee4e3e05eef80c0493024431f905bccd5924cfa60 /net/net.c
parentc68a05feeb88de9fcf158e67ff6423c4cc988f88 (diff)
downloadu-boot-imx-49f3bdbba8071f56d950a9498b6cdb998b35340a.zip
u-boot-imx-49f3bdbba8071f56d950a9498b6cdb998b35340a.tar.gz
u-boot-imx-49f3bdbba8071f56d950a9498b6cdb998b35340a.tar.bz2
net: express the first argument to NetSetTimeout() in milliseconds
Enforce millisecond semantics of the first argument to NetSetTimeout() -- the change is transparent for well-behaving boards (CFG_HZ == 1000 and get_timer() countiing in milliseconds). Rationale for this patch is to enable millisecond granularity for network-related timeouts, which is needed for the upcoming automatic software update feature. Summary of changes: - do not scale the first argument to NetSetTimeout() by CFG_HZ - change timeout values used in the networking code to milliseconds Signed-off-by: Rafal Czubak <rcz@semihalf.com> Signed-off-by: Bartlomiej Sieka <tur@semihalf.com> Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
Diffstat (limited to 'net/net.c')
-rw-r--r--net/net.c19
1 files changed, 7 insertions, 12 deletions
diff --git a/net/net.c b/net/net.c
index 313d5d8..80262b9 100644
--- a/net/net.c
+++ b/net/net.c
@@ -95,14 +95,9 @@
DECLARE_GLOBAL_DATA_PTR;
#ifndef CONFIG_ARP_TIMEOUT
-# define ARP_TIMEOUT 50UL /* Deciseconds before trying ARP again */
-#elif (CONFIG_ARP_TIMEOUT < 100)
-# error "Due to possible overflow CONFIG_ARP_TIMEOUT must be greater than 100ms"
+# define ARP_TIMEOUT 5000UL /* Milliseconds before trying ARP again */
#else
-# if (CONFIG_ARP_TIMEOUT % 100)
-# warning "Supported ARP_TIMEOUT precision is 100ms"
-# endif
-# define ARP_TIMEOUT (CONFIG_ARP_TIMEOUT / 100)
+# define ARP_TIMEOUT CONFIG_ARP_TIMEOUT
#endif
@@ -264,7 +259,7 @@ void ArpTimeoutCheck(void)
t = get_timer(0);
/* check for arp timeout */
- if ((t - NetArpWaitTimerStart) > ARP_TIMEOUT * CFG_HZ / 10) {
+ if ((t - NetArpWaitTimerStart) > ARP_TIMEOUT) {
NetArpWaitTry++;
if (NetArpWaitTry >= ARP_TIMEOUT_COUNT) {
@@ -603,7 +598,7 @@ void NetStartAgain (void)
return;
}
#ifndef CONFIG_NET_MULTI
- NetSetTimeout (10UL * CFG_HZ, startAgainTimeout);
+ NetSetTimeout (10000UL, startAgainTimeout);
NetSetHandler (startAgainHandler);
#else /* !CONFIG_NET_MULTI*/
eth_halt ();
@@ -614,7 +609,7 @@ void NetStartAgain (void)
if (NetRestartWrap) {
NetRestartWrap = 0;
if (NetDevExists && !once) {
- NetSetTimeout (10UL * CFG_HZ, startAgainTimeout);
+ NetSetTimeout (10000UL, startAgainTimeout);
NetSetHandler (startAgainHandler);
} else {
NetState = NETLOOP_FAIL;
@@ -790,7 +785,7 @@ static void PingStart(void)
#if defined(CONFIG_NET_MULTI)
printf ("Using %s device\n", eth_get_name());
#endif /* CONFIG_NET_MULTI */
- NetSetTimeout (10UL * CFG_HZ, PingTimeout);
+ NetSetTimeout (10000UL, PingTimeout);
NetSetHandler (PingHandler);
PingSend();
@@ -813,7 +808,7 @@ static void PingStart(void)
#define CDP_SYSOBJECT_TLV 0x0015
#define CDP_MANAGEMENT_ADDRESS_TLV 0x0016
-#define CDP_TIMEOUT (CFG_HZ/4) /* one packet every 250ms */
+#define CDP_TIMEOUT 250UL /* one packet every 250ms */
static int CDPSeq;
static int CDPOK;