Lines Matching full:sw

323 static int __prestera_cmd_ret(struct prestera_switch *sw,  in __prestera_cmd_ret()  argument
329 struct prestera_device *dev = sw->dev; in __prestera_cmd_ret()
346 static int prestera_cmd_ret(struct prestera_switch *sw, in prestera_cmd_ret() argument
351 return __prestera_cmd_ret(sw, type, cmd, clen, ret, rlen, 0); in prestera_cmd_ret()
354 static int prestera_cmd_ret_wait(struct prestera_switch *sw, in prestera_cmd_ret_wait() argument
360 return __prestera_cmd_ret(sw, type, cmd, clen, ret, rlen, waitms); in prestera_cmd_ret_wait()
363 static int prestera_cmd(struct prestera_switch *sw, in prestera_cmd() argument
369 return prestera_cmd_ret(sw, type, cmd, clen, &resp.ret, sizeof(resp)); in prestera_cmd()
405 __find_event_handler(const struct prestera_switch *sw, in __find_event_handler() argument
410 list_for_each_entry_rcu(eh, &sw->event_handlers, list) { in __find_event_handler()
418 static int prestera_find_event_handler(const struct prestera_switch *sw, in prestera_find_event_handler() argument
426 tmp = __find_event_handler(sw, type); in prestera_find_event_handler()
438 struct prestera_switch *sw = dev->priv; in prestera_evt_recv() local
449 err = prestera_find_event_handler(sw, msg->type, &eh); in prestera_evt_recv()
459 eh.func(sw, &evt, eh.arg); in prestera_evt_recv()
466 struct prestera_switch *sw = dev->priv; in prestera_pkt_recv() local
473 err = prestera_find_event_handler(sw, PRESTERA_EVENT_TYPE_RXTX, &eh); in prestera_pkt_recv()
477 eh.func(sw, &ev, eh.arg); in prestera_pkt_recv()
489 err = prestera_cmd_ret(port->sw, PRESTERA_CMD_TYPE_PORT_INFO_GET, in prestera_hw_port_info_get()
501 int prestera_hw_switch_mac_set(struct prestera_switch *sw, const char *mac) in prestera_hw_switch_mac_set() argument
509 return prestera_cmd(sw, PRESTERA_CMD_TYPE_SWITCH_ATTR_SET, in prestera_hw_switch_mac_set()
513 int prestera_hw_switch_init(struct prestera_switch *sw) in prestera_hw_switch_init() argument
519 INIT_LIST_HEAD(&sw->event_handlers); in prestera_hw_switch_init()
521 err = prestera_cmd_ret_wait(sw, PRESTERA_CMD_TYPE_SWITCH_INIT, in prestera_hw_switch_init()
528 sw->dev->recv_msg = prestera_evt_recv; in prestera_hw_switch_init()
529 sw->dev->recv_pkt = prestera_pkt_recv; in prestera_hw_switch_init()
530 sw->port_count = resp.port_count; in prestera_hw_switch_init()
531 sw->mtu_min = PRESTERA_MIN_MTU; in prestera_hw_switch_init()
532 sw->mtu_max = resp.mtu_max; in prestera_hw_switch_init()
533 sw->id = resp.switch_id; in prestera_hw_switch_init()
538 void prestera_hw_switch_fini(struct prestera_switch *sw) in prestera_hw_switch_fini() argument
540 WARN_ON(!list_empty(&sw->event_handlers)); in prestera_hw_switch_fini()
543 int prestera_hw_switch_ageing_set(struct prestera_switch *sw, u32 ageing_ms) in prestera_hw_switch_ageing_set() argument
552 return prestera_cmd(sw, PRESTERA_CMD_TYPE_SWITCH_ATTR_SET, in prestera_hw_switch_ageing_set()
568 return prestera_cmd(port->sw, PRESTERA_CMD_TYPE_PORT_ATTR_SET, in prestera_hw_port_state_set()
583 return prestera_cmd(port->sw, PRESTERA_CMD_TYPE_PORT_ATTR_SET, in prestera_hw_port_mtu_set()
597 return prestera_cmd(port->sw, PRESTERA_CMD_TYPE_PORT_ATTR_SET, in prestera_hw_port_mac_set()
613 return prestera_cmd(port->sw, PRESTERA_CMD_TYPE_PORT_ATTR_SET, in prestera_hw_port_accept_frm_type()
628 err = prestera_cmd_ret(port->sw, PRESTERA_CMD_TYPE_PORT_ATTR_GET, in prestera_hw_port_cap_get()
652 err = prestera_cmd_ret(port->sw, PRESTERA_CMD_TYPE_PORT_ATTR_GET, in prestera_hw_port_remote_cap_get()
673 err = prestera_cmd_ret(port->sw, PRESTERA_CMD_TYPE_PORT_ATTR_GET, in prestera_hw_port_remote_fc_get()
709 err = prestera_cmd_ret(port->sw, PRESTERA_CMD_TYPE_PORT_ATTR_GET, in prestera_hw_port_type_get()
729 err = prestera_cmd_ret(port->sw, PRESTERA_CMD_TYPE_PORT_ATTR_GET, in prestera_hw_port_fec_get()
750 return prestera_cmd(port->sw, PRESTERA_CMD_TYPE_PORT_ATTR_SET, in prestera_hw_port_fec_set()
793 err = prestera_cmd_ret(port->sw, PRESTERA_CMD_TYPE_PORT_ATTR_GET, in prestera_hw_port_mdix_get()
814 return prestera_cmd(port->sw, PRESTERA_CMD_TYPE_PORT_ATTR_SET, in prestera_hw_port_mdix_set()
829 return prestera_cmd(port->sw, PRESTERA_CMD_TYPE_PORT_ATTR_SET, in prestera_hw_port_link_mode_set()
843 err = prestera_cmd_ret(port->sw, PRESTERA_CMD_TYPE_PORT_ATTR_GET, in prestera_hw_port_link_mode_get()
863 err = prestera_cmd_ret(port->sw, PRESTERA_CMD_TYPE_PORT_ATTR_GET, in prestera_hw_port_speed_get()
889 return prestera_cmd(port->sw, PRESTERA_CMD_TYPE_PORT_ATTR_SET, in prestera_hw_port_autoneg_set()
901 return prestera_cmd(port->sw, PRESTERA_CMD_TYPE_PORT_ATTR_SET, in prestera_hw_port_autoneg_restart()
915 err = prestera_cmd_ret(port->sw, PRESTERA_CMD_TYPE_PORT_ATTR_GET, in prestera_hw_port_duplex_get()
937 err = prestera_cmd_ret(port->sw, PRESTERA_CMD_TYPE_PORT_ATTR_GET, in prestera_hw_port_stats_get()
987 return prestera_cmd(port->sw, PRESTERA_CMD_TYPE_PORT_ATTR_SET, in prestera_hw_port_learning_set()
1002 return prestera_cmd(port->sw, PRESTERA_CMD_TYPE_PORT_ATTR_SET, in prestera_hw_port_flood_set()
1006 int prestera_hw_vlan_create(struct prestera_switch *sw, u16 vid) in prestera_hw_vlan_create() argument
1012 return prestera_cmd(sw, PRESTERA_CMD_TYPE_VLAN_CREATE, in prestera_hw_vlan_create()
1016 int prestera_hw_vlan_delete(struct prestera_switch *sw, u16 vid) in prestera_hw_vlan_delete() argument
1022 return prestera_cmd(sw, PRESTERA_CMD_TYPE_VLAN_DELETE, in prestera_hw_vlan_delete()
1037 return prestera_cmd(port->sw, PRESTERA_CMD_TYPE_VLAN_PORT_SET, in prestera_hw_vlan_port_set()
1049 return prestera_cmd(port->sw, PRESTERA_CMD_TYPE_VLAN_PVID_SET, in prestera_hw_vlan_port_vid_set()
1062 return prestera_cmd(port->sw, PRESTERA_CMD_TYPE_STP_PORT_SET, in prestera_hw_vlan_port_stp_set()
1078 return prestera_cmd(port->sw, PRESTERA_CMD_TYPE_FDB_ADD, in prestera_hw_fdb_add()
1093 return prestera_cmd(port->sw, PRESTERA_CMD_TYPE_FDB_DELETE, in prestera_hw_fdb_del()
1105 return prestera_cmd(port->sw, PRESTERA_CMD_TYPE_FDB_FLUSH_PORT, in prestera_hw_fdb_flush_port()
1109 int prestera_hw_fdb_flush_vlan(struct prestera_switch *sw, u16 vid, u32 mode) in prestera_hw_fdb_flush_vlan() argument
1116 return prestera_cmd(sw, PRESTERA_CMD_TYPE_FDB_FLUSH_VLAN, in prestera_hw_fdb_flush_vlan()
1130 return prestera_cmd(port->sw, PRESTERA_CMD_TYPE_FDB_FLUSH_PORT_VLAN, in prestera_hw_fdb_flush_port_vlan()
1134 int prestera_hw_bridge_create(struct prestera_switch *sw, u16 *bridge_id) in prestera_hw_bridge_create() argument
1140 err = prestera_cmd_ret(sw, PRESTERA_CMD_TYPE_BRIDGE_CREATE, in prestera_hw_bridge_create()
1151 int prestera_hw_bridge_delete(struct prestera_switch *sw, u16 bridge_id) in prestera_hw_bridge_delete() argument
1157 return prestera_cmd(sw, PRESTERA_CMD_TYPE_BRIDGE_DELETE, in prestera_hw_bridge_delete()
1169 return prestera_cmd(port->sw, PRESTERA_CMD_TYPE_BRIDGE_PORT_ADD, in prestera_hw_bridge_port_add()
1181 return prestera_cmd(port->sw, PRESTERA_CMD_TYPE_BRIDGE_PORT_DELETE, in prestera_hw_bridge_port_delete()
1185 int prestera_hw_rxtx_init(struct prestera_switch *sw, in prestera_hw_rxtx_init() argument
1194 err = prestera_cmd_ret(sw, PRESTERA_CMD_TYPE_RXTX_INIT, in prestera_hw_rxtx_init()
1211 return prestera_cmd(port->sw, PRESTERA_CMD_TYPE_RXTX_PORT_INIT, in prestera_hw_rxtx_port_init()
1215 int prestera_hw_event_handler_register(struct prestera_switch *sw, in prestera_hw_event_handler_register() argument
1222 eh = __find_event_handler(sw, type); in prestera_hw_event_handler_register()
1236 list_add_rcu(&eh->list, &sw->event_handlers); in prestera_hw_event_handler_register()
1241 void prestera_hw_event_handler_unregister(struct prestera_switch *sw, in prestera_hw_event_handler_unregister() argument
1247 eh = __find_event_handler(sw, type); in prestera_hw_event_handler_unregister()