New test version of eepro100.c

Donald Becker becker@cesdis1.gsfc.nasa.gov
Sat Jul 31 17:14:28 1999


On Sat, 31 Jul 1999, Linus Torvalds wrote:

>  this version resets the MII tranceiver, and still does it incorrectly as
> far as I can tell.

Hmmm, I don't see what you are talking about.

The only place the MII transceiver is reset is in speedo_tx_timeout(), which
is only called when something goes horribly wrong.  The reset is reportedly
required, because the problem may sometimes be in the transceiver.

[[ Note: the reset there does have a problem -- it doesn't properly restore
the advertised capabilities and forced settings. ]]

> It doesn't take the passed-in options into account, so
> it gets it wrong if the user had to override something. It's the code that
> used to be inside

This code is now inside 
#if 0
...
#ifdef honor_default_port
#endif
#endif

The proper way to override the transceiver either with a
fixed-speed/fixed-duplex option, or using 'mii-diag' (the ioctl() interface).

> and I know from personal experience that it results in a completely dead
> network card if it triggers..

The current reset code does work -- the on-board i82558 on the VAIO I was
loaned (alas, it had to be returned yesterday) needed it after a suspend to
restore operation. 

Before the VAIO I had spent a week trying to get the partial reset/restart
code to do the right thing.  If the chip ever stops, it appears to be
internally screwed and would quickly stop again if restarted.  I never could
get the internal-state-dump command and other diagnostics to work as
documented.  Once I had the laptop, where I knew all internal state was gone
(the station address) I gave up on the restart and just reloaded the entire
chip if something goes wrong.

I kept the dev->priv->in_interrupt flag because
   - it's still needed for the bug in 2.0.*
   - it remains a useful check for 2.2.*, given that it was an "impossible'
     case in 2.0.*
What is incorrect about it?  Can the interrupt handlers be called from
multiple processors simultaneously?

BTW, any comment on
   the pci-netif interface  (esp. grouping ACPI turn-on/turn-off w/ PCI scan)
     Documentation and open design questions are at
        ftp://cesdis.gsfc.nasa.gov/pub/linux/drivers/test/pci-netif.txt
   The usefulness of netif_wake_queue()

Donald Becker					  becker@cesdis.gsfc.nasa.gov
USRA-CESDIS, Center of Excellence in Space Data and Information Sciences.
Code 930.5, Goddard Space Flight Center,  Greenbelt, MD.  20771
301-286-0882	     http://cesdis.gsfc.nasa.gov/people/becker/whoiam.html