Commit b70486f9 authored by Russell King's avatar Russell King Committed by David S. Miller

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: default avatarRussell King <rmk+kernel@armlinux.org.uk>
Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 97fec51f
...@@ -152,13 +152,20 @@ void mac_pcs_get_state(struct phylink_config *config, ...@@ -152,13 +152,20 @@ void mac_pcs_get_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.
* *
...@@ -170,11 +177,14 @@ void mac_pcs_get_state(struct phylink_config *config, ...@@ -170,11 +177,14 @@ void mac_pcs_get_state(struct phylink_config *config,
* mac_pcs_get_state() callback. Changes in link state must be made * mac_pcs_get_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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment