net: phylink: propagate resolved link config via mac_link_up()
Propagate the resolved link parameters via the mac_link_up() call for MACs that do not automatically track their PCS state. We propagate the link parameters via function arguments so that inappropriate members of struct phylink_link_state can't be accessed, and creating a new structure just for this adds needless complexity to the API. Tested-by: Andre Przywara <andre.przywara@arm.com> Tested-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Tested-by: Vladimir Oltean <vladimir.oltean@nxp.com> Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
2e6af0f304
commit
91a208f218
@@ -74,10 +74,13 @@ phylib to the sfp/phylink support. Please send patches to improve
|
||||
this documentation.
|
||||
|
||||
1. Optionally split the network driver's phylib update function into
|
||||
three parts dealing with link-down, link-up and reconfiguring the
|
||||
MAC settings. This can be done as a separate preparation commit.
|
||||
two parts dealing with link-down and link-up. This can be done as
|
||||
a separate preparation commit.
|
||||
|
||||
An example of this preparation can be found in git commit fc548b991fb0.
|
||||
An older example of this preparation can be found in git commit
|
||||
fc548b991fb0, although this was splitting into three parts; the
|
||||
link-up part now includes configuring the MAC for the link settings.
|
||||
Please see :c:func:`mac_link_up` for more information on this.
|
||||
|
||||
2. Replace::
|
||||
|
||||
@@ -207,6 +210,14 @@ this documentation.
|
||||
using. This is particularly important for in-band negotiation
|
||||
methods such as 1000base-X and SGMII.
|
||||
|
||||
The :c:func:`mac_link_up` method is used to inform the MAC that the
|
||||
link has come up. The call includes the negotiation mode and interface
|
||||
for reference only. The finalised link parameters are also supplied
|
||||
(speed, duplex and flow control/pause enablement settings) which
|
||||
should be used to configure the MAC when the MAC and PCS are not
|
||||
tightly integrated, or when the settings are not coming from in-band
|
||||
negotiation.
|
||||
|
||||
The :c:func:`mac_config` method is used to update the MAC with the
|
||||
requested state, and must avoid unnecessarily taking the link down
|
||||
when making changes to the MAC configuration. This means the
|
||||
|
Reference in New Issue
Block a user