Re: [PATCH 0/1] net: dsa: b53: mmap: add dsa switch ops

From: Álvaro Fernández Rojas
Date: Thu Mar 23 2023 - 15:43:01 EST


El jue, 23 mar 2023 a las 19:19, Florian Fainelli
(<f.fainelli@xxxxxxxxx>) escribió:
>
> On 3/23/23 10:02, Álvaro Fernández Rojas wrote:
> > B53 MMAP switches have a MDIO Mux bus controller which should be used instead
> > of the default phy_read/phy_write ops used in the rest of the B53 controllers.
> > Therefore, in order to use the proper MDIO Mux bus controller we need to
> > replicate the default B53 DSA switch ops removing the phy_read/phy_write
> > entries.
>
> Did you try to implement b53_mmap_ops::phy_read16/phy_write16 and have
> them return -EIO such that you do not fallback to the else path:

Actually I tried -EINVAL and it didn't work, but I've just tried -EIO
and it works!
Many thanks for the suggestion!

I will send another patch adding phy_read/write ops and returning
-EIO, so please ignore this patch and sorry for the noise, but it took
a while until we reached a good solution for this :(...

>
> ret = b53_read16(priv, B53_PORT_MII_PAGE(addr),
> reg * 2, &value);
>
> The reason for the hang I believe is because the B53_PORT_MII_PAGE is
> simply not mapped into the switch register space, and there is no logic
> within the switch block to return an error when you read at that invalid
> location.
>
> Re-implementing dsa_switch_ops is usually done when you have a very
> different switch integration logic, ala bcm_sf2, here it seems a bit of
> a tall order for simply not using the phy_read16/phy_write16 functions.
> --
> Florian
>

--
Álvaro