mirror of
https://xff.cz/git/u-boot/
synced 2025-09-01 08:42:12 +02:00
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>
This commit is contained in:
committed by
Wolfgang Denk
parent
c68a05feeb
commit
49f3bdbba8
19
net/net.c
19
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;
|
||||
|
Reference in New Issue
Block a user