Lines Matching refs:slave_dev

2329 static int dsa_slave_phy_connect(struct net_device *slave_dev, int addr,  in dsa_slave_phy_connect()  argument
2332 struct dsa_port *dp = dsa_slave_to_port(slave_dev); in dsa_slave_phy_connect()
2335 slave_dev->phydev = mdiobus_get_phy(ds->slave_mii_bus, addr); in dsa_slave_phy_connect()
2336 if (!slave_dev->phydev) { in dsa_slave_phy_connect()
2337 netdev_err(slave_dev, "no phy at %d\n", addr); in dsa_slave_phy_connect()
2341 slave_dev->phydev->dev_flags |= flags; in dsa_slave_phy_connect()
2343 return phylink_connect_phy(dp->pl, slave_dev->phydev); in dsa_slave_phy_connect()
2346 static int dsa_slave_phy_setup(struct net_device *slave_dev) in dsa_slave_phy_setup() argument
2348 struct dsa_port *dp = dsa_slave_to_port(slave_dev); in dsa_slave_phy_setup()
2354 dp->pl_config.dev = &slave_dev->dev; in dsa_slave_phy_setup()
2378 ret = dsa_slave_phy_connect(slave_dev, dp->index, phy_flags); in dsa_slave_phy_setup()
2381 netdev_err(slave_dev, "failed to connect to PHY: %pe\n", in dsa_slave_phy_setup()
2417 int dsa_slave_suspend(struct net_device *slave_dev) in dsa_slave_suspend() argument
2419 struct dsa_port *dp = dsa_slave_to_port(slave_dev); in dsa_slave_suspend()
2421 if (!netif_running(slave_dev)) in dsa_slave_suspend()
2424 netif_device_detach(slave_dev); in dsa_slave_suspend()
2433 int dsa_slave_resume(struct net_device *slave_dev) in dsa_slave_resume() argument
2435 struct dsa_port *dp = dsa_slave_to_port(slave_dev); in dsa_slave_resume()
2437 if (!netif_running(slave_dev)) in dsa_slave_resume()
2440 netif_device_attach(slave_dev); in dsa_slave_resume()
2453 struct net_device *slave_dev; in dsa_slave_create() local
2470 slave_dev = alloc_netdev_mqs(sizeof(struct dsa_slave_priv), name, in dsa_slave_create()
2473 if (slave_dev == NULL) in dsa_slave_create()
2476 slave_dev->rtnl_link_ops = &dsa_link_ops; in dsa_slave_create()
2477 slave_dev->ethtool_ops = &dsa_slave_ethtool_ops; in dsa_slave_create()
2479 slave_dev->dcbnl_ops = &dsa_slave_dcbnl_ops; in dsa_slave_create()
2482 eth_hw_addr_set(slave_dev, port->mac); in dsa_slave_create()
2484 eth_hw_addr_inherit(slave_dev, master); in dsa_slave_create()
2485 slave_dev->priv_flags |= IFF_NO_QUEUE; in dsa_slave_create()
2487 slave_dev->priv_flags |= IFF_UNICAST_FLT; in dsa_slave_create()
2488 slave_dev->netdev_ops = &dsa_slave_netdev_ops; in dsa_slave_create()
2490 slave_dev->max_mtu = ds->ops->port_max_mtu(ds, port->index); in dsa_slave_create()
2491 SET_NETDEV_DEVTYPE(slave_dev, &dsa_type); in dsa_slave_create()
2493 SET_NETDEV_DEV(slave_dev, port->ds->dev); in dsa_slave_create()
2494 SET_NETDEV_DEVLINK_PORT(slave_dev, &port->devlink_port); in dsa_slave_create()
2495 slave_dev->dev.of_node = port->dn; in dsa_slave_create()
2496 slave_dev->vlan_features = master->vlan_features; in dsa_slave_create()
2498 p = netdev_priv(slave_dev); in dsa_slave_create()
2499 slave_dev->tstats = netdev_alloc_pcpu_stats(struct pcpu_sw_netstats); in dsa_slave_create()
2500 if (!slave_dev->tstats) { in dsa_slave_create()
2501 free_netdev(slave_dev); in dsa_slave_create()
2505 ret = gro_cells_init(&p->gcells, slave_dev); in dsa_slave_create()
2511 port->slave = slave_dev; in dsa_slave_create()
2512 dsa_slave_setup_tagger(slave_dev); in dsa_slave_create()
2514 netif_carrier_off(slave_dev); in dsa_slave_create()
2516 ret = dsa_slave_phy_setup(slave_dev); in dsa_slave_create()
2518 netdev_err(slave_dev, in dsa_slave_create()
2526 ret = dsa_slave_change_mtu(slave_dev, ETH_DATA_LEN); in dsa_slave_create()
2531 ret = register_netdevice(slave_dev); in dsa_slave_create()
2534 ret, slave_dev->name); in dsa_slave_create()
2540 ret = dsa_slave_dcbnl_init(slave_dev); in dsa_slave_create()
2542 netdev_err(slave_dev, in dsa_slave_create()
2550 ret = netdev_upper_dev_link(master, slave_dev, NULL); in dsa_slave_create()
2560 unregister_netdev(slave_dev); in dsa_slave_create()
2569 free_percpu(slave_dev->tstats); in dsa_slave_create()
2570 free_netdev(slave_dev); in dsa_slave_create()
2575 void dsa_slave_destroy(struct net_device *slave_dev) in dsa_slave_destroy() argument
2577 struct net_device *master = dsa_slave_to_master(slave_dev); in dsa_slave_destroy()
2578 struct dsa_port *dp = dsa_slave_to_port(slave_dev); in dsa_slave_destroy()
2579 struct dsa_slave_priv *p = netdev_priv(slave_dev); in dsa_slave_destroy()
2581 netif_carrier_off(slave_dev); in dsa_slave_destroy()
2583 netdev_upper_dev_unlink(master, slave_dev); in dsa_slave_destroy()
2584 unregister_netdevice(slave_dev); in dsa_slave_destroy()
2590 free_percpu(slave_dev->tstats); in dsa_slave_destroy()
2591 free_netdev(slave_dev); in dsa_slave_destroy()