summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/freescale/fec.h
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2014-03-27 00:43:24 +0000
committerRussell King <rmk+kernel@arm.linux.org.uk>2014-10-17 14:34:57 +0100
commit448ec18793c04686482f8eb9b5d43f0928595952 (patch)
tree64c6b2df8bd0e8ff4ba26903f8710122e0983cc1 /drivers/net/ethernet/freescale/fec.h
parentd8443cd7cb592b302d993cb4c6b55dec6b94d790 (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.h3
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;