Re: [PATCH net-next 13/15] net: dsa: mt7530: add support for 10G link modes for CPU port

From: Daniel Golle
Date: Sat Apr 01 2023 - 09:06:09 EST


On Sat, Apr 01, 2023 at 11:56:43AM +0300, Arınç ÜNAL wrote:
> On 30.03.2023 18:23, Daniel Golle wrote:
> > The built-in switch of the MT7988 SoC is internally connected using
> > a stateless 10G link. Add support for 10G interface modes to silence
> > a warning otherwise occurring when the switch driver is setup.
> >
> > Reviewed-by: Andrew Lunn <andrew@xxxxxxx>
> > Signed-off-by: Daniel Golle <daniel@xxxxxxxxxxxxxx>
> > ---
> > drivers/net/dsa/mt7530.c | 7 ++++++-
> > 1 file changed, 6 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c
> > index 3a4682e71e746..ac666da2d10dc 100644
> > --- a/drivers/net/dsa/mt7530.c
> > +++ b/drivers/net/dsa/mt7530.c
> > @@ -2618,6 +2618,9 @@ mt7531_mac_config(struct dsa_switch *ds, int port, unsigned int mode,
> > case PHY_INTERFACE_MODE_1000BASEX:
> > case PHY_INTERFACE_MODE_2500BASEX:
> > /* handled in SGMII PCS driver */
> > + case PHY_INTERFACE_MODE_USXGMII:
> > + case PHY_INTERFACE_MODE_10GKR:
> > + /* internal stateless 10G link */
> > return 0;
> > default:
> > return -EINVAL;
>
> I think it'd be better to make this explicitly for the switch in the
> MT7988 SoC.

I decided to rather introduce mt7988_mac_config (a noop returning
either 0 or -EINVAL), mt7988_mac_port_get_caps (allowing only USXGMII
and 10000FD) and mt7988_cpu_port_config (setting CPU port bit in
registers but not caring about interface mode and speed other than
USXGMII/10000FD).

The updated commit adding MT7988 is here:
https://github.com/dangowrt/linux/commit/595c940cbee90b5dbdc8173974a007fefe641550

So then I dropped
"net: dsa: mt7530: add support for 10G link modes for CPU port"
because it is no longer needed if all this is done explicitely for MT7988.

>
> diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c
> index e5347dd2521b..f7542c7f60e4 100644
> --- a/drivers/net/dsa/mt7530.c
> +++ b/drivers/net/dsa/mt7530.c
> @@ -2666,10 +2665,13 @@ mt7531_mac_config(struct dsa_switch *ds, int port, unsigned int mode,
> case PHY_INTERFACE_MODE_1000BASEX:
> case PHY_INTERFACE_MODE_2500BASEX:
> /* handled in SGMII PCS driver */
> + return 0;
> case PHY_INTERFACE_MODE_USXGMII:
> case PHY_INTERFACE_MODE_10GKR:
> - /* internal stateless 10G link */
> - return 0;
> + if (priv->id == ID_MT7988)
> + /* internal stateless 10G link */
> + return 0;
> +
> default:
> return -EINVAL;
> }
>
> Arınç