[vortex] [CFT] 3c59x.c for 2.2.18-pre

Andrew Morton andrewm@uow.edu.au
Fri, 20 Oct 2000 00:48:00 +1100


Gentlemen,

could you please test a proposed update of the 2.2.18 kernel's
3c59x.c driver?

It is at http://www.uow.edu.au/~andrewm/linux/3c59x-2.2.18-pre16-1.gz .
You don't need to upgrade your 2.2 kernel to test this - it should
just drop into 2.2.anything.

The changelog is at
http://www.uow.edu.au/~andrewm/linux/3c59x-2.2-changelog.txt.
The relevant excerpt is included below.

Thanks.


   19 October 2000, Kernel 2.2.18-pre16
   ====================================

    - Added support for the 3c556B mini-PCI NICs.  These devices
      are found in HP Omnibooks and IBM Thinkpad A10's.  This support
      involves changes to the EEPROM handling and is still not fully
      correct - the driver needs an rmmod/insmod after a power
      management resume.  Until we can find a datasheet for the EEPROM
      handling this is better than nothing.

      (Jon Chen, Louis Gerbarg, Fred Maciel).

    - Backported the transceiver options handling from 2.4.

      This is a slight non-upward-compatible change for this
      driver - where previously you had

         modprobe 3c59x options=0x08

      to force full duplex, you now need

         modprobe 3c59x options=0x200.

      So the bit has moved.  This is to allow media override of
      media interfaces 8-15.

      But you should not use `options=0x200'.  Use
      `full_duplex=1' instead.

      (Maciej Rozycki)

    - Reworked the semantics of the `full_duplex' module parm.  I
      never understood how this was supposed to work anyway.

      It is now unambiguous.  If you use `full_duplex=1' you
      always get full duplex.  If you use `full_duplex=0' you always
      get half duplex.

      If you use full_duplex=-1 you get the standard
      autoneg/autodetect/whatever behaviour.  -1 is a no-op.  This is
      done so if you have more than one 3c59x NIC you can force duplex
      on some and leave others to autodetect.  For example,

        modprobe 3c59x full_duplex=1,-1,0

      will force NIC 0 to full duplex, will force NIC 2 to half
      duplex and will leave NIC 1 alone to autodetect.

    - Removed all the code inside `#ifdef CARDBUS'.  This driver
      does not support Cardbus devices - see the pcmcia-cs 3c575_cb.c
      driver fork for that.

    - Backported the INVERT_MII_PWR, EEPROM_8BIT and
      EEPROM_OFFSET flags from various places and used them.

    - Use EPROM_8BIT for the 3c555.  There are now four reports
      that the driver doesn't work without this change, so I'm
      convinced.

      (Fred Maciel)

    - Merged the Wake-on-LAN support from one of Donald's drivers.

      (Georg Engstrand)

    - Merged back the 2.4 driver's Rx out-of-memory handling. 
      Backed out the 24Jun00 minimal handling of this.

    - Replace suser() with capable(CAP_NET_ADMIN) in ioctl().