]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
staging: dpaa2-ethsw: disable switch ports are probe time
authorIoana Ciornei <ioana.ciornei@nxp.com>
Tue, 14 Jul 2020 13:34:29 +0000 (16:34 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 15 Jul 2020 14:22:36 +0000 (16:22 +0200)
The MC firmware will enable the switch interfaces at DPSW creation
without waiting for an 'ifconfig up' on the switch interfaces. When this
happens, the states held by the Linux software vs the firmware are not
in sync. Make sure to disable the switch ports at probe time to not
encounter this issue.

Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Link: https://lore.kernel.org/r/20200714133431.17532-5-ioana.ciornei@nxp.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/fsl-dpaa2/ethsw/ethsw.c

index a1917842536e0f5f61a528dcd75c2bebbacf2a44..f283ce195c1ea45cb76532ef71f4cb59ebdbe6cf 100644 (file)
@@ -1672,6 +1672,10 @@ static int ethsw_probe(struct fsl_mc_device *sw_dev)
                goto err_free_ports;
        }
 
+       /* Make sure the switch ports are disabled at probe time */
+       for (i = 0; i < ethsw->sw_attr.num_ifs; i++)
+               dpsw_if_disable(ethsw->mc_io, 0, ethsw->dpsw_handle, i);
+
        /* Setup IRQs */
        err = ethsw_setup_irqs(sw_dev);
        if (err)