diff options
author | Vladimir Oltean <vladimir.oltean@nxp.com> | 2020-09-18 03:07:30 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2020-09-18 22:52:34 +0200 |
commit | e5fb512d81d021b7c7a0c2547c3dafb9de759285 (patch) | |
tree | b0fc2f9e06094d458c05a7017ea47408350fa271 /include | |
parent | net: mscc: ocelot: unregister net devices on unbind (diff) | |
download | linux-e5fb512d81d021b7c7a0c2547c3dafb9de759285.tar.xz linux-e5fb512d81d021b7c7a0c2547c3dafb9de759285.zip |
net: mscc: ocelot: deinitialize only initialized ports
Currently mscc_ocelot_init_ports() will skip initializing a port when it
doesn't have a phy-handle, so the ocelot->ports[port] pointer will be
NULL. Take this into consideration when tearing down the driver, and add
a new function ocelot_deinit_port() to the switch library, mirror of
ocelot_init_port(), which needs to be called by the driver for all ports
it has initialized.
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Tested-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Reviewed-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r-- | include/soc/mscc/ocelot.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/soc/mscc/ocelot.h b/include/soc/mscc/ocelot.h index 4521dd602ddc..0ac4e7fba086 100644 --- a/include/soc/mscc/ocelot.h +++ b/include/soc/mscc/ocelot.h @@ -678,6 +678,7 @@ void ocelot_configure_cpu(struct ocelot *ocelot, int npi, int ocelot_init(struct ocelot *ocelot); void ocelot_deinit(struct ocelot *ocelot); void ocelot_init_port(struct ocelot *ocelot, int port); +void ocelot_deinit_port(struct ocelot *ocelot, int port); /* DSA callbacks */ void ocelot_port_enable(struct ocelot *ocelot, int port, |