summaryrefslogtreecommitdiffstats
path: root/src/drivers/net/3c90x.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers/net/3c90x.c')
-rw-r--r--src/drivers/net/3c90x.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/drivers/net/3c90x.c b/src/drivers/net/3c90x.c
index 4f836b95..8e1f160e 100644
--- a/src/drivers/net/3c90x.c
+++ b/src/drivers/net/3c90x.c
@@ -34,6 +34,8 @@
* v2.01 5-26-2003 NN Fixed driver alignment issue which
* caused system lockups if driver structures
* not 8-byte aligned.
+ * v2.02 11-28-2007 GSt Got polling working again by replacing
+ * "for(i=0;i<40000;i++);" with "mdelay(1);"
*
*/
@@ -613,7 +615,7 @@ a3c90x_transmit(struct nic *nic __unused, const char *d, unsigned int t,
static int
a3c90x_poll(struct nic *nic, int retrieve)
{
- int i, errcode;
+ int errcode;
if (!(inw(INF_3C90X.IOAddr + regCommandIntStatus_w)&0x0010))
{
@@ -637,9 +639,9 @@ a3c90x_poll(struct nic *nic, int retrieve)
INF_3C90X.IOAddr + regUpListPtr_l);
/** Wait for upload completion (upComplete(15) or upError (14)) **/
- for(i=0;i<40000;i++);
+ mdelay(1);
while((INF_3C90X.ReceiveUPD.UpPktStatus & ((1<<14) | (1<<15))) == 0)
- for(i=0;i<40000;i++);
+ mdelay(1);
/** Check for Error (else we have good packet) **/
if (INF_3C90X.ReceiveUPD.UpPktStatus & (1<<14))
@@ -779,7 +781,7 @@ static int a3c90x_probe ( struct nic *nic, struct pci_device *pci ) {
}
/** Print identification message **/
- printf("\n\n3C90X Driver 2.00 "
+ printf("\n\n3C90X Driver 2.02 "
"Copyright 1999 LightSys Technology Services, Inc.\n"
"Portions Copyright 1999 Steve Smith\n");
printf("Provided with ABSOLUTELY NO WARRANTY.\n");