linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / drivers / net / ne.c
index 963a11f..94f782d 100644 (file)
@@ -50,7 +50,6 @@ static const char version2[] =
 #include <linux/delay.h>
 #include <linux/netdevice.h>
 #include <linux/etherdevice.h>
-#include <linux/jiffies.h>
 
 #include <asm/system.h>
 #include <asm/io.h>
@@ -139,9 +138,8 @@ bad_clone_list[] __initdata = {
 
 #if defined(CONFIG_PLAT_MAPPI)
 #  define DCR_VAL 0x4b
-#elif defined(CONFIG_PLAT_OAKS32R)  || \
-   defined(CONFIG_TOSHIBA_RBTX4927) || defined(CONFIG_TOSHIBA_RBTX4938)
-#  define DCR_VAL 0x48         /* 8-bit mode */
+#elif defined(CONFIG_PLAT_OAKS32R)
+#  define DCR_VAL 0x48
 #else
 #  define DCR_VAL 0x49
 #endif
@@ -227,7 +225,7 @@ struct net_device * __init ne_probe(int unit)
        netdev_boot_setup_check(dev);
 
 #ifdef CONFIG_TOSHIBA_RBTX4938
-       dev->base_addr = RBTX4938_RTL_8019_BASE;
+       dev->base_addr = 0x07f20280;
        dev->irq = RBTX4938_RTL_8019_IRQ;
 #endif
        err = do_ne_probe(dev);
@@ -343,7 +341,7 @@ static int __init ne_probe1(struct net_device *dev, int ioaddr)
                outb(inb(ioaddr + NE_RESET), ioaddr + NE_RESET);
 
                while ((inb_p(ioaddr + EN0_ISR) & ENISR_RESET) == 0)
-               if (time_after(jiffies, reset_start_time + 2*HZ/100)) {
+               if (jiffies - reset_start_time > 2*HZ/100) {
                        if (bad_card) {
                                printk(" (warning: no reset ack)");
                                break;
@@ -397,22 +395,10 @@ static int __init ne_probe1(struct net_device *dev, int ioaddr)
                /* We must set the 8390 for word mode. */
                outb_p(DCR_VAL, ioaddr + EN0_DCFG);
                start_page = NESM_START_PG;
-
-               /*
-                * Realtek RTL8019AS datasheet says that the PSTOP register
-                * shouldn't exceed 0x60 in 8-bit mode.
-                * This chip can be identified by reading the signature from
-                * the  remote byte count registers (otherwise write-only)...
-                */
-               if ((DCR_VAL & 0x01) == 0 &&            /* 8-bit mode */
-                   inb(ioaddr + EN0_RCNTLO) == 0x50 &&
-                   inb(ioaddr + EN0_RCNTHI) == 0x70)
-                       stop_page = 0x60;
-               else
-                       stop_page = NESM_STOP_PG;
+               stop_page = NESM_STOP_PG;
        } else {
                start_page = NE1SM_START_PG;
-               stop_page  = NE1SM_STOP_PG;
+               stop_page = NE1SM_STOP_PG;
        }
 
 #if  defined(CONFIG_PLAT_MAPPI) || defined(CONFIG_PLAT_OAKS32R)
@@ -522,9 +508,15 @@ static int __init ne_probe1(struct net_device *dev, int ioaddr)
        ei_status.name = name;
        ei_status.tx_start_page = start_page;
        ei_status.stop_page = stop_page;
+#if defined(CONFIG_TOSHIBA_RBTX4927) || defined(CONFIG_TOSHIBA_RBTX4938)
+       wordlength = 1;
+#endif
 
-       /* Use 16-bit mode only if this wasn't overridden by DCR_VAL */
-       ei_status.word16 = (wordlength == 2 && (DCR_VAL & 0x01));
+#ifdef CONFIG_PLAT_OAKS32R
+       ei_status.word16 = 0;
+#else
+       ei_status.word16 = (wordlength == 2);
+#endif
 
        ei_status.rx_start_page = start_page + TX_PAGES;
 #ifdef PACKETBUF_MEMSIZE
@@ -588,7 +580,7 @@ static void ne_reset_8390(struct net_device *dev)
 
        /* This check _should_not_ be necessary, omit eventually. */
        while ((inb_p(NE_BASE+EN0_ISR) & ENISR_RESET) == 0)
-               if (time_after(jiffies, reset_start_time + 2*HZ/100)) {
+               if (jiffies - reset_start_time > 2*HZ/100) {
                        printk(KERN_WARNING "%s: ne_reset_8390() did not complete.\n", dev->name);
                        break;
                }
@@ -795,7 +787,7 @@ retry:
 #endif
 
        while ((inb_p(nic_base + EN0_ISR) & ENISR_RDC) == 0)
-               if (time_after(jiffies, dma_start + 2*HZ/100)) {                /* 20ms */
+               if (jiffies - dma_start > 2*HZ/100) {           /* 20ms */
                        printk(KERN_WARNING "%s: timeout waiting for Tx RDC.\n", dev->name);
                        ne_reset_8390(dev);
                        NS8390_init(dev,1);
@@ -829,7 +821,7 @@ that the ne2k probe is the last 8390 based probe to take place (as it
 is at boot) and so the probe will get confused by any other 8390 cards.
 ISA device autoprobes on a running machine are not recommended anyway. */
 
-int __init init_module(void)
+int init_module(void)
 {
        int this_dev, found = 0;