• Home
  • Raw
  • Download

Lines Matching refs:node

169 	struct icc_node *node = dst;  in path_init()  local
182 node->provider->users++; in path_init()
183 hlist_add_head(&path->reqs[i].req_node, &node->req_list); in path_init()
184 path->reqs[i].node = node; in path_init()
188 node = node->reverse; in path_init()
200 struct icc_node *n, *node = NULL; in path_find() local
215 list_for_each_entry_safe(node, n, &traverse_list, search_list) { in path_find()
216 if (node == dst) { in path_find()
222 for (i = 0; i < node->num_links; i++) { in path_find()
223 struct icc_node *tmp = node->links[i]; in path_find()
234 tmp->reverse = node; in path_find()
269 static int aggregate_requests(struct icc_node *node) in aggregate_requests() argument
271 struct icc_provider *p = node->provider; in aggregate_requests()
275 node->avg_bw = 0; in aggregate_requests()
276 node->peak_bw = 0; in aggregate_requests()
279 p->pre_aggregate(node); in aggregate_requests()
281 hlist_for_each_entry(r, &node->req_list, req_node) { in aggregate_requests()
289 p->aggregate(node, r->tag, avg_bw, peak_bw, in aggregate_requests()
290 &node->avg_bw, &node->peak_bw); in aggregate_requests()
294 node->avg_bw = max(node->avg_bw, node->init_avg); in aggregate_requests()
295 node->peak_bw = max(node->peak_bw, node->init_peak); in aggregate_requests()
310 next = path->reqs[i].node; in apply_constraints()
330 int icc_std_aggregate(struct icc_node *node, u32 tag, u32 avg_bw, in icc_std_aggregate() argument
377 struct icc_node *node = ERR_PTR(-EPROBE_DEFER); in of_icc_get_from_provider() local
390 node = data->node; in of_icc_get_from_provider()
394 node = provider->xlate(spec, provider->data); in of_icc_get_from_provider()
395 if (!IS_ERR(node)) in of_icc_get_from_provider()
402 if (!node) in of_icc_get_from_provider()
405 if (IS_ERR(node)) in of_icc_get_from_provider()
406 return ERR_CAST(node); in of_icc_get_from_provider()
412 data->node = node; in of_icc_get_from_provider()
516 path = path_find(dev, src_data->node, dst_data->node); in of_icc_get_by_index()
527 src_data->node->name, dst_data->node->name); in of_icc_get_by_index()
694 struct icc_node *node; in icc_set_bw() local
711 node = path->reqs[i].node; in icc_set_bw()
718 aggregate_requests(node); in icc_set_bw()
720 trace_icc_set_bw(path, node, i, avg_bw, peak_bw); in icc_set_bw()
729 node = path->reqs[i].node; in icc_set_bw()
732 aggregate_requests(node); in icc_set_bw()
787 struct icc_node *node; in icc_put() local
802 node = path->reqs[i].node; in icc_put()
804 if (!WARN_ON(!node->provider->users)) in icc_put()
805 node->provider->users--; in icc_put()
818 struct icc_node *node; in icc_node_create_nolock() local
821 node = node_find(id); in icc_node_create_nolock()
822 if (node) in icc_node_create_nolock()
823 return node; in icc_node_create_nolock()
825 node = kzalloc(sizeof(*node), GFP_KERNEL); in icc_node_create_nolock()
826 if (!node) in icc_node_create_nolock()
829 id = idr_alloc(&icc_idr, node, id, id + 1, GFP_KERNEL); in icc_node_create_nolock()
832 kfree(node); in icc_node_create_nolock()
836 node->id = id; in icc_node_create_nolock()
838 return node; in icc_node_create_nolock()
849 struct icc_node *node; in icc_node_create() local
853 node = icc_node_create_nolock(id); in icc_node_create()
857 return node; in icc_node_create()
867 struct icc_node *node; in icc_node_destroy() local
871 node = node_find(id); in icc_node_destroy()
872 if (node) { in icc_node_destroy()
873 idr_remove(&icc_idr, node->id); in icc_node_destroy()
874 WARN_ON(!hlist_empty(&node->req_list)); in icc_node_destroy()
879 if (!node) in icc_node_destroy()
882 kfree(node->links); in icc_node_destroy()
883 kfree(node); in icc_node_destroy()
900 int icc_link_create(struct icc_node *node, const int dst_id) in icc_link_create() argument
906 if (!node->provider) in icc_link_create()
921 new = krealloc(node->links, in icc_link_create()
922 (node->num_links + 1) * sizeof(*node->links), in icc_link_create()
929 node->links = new; in icc_link_create()
930 node->links[node->num_links++] = dst; in icc_link_create()
944 void icc_node_add(struct icc_node *node, struct icc_provider *provider) in icc_node_add() argument
946 if (WARN_ON(node->provider)) in icc_node_add()
952 node->provider = provider; in icc_node_add()
953 list_add_tail(&node->node_list, &provider->nodes); in icc_node_add()
957 provider->get_bw(node, &node->init_avg, &node->init_peak); in icc_node_add()
959 node->init_avg = INT_MAX; in icc_node_add()
960 node->init_peak = INT_MAX; in icc_node_add()
962 node->avg_bw = node->init_avg; in icc_node_add()
963 node->peak_bw = node->init_peak; in icc_node_add()
965 if (node->avg_bw || node->peak_bw) { in icc_node_add()
967 provider->pre_aggregate(node); in icc_node_add()
970 provider->aggregate(node, 0, node->init_avg, node->init_peak, in icc_node_add()
971 &node->avg_bw, &node->peak_bw); in icc_node_add()
973 provider->set(node, node); in icc_node_add()
976 node->avg_bw = 0; in icc_node_add()
977 node->peak_bw = 0; in icc_node_add()
988 void icc_node_del(struct icc_node *node) in icc_node_del() argument
992 list_del(&node->node_list); in icc_node_del()