From: NIIBE Y. <gn...@ch...> - 2000-05-14 08:35:26
|
Hello Kaz, I'm using SolutionEngine SH7709A now. The network driver is sometimes unstable stalling the communication. Waiting much time, it works. Without good reason, I've added curses at stnic_block_output, looking comment of "oaknet.c". Then, it works fine. I don't know if this is good or not. I don't commit this patch for myself. Mitch, could you please add this for the open patches list? -------------------------- Index: drivers/net/stnic.c =================================================================== RCS file: /cvsroot/linuxsh/kernel/drivers/net/stnic.c,v retrieving revision 1.1 diff -u -r1.1 stnic.c --- drivers/net/stnic.c 2000/05/09 00:13:59 1.1 +++ drivers/net/stnic.c 2000/05/14 08:24:28 @@ -175,7 +175,7 @@ *(vhalf *) PA_83902_RST = 0; udelay (5); if (ei_debug > 1) - printk("8390 reset done (%ld).", jiffies); + printk("8390 reset done (%ld).\n", jiffies); *(vhalf *) PA_83902_RST = ~0; udelay (5); } @@ -253,9 +253,17 @@ stnic_block_output (struct net_device *dev, int length, const unsigned char *buf, int output_page) { - +#if 0 STNIC_WRITE (PG0_RBCR0, 1); STNIC_WRITE (STNIC_CR, CR_RRD | CR_PG0 | CR_STA); +#else /* XXX: I don't know why but this works. -- gniibe */ + STNIC_WRITE (PG0_RBCR0, 0x42); + STNIC_WRITE (PG0_RBCR1, 0x00); + STNIC_WRITE (PG0_RBCR0, 0x42); + STNIC_WRITE (PG0_RBCR1, 0x00); + STNIC_WRITE (STNIC_CR, CR_RRD | CR_PG0 | CR_STA); + STNIC_DELAY (); +#endif STNIC_WRITE (PG0_RSAR0, 0); STNIC_WRITE (PG0_RSAR1, output_page); |