diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2014-03-27 00:43:24 +0000 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2014-10-17 14:34:57 +0100 |
commit | 448ec18793c04686482f8eb9b5d43f0928595952 (patch) | |
tree | 64c6b2df8bd0e8ff4ba26903f8710122e0983cc1 /drivers/net/ethernet/freescale/fec.h | |
parent | d8443cd7cb592b302d993cb4c6b55dec6b94d790 (diff) |
net: fec: improve flow control support
The FEC hardware in iMX6 is capable of separate control of each flow
control path: the receiver can be programmed via the receive control
register to detect flow control frames, and the transmitter can be
programmed via the receive FIFO thresholds to enable generation of
pause frames.
This means we can implement the full range of flow control: both
symmetric and asymmetric flow control. We support ethtool configuring
all options: forced manual mode, where each path can be controlled
individually, and autonegotiation mode.
In autonegotiation mode, the tx/rx enable bits can be used to influence
the outcome, though they don't precisely define which paths will be
enabled. One combination we don't support is "symmetric only" since we
can always configure each path independently, a case which Linux seems
to often get wrong.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'drivers/net/ethernet/freescale/fec.h')
-rw-r--r-- | drivers/net/ethernet/freescale/fec.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/ethernet/freescale/fec.h b/drivers/net/ethernet/freescale/fec.h index ec4c76264eb9..6f652ec2a037 100644 --- a/drivers/net/ethernet/freescale/fec.h +++ b/drivers/net/ethernet/freescale/fec.h @@ -321,7 +321,8 @@ struct fec_enet_private { struct completion mdio_done; int irq[FEC_IRQ_NUM]; int bufdesc_ex; - int pause_flag; + unsigned short pause_flag; + unsigned short pause_mode; struct napi_struct napi; int csum_flags; |