1. 23 1月, 2017 1 次提交
  2. 11 12月, 2016 1 次提交
    • T
      net: phy: phy drivers should not set SUPPORTED_[Asym_]Pause · 529ed127
      Timur Tabi 提交于
      Instead of having individual PHY drivers set the SUPPORTED_Pause and
      SUPPORTED_Asym_Pause flags, phylib itself should set those flags,
      unless there is a hardware erratum or other special case.  During
      autonegotiation, the PHYs will determine whether to enable pause
      frame support.
      
      Pause frames are a feature that is supported by the MAC.  It is the MAC
      that generates the frames and that processes them.  The PHY can only be
      configured to allow them to pass through.
      
      This commit also effectively reverts the recently applied c7a61319
      ("net: phy: dp83848: Support ethernet pause frames").
      
      So the new process is:
      
      1) Unless the PHY driver overrides it, phylib sets the SUPPORTED_Pause
      and SUPPORTED_AsymPause bits in phydev->supported.  This indicates that
      the PHY supports pause frames.
      
      2) The MAC driver checks phydev->supported before it calls phy_start().
      If (SUPPORTED_Pause | SUPPORTED_AsymPause) is set, then the MAC driver
      sets those bits in phydev->advertising, if it wants to enable pause
      frame support.
      
      3) When the link state changes, the MAC driver checks phydev->pause and
      phydev->asym_pause,  If the bits are set, then it enables the corresponding
      features in the MAC.  The algorithm is:
      
      	if (phydev->pause)
      		The MAC should be programmed to receive and honor
                      pause frames it receives, i.e. enable receive flow control.
      
      	if (phydev->pause != phydev->asym_pause)
      		The MAC should be programmed to transmit pause
      		frames when needed, i.e. enable transmit flow control.
      Signed-off-by: NTimur Tabi <timur@codeaurora.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      529ed127
  3. 30 11月, 2016 1 次提交
  4. 25 11月, 2016 2 次提交
  5. 25 3月, 2016 1 次提交
  6. 17 2月, 2016 6 次提交
  7. 08 1月, 2016 2 次提交
  8. 26 11月, 2015 1 次提交
  9. 08 10月, 2015 2 次提交
  10. 29 6月, 2015 1 次提交
  11. 09 6月, 2015 1 次提交
  12. 25 5月, 2015 1 次提交
  13. 10 3月, 2015 1 次提交
  14. 09 12月, 2014 1 次提交
  15. 13 11月, 2014 6 次提交
  16. 02 10月, 2014 1 次提交
  17. 20 9月, 2014 2 次提交
  18. 28 8月, 2014 2 次提交
  19. 24 8月, 2014 2 次提交
  20. 17 8月, 2014 3 次提交
  21. 27 3月, 2014 2 次提交