Lines Matching refs:pi

43 ice_sched_add_root_node(struct ice_port_info *pi,  in ice_sched_add_root_node()  argument
49 if (!pi) in ice_sched_add_root_node()
52 hw = pi->hw; in ice_sched_add_root_node()
66 pi->root = root; in ice_sched_add_root_node()
177 ice_sched_add_node(struct ice_port_info *pi, u8 layer, in ice_sched_add_node() argument
187 if (!pi) in ice_sched_add_node()
190 hw = pi->hw; in ice_sched_add_node()
193 parent = ice_sched_find_node_by_teid(pi->root, in ice_sched_add_node()
300 ice_sched_get_first_node(struct ice_port_info *pi, in ice_sched_get_first_node() argument
303 return pi->sib_head[parent->tc_num][layer]; in ice_sched_get_first_node()
313 struct ice_sched_node *ice_sched_get_tc_node(struct ice_port_info *pi, u8 tc) in ice_sched_get_tc_node() argument
317 if (!pi || !pi->root) in ice_sched_get_tc_node()
319 for (i = 0; i < pi->root->num_children; i++) in ice_sched_get_tc_node()
320 if (pi->root->children[i]->tc_num == tc) in ice_sched_get_tc_node()
321 return pi->root->children[i]; in ice_sched_get_tc_node()
334 void ice_free_sched_node(struct ice_port_info *pi, struct ice_sched_node *node) in ice_free_sched_node() argument
337 struct ice_hw *hw = pi->hw; in ice_free_sched_node()
345 ice_free_sched_node(pi, node->children[0]); in ice_free_sched_node()
371 p = ice_sched_get_first_node(pi, node, node->tx_sched_layer); in ice_free_sched_node()
381 if (pi->sib_head[node->tc_num][node->tx_sched_layer] == node) in ice_free_sched_node()
382 pi->sib_head[node->tc_num][node->tx_sched_layer] = in ice_free_sched_node()
801 static void ice_sched_clear_rl_prof(struct ice_port_info *pi) in ice_sched_clear_rl_prof() argument
804 struct ice_hw *hw = pi->hw; in ice_sched_clear_rl_prof()
862 static void ice_sched_clear_tx_topo(struct ice_port_info *pi) in ice_sched_clear_tx_topo() argument
864 if (!pi) in ice_sched_clear_tx_topo()
867 ice_sched_clear_rl_prof(pi); in ice_sched_clear_tx_topo()
868 if (pi->root) { in ice_sched_clear_tx_topo()
869 ice_free_sched_node(pi, pi->root); in ice_sched_clear_tx_topo()
870 pi->root = NULL; in ice_sched_clear_tx_topo()
880 void ice_sched_clear_port(struct ice_port_info *pi) in ice_sched_clear_port() argument
882 if (!pi || pi->port_state != ICE_SCHED_PORT_STATE_READY) in ice_sched_clear_port()
885 pi->port_state = ICE_SCHED_PORT_STATE_INIT; in ice_sched_clear_port()
886 ice_acquire_lock(&pi->sched_lock); in ice_sched_clear_port()
887 ice_sched_clear_tx_topo(pi); in ice_sched_clear_port()
888 ice_release_lock(&pi->sched_lock); in ice_sched_clear_port()
889 ice_destroy_lock(&pi->sched_lock); in ice_sched_clear_port()
983 ice_sched_add_elems(struct ice_port_info *pi, struct ice_sched_node *tc_node, in ice_sched_add_elems() argument
992 struct ice_hw *hw = pi->hw; in ice_sched_add_elems()
1033 status = ice_sched_add_node(pi, layer, &buf->generic[i], prealloc_nodes[i]); in ice_sched_add_elems()
1035 status = ice_sched_add_node(pi, layer, &buf->generic[i], NULL); in ice_sched_add_elems()
1055 prev = ice_sched_get_first_node(pi, tc_node, layer); in ice_sched_add_elems()
1063 if (!pi->sib_head[tc_node->tc_num][layer]) in ice_sched_add_elems()
1064 pi->sib_head[tc_node->tc_num][layer] = new_node; in ice_sched_add_elems()
1087 ice_sched_add_nodes_to_hw_layer(struct ice_port_info *pi, in ice_sched_add_nodes_to_hw_layer() argument
1100 if (!parent || layer < pi->hw->sw_entry_point_layer) in ice_sched_add_nodes_to_hw_layer()
1104 max_child_nodes = pi->hw->max_children[parent->tx_sched_layer]; in ice_sched_add_nodes_to_hw_layer()
1114 return ice_sched_add_elems(pi, tc_node, parent, layer, num_nodes, in ice_sched_add_nodes_to_hw_layer()
1131 ice_sched_add_nodes_to_layer(struct ice_port_info *pi, in ice_sched_add_nodes_to_layer() argument
1146 status = ice_sched_add_nodes_to_hw_layer(pi, tc_node, parent, in ice_sched_add_nodes_to_layer()
1154 ice_debug(pi->hw, ICE_DBG_SCHED, "added extra nodes %d %d\n", num_nodes, in ice_sched_add_nodes_to_layer()
1166 max_child_nodes = pi->hw->max_children[parent->tx_sched_layer]; in ice_sched_add_nodes_to_layer()
1246 static void ice_rm_dflt_leaf_node(struct ice_port_info *pi) in ice_rm_dflt_leaf_node() argument
1250 node = pi->root; in ice_rm_dflt_leaf_node()
1261 status = ice_sched_remove_elems(pi->hw, node->parent, 1, &teid); in ice_rm_dflt_leaf_node()
1263 ice_free_sched_node(pi, node); in ice_rm_dflt_leaf_node()
1274 static void ice_sched_rm_dflt_nodes(struct ice_port_info *pi) in ice_sched_rm_dflt_nodes() argument
1278 ice_rm_dflt_leaf_node(pi); in ice_sched_rm_dflt_nodes()
1281 node = pi->root; in ice_sched_rm_dflt_nodes()
1283 if (node->tx_sched_layer >= pi->hw->sw_entry_point_layer && in ice_sched_rm_dflt_nodes()
1286 ice_free_sched_node(pi, node); in ice_sched_rm_dflt_nodes()
1304 enum ice_status ice_sched_init_port(struct ice_port_info *pi) in ice_sched_init_port() argument
1313 if (!pi) in ice_sched_init_port()
1315 hw = pi->hw; in ice_sched_init_port()
1324 status = ice_aq_get_dflt_topo(hw, pi->lport, buf, ICE_AQ_MAX_BUF_LEN, in ice_sched_init_port()
1353 pi->last_node_teid = in ice_sched_init_port()
1356 pi->last_node_teid = in ice_sched_init_port()
1360 status = ice_sched_add_root_node(pi, &buf[0].generic[0]); in ice_sched_init_port()
1375 status = ice_sched_add_node(pi, j, &buf[i].generic[j], NULL); in ice_sched_init_port()
1382 if (pi->root) in ice_sched_init_port()
1383 ice_sched_rm_dflt_nodes(pi); in ice_sched_init_port()
1386 pi->port_state = ICE_SCHED_PORT_STATE_READY; in ice_sched_init_port()
1387 ice_init_lock(&pi->sched_lock); in ice_sched_init_port()
1392 if (status && pi->root) { in ice_sched_init_port()
1393 ice_free_sched_node(pi, pi->root); in ice_sched_init_port()
1394 pi->root = NULL; in ice_sched_init_port()
1409 struct ice_sched_node *ice_sched_get_node(struct ice_port_info *pi, u32 teid) in ice_sched_get_node() argument
1413 if (!pi) in ice_sched_get_node()
1417 ice_acquire_lock(&pi->sched_lock); in ice_sched_get_node()
1418 node = ice_sched_find_node_by_teid(pi->root, teid); in ice_sched_get_node()
1419 ice_release_lock(&pi->sched_lock); in ice_sched_get_node()
1422 ice_debug(pi->hw, ICE_DBG_SCHED, "Node not found for teid=0x%x\n", teid); in ice_sched_get_node()
1567 ice_sched_get_free_qgrp(struct ice_port_info *pi, in ice_sched_get_free_qgrp() argument
1587 if (ice_sched_find_node_in_subtree(pi->hw, vsi_node, qgrp_node)) in ice_sched_get_free_qgrp()
1612 ice_sched_get_free_qparent(struct ice_port_info *pi, u16 vsi_handle, u8 tc, in ice_sched_get_free_qparent() argument
1620 qgrp_layer = ice_sched_get_qgrp_layer(pi->hw); in ice_sched_get_free_qparent()
1621 vsi_layer = ice_sched_get_vsi_layer(pi->hw); in ice_sched_get_free_qparent()
1622 max_children = pi->hw->max_children[qgrp_layer]; in ice_sched_get_free_qparent()
1624 vsi_ctx = ice_get_vsi_ctx(pi->hw, vsi_handle); in ice_sched_get_free_qparent()
1639 qgrp_node = ice_sched_get_first_node(pi, vsi_node, qgrp_layer); in ice_sched_get_free_qparent()
1642 if (ice_sched_find_node_in_subtree(pi->hw, vsi_node, qgrp_node)) in ice_sched_get_free_qparent()
1650 return ice_sched_get_free_qgrp(pi, vsi_node, qgrp_node, owner); in ice_sched_get_free_qparent()
1663 ice_sched_get_vsi_node(struct ice_port_info *pi, struct ice_sched_node *tc_node, in ice_sched_get_vsi_node() argument
1669 vsi_layer = ice_sched_get_vsi_layer(pi->hw); in ice_sched_get_vsi_node()
1670 node = ice_sched_get_first_node(pi, tc_node, vsi_layer); in ice_sched_get_vsi_node()
1692 ice_sched_get_agg_node(struct ice_port_info *pi, struct ice_sched_node *tc_node, in ice_sched_get_agg_node() argument
1696 struct ice_hw *hw = pi->hw; in ice_sched_get_agg_node()
1702 node = ice_sched_get_first_node(pi, tc_node, agg_layer); in ice_sched_get_agg_node()
1781 ice_sched_add_vsi_child_nodes(struct ice_port_info *pi, u16 vsi_handle, in ice_sched_add_vsi_child_nodes() argument
1786 struct ice_hw *hw = pi->hw; in ice_sched_add_vsi_child_nodes()
1793 parent = ice_sched_get_vsi_node(pi, tc_node, vsi_handle); in ice_sched_add_vsi_child_nodes()
1800 status = ice_sched_add_nodes_to_layer(pi, tc_node, parent, i, in ice_sched_add_vsi_child_nodes()
1837 ice_sched_calc_vsi_support_nodes(struct ice_port_info *pi, in ice_sched_calc_vsi_support_nodes() argument
1844 vsil = ice_sched_get_vsi_layer(pi->hw); in ice_sched_calc_vsi_support_nodes()
1845 for (i = vsil; i >= pi->hw->sw_entry_point_layer; i--) in ice_sched_calc_vsi_support_nodes()
1855 node = ice_sched_get_first_node(pi, tc_node, (u8)i); in ice_sched_calc_vsi_support_nodes()
1859 pi->hw->max_children[i]) in ice_sched_calc_vsi_support_nodes()
1886 ice_sched_add_vsi_support_nodes(struct ice_port_info *pi, u16 vsi_handle, in ice_sched_add_vsi_support_nodes() argument
1894 if (!pi) in ice_sched_add_vsi_support_nodes()
1897 vsil = ice_sched_get_vsi_layer(pi->hw); in ice_sched_add_vsi_support_nodes()
1898 for (i = pi->hw->sw_entry_point_layer; i <= vsil; i++) { in ice_sched_add_vsi_support_nodes()
1901 status = ice_sched_add_nodes_to_layer(pi, tc_node, parent, in ice_sched_add_vsi_support_nodes()
1936 ice_sched_add_vsi_to_topo(struct ice_port_info *pi, u16 vsi_handle, u8 tc) in ice_sched_add_vsi_to_topo() argument
1941 tc_node = ice_sched_get_tc_node(pi, tc); in ice_sched_add_vsi_to_topo()
1946 ice_sched_calc_vsi_support_nodes(pi, tc_node, num_nodes); in ice_sched_add_vsi_to_topo()
1949 return ice_sched_add_vsi_support_nodes(pi, vsi_handle, tc_node, in ice_sched_add_vsi_to_topo()
1964 ice_sched_update_vsi_child_nodes(struct ice_port_info *pi, u16 vsi_handle, in ice_sched_update_vsi_child_nodes() argument
1972 struct ice_hw *hw = pi->hw; in ice_sched_update_vsi_child_nodes()
1975 tc_node = ice_sched_get_tc_node(pi, tc); in ice_sched_update_vsi_child_nodes()
1979 vsi_node = ice_sched_get_vsi_node(pi, tc_node, vsi_handle); in ice_sched_update_vsi_child_nodes()
2013 status = ice_sched_add_vsi_child_nodes(pi, vsi_handle, tc_node, in ice_sched_update_vsi_child_nodes()
2039 ice_sched_cfg_vsi(struct ice_port_info *pi, u16 vsi_handle, u8 tc, u16 maxqs, in ice_sched_cfg_vsi() argument
2045 struct ice_hw *hw = pi->hw; in ice_sched_cfg_vsi()
2047 ice_debug(pi->hw, ICE_DBG_SCHED, "add/config VSI %d\n", vsi_handle); in ice_sched_cfg_vsi()
2048 tc_node = ice_sched_get_tc_node(pi, tc); in ice_sched_cfg_vsi()
2054 vsi_node = ice_sched_get_vsi_node(pi, tc_node, vsi_handle); in ice_sched_cfg_vsi()
2071 status = ice_sched_add_vsi_to_topo(pi, vsi_handle, tc); in ice_sched_cfg_vsi()
2075 vsi_node = ice_sched_get_vsi_node(pi, tc_node, vsi_handle); in ice_sched_cfg_vsi()
2090 status = ice_sched_update_vsi_child_nodes(pi, vsi_handle, tc, maxqs, in ice_sched_cfg_vsi()
2115 static void ice_sched_rm_agg_vsi_info(struct ice_port_info *pi, u16 vsi_handle) in ice_sched_rm_agg_vsi_info() argument
2120 LIST_FOR_EACH_ENTRY_SAFE(agg_info, atmp, &pi->hw->agg_list, in ice_sched_rm_agg_vsi_info()
2131 ice_free(pi->hw, agg_vsi_info); in ice_sched_rm_agg_vsi_info()
2164 ice_sched_rm_vsi_cfg(struct ice_port_info *pi, u16 vsi_handle, u8 owner) in ice_sched_rm_vsi_cfg() argument
2170 ice_debug(pi->hw, ICE_DBG_SCHED, "removing VSI %d\n", vsi_handle); in ice_sched_rm_vsi_cfg()
2171 if (!ice_is_vsi_valid(pi->hw, vsi_handle)) in ice_sched_rm_vsi_cfg()
2173 ice_acquire_lock(&pi->sched_lock); in ice_sched_rm_vsi_cfg()
2174 vsi_ctx = ice_get_vsi_ctx(pi->hw, vsi_handle); in ice_sched_rm_vsi_cfg()
2182 tc_node = ice_sched_get_tc_node(pi, i); in ice_sched_rm_vsi_cfg()
2186 vsi_node = ice_sched_get_vsi_node(pi, tc_node, vsi_handle); in ice_sched_rm_vsi_cfg()
2191 ice_debug(pi->hw, ICE_DBG_SCHED, "VSI has leaf nodes in TC %d\n", i); in ice_sched_rm_vsi_cfg()
2197 ice_free_sched_node(pi, vsi_node->children[j]); in ice_sched_rm_vsi_cfg()
2209 ice_free_sched_node(pi, vsi_node); in ice_sched_rm_vsi_cfg()
2213 ice_sched_rm_agg_vsi_info(pi, vsi_handle); in ice_sched_rm_vsi_cfg()
2223 ice_release_lock(&pi->sched_lock); in ice_sched_rm_vsi_cfg()
2235 enum ice_status ice_rm_vsi_lan_cfg(struct ice_port_info *pi, u16 vsi_handle) in ice_rm_vsi_lan_cfg() argument
2237 return ice_sched_rm_vsi_cfg(pi, vsi_handle, ICE_SCHED_NODE_OWNER_LAN); in ice_rm_vsi_lan_cfg()
2248 enum ice_status ice_rm_vsi_rdma_cfg(struct ice_port_info *pi, u16 vsi_handle) in ice_rm_vsi_rdma_cfg() argument
2250 return ice_sched_rm_vsi_cfg(pi, vsi_handle, ICE_SCHED_NODE_OWNER_RDMA); in ice_rm_vsi_rdma_cfg()
2409 ice_sched_move_nodes(struct ice_port_info *pi, struct ice_sched_node *parent, in ice_sched_move_nodes() argument
2419 hw = pi->hw; in ice_sched_move_nodes()
2435 node = ice_sched_find_node_by_teid(pi->root, list[i]); in ice_sched_move_nodes()
2472 ice_sched_move_vsi_to_agg(struct ice_port_info *pi, u16 vsi_handle, u32 agg_id, in ice_sched_move_vsi_to_agg() argument
2482 tc_node = ice_sched_get_tc_node(pi, tc); in ice_sched_move_vsi_to_agg()
2486 agg_node = ice_sched_get_agg_node(pi, tc_node, agg_id); in ice_sched_move_vsi_to_agg()
2490 vsi_node = ice_sched_get_vsi_node(pi, tc_node, vsi_handle); in ice_sched_move_vsi_to_agg()
2495 if (ice_sched_find_node_in_subtree(pi->hw, agg_node, vsi_node)) in ice_sched_move_vsi_to_agg()
2498 aggl = ice_sched_get_agg_layer(pi->hw); in ice_sched_move_vsi_to_agg()
2499 vsil = ice_sched_get_vsi_layer(pi->hw); in ice_sched_move_vsi_to_agg()
2507 parent = ice_sched_get_free_vsi_parent(pi->hw, in ice_sched_move_vsi_to_agg()
2517 status = ice_sched_add_nodes_to_layer(pi, tc_node, parent, i, in ice_sched_move_vsi_to_agg()
2539 return ice_sched_move_nodes(pi, parent, 1, &vsi_teid); in ice_sched_move_vsi_to_agg()
2554 ice_move_all_vsi_to_dflt_agg(struct ice_port_info *pi, in ice_move_all_vsi_to_dflt_agg() argument
2570 status = ice_sched_move_vsi_to_agg(pi, vsi_handle, in ice_move_all_vsi_to_dflt_agg()
2578 ice_free(pi->hw, agg_vsi_info); in ice_move_all_vsi_to_dflt_agg()
2593 ice_sched_is_agg_inuse(struct ice_port_info *pi, struct ice_sched_node *node) in ice_sched_is_agg_inuse() argument
2597 vsil = ice_sched_get_vsi_layer(pi->hw); in ice_sched_is_agg_inuse()
2600 if (ice_sched_is_agg_inuse(pi, node->children[i])) in ice_sched_is_agg_inuse()
2618 ice_sched_rm_agg_cfg(struct ice_port_info *pi, u32 agg_id, u8 tc) in ice_sched_rm_agg_cfg() argument
2621 struct ice_hw *hw = pi->hw; in ice_sched_rm_agg_cfg()
2623 tc_node = ice_sched_get_tc_node(pi, tc); in ice_sched_rm_agg_cfg()
2627 agg_node = ice_sched_get_agg_node(pi, tc_node, agg_id); in ice_sched_rm_agg_cfg()
2632 if (ice_sched_is_agg_inuse(pi, agg_node)) in ice_sched_rm_agg_cfg()
2650 ice_free_sched_node(pi, agg_node); in ice_sched_rm_agg_cfg()
2666 ice_rm_agg_cfg_tc(struct ice_port_info *pi, struct ice_sched_agg_info *agg_info, in ice_rm_agg_cfg_tc() argument
2675 status = ice_move_all_vsi_to_dflt_agg(pi, agg_info, tc, rm_vsi_info); in ice_rm_agg_cfg_tc()
2680 status = ice_sched_rm_agg_cfg(pi, agg_info->agg_id, tc); in ice_rm_agg_cfg_tc()
2699 ice_save_agg_tc_bitmap(struct ice_port_info *pi, u32 agg_id, in ice_save_agg_tc_bitmap() argument
2704 agg_info = ice_get_agg_info(pi->hw, agg_id); in ice_save_agg_tc_bitmap()
2722 ice_sched_add_agg_cfg(struct ice_port_info *pi, u32 agg_id, u8 tc) in ice_sched_add_agg_cfg() argument
2727 struct ice_hw *hw = pi->hw; in ice_sched_add_agg_cfg()
2732 tc_node = ice_sched_get_tc_node(pi, tc); in ice_sched_add_agg_cfg()
2736 agg_node = ice_sched_get_agg_node(pi, tc_node, agg_id); in ice_sched_add_agg_cfg()
2751 parent = ice_sched_get_first_node(pi, tc_node, i); in ice_sched_add_agg_cfg()
2771 status = ice_sched_add_nodes_to_layer(pi, tc_node, parent, i, in ice_sched_add_agg_cfg()
2812 ice_sched_cfg_agg(struct ice_port_info *pi, u32 agg_id, in ice_sched_cfg_agg() argument
2817 struct ice_hw *hw = pi->hw; in ice_sched_cfg_agg()
2842 status = ice_rm_agg_cfg_tc(pi, agg_info, tc, false); in ice_sched_cfg_agg()
2853 status = ice_sched_add_agg_cfg(pi, agg_id, tc); in ice_sched_cfg_agg()
2874 ice_cfg_agg(struct ice_port_info *pi, u32 agg_id, enum ice_agg_type agg_type, in ice_cfg_agg() argument
2880 ice_acquire_lock(&pi->sched_lock); in ice_cfg_agg()
2881 status = ice_sched_cfg_agg(pi, agg_id, agg_type, in ice_cfg_agg()
2884 status = ice_save_agg_tc_bitmap(pi, agg_id, in ice_cfg_agg()
2886 ice_release_lock(&pi->sched_lock); in ice_cfg_agg()
2947 ice_save_agg_vsi_tc_bitmap(struct ice_port_info *pi, u32 agg_id, u16 vsi_handle, in ice_save_agg_vsi_tc_bitmap() argument
2953 agg_info = ice_get_agg_info(pi->hw, agg_id); in ice_save_agg_vsi_tc_bitmap()
2977 ice_sched_assoc_vsi_to_agg(struct ice_port_info *pi, u32 agg_id, in ice_sched_assoc_vsi_to_agg() argument
2983 struct ice_hw *hw = pi->hw; in ice_sched_assoc_vsi_to_agg()
2986 if (!ice_is_vsi_valid(pi->hw, vsi_handle)) in ice_sched_assoc_vsi_to_agg()
3024 status = ice_sched_move_vsi_to_agg(pi, vsi_handle, agg_id, tc); in ice_sched_assoc_vsi_to_agg()
3034 ice_free(pi->hw, old_agg_vsi_info); in ice_sched_assoc_vsi_to_agg()
3154 ice_move_vsi_to_agg(struct ice_port_info *pi, u32 agg_id, u16 vsi_handle, in ice_move_vsi_to_agg() argument
3160 ice_acquire_lock(&pi->sched_lock); in ice_move_vsi_to_agg()
3161 status = ice_sched_assoc_vsi_to_agg(pi, agg_id, vsi_handle, in ice_move_vsi_to_agg()
3164 status = ice_save_agg_vsi_tc_bitmap(pi, agg_id, vsi_handle, in ice_move_vsi_to_agg()
3166 ice_release_lock(&pi->sched_lock); in ice_move_vsi_to_agg()
3178 enum ice_status ice_rm_agg_cfg(struct ice_port_info *pi, u32 agg_id) in ice_rm_agg_cfg() argument
3184 ice_acquire_lock(&pi->sched_lock); in ice_rm_agg_cfg()
3185 agg_info = ice_get_agg_info(pi->hw, agg_id); in ice_rm_agg_cfg()
3192 status = ice_rm_agg_cfg_tc(pi, agg_info, tc, true); in ice_rm_agg_cfg()
3204 ice_free(pi->hw, agg_info); in ice_rm_agg_cfg()
3207 ice_sched_rm_unused_rl_prof(pi->hw); in ice_rm_agg_cfg()
3210 ice_release_lock(&pi->sched_lock); in ice_rm_agg_cfg()
3261 ice_sched_save_vsi_bw_alloc(struct ice_port_info *pi, u16 vsi_handle, u8 tc, in ice_sched_save_vsi_bw_alloc() argument
3266 if (!ice_is_vsi_valid(pi->hw, vsi_handle)) in ice_sched_save_vsi_bw_alloc()
3268 vsi_ctx = ice_get_vsi_ctx(pi->hw, vsi_handle); in ice_sched_save_vsi_bw_alloc()
3354 ice_sched_save_vsi_bw(struct ice_port_info *pi, u16 vsi_handle, u8 tc, in ice_sched_save_vsi_bw() argument
3359 if (!ice_is_vsi_valid(pi->hw, vsi_handle)) in ice_sched_save_vsi_bw()
3361 vsi_ctx = ice_get_vsi_ctx(pi->hw, vsi_handle); in ice_sched_save_vsi_bw()
3406 ice_sched_save_vsi_prio(struct ice_port_info *pi, u16 vsi_handle, u8 tc, in ice_sched_save_vsi_prio() argument
3411 if (!ice_is_vsi_valid(pi->hw, vsi_handle)) in ice_sched_save_vsi_prio()
3413 vsi_ctx = ice_get_vsi_ctx(pi->hw, vsi_handle); in ice_sched_save_vsi_prio()
3433 ice_sched_save_agg_bw_alloc(struct ice_port_info *pi, u32 agg_id, u8 tc, in ice_sched_save_agg_bw_alloc() argument
3438 agg_info = ice_get_agg_info(pi->hw, agg_id); in ice_sched_save_agg_bw_alloc()
3467 ice_sched_save_agg_bw(struct ice_port_info *pi, u32 agg_id, u8 tc, in ice_sched_save_agg_bw() argument
3472 agg_info = ice_get_agg_info(pi->hw, agg_id); in ice_sched_save_agg_bw()
3505 ice_cfg_vsi_bw_lmt_per_tc(struct ice_port_info *pi, u16 vsi_handle, u8 tc, in ice_cfg_vsi_bw_lmt_per_tc() argument
3510 status = ice_sched_set_node_bw_lmt_per_tc(pi, vsi_handle, in ice_cfg_vsi_bw_lmt_per_tc()
3514 ice_acquire_lock(&pi->sched_lock); in ice_cfg_vsi_bw_lmt_per_tc()
3515 status = ice_sched_save_vsi_bw(pi, vsi_handle, tc, rl_type, bw); in ice_cfg_vsi_bw_lmt_per_tc()
3516 ice_release_lock(&pi->sched_lock); in ice_cfg_vsi_bw_lmt_per_tc()
3532 ice_cfg_vsi_bw_dflt_lmt_per_tc(struct ice_port_info *pi, u16 vsi_handle, u8 tc, in ice_cfg_vsi_bw_dflt_lmt_per_tc() argument
3537 status = ice_sched_set_node_bw_lmt_per_tc(pi, vsi_handle, in ice_cfg_vsi_bw_dflt_lmt_per_tc()
3542 ice_acquire_lock(&pi->sched_lock); in ice_cfg_vsi_bw_dflt_lmt_per_tc()
3543 status = ice_sched_save_vsi_bw(pi, vsi_handle, tc, rl_type, in ice_cfg_vsi_bw_dflt_lmt_per_tc()
3545 ice_release_lock(&pi->sched_lock); in ice_cfg_vsi_bw_dflt_lmt_per_tc()
3562 ice_cfg_agg_bw_lmt_per_tc(struct ice_port_info *pi, u32 agg_id, u8 tc, in ice_cfg_agg_bw_lmt_per_tc() argument
3567 status = ice_sched_set_node_bw_lmt_per_tc(pi, agg_id, ICE_AGG_TYPE_AGG, in ice_cfg_agg_bw_lmt_per_tc()
3570 ice_acquire_lock(&pi->sched_lock); in ice_cfg_agg_bw_lmt_per_tc()
3571 status = ice_sched_save_agg_bw(pi, agg_id, tc, rl_type, bw); in ice_cfg_agg_bw_lmt_per_tc()
3572 ice_release_lock(&pi->sched_lock); in ice_cfg_agg_bw_lmt_per_tc()
3588 ice_cfg_agg_bw_dflt_lmt_per_tc(struct ice_port_info *pi, u32 agg_id, u8 tc, in ice_cfg_agg_bw_dflt_lmt_per_tc() argument
3593 status = ice_sched_set_node_bw_lmt_per_tc(pi, agg_id, ICE_AGG_TYPE_AGG, in ice_cfg_agg_bw_dflt_lmt_per_tc()
3597 ice_acquire_lock(&pi->sched_lock); in ice_cfg_agg_bw_dflt_lmt_per_tc()
3598 status = ice_sched_save_agg_bw(pi, agg_id, tc, rl_type, in ice_cfg_agg_bw_dflt_lmt_per_tc()
3600 ice_release_lock(&pi->sched_lock); in ice_cfg_agg_bw_dflt_lmt_per_tc()
3617 ice_cfg_vsi_bw_shared_lmt(struct ice_port_info *pi, u16 vsi_handle, u32 min_bw, in ice_cfg_vsi_bw_shared_lmt() argument
3620 return ice_sched_set_vsi_bw_shared_lmt(pi, vsi_handle, min_bw, max_bw, in ice_cfg_vsi_bw_shared_lmt()
3633 ice_cfg_vsi_bw_no_shared_lmt(struct ice_port_info *pi, u16 vsi_handle) in ice_cfg_vsi_bw_no_shared_lmt() argument
3635 return ice_sched_set_vsi_bw_shared_lmt(pi, vsi_handle, in ice_cfg_vsi_bw_no_shared_lmt()
3653 ice_cfg_agg_bw_shared_lmt(struct ice_port_info *pi, u32 agg_id, u32 min_bw, in ice_cfg_agg_bw_shared_lmt() argument
3656 return ice_sched_set_agg_bw_shared_lmt(pi, agg_id, min_bw, max_bw, in ice_cfg_agg_bw_shared_lmt()
3669 ice_cfg_agg_bw_no_shared_lmt(struct ice_port_info *pi, u32 agg_id) in ice_cfg_agg_bw_no_shared_lmt() argument
3671 return ice_sched_set_agg_bw_shared_lmt(pi, agg_id, ICE_SCHED_DFLT_BW, in ice_cfg_agg_bw_no_shared_lmt()
3689 ice_cfg_agg_bw_shared_lmt_per_tc(struct ice_port_info *pi, u32 agg_id, u8 tc, in ice_cfg_agg_bw_shared_lmt_per_tc() argument
3692 return ice_sched_set_agg_bw_shared_lmt_per_tc(pi, agg_id, tc, min_bw, in ice_cfg_agg_bw_shared_lmt_per_tc()
3706 ice_cfg_agg_bw_no_shared_lmt_per_tc(struct ice_port_info *pi, u32 agg_id, u8 tc) in ice_cfg_agg_bw_no_shared_lmt_per_tc() argument
3708 return ice_sched_set_agg_bw_shared_lmt_per_tc(pi, agg_id, tc, in ice_cfg_agg_bw_no_shared_lmt_per_tc()
3725 ice_cfg_vsi_q_priority(struct ice_port_info *pi, u16 num_qs, u32 *q_ids, in ice_cfg_vsi_q_priority() argument
3731 ice_acquire_lock(&pi->sched_lock); in ice_cfg_vsi_q_priority()
3736 node = ice_sched_find_node_by_teid(pi->root, q_ids[i]); in ice_cfg_vsi_q_priority()
3743 status = ice_sched_cfg_sibl_node_prio(pi, node, q_prio[i]); in ice_cfg_vsi_q_priority()
3748 ice_release_lock(&pi->sched_lock); in ice_cfg_vsi_q_priority()
3765 ice_cfg_agg_vsi_priority_per_tc(struct ice_port_info *pi, u32 agg_id, in ice_cfg_agg_vsi_priority_per_tc() argument
3774 struct ice_hw *hw = pi->hw; in ice_cfg_agg_vsi_priority_per_tc()
3777 ice_acquire_lock(&pi->sched_lock); in ice_cfg_agg_vsi_priority_per_tc()
3787 tc_node = ice_sched_get_tc_node(pi, tc); in ice_cfg_agg_vsi_priority_per_tc()
3791 agg_node = ice_sched_get_agg_node(pi, tc_node, agg_id); in ice_cfg_agg_vsi_priority_per_tc()
3818 vsi_node = ice_sched_get_vsi_node(pi, tc_node, vsi_handle); in ice_cfg_agg_vsi_priority_per_tc()
3824 status = ice_sched_cfg_sibl_node_prio(pi, vsi_node, in ice_cfg_agg_vsi_priority_per_tc()
3828 status = ice_sched_save_vsi_prio(pi, vsi_handle, tc, in ice_cfg_agg_vsi_priority_per_tc()
3836 ice_release_lock(&pi->sched_lock); in ice_cfg_agg_vsi_priority_per_tc()
3852 ice_cfg_vsi_bw_alloc(struct ice_port_info *pi, u16 vsi_handle, u8 ena_tcmap, in ice_cfg_vsi_bw_alloc() argument
3858 if (!ice_is_vsi_valid(pi->hw, vsi_handle)) in ice_cfg_vsi_bw_alloc()
3861 ice_acquire_lock(&pi->sched_lock); in ice_cfg_vsi_bw_alloc()
3870 tc_node = ice_sched_get_tc_node(pi, tc); in ice_cfg_vsi_bw_alloc()
3874 vsi_node = ice_sched_get_vsi_node(pi, tc_node, vsi_handle); in ice_cfg_vsi_bw_alloc()
3878 status = ice_sched_cfg_node_bw_alloc(pi->hw, vsi_node, rl_type, in ice_cfg_vsi_bw_alloc()
3882 status = ice_sched_save_vsi_bw_alloc(pi, vsi_handle, tc, in ice_cfg_vsi_bw_alloc()
3888 ice_release_lock(&pi->sched_lock); in ice_cfg_vsi_bw_alloc()
3904 ice_cfg_agg_bw_alloc(struct ice_port_info *pi, u32 agg_id, u8 ena_tcmap, in ice_cfg_agg_bw_alloc() argument
3910 struct ice_hw *hw = pi->hw; in ice_cfg_agg_bw_alloc()
3913 ice_acquire_lock(&pi->sched_lock); in ice_cfg_agg_bw_alloc()
3932 tc_node = ice_sched_get_tc_node(pi, tc); in ice_cfg_agg_bw_alloc()
3936 agg_node = ice_sched_get_agg_node(pi, tc_node, agg_id); in ice_cfg_agg_bw_alloc()
3944 status = ice_sched_save_agg_bw_alloc(pi, agg_id, tc, rl_type, in ice_cfg_agg_bw_alloc()
3951 ice_release_lock(&pi->sched_lock); in ice_cfg_agg_bw_alloc()
4228 ice_sched_get_rl_prof_layer(struct ice_port_info *pi, enum ice_rl_type rl_type, in ice_sched_get_rl_prof_layer() argument
4231 struct ice_hw *hw = pi->hw; in ice_sched_get_rl_prof_layer()
4338 ice_sched_set_node_bw_dflt(struct ice_port_info *pi, in ice_sched_set_node_bw_dflt() argument
4348 hw = pi->hw; in ice_sched_set_node_bw_dflt()
4394 ice_sched_set_node_bw(struct ice_port_info *pi, struct ice_sched_node *node, in ice_sched_set_node_bw() argument
4399 struct ice_hw *hw = pi->hw; in ice_sched_set_node_bw()
4438 ice_sched_set_node_priority(struct ice_port_info *pi, struct ice_sched_node *node, in ice_sched_set_node_priority() argument
4451 return ice_sched_update_elem(pi->hw, node, &buf); in ice_sched_set_node_priority()
4463 ice_sched_set_node_weight(struct ice_port_info *pi, struct ice_sched_node *node, u16 weight) in ice_sched_set_node_weight() argument
4478 return ice_sched_update_elem(pi->hw, node, &buf); in ice_sched_set_node_weight()
4495 ice_sched_set_node_bw_lmt(struct ice_port_info *pi, struct ice_sched_node *node, in ice_sched_set_node_bw_lmt() argument
4501 if (!pi) in ice_sched_set_node_bw_lmt()
4503 hw = pi->hw; in ice_sched_set_node_bw_lmt()
4507 layer_num = ice_sched_get_rl_prof_layer(pi, rl_type, in ice_sched_set_node_bw_lmt()
4513 return ice_sched_set_node_bw_dflt(pi, node, rl_type, layer_num); in ice_sched_set_node_bw_lmt()
4514 return ice_sched_set_node_bw(pi, node, rl_type, bw, layer_num); in ice_sched_set_node_bw_lmt()
4528 ice_sched_set_node_bw_dflt_lmt(struct ice_port_info *pi, in ice_sched_set_node_bw_dflt_lmt() argument
4532 return ice_sched_set_node_bw_lmt(pi, node, rl_type, in ice_sched_set_node_bw_dflt_lmt()
4602 ice_sched_set_q_bw_lmt(struct ice_port_info *pi, u16 vsi_handle, u8 tc, in ice_sched_set_q_bw_lmt() argument
4609 if (!ice_is_vsi_valid(pi->hw, vsi_handle)) in ice_sched_set_q_bw_lmt()
4611 ice_acquire_lock(&pi->sched_lock); in ice_sched_set_q_bw_lmt()
4612 q_ctx = ice_get_lan_q_ctx(pi->hw, vsi_handle, tc, q_handle); in ice_sched_set_q_bw_lmt()
4615 node = ice_sched_find_node_by_teid(pi->root, q_ctx->q_teid); in ice_sched_set_q_bw_lmt()
4617 ice_debug(pi->hw, ICE_DBG_SCHED, "Wrong q_teid\n"); in ice_sched_set_q_bw_lmt()
4629 sel_layer = ice_sched_get_rl_prof_layer(pi, rl_type, in ice_sched_set_q_bw_lmt()
4631 if (sel_layer >= pi->hw->num_tx_sched_layers) { in ice_sched_set_q_bw_lmt()
4641 status = ice_sched_set_node_bw_dflt_lmt(pi, node, rl_type); in ice_sched_set_q_bw_lmt()
4643 status = ice_sched_set_node_bw_lmt(pi, node, rl_type, bw); in ice_sched_set_q_bw_lmt()
4649 ice_release_lock(&pi->sched_lock); in ice_sched_set_q_bw_lmt()
4665 ice_cfg_q_bw_lmt(struct ice_port_info *pi, u16 vsi_handle, u8 tc, in ice_cfg_q_bw_lmt() argument
4668 return ice_sched_set_q_bw_lmt(pi, vsi_handle, tc, q_handle, rl_type, in ice_cfg_q_bw_lmt()
4683 ice_cfg_q_bw_dflt_lmt(struct ice_port_info *pi, u16 vsi_handle, u8 tc, in ice_cfg_q_bw_dflt_lmt() argument
4686 return ice_sched_set_q_bw_lmt(pi, vsi_handle, tc, q_handle, rl_type, in ice_cfg_q_bw_dflt_lmt()
4701 ice_sched_save_tc_node_bw(struct ice_port_info *pi, u8 tc, in ice_sched_save_tc_node_bw() argument
4708 ice_set_clear_cir_bw(&pi->tc_node_bw_t_info[tc], bw); in ice_sched_save_tc_node_bw()
4711 ice_set_clear_eir_bw(&pi->tc_node_bw_t_info[tc], bw); in ice_sched_save_tc_node_bw()
4714 ice_set_clear_shared_bw(&pi->tc_node_bw_t_info[tc], bw); in ice_sched_save_tc_node_bw()
4732 ice_sched_set_tc_node_bw_lmt(struct ice_port_info *pi, u8 tc, in ice_sched_set_tc_node_bw_lmt() argument
4740 ice_acquire_lock(&pi->sched_lock); in ice_sched_set_tc_node_bw_lmt()
4741 tc_node = ice_sched_get_tc_node(pi, tc); in ice_sched_set_tc_node_bw_lmt()
4745 status = ice_sched_set_node_bw_dflt_lmt(pi, tc_node, rl_type); in ice_sched_set_tc_node_bw_lmt()
4747 status = ice_sched_set_node_bw_lmt(pi, tc_node, rl_type, bw); in ice_sched_set_tc_node_bw_lmt()
4749 status = ice_sched_save_tc_node_bw(pi, tc, rl_type, bw); in ice_sched_set_tc_node_bw_lmt()
4752 ice_release_lock(&pi->sched_lock); in ice_sched_set_tc_node_bw_lmt()
4767 ice_cfg_tc_node_bw_lmt(struct ice_port_info *pi, u8 tc, in ice_cfg_tc_node_bw_lmt() argument
4770 return ice_sched_set_tc_node_bw_lmt(pi, tc, rl_type, bw); in ice_cfg_tc_node_bw_lmt()
4782 ice_cfg_tc_node_bw_dflt_lmt(struct ice_port_info *pi, u8 tc, in ice_cfg_tc_node_bw_dflt_lmt() argument
4785 return ice_sched_set_tc_node_bw_lmt(pi, tc, rl_type, ICE_SCHED_DFLT_BW); in ice_cfg_tc_node_bw_dflt_lmt()
4798 ice_sched_save_tc_node_bw_alloc(struct ice_port_info *pi, u8 tc, in ice_sched_save_tc_node_bw_alloc() argument
4805 ice_set_clear_cir_bw_alloc(&pi->tc_node_bw_t_info[tc], in ice_sched_save_tc_node_bw_alloc()
4809 ice_set_clear_eir_bw_alloc(&pi->tc_node_bw_t_info[tc], in ice_sched_save_tc_node_bw_alloc()
4830 ice_sched_set_tc_node_bw_alloc(struct ice_port_info *pi, u8 tc, in ice_sched_set_tc_node_bw_alloc() argument
4838 ice_acquire_lock(&pi->sched_lock); in ice_sched_set_tc_node_bw_alloc()
4839 tc_node = ice_sched_get_tc_node(pi, tc); in ice_sched_set_tc_node_bw_alloc()
4842 status = ice_sched_cfg_node_bw_alloc(pi->hw, tc_node, rl_type, in ice_sched_set_tc_node_bw_alloc()
4846 status = ice_sched_save_tc_node_bw_alloc(pi, tc, rl_type, bw_alloc); in ice_sched_set_tc_node_bw_alloc()
4849 ice_release_lock(&pi->sched_lock); in ice_sched_set_tc_node_bw_alloc()
4864 ice_cfg_tc_node_bw_alloc(struct ice_port_info *pi, u8 tc, in ice_cfg_tc_node_bw_alloc() argument
4867 return ice_sched_set_tc_node_bw_alloc(pi, tc, rl_type, bw_alloc); in ice_cfg_tc_node_bw_alloc()
4880 ice_sched_set_agg_bw_dflt_lmt(struct ice_port_info *pi, u16 vsi_handle) in ice_sched_set_agg_bw_dflt_lmt() argument
4886 if (!ice_is_vsi_valid(pi->hw, vsi_handle)) in ice_sched_set_agg_bw_dflt_lmt()
4888 vsi_ctx = ice_get_vsi_ctx(pi->hw, vsi_handle); in ice_sched_set_agg_bw_dflt_lmt()
4900 status = ice_sched_set_node_bw_dflt_lmt(pi, node, ICE_MIN_BW); in ice_sched_set_agg_bw_dflt_lmt()
4905 status = ice_sched_set_node_bw_dflt_lmt(pi, node, ICE_MAX_BW); in ice_sched_set_agg_bw_dflt_lmt()
4910 status = ice_sched_set_node_bw_dflt_lmt(pi, node, in ice_sched_set_agg_bw_dflt_lmt()
4931 ice_sched_get_node_by_id_type(struct ice_port_info *pi, u32 id, in ice_sched_get_node_by_id_type() argument
4941 if (!ice_is_vsi_valid(pi->hw, vsi_handle)) in ice_sched_get_node_by_id_type()
4944 vsi_ctx = ice_get_vsi_ctx(pi->hw, vsi_handle); in ice_sched_get_node_by_id_type()
4954 tc_node = ice_sched_get_tc_node(pi, tc); in ice_sched_get_node_by_id_type()
4956 node = ice_sched_get_agg_node(pi, tc_node, id); in ice_sched_get_node_by_id_type()
4962 node = ice_sched_find_node_by_teid(pi->root, id); in ice_sched_get_node_by_id_type()
4969 child_node = ice_sched_find_node_by_teid(pi->root, id); in ice_sched_get_node_by_id_type()
4996 ice_sched_set_node_bw_lmt_per_tc(struct ice_port_info *pi, u32 id, in ice_sched_set_node_bw_lmt_per_tc() argument
5003 if (!pi) in ice_sched_set_node_bw_lmt_per_tc()
5009 ice_acquire_lock(&pi->sched_lock); in ice_sched_set_node_bw_lmt_per_tc()
5010 node = ice_sched_get_node_by_id_type(pi, id, agg_type, tc); in ice_sched_set_node_bw_lmt_per_tc()
5012 ice_debug(pi->hw, ICE_DBG_SCHED, "Wrong id, agg type, or tc\n"); in ice_sched_set_node_bw_lmt_per_tc()
5016 status = ice_sched_set_node_bw_dflt_lmt(pi, node, rl_type); in ice_sched_set_node_bw_lmt_per_tc()
5018 status = ice_sched_set_node_bw_lmt(pi, node, rl_type, bw); in ice_sched_set_node_bw_lmt_per_tc()
5021 ice_release_lock(&pi->sched_lock); in ice_sched_set_node_bw_lmt_per_tc()
5035 ice_sched_validate_vsi_srl_node(struct ice_port_info *pi, u16 vsi_handle) in ice_sched_validate_vsi_srl_node() argument
5040 if (!ice_is_vsi_valid(pi->hw, vsi_handle)) in ice_sched_validate_vsi_srl_node()
5049 tc_node = ice_sched_get_tc_node(pi, tc); in ice_sched_validate_vsi_srl_node()
5053 vsi_node = ice_sched_get_vsi_node(pi, tc_node, vsi_handle); in ice_sched_validate_vsi_srl_node()
5062 layer_num = ice_sched_get_rl_prof_layer(pi, rl_type, in ice_sched_validate_vsi_srl_node()
5064 if (layer_num >= pi->hw->num_tx_sched_layers) in ice_sched_validate_vsi_srl_node()
5090 ice_sched_set_save_vsi_srl_node_bw(struct ice_port_info *pi, u16 vsi_handle, in ice_sched_set_save_vsi_srl_node_bw() argument
5097 status = ice_sched_set_node_bw_dflt_lmt(pi, srl_node, rl_type); in ice_sched_set_save_vsi_srl_node_bw()
5099 status = ice_sched_set_node_bw_lmt(pi, srl_node, rl_type, bw); in ice_sched_set_save_vsi_srl_node_bw()
5102 status = ice_sched_save_vsi_bw(pi, vsi_handle, tc, rl_type, bw); in ice_sched_set_save_vsi_srl_node_bw()
5122 ice_sched_set_vsi_node_srl_per_tc(struct ice_port_info *pi, u16 vsi_handle, in ice_sched_set_vsi_node_srl_per_tc() argument
5129 tc_node = ice_sched_get_tc_node(pi, tc); in ice_sched_set_vsi_node_srl_per_tc()
5133 vsi_node = ice_sched_get_vsi_node(pi, tc_node, vsi_handle); in ice_sched_set_vsi_node_srl_per_tc()
5137 layer_num = ice_sched_get_rl_prof_layer(pi, ICE_SHARED_BW, in ice_sched_set_vsi_node_srl_per_tc()
5139 if (layer_num >= pi->hw->num_tx_sched_layers) in ice_sched_set_vsi_node_srl_per_tc()
5147 status = ice_sched_set_save_vsi_srl_node_bw(pi, vsi_handle, tc, in ice_sched_set_vsi_node_srl_per_tc()
5153 status = ice_sched_set_save_vsi_srl_node_bw(pi, vsi_handle, tc, in ice_sched_set_vsi_node_srl_per_tc()
5159 return ice_sched_set_save_vsi_srl_node_bw(pi, vsi_handle, tc, cfg_node, in ice_sched_set_vsi_node_srl_per_tc()
5176 ice_sched_set_vsi_bw_shared_lmt(struct ice_port_info *pi, u16 vsi_handle, in ice_sched_set_vsi_bw_shared_lmt() argument
5182 if (!pi) in ice_sched_set_vsi_bw_shared_lmt()
5185 if (!ice_is_vsi_valid(pi->hw, vsi_handle)) in ice_sched_set_vsi_bw_shared_lmt()
5188 ice_acquire_lock(&pi->sched_lock); in ice_sched_set_vsi_bw_shared_lmt()
5189 status = ice_sched_validate_vsi_srl_node(pi, vsi_handle); in ice_sched_set_vsi_bw_shared_lmt()
5196 tc_node = ice_sched_get_tc_node(pi, tc); in ice_sched_set_vsi_bw_shared_lmt()
5200 vsi_node = ice_sched_get_vsi_node(pi, tc_node, vsi_handle); in ice_sched_set_vsi_bw_shared_lmt()
5204 status = ice_sched_set_vsi_node_srl_per_tc(pi, vsi_handle, tc, in ice_sched_set_vsi_bw_shared_lmt()
5212 ice_release_lock(&pi->sched_lock); in ice_sched_set_vsi_bw_shared_lmt()
5226 ice_sched_validate_agg_srl_node(struct ice_port_info *pi, u32 agg_id) in ice_sched_validate_agg_srl_node() argument
5234 LIST_FOR_EACH_ENTRY(agg_info, &pi->hw->agg_list, ice_sched_agg_info, in ice_sched_validate_agg_srl_node()
5247 tc_node = ice_sched_get_tc_node(pi, tc); in ice_sched_validate_agg_srl_node()
5251 agg_node = ice_sched_get_agg_node(pi, tc_node, agg_id); in ice_sched_validate_agg_srl_node()
5259 layer_num = ice_sched_get_rl_prof_layer(pi, rl_type, in ice_sched_validate_agg_srl_node()
5261 if (layer_num >= pi->hw->num_tx_sched_layers) in ice_sched_validate_agg_srl_node()
5281 ice_sched_validate_agg_id(struct ice_port_info *pi, u32 agg_id) in ice_sched_validate_agg_id() argument
5288 status = ice_sched_validate_agg_srl_node(pi, agg_id); in ice_sched_validate_agg_id()
5292 LIST_FOR_EACH_ENTRY_SAFE(agg_info, tmp, &pi->hw->agg_list, in ice_sched_validate_agg_id()
5319 ice_sched_set_save_agg_srl_node_bw(struct ice_port_info *pi, u32 agg_id, u8 tc, in ice_sched_set_save_agg_srl_node_bw() argument
5326 status = ice_sched_set_node_bw_dflt_lmt(pi, srl_node, rl_type); in ice_sched_set_save_agg_srl_node_bw()
5328 status = ice_sched_set_node_bw_lmt(pi, srl_node, rl_type, bw); in ice_sched_set_save_agg_srl_node_bw()
5331 status = ice_sched_save_agg_bw(pi, agg_id, tc, rl_type, bw); in ice_sched_set_save_agg_srl_node_bw()
5351 ice_sched_set_agg_node_srl_per_tc(struct ice_port_info *pi, u32 agg_id, in ice_sched_set_agg_node_srl_per_tc() argument
5359 tc_node = ice_sched_get_tc_node(pi, tc); in ice_sched_set_agg_node_srl_per_tc()
5363 agg_node = ice_sched_get_agg_node(pi, tc_node, agg_id); in ice_sched_set_agg_node_srl_per_tc()
5367 layer_num = ice_sched_get_rl_prof_layer(pi, rl_type, in ice_sched_set_agg_node_srl_per_tc()
5369 if (layer_num >= pi->hw->num_tx_sched_layers) in ice_sched_set_agg_node_srl_per_tc()
5377 status = ice_sched_set_save_agg_srl_node_bw(pi, agg_id, tc, cfg_node, in ice_sched_set_agg_node_srl_per_tc()
5382 status = ice_sched_set_save_agg_srl_node_bw(pi, agg_id, tc, cfg_node, in ice_sched_set_agg_node_srl_per_tc()
5387 status = ice_sched_set_save_agg_srl_node_bw(pi, agg_id, tc, cfg_node, in ice_sched_set_agg_node_srl_per_tc()
5406 ice_sched_set_agg_bw_shared_lmt(struct ice_port_info *pi, u32 agg_id, in ice_sched_set_agg_bw_shared_lmt() argument
5412 if (!pi) in ice_sched_set_agg_bw_shared_lmt()
5415 ice_acquire_lock(&pi->sched_lock); in ice_sched_set_agg_bw_shared_lmt()
5416 status = ice_sched_validate_agg_id(pi, agg_id); in ice_sched_set_agg_bw_shared_lmt()
5424 tc_node = ice_sched_get_tc_node(pi, tc); in ice_sched_set_agg_bw_shared_lmt()
5428 agg_node = ice_sched_get_agg_node(pi, tc_node, agg_id); in ice_sched_set_agg_bw_shared_lmt()
5432 status = ice_sched_set_agg_node_srl_per_tc(pi, agg_id, tc, in ice_sched_set_agg_bw_shared_lmt()
5440 ice_release_lock(&pi->sched_lock); in ice_sched_set_agg_bw_shared_lmt()
5458 ice_sched_set_agg_bw_shared_lmt_per_tc(struct ice_port_info *pi, u32 agg_id, in ice_sched_set_agg_bw_shared_lmt_per_tc() argument
5464 if (!pi) in ice_sched_set_agg_bw_shared_lmt_per_tc()
5466 ice_acquire_lock(&pi->sched_lock); in ice_sched_set_agg_bw_shared_lmt_per_tc()
5467 status = ice_sched_validate_agg_id(pi, agg_id); in ice_sched_set_agg_bw_shared_lmt_per_tc()
5471 status = ice_sched_set_agg_node_srl_per_tc(pi, agg_id, tc, min_bw, in ice_sched_set_agg_bw_shared_lmt_per_tc()
5475 ice_release_lock(&pi->sched_lock); in ice_sched_set_agg_bw_shared_lmt_per_tc()
5489 ice_sched_cfg_sibl_node_prio(struct ice_port_info *pi, in ice_sched_cfg_sibl_node_prio() argument
5494 struct ice_hw *hw = pi->hw; in ice_sched_cfg_sibl_node_prio()
5593 struct ice_port_info *pi = hw->port_info; in ice_sched_replay_node_bw() local
5608 status = ice_sched_set_node_bw_lmt(pi, node, ICE_MIN_BW, in ice_sched_replay_node_bw()
5621 status = ice_sched_set_node_bw_lmt(pi, node, ICE_MAX_BW, in ice_sched_replay_node_bw()
5634 status = ice_sched_set_node_bw_lmt(pi, node, ICE_SHARED_BW, in ice_sched_replay_node_bw()
5690 ice_sched_get_ena_tc_bitmap(struct ice_port_info *pi, ice_bitmap_t *tc_bitmap, in ice_sched_get_ena_tc_bitmap() argument
5698 (ice_sched_get_tc_node(pi, tc))) in ice_sched_get_ena_tc_bitmap()
5712 struct ice_port_info *pi = hw->port_info; in ice_sched_replay_agg() local
5715 ice_acquire_lock(&pi->sched_lock); in ice_sched_replay_agg()
5727 ice_sched_get_ena_tc_bitmap(pi, in ice_sched_replay_agg()
5746 ice_release_lock(&pi->sched_lock); in ice_sched_replay_agg()
5758 struct ice_port_info *pi = hw->port_info; in ice_sched_replay_agg_vsi_preinit() local
5761 ice_acquire_lock(&pi->sched_lock); in ice_sched_replay_agg_vsi_preinit()
5771 ice_release_lock(&pi->sched_lock); in ice_sched_replay_agg_vsi_preinit()
5780 enum ice_status ice_sched_replay_root_node_bw(struct ice_port_info *pi) in ice_sched_replay_root_node_bw() argument
5784 if (!pi->hw) in ice_sched_replay_root_node_bw()
5786 ice_acquire_lock(&pi->sched_lock); in ice_sched_replay_root_node_bw()
5788 status = ice_sched_replay_node_bw(pi->hw, pi->root, in ice_sched_replay_root_node_bw()
5789 &pi->root_node_bw_t_info); in ice_sched_replay_root_node_bw()
5790 ice_release_lock(&pi->sched_lock); in ice_sched_replay_root_node_bw()
5800 enum ice_status ice_sched_replay_tc_node_bw(struct ice_port_info *pi) in ice_sched_replay_tc_node_bw() argument
5805 if (!pi->hw) in ice_sched_replay_tc_node_bw()
5807 ice_acquire_lock(&pi->sched_lock); in ice_sched_replay_tc_node_bw()
5811 tc_node = ice_sched_get_tc_node(pi, tc); in ice_sched_replay_tc_node_bw()
5814 status = ice_sched_replay_node_bw(pi->hw, tc_node, in ice_sched_replay_tc_node_bw()
5815 &pi->tc_node_bw_t_info[tc]); in ice_sched_replay_tc_node_bw()
5819 ice_release_lock(&pi->sched_lock); in ice_sched_replay_tc_node_bw()
5837 struct ice_port_info *pi = hw->port_info; in ice_sched_replay_vsi_bw() local
5843 vsi_ctx = ice_get_vsi_ctx(pi->hw, vsi_handle); in ice_sched_replay_vsi_bw()
5849 tc_node = ice_sched_get_tc_node(pi, tc); in ice_sched_replay_vsi_bw()
5852 vsi_node = ice_sched_get_vsi_node(pi, tc_node, vsi_handle); in ice_sched_replay_vsi_bw()
5877 struct ice_port_info *pi = hw->port_info; in ice_sched_replay_vsi_agg() local
5890 ice_sched_get_ena_tc_bitmap(pi, agg_info->replay_tc_bitmap, in ice_sched_replay_vsi_agg()
5903 ice_sched_get_ena_tc_bitmap(pi, agg_vsi_info->replay_tc_bitmap, in ice_sched_replay_vsi_agg()
5906 status = ice_sched_assoc_vsi_to_agg(pi, agg_info->agg_id, vsi_handle, in ice_sched_replay_vsi_agg()
5925 struct ice_port_info *pi = hw->port_info; in ice_replay_vsi_agg() local
5928 ice_acquire_lock(&pi->sched_lock); in ice_replay_vsi_agg()
5930 ice_release_lock(&pi->sched_lock); in ice_replay_vsi_agg()
5943 ice_sched_replay_q_bw(struct ice_port_info *pi, struct ice_q_ctx *q_ctx) in ice_sched_replay_q_bw() argument
5948 q_node = ice_sched_find_node_by_teid(pi->root, q_ctx->q_teid); in ice_sched_replay_q_bw()
5951 return ice_sched_replay_node_bw(pi->hw, q_node, &q_ctx->bw_t_info); in ice_sched_replay_q_bw()