net: dsa: sja1105: Rethink the PHYLINK callbacks
authorVladimir Oltean <olteanv@gmail.com>
Sat, 8 Jun 2019 13:03:44 +0000 (16:03 +0300)
committerDavid S. Miller <davem@davemloft.net>
Mon, 10 Jun 2019 02:58:59 +0000 (19:58 -0700)
commit8400cff60b472cc1c698b932e8b93d3bb900c5a0
tree775f486def6546281546f9cc5f646155dab61ae7
parentd114fb04163f32f6986ca8aa11bff06d5c58d27b
net: dsa: sja1105: Rethink the PHYLINK callbacks

The first fact that needs to be stated is that the per-MAC settings in
SJA1105 called EGRESS and INGRESS do *not* disable egress and ingress on
the MAC. They only prevent non-link-local traffic from being
sent/received on this port.

So instead of having .phylink_mac_config essentially mess with the STP
state and force it to DISABLED/BLOCKING (which also brings useless
complications in sja1105_static_config_reload), simply add the
.phylink_mac_link_down and .phylink_mac_link_up callbacks which inhibit
TX at the MAC level, while leaving RX essentially enabled.

Also stop from trying to put the link down in .phylink_mac_config, which
is incorrect.

Signed-off-by: Vladimir Oltean <olteanv@gmail.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/sja1105/sja1105_main.c