1
0
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:
Bartlomiej Sieka
2008-10-01 15:26:28 +02:00
committed by Wolfgang Denk
parent c68a05feeb
commit 49f3bdbba8
7 changed files with 28 additions and 33 deletions

View File

@@ -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;