[PATCH 2/4] net: dsa: probe master device
Ramon Fried
rfried.dev at gmail.com
Thu Feb 25 20:13:14 CET 2021
On Wed, Feb 24, 2021 at 6:40 PM Michael Walle <michael at walle.cc> wrote:
>
> DSA needs to have the master device probed first for MAC inheritance.
> Until now, it only works by chance because the only user (LS1028A SoC)
> will probe the master device first. The probe order is given by the PCI
> device ordering, thus it works because the master device has a "smaller"
> BDF then the switch device.
>
> Explicitly probe the master device in dsa_port_probe().
>
> Fixes: fc054d563bfb ("net: Introduce DSA class for Ethernet switches")
> Signed-off-by: Michael Walle <michael at walle.cc>
> Reviewed-by: Vladimir Oltean <vladimir.oltean at nxp.com>
> ---
> net/dsa-uclass.c | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/net/dsa-uclass.c b/net/dsa-uclass.c
> index 88a8ea9352..7898f30e15 100644
> --- a/net/dsa-uclass.c
> +++ b/net/dsa-uclass.c
> @@ -272,6 +272,7 @@ static int dsa_port_probe(struct udevice *pdev)
> struct dsa_port_pdata *port_pdata;
> struct dsa_priv *dsa_priv;
> struct udevice *master;
> + int ret;
>
> port_pdata = dev_get_parent_plat(pdev);
> dsa_priv = dev_get_uclass_priv(dev);
> @@ -284,6 +285,14 @@ static int dsa_port_probe(struct udevice *pdev)
> if (!master)
> return -ENODEV;
>
> + /*
> + * Probe the master device. We depend on the master device for proper
> + * operation and we also need it for MAC inheritance below.
> + */
> + ret = device_probe(master);
> + if (ret)
> + return ret;
> +
> /*
> * Inherit port's hwaddr from the DSA master, unless the port already
> * has a unique MAC address specified in the environment.
> --
> 2.20.1
>
Reviewed-By: Ramon Fried <rfried.dev at gmail.com>
More information about the U-Boot
mailing list