kernel-fxtec-pro1x/drivers/net/sfc
Ben Hutchings d3245b28ef sfc: Refactor link configuration
Refactor PHY, MAC and NIC configuration operations so that the
existing link configuration can be re-pushed with:

	efx->phy_op->reconfigure(efx);
	efx->mac_op->reconfigure(efx);

and a new configuration with:

	efx->nic_op->reconfigure_port(efx);

(plus locking and error-checking).

We have not held the link settings in software (aside from flow
control), and have relied on asking the hardware what they are.  This
is a problem because in some cases the hardware may no longer be in a
state to tell us.  In particular, if an entire multi-port board is
reset through one port, the driver bindings to other ports have no
chance to save settings before recovering.

We only actually need to keep track of the autonegotiation settings,
so add an ethtool advertising mask to struct efx_nic, initialise it
in PHY init and update it as necessary.

Remove now-unneeded uses of efx_phy_op::{get,set}_settings() and
struct ethtool_cmd.

Much of this was done by Steve Hodgson <shodgson@solarflare.com>.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2009-11-29 16:46:28 -08:00
..
bitfield.h sfc: Remove versioned bitfield macros 2009-10-24 04:26:56 -07:00
efx.c sfc: Refactor link configuration 2009-11-29 16:46:28 -08:00
efx.h sfc: Refactor link configuration 2009-11-29 16:46:28 -08:00
enum.h sfc: Log interrupt and reset type names, not numbers 2009-11-24 10:59:04 -08:00
ethtool.c sfc: Refactor link configuration 2009-11-29 16:46:28 -08:00
falcon.c sfc: Refactor link configuration 2009-11-29 16:46:28 -08:00
falcon.h sfc: Refactor link configuration 2009-11-29 16:46:28 -08:00
falcon_boards.c sfc: Refactor link configuration 2009-11-29 16:46:28 -08:00
falcon_gmac.c sfc: Refactor link configuration 2009-11-29 16:46:28 -08:00
falcon_xmac.c sfc: Refactor link configuration 2009-11-29 16:46:28 -08:00
io.h sfc: Rename register I/O header and functions used by both Falcon and Siena 2009-10-24 04:27:04 -07:00
Kconfig sfc: Use generic MDIO functions and definitions 2009-04-29 17:32:30 -07:00
mac.h sfc: Refactor link configuration 2009-11-29 16:46:28 -08:00
Makefile sfc: Rename 'xfp' file and functions to reflect reality 2009-10-24 04:27:28 -07:00
mdio_10g.c sfc: Refactor link configuration 2009-11-29 16:46:28 -08:00
mdio_10g.h sfc: Refactor link configuration 2009-11-29 16:46:28 -08:00
mtd.c drivers/net/sfc: fix sparse warnings: Should it be static? 2009-02-18 17:49:50 -08:00
net_driver.h sfc: Refactor link configuration 2009-11-29 16:46:28 -08:00
phy.h sfc: Use a single blink implementation 2009-11-24 10:58:39 -08:00
qt202x_phy.c sfc: Refactor link configuration 2009-11-29 16:46:28 -08:00
regs.h sfc: Remove duplicate hardware structure definitions 2009-11-29 16:46:26 -08:00
rx.c sfc: Combine high-level header files 2009-11-24 10:58:59 -08:00
selftest.c sfc: Refactor link configuration 2009-11-29 16:46:28 -08:00
selftest.h sfc: Use generic MDIO functions and definitions 2009-04-29 17:32:30 -07:00
spi.h sfc: Clean up waits for flash/EEPROM operations 2008-12-12 21:57:35 -08:00
tenxpress.c sfc: Refactor link configuration 2009-11-29 16:46:28 -08:00
tx.c sfc: Combine high-level header files 2009-11-24 10:58:59 -08:00
workarounds.h sfc: Decouple NIC revision number from Falcon PCI revision number 2009-11-28 23:58:54 -08:00