Following patch updates ISA ewrk3 driver for 2.4. Still no SMP support
sadly. Though if you're using an ewrk3 card on an SMP machine then you
have bigger problems than a non-working driver.

--- ewrk3.c.orig        Wed Jan 17 09:56:45 2001
+++ ewrk3.c     Wed Jan 17 10:05:21 2001
@@ -819,24 +819,24 @@
                                        }
                                        outb(page, EWRK3_TQ);   /* Start sending pkt */
                                } else {
-                                       writeb((char) (TCR_QMODE | TCR_PAD | TCR_IFC), 
(char *) buf);   /* ctrl byte */
+                                       isa_writeb((char) (TCR_QMODE | TCR_PAD | 
+TCR_IFC), buf);        /* ctrl byte */
                                        buf += 1;
-                                       writeb((char) (skb->len & 0xff), (char *) 
buf);         /* length (16 bit xfer) */
+                                       isa_writeb((char) (skb->len & 0xff), buf);     
+         /* length (16 bit xfer) */
                                        buf += 1;
                                        if (lp->txc) {
-                                               writeb((char) (((skb->len >> 8) & 
0xff) | XCT), (char *) buf);
+                                               isa_writeb((char) (((skb->len >> 8) & 
+0xff) | XCT), buf);
                                                buf += 1;
-                                               writeb(0x04, (char *) buf);     /* 
index byte */
+                                               isa_writeb(0x04, buf);  /* index byte 
+*/
                                                buf += 1;
-                                               writeb(0x00, (char *) (buf + 
skb->len));        /* Write the XCT flag */
+                                               isa_writeb(0x00, (buf + skb->len));    
+ /* Write the XCT flag */
                                                isa_memcpy_toio(buf, skb->data, 
PRELOAD);       /* Write PRELOAD bytes */
                                                outb(page, EWRK3_TQ);   /* Start 
sending pkt */
                                                isa_memcpy_toio(buf + PRELOAD, 
skb->data + PRELOAD, skb->len - PRELOAD);
-                                               writeb(0xff, (char *) (buf + 
skb->len));        /* Write the XCT flag */
+                                               isa_writeb(0xff, (buf + skb->len));    
+ /* Write the XCT flag */
                                        } else {
-                                               writeb((char) ((skb->len >> 8) & 
0xff), (char *) buf);
+                                               isa_writeb((char) ((skb->len >> 8) & 
+0xff), buf);
                                                buf += 1;
-                                               writeb(0x04, (char *) buf);     /* 
index byte */
+                                               isa_writeb(0x04, buf);  /* index byte 
+*/
                                                buf += 1;
                                                isa_memcpy_toio(buf, skb->data, 
skb->len);              /* Write data bytes */
                                                outb(page, EWRK3_TQ);   /* Start 
sending pkt */
@@ -968,9 +968,9 @@
                                        pkt_len = inb(EWRK3_DATA);
                                        pkt_len |= ((u_short) inb(EWRK3_DATA) << 8);
                                } else {
-                                       rx_status = readb(buf);
+                                       rx_status = isa_readb(buf);
                                        buf += 1;
-                                       pkt_len = readw(buf);
+                                       pkt_len = isa_readw(buf);
                                        buf += 3;
                                }
 
@@ -1204,7 +1204,7 @@
                        if (lp->shmem_length == IO_ONLY) {
                                outb(0xff, EWRK3_DATA);
                        } else {        /* memset didn't work here */
-                               writew(0xffff, p);
+                               isa_writew(0xffff, (int) p);
                                p++;
                                i++;
                        }
@@ -1221,8 +1221,8 @@
                                outb(0x00, EWRK3_DATA);
                        }
                } else {
-                       memset_io(lp->mctbl, 0, (HASH_TABLE_LEN >> 3));
-                       writeb(0x80, (char *) (lp->mctbl + (HASH_TABLE_LEN >> 4) - 1));
+                       isa_memset_io((int) lp->mctbl, 0, (HASH_TABLE_LEN >> 3));
+                       isa_writeb(0x80, (int) (lp->mctbl + (HASH_TABLE_LEN >> 4) - 
+1));
                }
 
                /* Update table */
@@ -1251,7 +1251,7 @@
                                        outw((short) ((long) lp->mctbl) + byte, 
EWRK3_PIR1);
                                        outb(tmp, EWRK3_DATA);
                                } else {
-                                       writeb(readb(lp->mctbl + byte) | bit, 
lp->mctbl + byte);
+                                       isa_writeb(isa_readb((int)(lp->mctbl + byte)) 
+| bit, (int)(lp->mctbl + byte));
                                }
                        }
                }

Reply via email to