Re: [PATCH net-next v2 5/7] net: dsa: mt7530: improve code path for setting up port 5

From: Vladimir Oltean
Date: Thu Jan 04 2024 - 10:29:36 EST


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@xxxxxxxxxx>
> ---

Reviewed-by: Vladimir Oltean <olteanv@xxxxxxxxx>