diff options
| author | Michael Brown | 2008-03-10 14:02:53 +0100 |
|---|---|---|
| committer | Michael Brown | 2008-03-10 14:02:53 +0100 |
| commit | 3e781eb87f7b5bfa638f94234bb5e9d64508b0a4 (patch) | |
| tree | 5884ac0438320638c846166856a4b54b3564bd23 /src/drivers/net/3c90x.c | |
| parent | [PXE] Work around a buffer-size bug in WinPE (diff) | |
| parent | Use plain C in timer_rdtsc for division instead of inline asssembly. (diff) | |
| download | ipxe-3e781eb87f7b5bfa638f94234bb5e9d64508b0a4.tar.gz ipxe-3e781eb87f7b5bfa638f94234bb5e9d64508b0a4.tar.xz ipxe-3e781eb87f7b5bfa638f94234bb5e9d64508b0a4.zip | |
Merge branch 'xl0-timer'
Diffstat (limited to 'src/drivers/net/3c90x.c')
| -rw-r--r-- | src/drivers/net/3c90x.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/drivers/net/3c90x.c b/src/drivers/net/3c90x.c index 8e1f160ea..8158239d6 100644 --- a/src/drivers/net/3c90x.c +++ b/src/drivers/net/3c90x.c @@ -43,7 +43,6 @@ #include "nic.h" #include <gpxe/pci.h> #include <gpxe/ethernet.h> -#include "timer.h" static struct nic_operations a3c90x_operations; @@ -498,6 +497,7 @@ a3c90x_transmit(struct nic *nic __unused, const char *d, unsigned int t, unsigned char status; unsigned i, retries; + tick_t ct; for (retries=0; retries < XMIT_RETRIES ; retries++) { @@ -540,9 +540,10 @@ a3c90x_transmit(struct nic *nic __unused, const char *d, unsigned int t, ; /** Wait for NIC Transmit to Complete **/ - load_timer2(10*TICKS_PER_MS); /* Give it 10 ms */ + ct = currticks(); + while (!(inw(INF_3C90X.IOAddr + regCommandIntStatus_w)&0x0004) && - timer2_running()) + ct + 10*USECS_IN_MSEC < currticks()); ; if (!(inw(INF_3C90X.IOAddr + regCommandIntStatus_w)&0x0004)) |
