diff options
| author | Andrew Lunn <andrew@lunn.ch> | 2015-05-06 02:09:48 +0300 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2015-05-09 23:05:52 +0300 |
| commit | dbde9e6667166f17d6d70a08becb05c596cb8fb5 (patch) | |
| tree | 9dd6035e591b5aab8f32278db6555104dd8035dc /drivers/net/dsa/mv88e6xxx.c | |
| parent | 54d792f257c65aaff7ac2ab5ea5f83b14c910778 (diff) | |
| download | linux-dbde9e6667166f17d6d70a08becb05c596cb8fb5.tar.xz | |
net: dsa: Centralize setting up ports
Now that setting up a port is identical for all switches, centralisers
the code looping over all the ports to set them up.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/dsa/mv88e6xxx.c')
| -rw-r--r-- | drivers/net/dsa/mv88e6xxx.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/drivers/net/dsa/mv88e6xxx.c b/drivers/net/dsa/mv88e6xxx.c index 84496066f21b..f38d8dfa934a 100644 --- a/drivers/net/dsa/mv88e6xxx.c +++ b/drivers/net/dsa/mv88e6xxx.c @@ -1309,7 +1309,7 @@ static void mv88e6xxx_bridge_work(struct work_struct *work) } } -int mv88e6xxx_setup_port(struct dsa_switch *ds, int port) +static int mv88e6xxx_setup_port(struct dsa_switch *ds, int port) { struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); int ret, fid; @@ -1548,6 +1548,20 @@ abort: return ret; } +int mv88e6xxx_setup_ports(struct dsa_switch *ds) +{ + struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); + int ret; + int i; + + for (i = 0; i < ps->num_ports; i++) { + ret = mv88e6xxx_setup_port(ds, i); + if (ret < 0) + return ret; + } + return 0; +} + int mv88e6xxx_setup_common(struct dsa_switch *ds) { struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); |
