[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