[vortex] 3c905C: Packet losses (a more precise description)
Donald Becker
becker@scyld.com
Wed, 5 Jul 2000 21:54:27 -0400 (EDT)
On Thu, 6 Jul 2000, Andrew Morton wrote:
> Andrew Morton wrote:
> > Untested patch:
> > /* Set the full-duplex bit. */
> > outb(((vp->info1 & 0x8000) || vp->full_duplex ? 0x20 : 0) |
>
> ^^^^ Make this an outw
>
> > - (dev->mtu > 1500 ? 0x40 : 0), ioaddr + Wn3_MAC_Ctrl);
> > + (dev->mtu > 1500 ? 0x40 : 0) | 0x100, ioaddr + Wn3_MAC_Ctrl);
Errrmm, no, that's not right either.
You should never force-on flow control unless you are in full duplex mode.
And you really shouldn't enable flow control when you haven't negotiated
it. Otherwise you might stop transmitting when someone sends network-wide
flow control packets.
I recall reading a section that stated the flow control bit would be set
automatically based on the autonegotiation results. Writing the upper byte
of Wn3_MAC_Ctrl would override the automatic setting. Thus the driver only
writes the lower byte. However, I can't find the note stating this.
Perhaps I just dreamed it.
Donald Becker becker@scyld.com
Scyld Computing Corporation http://www.scyld.com
410 Severn Ave. Suite 210 Beowulf Clusters / Linux Installations
Annapolis MD 21403