From: Daniel Mack Date: Fri, 5 Dec 2008 15:40:31 +0100 Subject: [U-Boot] [PATCH] net/net.c: add get_timer_ms() In-Reply-To: <4938CECF.6090901@gmail.com> References: <20081128162529.GA14044@buzzloop.caiaq.de> <20081203005808.GD2012@buzzloop.caiaq.de> <4938CECF.6090901@gmail.com> Message-ID: <20081205144031.GB1821@buzzloop.caiaq.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Make timeout implementation in net/net.c take into account the CONFIG_SYS_HZ variable. This is needed for all CPUs where the default timer is running on anything else than 1000. Signed-off-by: Daniel Mack --- net/net.c | 15 ++++++++++----- 1 files changed, 10 insertions(+), 5 deletions(-) diff --git a/net/net.c b/net/net.c index 77e83b5..1c48236 100644 --- a/net/net.c +++ b/net/net.c @@ -206,6 +206,11 @@ uchar NetArpWaitPacketBuf[PKTSIZE_ALIGN + PKTALIGN]; ulong NetArpWaitTimerStart; int NetArpWaitTry; +static long get_timer_ms(long base) +{ + return get_timer(base) / (CONFIG_SYS_HZ / 1000); +} + void ArpRequest (void) { int i; @@ -256,7 +261,7 @@ void ArpTimeoutCheck(void) if (!NetArpWaitPacketIP) return; - t = get_timer(0); + t = get_timer_ms(0); /* check for arp timeout */ if ((t - NetArpWaitTimerStart) > ARP_TIMEOUT) { @@ -517,7 +522,7 @@ restart: * Check for a timeout, and run the timeout handler * if we have one. */ - if (timeHandler && ((get_timer(0) - timeStart) > timeDelta)) { + if (timeHandler && ((get_timer_ms(0) - timeStart) > timeDelta)) { thand_f *x; #if defined(CONFIG_MII) || defined(CONFIG_CMD_MII) @@ -639,7 +644,7 @@ NetSetTimeout(ulong iv, thand_f * f) timeHandler = (thand_f *)0; } else { timeHandler = f; - timeStart = get_timer(0); + timeStart = get_timer_ms(0); timeDelta = iv; } } @@ -684,7 +689,7 @@ NetSendUDPPacket(uchar *ether, IPaddr_t dest, int dport, int sport, int len) /* and do the ARP request */ NetArpWaitTry = 1; - NetArpWaitTimerStart = get_timer(0); + NetArpWaitTimerStart = get_timer_ms(0); ArpRequest(); return 1; /* waiting */ } @@ -755,7 +760,7 @@ int PingSend(void) /* and do the ARP request */ NetArpWaitTry = 1; - NetArpWaitTimerStart = get_timer(0); + NetArpWaitTimerStart = get_timer_ms(0); ArpRequest(); return 1; /* waiting */ } -- 1.5.6.5