Lines Matching refs:ds

81 static int dsa_cpu_dsa_setups(struct dsa_switch *ds)  in dsa_cpu_dsa_setups()  argument
85 for (port = 0; port < ds->num_ports; port++) { in dsa_cpu_dsa_setups()
86 if (!(dsa_is_cpu_port(ds, port) || dsa_is_dsa_port(ds, port))) in dsa_cpu_dsa_setups()
89 ret = dsa_port_link_register_of(&ds->ports[port]); in dsa_cpu_dsa_setups()
96 static int dsa_switch_setup_one(struct dsa_switch *ds, in dsa_switch_setup_one() argument
99 const struct dsa_switch_ops *ops = ds->ops; in dsa_switch_setup_one()
100 struct dsa_switch_tree *dst = ds->dst; in dsa_switch_setup_one()
101 struct dsa_chip_data *cd = ds->cd; in dsa_switch_setup_one()
103 int index = ds->index; in dsa_switch_setup_one()
110 for (i = 0; i < ds->num_ports; i++) { in dsa_switch_setup_one()
113 dp = &ds->ports[i]; in dsa_switch_setup_one()
126 dst->cpu_dp = &ds->ports[i]; in dsa_switch_setup_one()
137 if (!valid_name_found && i == ds->num_ports) in dsa_switch_setup_one()
143 ds->phys_mii_mask |= dsa_user_ports(ds); in dsa_switch_setup_one()
150 if (dst->cpu_dp->ds == ds) { in dsa_switch_setup_one()
154 tag_protocol = ops->get_tag_protocol(ds, dst->cpu_dp->index); in dsa_switch_setup_one()
166 memcpy(ds->rtable, cd->rtable, sizeof(ds->rtable)); in dsa_switch_setup_one()
171 ret = ops->setup(ds); in dsa_switch_setup_one()
175 ret = dsa_switch_register_notifier(ds); in dsa_switch_setup_one()
179 if (!ds->slave_mii_bus && ops->phy_read) { in dsa_switch_setup_one()
180 ds->slave_mii_bus = devm_mdiobus_alloc(ds->dev); in dsa_switch_setup_one()
181 if (!ds->slave_mii_bus) in dsa_switch_setup_one()
183 dsa_slave_mii_bus_init(ds); in dsa_switch_setup_one()
185 ret = mdiobus_register(ds->slave_mii_bus); in dsa_switch_setup_one()
193 for (i = 0; i < ds->num_ports; i++) { in dsa_switch_setup_one()
194 ds->ports[i].dn = cd->port_dn[i]; in dsa_switch_setup_one()
195 ds->ports[i].cpu_dp = dst->cpu_dp; in dsa_switch_setup_one()
197 if (!dsa_is_user_port(ds, i)) in dsa_switch_setup_one()
200 ret = dsa_slave_create(&ds->ports[i]); in dsa_switch_setup_one()
207 ret = dsa_cpu_dsa_setups(ds); in dsa_switch_setup_one()
221 struct dsa_switch *ds; in dsa_switch_setup() local
242 ds = dsa_switch_alloc(parent, DSA_MAX_PORTS); in dsa_switch_setup()
243 if (!ds) in dsa_switch_setup()
246 ds->dst = dst; in dsa_switch_setup()
247 ds->index = index; in dsa_switch_setup()
248 ds->cd = cd; in dsa_switch_setup()
249 ds->ops = ops; in dsa_switch_setup()
250 ds->priv = priv; in dsa_switch_setup()
252 ret = dsa_switch_setup_one(ds, master); in dsa_switch_setup()
256 return ds; in dsa_switch_setup()
259 static void dsa_switch_destroy(struct dsa_switch *ds) in dsa_switch_destroy() argument
264 for (port = 0; port < ds->num_ports; port++) { in dsa_switch_destroy()
265 if (!dsa_is_user_port(ds, port)) in dsa_switch_destroy()
268 if (!ds->ports[port].slave) in dsa_switch_destroy()
271 dsa_slave_destroy(ds->ports[port].slave); in dsa_switch_destroy()
275 for (port = 0; port < ds->num_ports; port++) { in dsa_switch_destroy()
276 if (!(dsa_is_cpu_port(ds, port) || dsa_is_dsa_port(ds, port))) in dsa_switch_destroy()
278 dsa_port_link_unregister_of(&ds->ports[port]); in dsa_switch_destroy()
281 if (ds->slave_mii_bus && ds->ops->phy_read) in dsa_switch_destroy()
282 mdiobus_unregister(ds->slave_mii_bus); in dsa_switch_destroy()
284 dsa_switch_unregister_notifier(ds); in dsa_switch_destroy()
576 struct dsa_switch *ds; in dsa_setup_dst() local
578 ds = dsa_switch_setup(dst, dev, i, parent, pd->chip[i].host_dev); in dsa_setup_dst()
579 if (IS_ERR(ds)) { in dsa_setup_dst()
581 i, PTR_ERR(ds)); in dsa_setup_dst()
585 dst->ds[i] = ds; in dsa_setup_dst()
664 struct dsa_switch *ds = dst->ds[i]; in dsa_remove_dst() local
666 if (ds) in dsa_remove_dst()
667 dsa_switch_destroy(ds); in dsa_remove_dst()
695 struct dsa_switch *ds = dst->ds[i]; in dsa_suspend() local
697 if (ds != NULL) in dsa_suspend()
698 ret = dsa_switch_suspend(ds); in dsa_suspend()
711 struct dsa_switch *ds = dst->ds[i]; in dsa_resume() local
713 if (ds != NULL) in dsa_resume()
714 ret = dsa_switch_resume(ds); in dsa_resume()