#include <linux/delay.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
-#include <linux/jiffies.h>
#include <asm/system.h>
#include <asm/io.h>
#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
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);
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;
/* 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)
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
/* 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;
}
#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);
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;