From 448ec18793c04686482f8eb9b5d43f0928595952 Mon Sep 17 00:00:00 2001 From: Russell King Date: Thu, 27 Mar 2014 00:43:24 +0000 Subject: 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 --- drivers/net/ethernet/freescale/fec.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'drivers/net/ethernet/freescale/fec.h') 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; -- cgit