Files
lkl_linux/include/linux
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
..
2021-06-03 14:04:18 -07:00
2021-05-18 17:24:52 +01:00
2021-05-06 19:24:11 -07:00
2021-04-14 16:30:30 +03:00
2021-05-08 21:49:48 -06:00
2021-05-19 00:33:40 +02:00
2021-02-26 09:41:03 -08:00
2021-04-08 16:04:20 -07:00
2021-05-24 12:45:26 -04:00
2021-05-24 12:45:26 -04:00
2021-04-08 16:04:20 -07:00
2021-04-08 16:04:20 -07:00
2021-05-06 19:24:11 -07:00
2021-04-19 13:13:26 -04:00
2021-03-22 03:57:39 +01:00
2021-04-12 15:04:23 +02:00
2021-03-30 22:37:06 +02:00
2021-05-07 00:26:34 -07:00
2021-04-08 16:04:20 -07:00
2021-04-30 11:20:40 -07:00
2021-03-22 04:23:14 +01:00
2021-04-05 22:39:38 -04:00
2021-02-26 09:41:02 -08:00
2021-02-26 09:41:03 -08:00
2021-06-07 14:11:47 -07:00
2021-06-07 14:11:47 -07:00
2021-04-08 16:04:20 -07:00
2021-06-03 13:10:17 -07:00
2021-04-06 08:34:39 +02:00
2021-04-21 10:24:41 -05:00
2021-02-26 09:40:59 -08:00
2021-06-11 13:08:52 -07:00
2021-06-07 14:11:47 -07:00
2021-03-06 12:40:22 +01:00
2021-02-26 09:41:03 -08:00
2021-03-17 14:16:15 -05:00
2021-03-22 02:45:52 +01:00
2021-03-18 12:58:27 -04:00
2021-05-06 19:24:11 -07:00
2021-03-19 04:58:25 +00:00
2021-03-25 17:39:33 -07:00
2021-03-10 09:34:06 +01:00
2021-04-15 10:32:17 +02:00
2021-03-30 17:06:49 -07:00
2021-04-26 22:55:12 +01:00
2021-04-09 16:00:00 +02:00
2021-03-22 15:02:14 +01:00
2021-05-07 00:26:35 -07:00
2021-03-30 13:42:33 -04:00