Lines Matching refs:node

44 static void otx2_qos_get_regaddr(struct otx2_qos_node *node,  in otx2_qos_get_regaddr()  argument
48 if (node->level == NIX_TXSCH_LVL_SMQ) { in otx2_qos_get_regaddr()
49 cfg->reg[index++] = NIX_AF_MDQX_PARENT(node->schq); in otx2_qos_get_regaddr()
50 cfg->reg[index++] = NIX_AF_MDQX_SCHEDULE(node->schq); in otx2_qos_get_regaddr()
51 cfg->reg[index++] = NIX_AF_MDQX_PIR(node->schq); in otx2_qos_get_regaddr()
52 cfg->reg[index] = NIX_AF_MDQX_CIR(node->schq); in otx2_qos_get_regaddr()
53 } else if (node->level == NIX_TXSCH_LVL_TL4) { in otx2_qos_get_regaddr()
54 cfg->reg[index++] = NIX_AF_TL4X_PARENT(node->schq); in otx2_qos_get_regaddr()
55 cfg->reg[index++] = NIX_AF_TL4X_SCHEDULE(node->schq); in otx2_qos_get_regaddr()
56 cfg->reg[index++] = NIX_AF_TL4X_PIR(node->schq); in otx2_qos_get_regaddr()
57 cfg->reg[index] = NIX_AF_TL4X_CIR(node->schq); in otx2_qos_get_regaddr()
58 } else if (node->level == NIX_TXSCH_LVL_TL3) { in otx2_qos_get_regaddr()
59 cfg->reg[index++] = NIX_AF_TL3X_PARENT(node->schq); in otx2_qos_get_regaddr()
60 cfg->reg[index++] = NIX_AF_TL3X_SCHEDULE(node->schq); in otx2_qos_get_regaddr()
61 cfg->reg[index++] = NIX_AF_TL3X_PIR(node->schq); in otx2_qos_get_regaddr()
62 cfg->reg[index] = NIX_AF_TL3X_CIR(node->schq); in otx2_qos_get_regaddr()
63 } else if (node->level == NIX_TXSCH_LVL_TL2) { in otx2_qos_get_regaddr()
64 cfg->reg[index++] = NIX_AF_TL2X_PARENT(node->schq); in otx2_qos_get_regaddr()
65 cfg->reg[index++] = NIX_AF_TL2X_SCHEDULE(node->schq); in otx2_qos_get_regaddr()
66 cfg->reg[index++] = NIX_AF_TL2X_PIR(node->schq); in otx2_qos_get_regaddr()
67 cfg->reg[index] = NIX_AF_TL2X_CIR(node->schq); in otx2_qos_get_regaddr()
83 struct otx2_qos_node *node, in otx2_config_sched_shaping() argument
91 otx2_qos_get_regaddr(node, cfg, *num_regs); in otx2_config_sched_shaping()
94 cfg->regval[*num_regs] = node->parent->schq << 16; in otx2_config_sched_shaping()
98 if (node->qid == OTX2_QOS_QID_NONE) { in otx2_config_sched_shaping()
99 cfg->regval[*num_regs] = node->prio << 24 | in otx2_config_sched_shaping()
106 if (node->is_static) { in otx2_config_sched_shaping()
108 (node->schq - node->parent->prio_anchor) << 24; in otx2_config_sched_shaping()
110 quantum = node->quantum ? in otx2_config_sched_shaping()
111 node->quantum : pfvf->tx_max_pktlen; in otx2_config_sched_shaping()
113 cfg->regval[*num_regs] = node->parent->child_dwrr_prio << 24 | in otx2_config_sched_shaping()
119 maxrate = (node->rate > node->ceil) ? node->rate : node->ceil; in otx2_config_sched_shaping()
132 otx2_get_txschq_rate_regval(pfvf, node->rate, 65536); in otx2_config_sched_shaping()
137 struct otx2_qos_node *node, in __otx2_qos_txschq_cfg() argument
144 level = node->level; in __otx2_qos_txschq_cfg()
148 cfg->reg[num_regs] = NIX_AF_SMQX_CFG(node->schq); in __otx2_qos_txschq_cfg()
155 otx2_config_sched_shaping(pfvf, node, cfg, &num_regs); in __otx2_qos_txschq_cfg()
158 otx2_config_sched_shaping(pfvf, node, cfg, &num_regs); in __otx2_qos_txschq_cfg()
162 cfg->reg[num_regs] = NIX_AF_TL3_TL2X_LINKX_CFG(node->schq, hw->tx_link); in __otx2_qos_txschq_cfg()
167 otx2_config_sched_shaping(pfvf, node, cfg, &num_regs); in __otx2_qos_txschq_cfg()
171 cfg->reg[num_regs] = NIX_AF_TL3_TL2X_LINKX_CFG(node->schq, hw->tx_link); in __otx2_qos_txschq_cfg()
177 if (node->qid == OTX2_QOS_QID_INNER && !node->parent) { in __otx2_qos_txschq_cfg()
178 cfg->reg[num_regs] = NIX_AF_TL2X_SCHEDULE(node->schq); in __otx2_qos_txschq_cfg()
186 otx2_config_sched_shaping(pfvf, node, cfg, &num_regs); in __otx2_qos_txschq_cfg()
237 struct otx2_qos_node *node; in otx2_qos_free_hw_node_schq() local
239 list_for_each_entry_reverse(node, &parent->child_schq_list, list) in otx2_qos_free_hw_node_schq()
240 otx2_txschq_free_one(pfvf, node->level, node->schq); in otx2_qos_free_hw_node_schq()
246 struct otx2_qos_node *node, *tmp; in otx2_qos_free_hw_node() local
248 list_for_each_entry_safe(node, tmp, &parent->child_list, list) { in otx2_qos_free_hw_node()
249 otx2_qos_free_hw_node(pfvf, node); in otx2_qos_free_hw_node()
250 otx2_qos_free_hw_node_schq(pfvf, node); in otx2_qos_free_hw_node()
251 otx2_txschq_free_one(pfvf, node->level, node->schq); in otx2_qos_free_hw_node()
256 struct otx2_qos_node *node) in otx2_qos_free_hw_cfg() argument
261 otx2_qos_free_hw_node(pfvf, node); in otx2_qos_free_hw_cfg()
262 otx2_qos_free_hw_node_schq(pfvf, node); in otx2_qos_free_hw_cfg()
265 otx2_txschq_free_one(pfvf, node->level, node->schq); in otx2_qos_free_hw_cfg()
271 struct otx2_qos_node *node) in otx2_qos_sw_node_delete() argument
273 hash_del_rcu(&node->hlist); in otx2_qos_sw_node_delete()
275 if (node->qid != OTX2_QOS_QID_INNER && node->qid != OTX2_QOS_QID_NONE) { in otx2_qos_sw_node_delete()
276 __clear_bit(node->qid, pfvf->qos.qos_sq_bmap); in otx2_qos_sw_node_delete()
280 list_del(&node->list); in otx2_qos_sw_node_delete()
281 kfree(node); in otx2_qos_sw_node_delete()
287 struct otx2_qos_node *node, *tmp; in otx2_qos_free_sw_node_schq() local
289 list_for_each_entry_safe(node, tmp, &parent->child_schq_list, list) { in otx2_qos_free_sw_node_schq()
290 list_del(&node->list); in otx2_qos_free_sw_node_schq()
291 kfree(node); in otx2_qos_free_sw_node_schq()
298 struct otx2_qos_node *node, *tmp; in __otx2_qos_free_sw_node() local
300 list_for_each_entry_safe(node, tmp, &parent->child_list, list) { in __otx2_qos_free_sw_node()
301 __otx2_qos_free_sw_node(pfvf, node); in __otx2_qos_free_sw_node()
302 otx2_qos_free_sw_node_schq(pfvf, node); in __otx2_qos_free_sw_node()
303 otx2_qos_sw_node_delete(pfvf, node); in __otx2_qos_free_sw_node()
308 struct otx2_qos_node *node) in otx2_qos_free_sw_node() argument
312 __otx2_qos_free_sw_node(pfvf, node); in otx2_qos_free_sw_node()
313 otx2_qos_free_sw_node_schq(pfvf, node); in otx2_qos_free_sw_node()
314 otx2_qos_sw_node_delete(pfvf, node); in otx2_qos_free_sw_node()
320 struct otx2_qos_node *node) in otx2_qos_destroy_node() argument
322 otx2_qos_free_hw_cfg(pfvf, node); in otx2_qos_destroy_node()
323 otx2_qos_free_sw_node(pfvf, node); in otx2_qos_destroy_node()
329 struct otx2_qos_node *node; in otx2_qos_fill_cfg_schq() local
331 list_for_each_entry(node, &parent->child_schq_list, list) in otx2_qos_fill_cfg_schq()
332 cfg->schq[node->level]++; in otx2_qos_fill_cfg_schq()
338 struct otx2_qos_node *node; in otx2_qos_fill_cfg_tl() local
340 list_for_each_entry(node, &parent->child_list, list) { in otx2_qos_fill_cfg_tl()
341 otx2_qos_fill_cfg_tl(node, cfg); in otx2_qos_fill_cfg_tl()
342 otx2_qos_fill_cfg_schq(node, cfg); in otx2_qos_fill_cfg_tl()
364 struct otx2_qos_node *node; in otx2_qos_read_txschq_cfg_schq() local
367 list_for_each_entry(node, &parent->child_schq_list, list) { in otx2_qos_read_txschq_cfg_schq()
368 cnt = cfg->dwrr_node_pos[node->level]; in otx2_qos_read_txschq_cfg_schq()
369 cfg->schq_list[node->level][cnt] = node->schq; in otx2_qos_read_txschq_cfg_schq()
370 cfg->schq[node->level]++; in otx2_qos_read_txschq_cfg_schq()
371 cfg->dwrr_node_pos[node->level]++; in otx2_qos_read_txschq_cfg_schq()
378 struct otx2_qos_node *node; in otx2_qos_read_txschq_cfg_tl() local
381 list_for_each_entry(node, &parent->child_list, list) { in otx2_qos_read_txschq_cfg_tl()
382 otx2_qos_read_txschq_cfg_tl(node, cfg); in otx2_qos_read_txschq_cfg_tl()
383 cnt = cfg->static_node_pos[node->level]; in otx2_qos_read_txschq_cfg_tl()
384 cfg->schq_contig_list[node->level][cnt] = node->schq; in otx2_qos_read_txschq_cfg_tl()
385 cfg->schq_index_used[node->level][cnt] = true; in otx2_qos_read_txschq_cfg_tl()
386 cfg->schq_contig[node->level]++; in otx2_qos_read_txschq_cfg_tl()
387 cfg->static_node_pos[node->level]++; in otx2_qos_read_txschq_cfg_tl()
388 otx2_qos_read_txschq_cfg_schq(node, cfg); in otx2_qos_read_txschq_cfg_tl()
393 struct otx2_qos_node *node, in otx2_qos_read_txschq_cfg() argument
397 otx2_qos_read_txschq_cfg_tl(node, cfg); in otx2_qos_read_txschq_cfg()
404 struct otx2_qos_node *node; in otx2_qos_alloc_root() local
406 node = kzalloc(sizeof(*node), GFP_KERNEL); in otx2_qos_alloc_root()
407 if (!node) in otx2_qos_alloc_root()
410 node->parent = NULL; in otx2_qos_alloc_root()
412 node->level = NIX_TXSCH_LVL_TL1; in otx2_qos_alloc_root()
414 node->level = NIX_TXSCH_LVL_TL2; in otx2_qos_alloc_root()
415 node->child_dwrr_prio = OTX2_QOS_DEFAULT_PRIO; in otx2_qos_alloc_root()
418 WRITE_ONCE(node->qid, OTX2_QOS_QID_INNER); in otx2_qos_alloc_root()
419 node->classid = OTX2_QOS_ROOT_CLASSID; in otx2_qos_alloc_root()
421 hash_add_rcu(pfvf->qos.qos_hlist, &node->hlist, node->classid); in otx2_qos_alloc_root()
422 list_add_tail(&node->list, &pfvf->qos.qos_tree); in otx2_qos_alloc_root()
423 INIT_LIST_HEAD(&node->child_list); in otx2_qos_alloc_root()
424 INIT_LIST_HEAD(&node->child_schq_list); in otx2_qos_alloc_root()
426 return node; in otx2_qos_alloc_root()
430 struct otx2_qos_node *node) in otx2_qos_add_child_node() argument
436 if (node->prio > parent->max_static_prio) in otx2_qos_add_child_node()
437 parent->max_static_prio = node->prio; in otx2_qos_add_child_node()
441 if (tmp_node->prio == node->prio && in otx2_qos_add_child_node()
444 if (tmp_node->prio > node->prio) { in otx2_qos_add_child_node()
445 list_add_tail(&node->list, tmp); in otx2_qos_add_child_node()
450 list_add_tail(&node->list, head); in otx2_qos_add_child_node()
455 struct otx2_qos_node *node) in otx2_qos_alloc_txschq_node() argument
460 parent = node; in otx2_qos_alloc_txschq_node()
461 for (lvl = node->level - 1; lvl >= NIX_TXSCH_LVL_MDQ; lvl--) { in otx2_qos_alloc_txschq_node()
479 list_add_tail(&txschq_node->list, &node->child_schq_list); in otx2_qos_alloc_txschq_node()
490 list_for_each_entry_safe(txschq_node, tmp, &node->child_schq_list, in otx2_qos_alloc_txschq_node()
504 struct otx2_qos_node *node; in otx2_qos_sw_create_leaf_node() local
507 node = kzalloc(sizeof(*node), GFP_KERNEL); in otx2_qos_sw_create_leaf_node()
508 if (!node) in otx2_qos_sw_create_leaf_node()
511 node->parent = parent; in otx2_qos_sw_create_leaf_node()
512 node->level = parent->level - 1; in otx2_qos_sw_create_leaf_node()
513 node->classid = classid; in otx2_qos_sw_create_leaf_node()
514 WRITE_ONCE(node->qid, qid); in otx2_qos_sw_create_leaf_node()
516 node->rate = otx2_convert_rate(rate); in otx2_qos_sw_create_leaf_node()
517 node->ceil = otx2_convert_rate(ceil); in otx2_qos_sw_create_leaf_node()
518 node->prio = prio; in otx2_qos_sw_create_leaf_node()
519 node->quantum = quantum; in otx2_qos_sw_create_leaf_node()
520 node->is_static = static_cfg; in otx2_qos_sw_create_leaf_node()
521 node->child_dwrr_prio = OTX2_QOS_DEFAULT_PRIO; in otx2_qos_sw_create_leaf_node()
522 node->txschq_idx = OTX2_QOS_INVALID_TXSCHQ_IDX; in otx2_qos_sw_create_leaf_node()
526 hash_add_rcu(pfvf->qos.qos_hlist, &node->hlist, classid); in otx2_qos_sw_create_leaf_node()
529 err = otx2_qos_add_child_node(parent, node); in otx2_qos_sw_create_leaf_node()
536 INIT_LIST_HEAD(&node->child_list); in otx2_qos_sw_create_leaf_node()
537 INIT_LIST_HEAD(&node->child_schq_list); in otx2_qos_sw_create_leaf_node()
539 err = otx2_qos_alloc_txschq_node(pfvf, node); in otx2_qos_sw_create_leaf_node()
541 otx2_qos_sw_node_delete(pfvf, node); in otx2_qos_sw_create_leaf_node()
545 return node; in otx2_qos_sw_create_leaf_node()
551 struct otx2_qos_node *node = NULL; in otx2_sw_node_find_by_qid() local
554 hash_for_each(pfvf->qos.qos_hlist, bkt, node, hlist) { in otx2_sw_node_find_by_qid()
555 if (node->qid == qid) in otx2_sw_node_find_by_qid()
559 return node; in otx2_sw_node_find_by_qid()
565 struct otx2_qos_node *node = NULL; in otx2_sw_node_find() local
567 hash_for_each_possible(pfvf->qos.qos_hlist, node, hlist, classid) { in otx2_sw_node_find()
568 if (node->classid == classid) in otx2_sw_node_find()
572 return node; in otx2_sw_node_find()
578 struct otx2_qos_node *node = NULL; in otx2_sw_node_find_rcu() local
580 hash_for_each_possible_rcu(pfvf->qos.qos_hlist, node, hlist, classid) { in otx2_sw_node_find_rcu()
581 if (node->classid == classid) in otx2_sw_node_find_rcu()
585 return node; in otx2_sw_node_find_rcu()
590 struct otx2_qos_node *node; in otx2_get_txq_by_classid() local
594 node = otx2_sw_node_find_rcu(pfvf, classid); in otx2_get_txq_by_classid()
595 if (!node) { in otx2_get_txq_by_classid()
599 qid = READ_ONCE(node->qid); in otx2_get_txq_by_classid()
610 otx2_qos_txschq_config(struct otx2_nic *pfvf, struct otx2_qos_node *node) in otx2_qos_txschq_config() argument
624 req->lvl = node->level; in otx2_qos_txschq_config()
625 __otx2_qos_txschq_cfg(pfvf, node, req); in otx2_qos_txschq_config()
706 struct otx2_qos_node *node, in otx2_qos_txschq_fill_cfg_schq() argument
712 list_for_each_entry(tmp, &node->child_schq_list, list) { in otx2_qos_txschq_fill_cfg_schq()
720 struct otx2_qos_node *node, in otx2_qos_txschq_fill_cfg_tl() argument
726 list_for_each_entry(tmp, &node->child_list, list) { in otx2_qos_txschq_fill_cfg_tl()
732 node->prio_anchor = in otx2_qos_txschq_fill_cfg_tl()
740 struct otx2_qos_node *node, in otx2_qos_txschq_fill_cfg() argument
744 otx2_qos_txschq_fill_cfg_tl(pfvf, node, cfg); in otx2_qos_txschq_fill_cfg()
745 otx2_qos_txschq_fill_cfg_schq(pfvf, node, cfg); in otx2_qos_txschq_fill_cfg()
777 struct otx2_qos_node *node) in otx2_qos_assign_base_idx_tl() argument
783 list_for_each_entry(tmp, &node->child_list, list) in otx2_qos_assign_base_idx_tl()
787 child_cnt = node->child_dwrr_cnt + node->max_static_prio + 1; in otx2_qos_assign_base_idx_tl()
794 list_for_each_entry(tmp, &node->child_list, list) in otx2_qos_assign_base_idx_tl()
798 list_for_each_entry(tmp, &node->child_list, list) { in otx2_qos_assign_base_idx_tl()
806 list_for_each_entry(tmp, &node->child_list, list) in otx2_qos_assign_base_idx_tl()
816 struct otx2_qos_node *node) in otx2_qos_assign_base_idx() argument
821 ret = otx2_qos_assign_base_idx_tl(pfvf, node); in otx2_qos_assign_base_idx()
828 struct otx2_qos_node *node, in otx2_qos_txschq_push_cfg_schq() argument
834 list_for_each_entry(tmp, &node->child_schq_list, list) { in otx2_qos_txschq_push_cfg_schq()
847 struct otx2_qos_node *node, in otx2_qos_txschq_push_cfg_tl() argument
853 list_for_each_entry(tmp, &node->child_list, list) { in otx2_qos_txschq_push_cfg_tl()
865 ret = otx2_qos_txschq_set_parent_topology(pfvf, node); in otx2_qos_txschq_push_cfg_tl()
873 struct otx2_qos_node *node, in otx2_qos_txschq_push_cfg() argument
879 ret = otx2_qos_txschq_push_cfg_tl(pfvf, node, cfg); in otx2_qos_txschq_push_cfg()
882 ret = otx2_qos_txschq_push_cfg_schq(pfvf, node, cfg); in otx2_qos_txschq_push_cfg()
889 struct otx2_qos_node *node, in otx2_qos_txschq_update_config() argument
892 otx2_qos_txschq_fill_cfg(pfvf, node, cfg); in otx2_qos_txschq_update_config()
894 return otx2_qos_txschq_push_cfg(pfvf, node, cfg); in otx2_qos_txschq_update_config()
927 struct otx2_qos_node *node, in otx2_qos_enadis_sq() argument
933 pfvf->qos.qid_to_sqmap[qid] = node->schq; in otx2_qos_enadis_sq()
934 otx2_qos_txschq_config(pfvf, node); in otx2_qos_enadis_sq()
939 struct otx2_qos_node *node, in otx2_qos_update_smq_schq() argument
944 if (node->qid == OTX2_QOS_QID_INNER) in otx2_qos_update_smq_schq()
947 list_for_each_entry(tmp, &node->child_schq_list, list) { in otx2_qos_update_smq_schq()
952 otx2_qos_enadis_sq(pfvf, tmp, node->qid); in otx2_qos_update_smq_schq()
958 struct otx2_qos_node *node, in __otx2_qos_update_smq() argument
963 list_for_each_entry(tmp, &node->child_list, list) { in __otx2_qos_update_smq()
979 struct otx2_qos_node *node, in otx2_qos_update_smq() argument
983 __otx2_qos_update_smq(pfvf, node, action); in otx2_qos_update_smq()
984 otx2_qos_update_smq_schq(pfvf, node, action); in otx2_qos_update_smq()
989 struct otx2_qos_node *node, in otx2_qos_push_txschq_cfg() argument
998 ret = otx2_qos_assign_base_idx(pfvf, node); in otx2_qos_push_txschq_cfg()
1003 otx2_qos_txschq_fill_cfg(pfvf, node, cfg); in otx2_qos_push_txschq_cfg()
1007 ret = otx2_qos_txschq_update_config(pfvf, node, cfg); in otx2_qos_push_txschq_cfg()
1013 otx2_qos_update_smq(pfvf, node, QOS_CFG_SQ); in otx2_qos_push_txschq_cfg()
1019 struct otx2_qos_node *node, in otx2_qos_update_tree() argument
1022 otx2_qos_prepare_txschq_cfg(pfvf, node->parent, cfg); in otx2_qos_update_tree()
1023 return otx2_qos_push_txschq_cfg(pfvf, node->parent, cfg); in otx2_qos_update_tree()
1185 struct otx2_qos_node *node; in is_qos_node_dwrr() local
1192 list_for_each_entry(node, &parent->child_list, list) { in is_qos_node_dwrr()
1193 if (prio == node->prio) { in is_qos_node_dwrr()
1198 if (otx2_qos_validate_quantum(pfvf, node->quantum)) { in is_qos_node_dwrr()
1201 node->classid, node->quantum, in is_qos_node_dwrr()
1202 node->prio); in is_qos_node_dwrr()
1206 node->is_static = false; in is_qos_node_dwrr()
1224 struct otx2_qos_node *node, *parent; in otx2_qos_leaf_alloc_queue() local
1298 node = otx2_qos_sw_create_leaf_node(pfvf, parent, classid, prio, rate, in otx2_qos_leaf_alloc_queue()
1300 if (IS_ERR(node)) { in otx2_qos_leaf_alloc_queue()
1302 ret = PTR_ERR(node); in otx2_qos_leaf_alloc_queue()
1313 ret = otx2_qos_update_tree(pfvf, node, new_cfg); in otx2_qos_leaf_alloc_queue()
1317 otx2_qos_sw_node_delete(pfvf, node); in otx2_qos_leaf_alloc_queue()
1343 otx2_qos_sw_node_delete(pfvf, node); in otx2_qos_leaf_alloc_queue()
1362 struct otx2_qos_node *node, *child; in otx2_qos_leaf_to_inner() local
1384 node = otx2_sw_node_find(pfvf, classid); in otx2_qos_leaf_to_inner()
1385 if (!node) { in otx2_qos_leaf_to_inner()
1391 if (node->level == NIX_TXSCH_LVL_MDQ) { in otx2_qos_leaf_to_inner()
1397 static_cfg = !is_qos_node_dwrr(node, pfvf, prio); in otx2_qos_leaf_to_inner()
1399 ret = otx2_qos_validate_dwrr_cfg(node, extack, pfvf, prio, in otx2_qos_leaf_to_inner()
1406 node->child_static_cnt++; in otx2_qos_leaf_to_inner()
1408 node->child_dwrr_cnt++; in otx2_qos_leaf_to_inner()
1410 set_bit(prio, node->prio_bmap); in otx2_qos_leaf_to_inner()
1413 qid = node->qid; in otx2_qos_leaf_to_inner()
1422 otx2_qos_read_txschq_cfg(pfvf, node, old_cfg); in otx2_qos_leaf_to_inner()
1426 otx2_qos_free_hw_node_schq(pfvf, node); in otx2_qos_leaf_to_inner()
1427 otx2_qos_free_sw_node_schq(pfvf, node); in otx2_qos_leaf_to_inner()
1431 WRITE_ONCE(node->qid, OTX2_QOS_QID_INNER); in otx2_qos_leaf_to_inner()
1434 child = otx2_qos_sw_create_leaf_node(pfvf, node, child_classid, in otx2_qos_leaf_to_inner()
1456 WRITE_ONCE(node->qid, qid); in otx2_qos_leaf_to_inner()
1457 err = otx2_qos_alloc_txschq_node(pfvf, node); in otx2_qos_leaf_to_inner()
1463 err = otx2_qos_txschq_update_config(pfvf, node, old_cfg); in otx2_qos_leaf_to_inner()
1469 otx2_qos_update_smq(pfvf, node, QOS_CFG_SQ); in otx2_qos_leaf_to_inner()
1488 node->child_static_cnt--; in otx2_qos_leaf_to_inner()
1490 node->child_dwrr_cnt--; in otx2_qos_leaf_to_inner()
1491 clear_bit(prio, node->prio_bmap); in otx2_qos_leaf_to_inner()
1516 static void otx2_cfg_smq(struct otx2_nic *pfvf, struct otx2_qos_node *node, in otx2_cfg_smq() argument
1521 list_for_each_entry(tmp, &node->child_schq_list, list) in otx2_cfg_smq()
1531 struct otx2_qos_node *node, *parent; in otx2_qos_leaf_del() local
1539 node = otx2_sw_node_find(pfvf, *classid); in otx2_qos_leaf_del()
1540 if (!node) { in otx2_qos_leaf_del()
1544 parent = node->parent; in otx2_qos_leaf_del()
1545 prio = node->prio; in otx2_qos_leaf_del()
1546 qid = node->qid; in otx2_qos_leaf_del()
1548 if (!node->is_static) in otx2_qos_leaf_del()
1551 otx2_qos_disable_sq(pfvf, node->qid); in otx2_qos_leaf_del()
1553 otx2_qos_destroy_node(pfvf, node); in otx2_qos_leaf_del()
1578 node = otx2_sw_node_find_by_qid(pfvf, moved_qid); in otx2_qos_leaf_del()
1579 if (!node) in otx2_qos_leaf_del()
1585 node->qid = OTX2_QOS_QID_INNER; in otx2_qos_leaf_del()
1594 otx2_cfg_smq(pfvf, node, qid); in otx2_qos_leaf_del()
1598 node->qid = qid; in otx2_qos_leaf_del()
1600 *classid = node->classid; in otx2_qos_leaf_del()
1607 struct otx2_qos_node *node, *parent; in otx2_qos_leaf_del_last() local
1618 node = otx2_sw_node_find(pfvf, classid); in otx2_qos_leaf_del_last()
1619 if (!node) { in otx2_qos_leaf_del_last()
1625 qid = node->qid; in otx2_qos_leaf_del_last()
1626 prio = node->prio; in otx2_qos_leaf_del_last()
1628 parent = otx2_sw_node_find(pfvf, node->parent->classid); in otx2_qos_leaf_del_last()
1634 if (!node->is_static) in otx2_qos_leaf_del_last()
1639 otx2_qos_destroy_node(pfvf, node); in otx2_qos_leaf_del_last()