summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/qualcomm/emac
diff options
context:
space:
mode:
authorTimur Tabi <timur@codeaurora.org>2016-11-07 19:51:41 +0300
committerDavid S. Miller <davem@davemloft.net>2016-11-10 02:45:24 +0300
commitdf63022e182de4041b65ae22df1950d3416b577e (patch)
tree22ef540a7817db2a24cc612ecd9dd71b973ea92e /drivers/net/ethernet/qualcomm/emac
parent3e884493448131179a5b7cae1ddca1028ffaecc8 (diff)
downloadlinux-df63022e182de4041b65ae22df1950d3416b577e.tar.xz
net: qcom/emac: enable flow control if requested
If the PHY has been configured to allow pause frames, then the MAC should be configured to generate and/or accept those frames. Signed-off-by: Timur Tabi <timur@codeaurora.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/qualcomm/emac')
-rw-r--r--drivers/net/ethernet/qualcomm/emac/emac-mac.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/net/ethernet/qualcomm/emac/emac-mac.c b/drivers/net/ethernet/qualcomm/emac/emac-mac.c
index 70a55dcc431d..0b4deb31e742 100644
--- a/drivers/net/ethernet/qualcomm/emac/emac-mac.c
+++ b/drivers/net/ethernet/qualcomm/emac/emac-mac.c
@@ -575,10 +575,11 @@ void emac_mac_start(struct emac_adapter *adpt)
mac |= TXEN | RXEN; /* enable RX/TX */
- /* We don't have ethtool support yet, so force flow-control mode
- * to 'full' always.
- */
- mac |= TXFC | RXFC;
+ /* Configure MAC flow control to match the PHY's settings. */
+ if (phydev->pause)
+ mac |= RXFC;
+ if (phydev->pause != phydev->asym_pause)
+ mac |= TXFC;
/* setup link speed */
mac &= ~SPEED_MASK;