diff options
author | Florian Fainelli <f.fainelli@gmail.com> | 2016-11-28 05:45:13 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-11-29 00:07:42 +0300 |
commit | 2fa3e25b454e267d8f55ee19c27be540495463e7 (patch) | |
tree | 551af2ab98867240f91805588e163f197a464fed | |
parent | 527fd70e26e68d65a47e17e71f637dc42dbd26cc (diff) | |
download | linux-2fa3e25b454e267d8f55ee19c27be540495463e7.tar.xz |
Documentation: net: phy: Add a paragraph about pause frames/flow control
Describe that the Ethernet MAC controller is ultimately responsible for
dealing with proper pause frames/flow control advertisement and
enabling, and that it is therefore allowed to have it change
phydev->supported/advertising with SUPPORTED_Pause and
SUPPORTED_AsymPause.
Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | Documentation/networking/phy.txt | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/Documentation/networking/phy.txt b/Documentation/networking/phy.txt index 4b25c0f24201..9a42a9414cea 100644 --- a/Documentation/networking/phy.txt +++ b/Documentation/networking/phy.txt @@ -127,8 +127,9 @@ Letting the PHY Abstraction Layer do Everything values pruned from them which don't make sense for your controller (a 10/100 controller may be connected to a gigabit capable PHY, so you would need to mask off SUPPORTED_1000baseT*). See include/linux/ethtool.h for definitions - for these bitfields. Note that you should not SET any bits, or the PHY may - get put into an unsupported state. + for these bitfields. Note that you should not SET any bits, except the + SUPPORTED_Pause and SUPPORTED_AsymPause bits (see below), or the PHY may get + put into an unsupported state. Lastly, once the controller is ready to handle network traffic, you call phy_start(phydev). This tells the PAL that you are ready, and configures the @@ -139,6 +140,19 @@ Letting the PHY Abstraction Layer do Everything When you want to disconnect from the network (even if just briefly), you call phy_stop(phydev). +Pause frames / flow control + + The PHY does not participate directly in flow control/pause frames except by + making sure that the SUPPORTED_Pause and SUPPORTED_AsymPause bits are set in + MII_ADVERTISE to indicate towards the link partner that the Ethernet MAC + controller supports such a thing. Since flow control/pause frames generation + involves the Ethernet MAC driver, it is recommended that this driver takes care + of properly indicating advertisement and support for such features by setting + the SUPPORTED_Pause and SUPPORTED_AsymPause bits accordingly. This can be done + either before or after phy_connect() and/or as a result of implementing the + ethtool::set_pauseparam feature. + + Keeping Close Tabs on the PAL It is possible that the PAL's built-in state machine needs a little help to |