[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().