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);
|