diff options
author | Timur Tabi <timur@codeaurora.org> | 2016-11-07 11:51:40 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-11-09 18:45:24 -0500 |
commit | 3e884493448131179a5b7cae1ddca1028ffaecc8 (patch) | |
tree | ed635993d7ff460c8e634a89f41ee7fd615607f3 | |
parent | cdb26d3387f0cdf7b2a2eea581385173547ef21f (diff) |
net: qcom/emac: configure the external phy to allow pause frames
Pause frames are used to enable flow control. A MAC can send and
receive pause frames in order to throttle traffic. However, the PHY
must be configured to allow those frames to pass through.
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Timur Tabi <timur@codeaurora.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/ethernet/qualcomm/emac/emac-mac.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/ethernet/qualcomm/emac/emac-mac.c b/drivers/net/ethernet/qualcomm/emac/emac-mac.c index 6fb3bee904d3..70a55dcc431d 100644 --- a/drivers/net/ethernet/qualcomm/emac/emac-mac.c +++ b/drivers/net/ethernet/qualcomm/emac/emac-mac.c | |||
@@ -1003,6 +1003,12 @@ int emac_mac_up(struct emac_adapter *adpt) | |||
1003 | writel((u32)~DIS_INT, adpt->base + EMAC_INT_STATUS); | 1003 | writel((u32)~DIS_INT, adpt->base + EMAC_INT_STATUS); |
1004 | writel(adpt->irq.mask, adpt->base + EMAC_INT_MASK); | 1004 | writel(adpt->irq.mask, adpt->base + EMAC_INT_MASK); |
1005 | 1005 | ||
1006 | /* Enable pause frames. Without this feature, the EMAC has been shown | ||
1007 | * to receive (and drop) frames with FCS errors at gigabit connections. | ||
1008 | */ | ||
1009 | adpt->phydev->supported |= SUPPORTED_Pause | SUPPORTED_Asym_Pause; | ||
1010 | adpt->phydev->advertising |= SUPPORTED_Pause | SUPPORTED_Asym_Pause; | ||
1011 | |||
1006 | adpt->phydev->irq = PHY_IGNORE_INTERRUPT; | 1012 | adpt->phydev->irq = PHY_IGNORE_INTERRUPT; |
1007 | phy_start(adpt->phydev); | 1013 | phy_start(adpt->phydev); |
1008 | 1014 | ||