Lines Matching refs:slave_dev
1174 static int dsa_slave_phy_connect(struct net_device *slave_dev, int addr) in dsa_slave_phy_connect() argument
1176 struct dsa_port *dp = dsa_slave_to_port(slave_dev); in dsa_slave_phy_connect()
1179 slave_dev->phydev = mdiobus_get_phy(ds->slave_mii_bus, addr); in dsa_slave_phy_connect()
1180 if (!slave_dev->phydev) { in dsa_slave_phy_connect()
1181 netdev_err(slave_dev, "no phy at %d\n", addr); in dsa_slave_phy_connect()
1185 return phylink_connect_phy(dp->pl, slave_dev->phydev); in dsa_slave_phy_connect()
1188 static int dsa_slave_phy_setup(struct net_device *slave_dev) in dsa_slave_phy_setup() argument
1190 struct dsa_port *dp = dsa_slave_to_port(slave_dev); in dsa_slave_phy_setup()
1200 dp->pl = phylink_create(slave_dev, of_fwnode_handle(port_dn), mode, in dsa_slave_phy_setup()
1203 netdev_err(slave_dev, in dsa_slave_phy_setup()
1223 ret = dsa_slave_phy_connect(slave_dev, dp->index); in dsa_slave_phy_setup()
1225 netdev_err(slave_dev, in dsa_slave_phy_setup()
1245 int dsa_slave_suspend(struct net_device *slave_dev) in dsa_slave_suspend() argument
1247 struct dsa_port *dp = dsa_slave_to_port(slave_dev); in dsa_slave_suspend()
1249 if (!netif_running(slave_dev)) in dsa_slave_suspend()
1252 netif_device_detach(slave_dev); in dsa_slave_suspend()
1261 int dsa_slave_resume(struct net_device *slave_dev) in dsa_slave_resume() argument
1263 struct dsa_port *dp = dsa_slave_to_port(slave_dev); in dsa_slave_resume()
1265 if (!netif_running(slave_dev)) in dsa_slave_resume()
1268 netif_device_attach(slave_dev); in dsa_slave_resume()
1297 struct net_device *slave_dev; in dsa_slave_create() local
1304 slave_dev = alloc_netdev_mqs(sizeof(struct dsa_slave_priv), name, in dsa_slave_create()
1307 if (slave_dev == NULL) in dsa_slave_create()
1310 slave_dev->features = master->vlan_features | NETIF_F_HW_TC; in dsa_slave_create()
1311 slave_dev->hw_features |= NETIF_F_HW_TC; in dsa_slave_create()
1312 slave_dev->ethtool_ops = &dsa_slave_ethtool_ops; in dsa_slave_create()
1313 eth_hw_addr_inherit(slave_dev, master); in dsa_slave_create()
1314 slave_dev->priv_flags |= IFF_NO_QUEUE; in dsa_slave_create()
1315 slave_dev->netdev_ops = &dsa_slave_netdev_ops; in dsa_slave_create()
1316 slave_dev->switchdev_ops = &dsa_slave_switchdev_ops; in dsa_slave_create()
1317 slave_dev->min_mtu = 0; in dsa_slave_create()
1318 slave_dev->max_mtu = ETH_MAX_MTU; in dsa_slave_create()
1319 SET_NETDEV_DEVTYPE(slave_dev, &dsa_type); in dsa_slave_create()
1321 netdev_for_each_tx_queue(slave_dev, dsa_slave_set_lockdep_class_one, in dsa_slave_create()
1324 SET_NETDEV_DEV(slave_dev, port->ds->dev); in dsa_slave_create()
1325 slave_dev->dev.of_node = port->dn; in dsa_slave_create()
1326 slave_dev->vlan_features = master->vlan_features; in dsa_slave_create()
1328 p = netdev_priv(slave_dev); in dsa_slave_create()
1331 free_netdev(slave_dev); in dsa_slave_create()
1337 port->slave = slave_dev; in dsa_slave_create()
1339 netif_carrier_off(slave_dev); in dsa_slave_create()
1341 ret = dsa_slave_phy_setup(slave_dev); in dsa_slave_create()
1347 dsa_slave_notify(slave_dev, DSA_PORT_REGISTER); in dsa_slave_create()
1349 ret = register_netdev(slave_dev); in dsa_slave_create()
1352 ret, slave_dev->name); in dsa_slave_create()
1365 free_netdev(slave_dev); in dsa_slave_create()
1370 void dsa_slave_destroy(struct net_device *slave_dev) in dsa_slave_destroy() argument
1372 struct dsa_port *dp = dsa_slave_to_port(slave_dev); in dsa_slave_destroy()
1373 struct dsa_slave_priv *p = netdev_priv(slave_dev); in dsa_slave_destroy()
1375 netif_carrier_off(slave_dev); in dsa_slave_destroy()
1380 dsa_slave_notify(slave_dev, DSA_PORT_UNREGISTER); in dsa_slave_destroy()
1381 unregister_netdev(slave_dev); in dsa_slave_destroy()
1384 free_netdev(slave_dev); in dsa_slave_destroy()