|
@@ -34,6 +34,8 @@
|
34
|
34
|
* v2.01 5-26-2003 NN Fixed driver alignment issue which
|
35
|
35
|
* caused system lockups if driver structures
|
36
|
36
|
* not 8-byte aligned.
|
|
37
|
+ * v2.02 11-28-2007 GSt Got polling working again by replacing
|
|
38
|
+ * "for(i=0;i<40000;i++);" with "mdelay(1);"
|
37
|
39
|
*
|
38
|
40
|
*/
|
39
|
41
|
|
|
@@ -613,7 +615,7 @@ a3c90x_transmit(struct nic *nic __unused, const char *d, unsigned int t,
|
613
|
615
|
static int
|
614
|
616
|
a3c90x_poll(struct nic *nic, int retrieve)
|
615
|
617
|
{
|
616
|
|
- int i, errcode;
|
|
618
|
+ int errcode;
|
617
|
619
|
|
618
|
620
|
if (!(inw(INF_3C90X.IOAddr + regCommandIntStatus_w)&0x0010))
|
619
|
621
|
{
|
|
@@ -637,9 +639,9 @@ a3c90x_poll(struct nic *nic, int retrieve)
|
637
|
639
|
INF_3C90X.IOAddr + regUpListPtr_l);
|
638
|
640
|
|
639
|
641
|
/** Wait for upload completion (upComplete(15) or upError (14)) **/
|
640
|
|
- for(i=0;i<40000;i++);
|
|
642
|
+ mdelay(1);
|
641
|
643
|
while((INF_3C90X.ReceiveUPD.UpPktStatus & ((1<<14) | (1<<15))) == 0)
|
642
|
|
- for(i=0;i<40000;i++);
|
|
644
|
+ mdelay(1);
|
643
|
645
|
|
644
|
646
|
/** Check for Error (else we have good packet) **/
|
645
|
647
|
if (INF_3C90X.ReceiveUPD.UpPktStatus & (1<<14))
|
|
@@ -779,7 +781,7 @@ static int a3c90x_probe ( struct nic *nic, struct pci_device *pci ) {
|
779
|
781
|
}
|
780
|
782
|
|
781
|
783
|
/** Print identification message **/
|
782
|
|
- printf("\n\n3C90X Driver 2.00 "
|
|
784
|
+ printf("\n\n3C90X Driver 2.02 "
|
783
|
785
|
"Copyright 1999 LightSys Technology Services, Inc.\n"
|
784
|
786
|
"Portions Copyright 1999 Steve Smith\n");
|
785
|
787
|
printf("Provided with ABSOLUTELY NO WARRANTY.\n");
|