Claudiu Manoil 23402bddf9 gianfar: Add flow control support
eTSEC has Rx and Tx flow control capabilities that may be enabled
through MACCFG1[Rx_Flow, Tx_Flow] bits.  These bits must not be set
however when eTSEC is operated in Half-Duplex mode.  Unfortunately,
the driver currently sets these bits unconditionally.
This patch adds the proper handling of the PAUSE frame capability
register bits by implementing the ethtool -A interface.  When pause
autoneg is enabled, the controller uses the phy's capability to
negotiate PAUSE frame settings with the link partner and reconfigures
its Rx_Flow and Tx_Flow settings to match the capabilities of the
link partner.  If pause autoneg is off, the PAUSE frame generation
may be forced manually (ethtool -A).  Flow control is disabled by
default now.
This implementation is inspired by the tg3 driver.

Signed-off-by: Lutz Jaenicke <ljaenicke@innominate.com>
Signed-off-by: Claudiu Manoil <claudiu.manoil@freescale.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2013-08-13 15:28:53 -07:00
..
2013-07-26 08:57:56 -04:00
2013-07-18 12:48:40 -07:00
2013-06-27 13:42:16 -04:00
2013-07-02 14:23:01 -07:00
2013-07-23 16:01:28 -07:00
2013-07-10 14:46:40 -07:00
2013-07-26 11:20:10 -07:00
2013-07-26 11:36:12 -07:00
2013-08-13 15:28:53 -07:00
2013-07-02 11:44:19 -07:00
2013-06-28 13:01:40 +02:00
2013-07-22 09:34:46 +08:00
2013-07-24 16:36:41 -06:00
2013-07-23 14:38:20 -07:00
2013-07-31 17:54:24 -07:00
2013-07-10 14:50:58 -07:00
2013-07-31 11:37:43 -07:00