[PATCH net-next v2 5/7] net: dsa: mt7530: improve code path for setting up port 5
Vladimir Oltean
olteanv at gmail.com
Thu Jan 4 07:29:20 PST 2024
On Wed, Dec 27, 2023 at 07:43:45AM +0300, Arınç ÜNAL wrote:
> There're two code paths for setting up port 5:
>
> mt7530_setup()
> -> mt7530_setup_port5()
>
> mt753x_phylink_mac_config()
> -> mt753x_mac_config()
> -> mt7530_mac_config()
> -> mt7530_setup_port5()
>
> Currently mt7530_setup_port5() from mt7530_setup() always runs. If port 5
> is used as a CPU, DSA, or user port, mt7530_setup_port5() from
> mt753x_phylink_mac_config() won't run. That is because priv->p5_interface
> set on mt7530_setup_port5() will match state->interface on
> mt753x_phylink_mac_config() which will stop running mt7530_setup_port5()
> again.
>
> Therefore, mt7530_setup_port5() will never run from
> mt753x_phylink_mac_config().
>
> Address this by not running mt7530_setup_port5() from mt7530_setup() if
> port 5 is used as a CPU, DSA, or user port. This driver isn't in the
> dsa_switches_apply_workarounds[] array so phylink will always be present.
>
> To keep the cases where port 5 isn't controlled by phylink working as
> before, preserve the mt7530_setup_port5() call from mt7530_setup().
>
> Do not set priv->p5_intf_sel to P5_DISABLED. It is already set to that when
> "priv" is allocated.
>
> Move setting the interface to a more specific location. It's supposed to be
> overwritten if PHY muxing is detected.
>
> Improve the comment which explains the process.
>
> Signed-off-by: Arınç ÜNAL <arinc.unal at arinc9.com>
> ---
Reviewed-by: Vladimir Oltean <olteanv at gmail.com>
More information about the Linux-mediatek
mailing list