9
0
Fork 0

use timeout loop instead of udelay/counter combination

This commit is contained in:
Sascha Hauer 2007-09-11 10:22:00 +02:00
parent 3fc674cc51
commit 13e43a3536
1 changed files with 4 additions and 5 deletions

View File

@ -24,6 +24,7 @@
#include <driver.h>
#include <init.h>
#include <miiphy.h>
#include <clock.h>
int miiphy_restart_aneg(struct miiphy_device *mdev)
{
@ -67,17 +68,15 @@ int miiphy_restart_aneg(struct miiphy_device *mdev)
int miiphy_wait_aneg(struct miiphy_device *mdev)
{
int timeout = 1;
uint64_t start;
uint16_t status;
/*
* Wait for AN completion
*/
timeout = 5000;
start = get_time_ns();
do {
udelay(1000);
if (!timeout--) {
if (is_timeout(start, 5 * SECOND)) {
printf("%s: Autonegotiation timeout\n", mdev->dev.id);
return -1;
}