net: phylink: clarify flow control settings in documentation

Clarify the expected flow control settings operation in the phylink
documentation for each negotiation mode.

Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: hongrongxuan <hongrongxuan@huawei.com>
This commit is contained in:
Russell King 2020-02-15 15:50:09 +00:00 committed by Jianping Liu
parent 202442fe4e
commit 9a6a9df235
1 changed files with 18 additions and 8 deletions

View File

@ -149,13 +149,20 @@ int mac_link_state(struct phylink_config *config,
* guaranteed to be correct, and so any mac_config() implementation must * guaranteed to be correct, and so any mac_config() implementation must
* never reference these fields. * never reference these fields.
* *
* In all negotiation modes, as defined by @mode, @state->pause indicates the
* pause settings which should be applied as follows. If %MLO_PAUSE_AN is not
* set, %MLO_PAUSE_TX and %MLO_PAUSE_RX indicate whether the MAC should send
* pause frames and/or act on received pause frames respectively. Otherwise,
* the results of in-band negotiation/status from the MAC PCS should be used
* to control the MAC pause mode settings.
*
* The action performed depends on the currently selected mode: * The action performed depends on the currently selected mode:
* *
* %MLO_AN_FIXED, %MLO_AN_PHY: * %MLO_AN_FIXED, %MLO_AN_PHY:
* Configure the specified @state->speed, @state->duplex and * Configure the specified @state->speed and @state->duplex over a link
* @state->pause (%MLO_PAUSE_TX / %MLO_PAUSE_RX) modes over a link * specified by @state->interface. @state->advertising may be used, but
* specified by @state->interface. @state->advertising may be used, * is not required. Pause modes as above. Other members of @state must
* but is not required. Other members of @state must be ignored. * be ignored.
* *
* Valid state members: interface, speed, duplex, pause, advertising. * Valid state members: interface, speed, duplex, pause, advertising.
* *
@ -167,11 +174,14 @@ int mac_link_state(struct phylink_config *config,
* mac_link_state() callback. Changes in link state must be made * mac_link_state() callback. Changes in link state must be made
* by calling phylink_mac_change(). * by calling phylink_mac_change().
* *
* Interface mode specific details are mentioned below.
*
* If in 802.3z mode, the link speed is fixed, dependent on the * If in 802.3z mode, the link speed is fixed, dependent on the
* @state->interface. Duplex is negotiated, and pause is advertised * @state->interface. Duplex and pause modes are negotiated via
* according to @state->an_enabled, @state->pause and * the in-band configuration word. Advertised pause modes are set
* @state->advertising flags. Beware of MACs which only support full * according to the @state->an_enabled and @state->advertising
* duplex at gigabit and higher speeds. * flags. Beware of MACs which only support full duplex at gigabit
* and higher speeds.
* *
* If in Cisco SGMII mode, the link speed and duplex mode are passed * If in Cisco SGMII mode, the link speed and duplex mode are passed
* in the serial bitstream 16-bit configuration word, and the MAC * in the serial bitstream 16-bit configuration word, and the MAC