Commit d899cb2e authored by David S. Miller's avatar David S. Miller

Merge branch 'net-dsa-remove-useless-arguments'

Vivien Didelot says:

====================
net: dsa: remove useless arguments

Several DSA core setup functions take many arguments, mostly because of
the legacy code. This patch series removes the useless args of these
functions, where either the dsa_switch or dsa_port argument is enough.

Changes in v2:
  - ds->dev is already assigned by dsa_switch_alloc
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents e00e2197 4cfbf09c
...@@ -67,17 +67,17 @@ const struct dsa_device_ops *dsa_device_ops[DSA_TAG_LAST] = { ...@@ -67,17 +67,17 @@ const struct dsa_device_ops *dsa_device_ops[DSA_TAG_LAST] = {
[DSA_TAG_PROTO_NONE] = &none_ops, [DSA_TAG_PROTO_NONE] = &none_ops,
}; };
int dsa_cpu_dsa_setup(struct dsa_switch *ds, struct device *dev, int dsa_cpu_dsa_setup(struct dsa_port *port)
struct dsa_port *dport, int port)
{ {
struct device_node *port_dn = dport->dn; struct device_node *port_dn = port->dn;
struct dsa_switch *ds = port->ds;
struct phy_device *phydev; struct phy_device *phydev;
int ret, mode; int ret, mode;
if (of_phy_is_fixed_link(port_dn)) { if (of_phy_is_fixed_link(port_dn)) {
ret = of_phy_register_fixed_link(port_dn); ret = of_phy_register_fixed_link(port_dn);
if (ret) { if (ret) {
dev_err(dev, "failed to register fixed PHY\n"); dev_err(ds->dev, "failed to register fixed PHY\n");
return ret; return ret;
} }
phydev = of_phy_find_device(port_dn); phydev = of_phy_find_device(port_dn);
...@@ -90,7 +90,7 @@ int dsa_cpu_dsa_setup(struct dsa_switch *ds, struct device *dev, ...@@ -90,7 +90,7 @@ int dsa_cpu_dsa_setup(struct dsa_switch *ds, struct device *dev,
genphy_config_init(phydev); genphy_config_init(phydev);
genphy_read_status(phydev); genphy_read_status(phydev);
if (ds->ops->adjust_link) if (ds->ops->adjust_link)
ds->ops->adjust_link(ds, port, phydev); ds->ops->adjust_link(ds, port->index, phydev);
put_device(&phydev->mdio.dev); put_device(&phydev->mdio.dev);
} }
......
...@@ -219,7 +219,7 @@ static int dsa_dsa_port_apply(struct dsa_port *port) ...@@ -219,7 +219,7 @@ static int dsa_dsa_port_apply(struct dsa_port *port)
struct dsa_switch *ds = port->ds; struct dsa_switch *ds = port->ds;
int err; int err;
err = dsa_cpu_dsa_setup(ds, ds->dev, port, port->index); err = dsa_cpu_dsa_setup(port);
if (err) { if (err) {
dev_warn(ds->dev, "Failed to setup dsa port %d: %d\n", dev_warn(ds->dev, "Failed to setup dsa port %d: %d\n",
port->index, err); port->index, err);
...@@ -243,7 +243,7 @@ static int dsa_cpu_port_apply(struct dsa_port *port) ...@@ -243,7 +243,7 @@ static int dsa_cpu_port_apply(struct dsa_port *port)
struct dsa_switch *ds = port->ds; struct dsa_switch *ds = port->ds;
int err; int err;
err = dsa_cpu_dsa_setup(ds, ds->dev, port, port->index); err = dsa_cpu_dsa_setup(port);
if (err) { if (err) {
dev_warn(ds->dev, "Failed to setup cpu port %d: %d\n", dev_warn(ds->dev, "Failed to setup cpu port %d: %d\n",
port->index, err); port->index, err);
...@@ -275,7 +275,7 @@ static int dsa_user_port_apply(struct dsa_port *port) ...@@ -275,7 +275,7 @@ static int dsa_user_port_apply(struct dsa_port *port)
if (!name) if (!name)
name = "eth%d"; name = "eth%d";
err = dsa_slave_create(ds, ds->dev, port->index, name); err = dsa_slave_create(port, name);
if (err) { if (err) {
dev_warn(ds->dev, "Failed to create slave %d: %d\n", dev_warn(ds->dev, "Failed to create slave %d: %d\n",
port->index, err); port->index, err);
......
...@@ -101,8 +101,7 @@ struct dsa_slave_priv { ...@@ -101,8 +101,7 @@ struct dsa_slave_priv {
}; };
/* dsa.c */ /* dsa.c */
int dsa_cpu_dsa_setup(struct dsa_switch *ds, struct device *dev, int dsa_cpu_dsa_setup(struct dsa_port *port);
struct dsa_port *dport, int port);
void dsa_cpu_dsa_destroy(struct dsa_port *dport); void dsa_cpu_dsa_destroy(struct dsa_port *dport);
const struct dsa_device_ops *dsa_resolve_tag_protocol(int tag_protocol); const struct dsa_device_ops *dsa_resolve_tag_protocol(int tag_protocol);
int dsa_cpu_port_ethtool_setup(struct dsa_port *cpu_dp); int dsa_cpu_port_ethtool_setup(struct dsa_port *cpu_dp);
...@@ -149,8 +148,7 @@ int dsa_port_vlan_dump(struct dsa_port *dp, ...@@ -149,8 +148,7 @@ int dsa_port_vlan_dump(struct dsa_port *dp,
extern const struct dsa_device_ops notag_netdev_ops; extern const struct dsa_device_ops notag_netdev_ops;
void dsa_slave_mii_bus_init(struct dsa_switch *ds); void dsa_slave_mii_bus_init(struct dsa_switch *ds);
void dsa_cpu_port_ethtool_init(struct ethtool_ops *ops); void dsa_cpu_port_ethtool_init(struct ethtool_ops *ops);
int dsa_slave_create(struct dsa_switch *ds, struct device *parent, int dsa_slave_create(struct dsa_port *port, const char *name);
int port, const char *name);
void dsa_slave_destroy(struct net_device *slave_dev); void dsa_slave_destroy(struct net_device *slave_dev);
int dsa_slave_suspend(struct net_device *slave_dev); int dsa_slave_suspend(struct net_device *slave_dev);
int dsa_slave_resume(struct net_device *slave_dev); int dsa_slave_resume(struct net_device *slave_dev);
......
...@@ -78,25 +78,23 @@ dsa_switch_probe(struct device *parent, struct device *host_dev, int sw_addr, ...@@ -78,25 +78,23 @@ dsa_switch_probe(struct device *parent, struct device *host_dev, int sw_addr,
} }
/* basic switch operations **************************************************/ /* basic switch operations **************************************************/
static int dsa_cpu_dsa_setups(struct dsa_switch *ds, struct device *dev) static int dsa_cpu_dsa_setups(struct dsa_switch *ds)
{ {
struct dsa_port *dport;
int ret, port; int ret, port;
for (port = 0; port < ds->num_ports; port++) { for (port = 0; port < ds->num_ports; port++) {
if (!(dsa_is_cpu_port(ds, port) || dsa_is_dsa_port(ds, port))) if (!(dsa_is_cpu_port(ds, port) || dsa_is_dsa_port(ds, port)))
continue; continue;
dport = &ds->ports[port]; ret = dsa_cpu_dsa_setup(&ds->ports[port]);
ret = dsa_cpu_dsa_setup(ds, dev, dport, port);
if (ret) if (ret)
return ret; return ret;
} }
return 0; return 0;
} }
static int dsa_switch_setup_one(struct dsa_switch *ds, struct net_device *master, static int dsa_switch_setup_one(struct dsa_switch *ds,
struct device *parent) struct net_device *master)
{ {
const struct dsa_switch_ops *ops = ds->ops; const struct dsa_switch_ops *ops = ds->ops;
struct dsa_switch_tree *dst = ds->dst; struct dsa_switch_tree *dst = ds->dst;
...@@ -176,7 +174,7 @@ static int dsa_switch_setup_one(struct dsa_switch *ds, struct net_device *master ...@@ -176,7 +174,7 @@ static int dsa_switch_setup_one(struct dsa_switch *ds, struct net_device *master
} }
if (!ds->slave_mii_bus && ops->phy_read) { if (!ds->slave_mii_bus && ops->phy_read) {
ds->slave_mii_bus = devm_mdiobus_alloc(parent); ds->slave_mii_bus = devm_mdiobus_alloc(ds->dev);
if (!ds->slave_mii_bus) if (!ds->slave_mii_bus)
return -ENOMEM; return -ENOMEM;
dsa_slave_mii_bus_init(ds); dsa_slave_mii_bus_init(ds);
...@@ -196,14 +194,14 @@ static int dsa_switch_setup_one(struct dsa_switch *ds, struct net_device *master ...@@ -196,14 +194,14 @@ static int dsa_switch_setup_one(struct dsa_switch *ds, struct net_device *master
if (!(ds->enabled_port_mask & (1 << i))) if (!(ds->enabled_port_mask & (1 << i)))
continue; continue;
ret = dsa_slave_create(ds, parent, i, cd->port_names[i]); ret = dsa_slave_create(&ds->ports[i], cd->port_names[i]);
if (ret < 0) if (ret < 0)
netdev_err(master, "[%d]: can't create dsa slave device for port %d(%s): %d\n", netdev_err(master, "[%d]: can't create dsa slave device for port %d(%s): %d\n",
index, i, cd->port_names[i], ret); index, i, cd->port_names[i], ret);
} }
/* Perform configuration of the CPU and DSA ports */ /* Perform configuration of the CPU and DSA ports */
ret = dsa_cpu_dsa_setups(ds, parent); ret = dsa_cpu_dsa_setups(ds);
if (ret < 0) if (ret < 0)
netdev_err(master, "[%d] : can't configure CPU and DSA ports\n", netdev_err(master, "[%d] : can't configure CPU and DSA ports\n",
index); index);
...@@ -252,7 +250,7 @@ dsa_switch_setup(struct dsa_switch_tree *dst, struct net_device *master, ...@@ -252,7 +250,7 @@ dsa_switch_setup(struct dsa_switch_tree *dst, struct net_device *master,
ds->ops = ops; ds->ops = ops;
ds->priv = priv; ds->priv = priv;
ret = dsa_switch_setup_one(ds, master, parent); ret = dsa_switch_setup_one(ds, master);
if (ret) if (ret)
return ERR_PTR(ret); return ERR_PTR(ret);
......
...@@ -1195,9 +1195,9 @@ int dsa_slave_resume(struct net_device *slave_dev) ...@@ -1195,9 +1195,9 @@ int dsa_slave_resume(struct net_device *slave_dev)
return 0; return 0;
} }
int dsa_slave_create(struct dsa_switch *ds, struct device *parent, int dsa_slave_create(struct dsa_port *port, const char *name)
int port, const char *name)
{ {
struct dsa_switch *ds = port->ds;
struct dsa_switch_tree *dst = ds->dst; struct dsa_switch_tree *dst = ds->dst;
struct net_device *master; struct net_device *master;
struct net_device *slave_dev; struct net_device *slave_dev;
...@@ -1227,8 +1227,8 @@ int dsa_slave_create(struct dsa_switch *ds, struct device *parent, ...@@ -1227,8 +1227,8 @@ int dsa_slave_create(struct dsa_switch *ds, struct device *parent,
netdev_for_each_tx_queue(slave_dev, dsa_slave_set_lockdep_class_one, netdev_for_each_tx_queue(slave_dev, dsa_slave_set_lockdep_class_one,
NULL); NULL);
SET_NETDEV_DEV(slave_dev, parent); SET_NETDEV_DEV(slave_dev, port->ds->dev);
slave_dev->dev.of_node = ds->ports[port].dn; slave_dev->dev.of_node = port->dn;
slave_dev->vlan_features = master->vlan_features; slave_dev->vlan_features = master->vlan_features;
p = netdev_priv(slave_dev); p = netdev_priv(slave_dev);
...@@ -1237,7 +1237,7 @@ int dsa_slave_create(struct dsa_switch *ds, struct device *parent, ...@@ -1237,7 +1237,7 @@ int dsa_slave_create(struct dsa_switch *ds, struct device *parent,
free_netdev(slave_dev); free_netdev(slave_dev);
return -ENOMEM; return -ENOMEM;
} }
p->dp = &ds->ports[port]; p->dp = port;
INIT_LIST_HEAD(&p->mall_tc_list); INIT_LIST_HEAD(&p->mall_tc_list);
p->xmit = dst->tag_ops->xmit; p->xmit = dst->tag_ops->xmit;
...@@ -1245,12 +1245,12 @@ int dsa_slave_create(struct dsa_switch *ds, struct device *parent, ...@@ -1245,12 +1245,12 @@ int dsa_slave_create(struct dsa_switch *ds, struct device *parent,
p->old_link = -1; p->old_link = -1;
p->old_duplex = -1; p->old_duplex = -1;
ds->ports[port].netdev = slave_dev; port->netdev = slave_dev;
ret = register_netdev(slave_dev); ret = register_netdev(slave_dev);
if (ret) { if (ret) {
netdev_err(master, "error %d registering interface %s\n", netdev_err(master, "error %d registering interface %s\n",
ret, slave_dev->name); ret, slave_dev->name);
ds->ports[port].netdev = NULL; port->netdev = NULL;
free_percpu(p->stats64); free_percpu(p->stats64);
free_netdev(slave_dev); free_netdev(slave_dev);
return ret; return ret;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment