[patch] drivers/net/3c59x.c

From: Andrew Morton (andrewm@uow.edu.au)
Date: Sun Aug 13 2000 - 08:29:51 EST


Linus,

this is a resend of the July 2 patch, plus some additional fixes.
The patch against test7-pre2 is at

        http://www.uow.edu.au/~andrewm/linux/3c59x.patch

Outstanding problems:

- Very occasional tx timeouts on collisiony 10bT LANs. The driver
  recovers OK. dhinds suspects a h/w bug and has a workaround
  in 3c575_cb.c beta. We're still trying to reproduce/explain/fix
  this for 3c59x.c.

- Timeouts issuing TxReset and RxReset after an APM resume. The
  resumes work OK, but this needs to be addressed.

  Linux PM seems generally a bit sick at present. Lots of "cs:
  socket cff21800 timed out during reset" at startup and resume,
  plus a few total system freizures at resume.

Changelog:

LK1.1.7 2 Jul 2000

   - The driver wasn't being a good citizen in shared PCI
     interrupt situations. Put an explicit test at the start of the
     ISR.

   - Reset the transmitter when a txReclaim error occurs, as per
     the datasheet.

   - The driver would crash the machine if ALL 32
     dev_alloc_skb()'s failed at initialisation. Now, we return
     -ENOMEM and fail the open() if we can't allocate all the skbs.

   - The driver would stop receiving and would require ifdown/ifup
     if it completely ran out of Rx skbs during operation. (This is
     caused by low memory).

     Added the rx_oom_timer stuff to start polling once per second
     if this happens.

   - The spinlocks around the mdio access functions were blocking
     interrupts for 300uSecs on a 400MHz machine. So these were made
     more granular and were replaced with spin_lock_bh().

   - Make the writes to TxFreeThreshold boomerang-only. This
     register is reserved on other NICs.

   - Added 802.3x MAC-layer flow control support. See
     Documentation/networking/vortex.txt.

LK1.1.8 13 Aug 2000

   - Don't fail initialisation if request_region() fails. This is
     because the PCMCIA code may have already allocated it.

   - Added support for 3c556 mini-PCI NICs.

   - Fixed EISA initialisation problem

   - Renamed MII_XCVR_PWR and EEPROM_230 to align with 3c575_cb
     and D. Becker's drivers.

   - Changed 3CCFE575CT initialisation to use MII_XCVR_PWR - now
     the 575 initialises correctly!

   - Added the INVERT_LED_PWR flag. Used it in place of various
     open-coded grot.

   - Removed all the `extra_reset' cruft which was a semi-solution
     to the 3CCFE575CT initialisation problem.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Tue Aug 15 2000 - 21:00:30 EST