Lines Matching refs:node

26 	struct devres_node		node;  member
32 struct devres_node node[2]; member
42 static void set_node_dbginfo(struct devres_node *node, const char *name, in set_node_dbginfo() argument
45 node->name = name; in set_node_dbginfo()
46 node->size = size; in set_node_dbginfo()
49 static void devres_log(struct device *dev, struct devres_node *node, in devres_log() argument
54 op, node, node->name, (unsigned long)node->size); in devres_log()
57 #define set_node_dbginfo(node, n, s) do {} while (0) argument
58 #define devres_log(dev, node, op) do {} while (0) argument
75 static struct devres_group * node_to_group(struct devres_node *node) in node_to_group() argument
77 if (node->release == &group_open_release) in node_to_group()
78 return container_of(node, struct devres_group, node[0]); in node_to_group()
79 if (node->release == &group_close_release) in node_to_group()
80 return container_of(node, struct devres_group, node[1]); in node_to_group()
96 INIT_LIST_HEAD(&dr->node.entry); in alloc_dr()
97 dr->node.release = release; in alloc_dr()
101 static void add_dr(struct device *dev, struct devres_node *node) in add_dr() argument
103 devres_log(dev, node, "ADD"); in add_dr()
104 BUG_ON(!list_empty(&node->entry)); in add_dr()
105 list_add_tail(&node->entry, &dev->devres_head); in add_dr()
117 set_node_dbginfo(&dr->node, name, size); in __devres_alloc()
167 struct devres_node *node; in devres_for_each_res() local
175 list_for_each_entry_safe_reverse(node, tmp, in devres_for_each_res()
177 struct devres *dr = container_of(node, struct devres, node); in devres_for_each_res()
179 if (node->release != release) in devres_for_each_res()
200 BUG_ON(!list_empty(&dr->node.entry)); in devres_free()
221 add_dr(dev, &dr->node); in devres_add()
229 struct devres_node *node; in find_dr() local
231 list_for_each_entry_reverse(node, &dev->devres_head, entry) { in find_dr()
232 struct devres *dr = container_of(node, struct devres, node); in find_dr()
234 if (node->release != release) in find_dr()
296 dr = find_dr(dev, new_dr->node.release, match, match_data); in devres_get()
298 add_dr(dev, &new_dr->node); in devres_get()
333 list_del_init(&dr->node.entry); in devres_remove()
334 devres_log(dev, &dr->node, "REM"); in devres_remove()
419 struct devres_node *node; in remove_nodes() local
422 node = list_entry(cur, struct devres_node, entry); in remove_nodes()
425 grp = node_to_group(node); in remove_nodes()
432 if (&node->entry == first) in remove_nodes()
434 list_move_tail(&node->entry, todo); in remove_nodes()
450 struct devres_node *node; in remove_nodes() local
453 node = list_entry(cur, struct devres_node, entry); in remove_nodes()
456 grp = node_to_group(node); in remove_nodes()
457 BUG_ON(!grp || list_empty(&grp->node[0].entry)); in remove_nodes()
460 if (list_empty(&grp->node[1].entry)) in remove_nodes()
468 list_move_tail(&grp->node[0].entry, todo); in remove_nodes()
469 list_del_init(&grp->node[1].entry); in remove_nodes()
491 list_for_each_entry_safe_reverse(dr, tmp, &todo, node.entry) { in release_nodes()
492 devres_log(dev, &dr->node, "REL"); in release_nodes()
493 dr->node.release(dev, dr->data); in release_nodes()
541 grp->node[0].release = &group_open_release; in devres_open_group()
542 grp->node[1].release = &group_close_release; in devres_open_group()
543 INIT_LIST_HEAD(&grp->node[0].entry); in devres_open_group()
544 INIT_LIST_HEAD(&grp->node[1].entry); in devres_open_group()
545 set_node_dbginfo(&grp->node[0], "grp<", 0); in devres_open_group()
546 set_node_dbginfo(&grp->node[1], "grp>", 0); in devres_open_group()
552 add_dr(dev, &grp->node[0]); in devres_open_group()
561 struct devres_node *node; in find_group() local
563 list_for_each_entry_reverse(node, &dev->devres_head, entry) { in find_group()
566 if (node->release != &group_open_release) in find_group()
569 grp = container_of(node, struct devres_group, node[0]); in find_group()
574 } else if (list_empty(&grp->node[1].entry)) in find_group()
598 add_dr(dev, &grp->node[1]); in devres_close_group()
624 list_del_init(&grp->node[0].entry); in devres_remove_group()
625 list_del_init(&grp->node[1].entry); in devres_remove_group()
626 devres_log(dev, &grp->node[0], "REM"); in devres_remove_group()
658 struct list_head *first = &grp->node[0].entry; in devres_release_group()
661 if (!list_empty(&grp->node[1].entry)) in devres_release_group()
662 end = grp->node[1].entry.next; in devres_release_group()
787 set_node_dbginfo(&dr->node, "devm_kzalloc_release", size); in devm_kmalloc()