Lines Matching refs:p
60 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_get_iflink() local
62 return p->parent->dst->master_netdev->ifindex; in dsa_slave_get_iflink()
65 static inline bool dsa_port_is_bridged(struct dsa_slave_priv *p) in dsa_port_is_bridged() argument
67 return !!p->bridge_dev; in dsa_port_is_bridged()
72 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_open() local
73 struct net_device *master = p->parent->dst->master_netdev; in dsa_slave_open()
74 struct dsa_switch *ds = p->parent; in dsa_slave_open()
75 u8 stp_state = dsa_port_is_bridged(p) ? in dsa_slave_open()
100 err = ds->drv->port_enable(ds, p->port, p->phy); in dsa_slave_open()
106 ds->drv->port_stp_update(ds, p->port, stp_state); in dsa_slave_open()
108 if (p->phy) in dsa_slave_open()
109 phy_start(p->phy); in dsa_slave_open()
128 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_close() local
129 struct net_device *master = p->parent->dst->master_netdev; in dsa_slave_close()
130 struct dsa_switch *ds = p->parent; in dsa_slave_close()
132 if (p->phy) in dsa_slave_close()
133 phy_stop(p->phy); in dsa_slave_close()
146 ds->drv->port_disable(ds, p->port, p->phy); in dsa_slave_close()
149 ds->drv->port_stp_update(ds, p->port, BR_STATE_DISABLED); in dsa_slave_close()
156 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_change_rx_flags() local
157 struct net_device *master = p->parent->dst->master_netdev; in dsa_slave_change_rx_flags()
167 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_set_rx_mode() local
168 struct net_device *master = p->parent->dst->master_netdev; in dsa_slave_set_rx_mode()
176 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_set_mac_address() local
177 struct net_device *master = p->parent->dst->master_netdev; in dsa_slave_set_mac_address()
206 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_fdb_add() local
207 struct dsa_switch *ds = p->parent; in dsa_slave_fdb_add()
211 ret = ds->drv->fdb_add(ds, p->port, addr, vid); in dsa_slave_fdb_add()
220 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_fdb_del() local
221 struct dsa_switch *ds = p->parent; in dsa_slave_fdb_del()
225 ret = ds->drv->fdb_del(ds, p->port, addr, vid); in dsa_slave_fdb_del()
271 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_fdb_dump() local
272 struct dsa_switch *ds = p->parent; in dsa_slave_fdb_dump()
282 ret = ds->drv->fdb_getnext(ds, p->port, addr, &is_static); in dsa_slave_fdb_dump()
303 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_ioctl() local
305 if (p->phy != NULL) in dsa_slave_ioctl()
306 return phy_mii_ioctl(p->phy, ifr, cmd); in dsa_slave_ioctl()
318 struct dsa_slave_priv *p; in dsa_slave_br_port_mask() local
326 p = netdev_priv(ds->ports[port]); in dsa_slave_br_port_mask()
329 p->bridge_dev == bridge) in dsa_slave_br_port_mask()
338 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_stp_update() local
339 struct dsa_switch *ds = p->parent; in dsa_slave_stp_update()
343 ret = ds->drv->port_stp_update(ds, p->port, state); in dsa_slave_stp_update()
351 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_bridge_port_join() local
352 struct dsa_switch *ds = p->parent; in dsa_slave_bridge_port_join()
355 p->bridge_dev = br; in dsa_slave_bridge_port_join()
358 ret = ds->drv->port_join_bridge(ds, p->port, in dsa_slave_bridge_port_join()
366 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_bridge_port_leave() local
367 struct dsa_switch *ds = p->parent; in dsa_slave_bridge_port_leave()
372 ret = ds->drv->port_leave_bridge(ds, p->port, in dsa_slave_bridge_port_leave()
373 dsa_slave_br_port_mask(ds, p->bridge_dev)); in dsa_slave_bridge_port_leave()
375 p->bridge_dev = NULL; in dsa_slave_bridge_port_leave()
388 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_parent_id_get() local
389 struct dsa_switch *ds = p->parent; in dsa_slave_parent_id_get()
399 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_xmit() local
401 return p->xmit(skb, dev); in dsa_slave_xmit()
407 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_notag_xmit() local
409 skb->dev = p->parent->dst->master_netdev; in dsa_slave_notag_xmit()
420 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_get_settings() local
424 if (p->phy != NULL) { in dsa_slave_get_settings()
425 err = phy_read_status(p->phy); in dsa_slave_get_settings()
427 err = phy_ethtool_gset(p->phy, cmd); in dsa_slave_get_settings()
436 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_set_settings() local
438 if (p->phy != NULL) in dsa_slave_set_settings()
439 return phy_ethtool_sset(p->phy, cmd); in dsa_slave_set_settings()
455 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_get_regs_len() local
456 struct dsa_switch *ds = p->parent; in dsa_slave_get_regs_len()
459 return ds->drv->get_regs_len(ds, p->port); in dsa_slave_get_regs_len()
467 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_get_regs() local
468 struct dsa_switch *ds = p->parent; in dsa_slave_get_regs()
471 ds->drv->get_regs(ds, p->port, regs, _p); in dsa_slave_get_regs()
476 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_nway_reset() local
478 if (p->phy != NULL) in dsa_slave_nway_reset()
479 return genphy_restart_aneg(p->phy); in dsa_slave_nway_reset()
486 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_get_link() local
488 if (p->phy != NULL) { in dsa_slave_get_link()
489 genphy_update_link(p->phy); in dsa_slave_get_link()
490 return p->phy->link; in dsa_slave_get_link()
498 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_get_eeprom_len() local
499 struct dsa_switch *ds = p->parent; in dsa_slave_get_eeprom_len()
513 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_get_eeprom() local
514 struct dsa_switch *ds = p->parent; in dsa_slave_get_eeprom()
525 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_set_eeprom() local
526 struct dsa_switch *ds = p->parent; in dsa_slave_set_eeprom()
537 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_get_strings() local
538 struct dsa_switch *ds = p->parent; in dsa_slave_get_strings()
548 ds->drv->get_strings(ds, p->port, data + 4 * len); in dsa_slave_get_strings()
556 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_get_ethtool_stats() local
557 struct dsa_switch *ds = p->parent; in dsa_slave_get_ethtool_stats()
559 data[0] = p->dev->stats.tx_packets; in dsa_slave_get_ethtool_stats()
560 data[1] = p->dev->stats.tx_bytes; in dsa_slave_get_ethtool_stats()
561 data[2] = p->dev->stats.rx_packets; in dsa_slave_get_ethtool_stats()
562 data[3] = p->dev->stats.rx_bytes; in dsa_slave_get_ethtool_stats()
564 ds->drv->get_ethtool_stats(ds, p->port, data + 4); in dsa_slave_get_ethtool_stats()
569 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_get_sset_count() local
570 struct dsa_switch *ds = p->parent; in dsa_slave_get_sset_count()
587 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_get_wol() local
588 struct dsa_switch *ds = p->parent; in dsa_slave_get_wol()
591 ds->drv->get_wol(ds, p->port, w); in dsa_slave_get_wol()
596 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_set_wol() local
597 struct dsa_switch *ds = p->parent; in dsa_slave_set_wol()
601 ret = ds->drv->set_wol(ds, p->port, w); in dsa_slave_set_wol()
608 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_set_eee() local
609 struct dsa_switch *ds = p->parent; in dsa_slave_set_eee()
615 ret = ds->drv->set_eee(ds, p->port, p->phy, e); in dsa_slave_set_eee()
619 if (p->phy) in dsa_slave_set_eee()
620 ret = phy_ethtool_set_eee(p->phy, e); in dsa_slave_set_eee()
627 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_get_eee() local
628 struct dsa_switch *ds = p->parent; in dsa_slave_get_eee()
634 ret = ds->drv->get_eee(ds, p->port, e); in dsa_slave_get_eee()
638 if (p->phy) in dsa_slave_get_eee()
639 ret = phy_ethtool_get_eee(p->phy, e); in dsa_slave_get_eee()
685 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_adjust_link() local
686 struct dsa_switch *ds = p->parent; in dsa_slave_adjust_link()
689 if (p->old_link != p->phy->link) { in dsa_slave_adjust_link()
691 p->old_link = p->phy->link; in dsa_slave_adjust_link()
694 if (p->old_duplex != p->phy->duplex) { in dsa_slave_adjust_link()
696 p->old_duplex = p->phy->duplex; in dsa_slave_adjust_link()
699 if (p->old_pause != p->phy->pause) { in dsa_slave_adjust_link()
701 p->old_pause = p->phy->pause; in dsa_slave_adjust_link()
705 ds->drv->adjust_link(ds, p->port, p->phy); in dsa_slave_adjust_link()
708 phy_print_status(p->phy); in dsa_slave_adjust_link()
714 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_fixed_link_update() local
715 struct dsa_switch *ds = p->parent; in dsa_slave_fixed_link_update()
718 ds->drv->fixed_link_update(ds, p->port, status); in dsa_slave_fixed_link_update()
724 static int dsa_slave_phy_connect(struct dsa_slave_priv *p, in dsa_slave_phy_connect() argument
728 struct dsa_switch *ds = p->parent; in dsa_slave_phy_connect()
730 p->phy = ds->slave_mii_bus->phy_map[addr]; in dsa_slave_phy_connect()
731 if (!p->phy) in dsa_slave_phy_connect()
735 if (p->phy_interface == PHY_INTERFACE_MODE_NA) in dsa_slave_phy_connect()
736 p->phy_interface = p->phy->interface; in dsa_slave_phy_connect()
737 phy_connect_direct(slave_dev, p->phy, dsa_slave_adjust_link, in dsa_slave_phy_connect()
738 p->phy_interface); in dsa_slave_phy_connect()
743 static int dsa_slave_phy_setup(struct dsa_slave_priv *p, in dsa_slave_phy_setup() argument
746 struct dsa_switch *ds = p->parent; in dsa_slave_phy_setup()
753 port_dn = cd->port_dn[p->port]; in dsa_slave_phy_setup()
757 p->phy_interface = mode; in dsa_slave_phy_setup()
774 phy_flags = ds->drv->get_phy_flags(ds, p->port); in dsa_slave_phy_setup()
785 ret = dsa_slave_phy_connect(p, slave_dev, ret); in dsa_slave_phy_setup()
789 p->phy = of_phy_connect(slave_dev, phy_dn, in dsa_slave_phy_setup()
792 p->phy_interface); in dsa_slave_phy_setup()
796 if (p->phy && phy_is_fixed) in dsa_slave_phy_setup()
797 fixed_phy_set_link_update(p->phy, dsa_slave_fixed_link_update); in dsa_slave_phy_setup()
802 if (!p->phy) { in dsa_slave_phy_setup()
803 ret = dsa_slave_phy_connect(p, slave_dev, p->port); in dsa_slave_phy_setup()
808 p->phy->addr, p->phy->drv->name); in dsa_slave_phy_setup()
816 struct dsa_slave_priv *p = netdev_priv(slave_dev); in dsa_slave_suspend() local
820 if (p->phy) { in dsa_slave_suspend()
821 phy_stop(p->phy); in dsa_slave_suspend()
822 p->old_pause = -1; in dsa_slave_suspend()
823 p->old_link = -1; in dsa_slave_suspend()
824 p->old_duplex = -1; in dsa_slave_suspend()
825 phy_suspend(p->phy); in dsa_slave_suspend()
833 struct dsa_slave_priv *p = netdev_priv(slave_dev); in dsa_slave_resume() local
837 if (p->phy) { in dsa_slave_resume()
838 phy_resume(p->phy); in dsa_slave_resume()
839 phy_start(p->phy); in dsa_slave_resume()
850 struct dsa_slave_priv *p; in dsa_slave_create() local
869 p = netdev_priv(slave_dev); in dsa_slave_create()
870 p->dev = slave_dev; in dsa_slave_create()
871 p->parent = ds; in dsa_slave_create()
872 p->port = port; in dsa_slave_create()
877 p->xmit = dsa_netdev_ops.xmit; in dsa_slave_create()
882 p->xmit = edsa_netdev_ops.xmit; in dsa_slave_create()
887 p->xmit = trailer_netdev_ops.xmit; in dsa_slave_create()
892 p->xmit = brcm_netdev_ops.xmit; in dsa_slave_create()
896 p->xmit = dsa_slave_notag_xmit; in dsa_slave_create()
900 p->old_pause = -1; in dsa_slave_create()
901 p->old_link = -1; in dsa_slave_create()
902 p->old_duplex = -1; in dsa_slave_create()
904 ret = dsa_slave_phy_setup(p, slave_dev); in dsa_slave_create()
915 phy_disconnect(p->phy); in dsa_slave_create()
934 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_master_changed() local
940 else if (dsa_port_is_bridged(p)) in dsa_slave_master_changed()