linux/drivers/net/pcs
Vladimir Oltean a853c68e29 net: pcs: xpcs: export xpcs_do_config and xpcs_link_up
The sja1105 hardware has a quirk in that some changes require a switch
reset, which loses all configuration. When the reset is initiated,
everything needs to be reprogrammed, including the MACs and the PCS.
This is currently done in sja1105_static_config_reload() - we manually
call sja1105_adjust_port_config(), sja1105_sgmii_pcs_config() and
sja1105_sgmii_pcs_force_speed() which are all internal functions.

There is a desire for sja1105 to use the common xpcs driver, and that
means that the equivalents of those functions, xpcs_do_config() and
xpcs_link_up() respectively, will no longer be local functions.

Forcing phylink to retrigger a resolve somehow, say by doing dev_close()
followed by dev_open() is not really an option, because the CPU port
might have a PCS as well, and there is no net device which we can close
and reopen for that. Additionally, the dev_close/dev_open sequence might
force a renegotiation of the copper-side link for SGMII ports connected
to a PHY, and this is undesirable as well, because the switch reset is
much quicker than a PHY autoneg, so we would have a lot more downtime.

The only solution I see is for the sja1105 driver to keep doing what
it's doing, and that means we need to export the equivalents from xpcs
for sja1105_sgmii_pcs_config and sja1105_sgmii_pcs_force_speed, and call
them directly in sja1105_static_config_reload(). This will be done
during the conversion patch.

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2021-06-11 13:43:56 -07:00
..
Kconfig net: pcs-xpcs: depend on MDIO_BUS instead of selecting it 2020-10-16 16:54:11 -07:00
Makefile net: pcs: xpcs: add support for NXP SJA1105 2021-06-11 13:43:56 -07:00
pcs-lynx.c net: pcs: add pcs-lynx 1000BASE-X support 2021-02-06 14:35:21 -08:00
pcs-xpcs-nxp.c net: pcs: xpcs: add support for NXP SJA1110 2021-06-11 13:43:56 -07:00
pcs-xpcs.c net: pcs: xpcs: export xpcs_do_config and xpcs_link_up 2021-06-11 13:43:56 -07:00
pcs-xpcs.h net: pcs: xpcs: add support for NXP SJA1110 2021-06-11 13:43:56 -07:00