Lines Matching refs:swnode
14 struct swnode { struct
24 struct swnode *parent; argument
32 #define kobj_to_swnode(_kobj_) container_of(_kobj_, struct swnode, kobj) argument
48 struct swnode, fwnode) : NULL; \
51 static struct swnode *
54 struct swnode *swnode = NULL; in software_node_to_swnode() local
63 swnode = kobj_to_swnode(k); in software_node_to_swnode()
64 if (swnode->node == node) in software_node_to_swnode()
66 swnode = NULL; in software_node_to_swnode()
71 return swnode; in software_node_to_swnode()
76 struct swnode *swnode = to_swnode(fwnode); in to_software_node() local
78 return swnode ? swnode->node : NULL; in to_software_node()
84 struct swnode *swnode = software_node_to_swnode(node); in software_node_fwnode() local
86 return swnode ? &swnode->fwnode : NULL; in software_node_fwnode()
475 struct swnode *swnode = to_swnode(fwnode); in software_node_get() local
477 kobject_get(&swnode->kobj); in software_node_get()
479 return &swnode->fwnode; in software_node_get()
484 struct swnode *swnode = to_swnode(fwnode); in software_node_put() local
486 kobject_put(&swnode->kobj); in software_node_put()
492 struct swnode *swnode = to_swnode(fwnode); in software_node_property_present() local
494 return !!property_entry_get(swnode->node->properties, propname); in software_node_property_present()
502 struct swnode *swnode = to_swnode(fwnode); in software_node_read_int_array() local
504 return property_entry_read_int_array(swnode->node->properties, propname, in software_node_read_int_array()
512 struct swnode *swnode = to_swnode(fwnode); in software_node_read_string_array() local
514 return property_entry_read_string_array(swnode->node->properties, in software_node_read_string_array()
521 struct swnode *swnode = to_swnode(fwnode); in software_node_get_parent() local
523 return swnode ? (swnode->parent ? &swnode->parent->fwnode : NULL) : NULL; in software_node_get_parent()
530 struct swnode *p = to_swnode(fwnode); in software_node_get_next_child()
531 struct swnode *c = to_swnode(child); in software_node_get_next_child()
540 c = list_first_entry(&p->children, struct swnode, entry); in software_node_get_next_child()
548 struct swnode *swnode = to_swnode(fwnode); in software_node_get_named_child_node() local
549 struct swnode *child; in software_node_get_named_child_node()
551 if (!swnode || list_empty(&swnode->children)) in software_node_get_named_child_node()
554 list_for_each_entry(child, &swnode->children, entry) { in software_node_get_named_child_node()
569 struct swnode *swnode = to_swnode(fwnode); in software_node_get_reference_args() local
575 if (!swnode || !swnode->node->references) in software_node_get_reference_args()
578 for (ref = swnode->node->references; ref->name; ref++) in software_node_get_reference_args()
590 prop = property_entry_get(swnode->node->properties, nargs_prop); in software_node_get_reference_args()
636 struct swnode *swnode = NULL; in software_node_find_by_name() local
645 swnode = kobj_to_swnode(k); in software_node_find_by_name()
646 if (parent == swnode->node->parent && swnode->node->name && in software_node_find_by_name()
647 !strcmp(name, swnode->node->name)) { in software_node_find_by_name()
648 kobject_get(&swnode->kobj); in software_node_find_by_name()
651 swnode = NULL; in software_node_find_by_name()
656 return swnode ? swnode->node : NULL; in software_node_find_by_name()
677 struct swnode *swnode = kobj_to_swnode(kobj); in software_node_release() local
679 if (swnode->allocated) { in software_node_release()
680 property_entries_free(swnode->node->properties); in software_node_release()
681 kfree(swnode->node); in software_node_release()
683 ida_destroy(&swnode->child_ids); in software_node_release()
684 kfree(swnode); in software_node_release()
693 swnode_register(const struct software_node *node, struct swnode *parent, in swnode_register()
696 struct swnode *swnode; in swnode_register() local
699 swnode = kzalloc(sizeof(*swnode), GFP_KERNEL); in swnode_register()
700 if (!swnode) { in swnode_register()
708 kfree(swnode); in swnode_register()
712 swnode->id = ret; in swnode_register()
713 swnode->node = node; in swnode_register()
714 swnode->parent = parent; in swnode_register()
715 swnode->allocated = allocated; in swnode_register()
716 swnode->kobj.kset = swnode_kset; in swnode_register()
717 swnode->fwnode.ops = &software_node_ops; in swnode_register()
719 ida_init(&swnode->child_ids); in swnode_register()
720 INIT_LIST_HEAD(&swnode->entry); in swnode_register()
721 INIT_LIST_HEAD(&swnode->children); in swnode_register()
724 ret = kobject_init_and_add(&swnode->kobj, &software_node_type, in swnode_register()
728 ret = kobject_init_and_add(&swnode->kobj, &software_node_type, in swnode_register()
730 "node%d", swnode->id); in swnode_register()
732 kobject_put(&swnode->kobj); in swnode_register()
737 list_add_tail(&swnode->entry, &parent->children); in swnode_register()
739 kobject_uevent(&swnode->kobj, KOBJ_ADD); in swnode_register()
740 return &swnode->fwnode; in swnode_register()
779 struct swnode *swnode; in software_node_unregister_nodes() local
783 swnode = software_node_to_swnode(&nodes[i]); in software_node_unregister_nodes()
784 if (swnode) in software_node_unregister_nodes()
785 fwnode_remove_software_node(&swnode->fwnode); in software_node_unregister_nodes()
796 struct swnode *parent = software_node_to_swnode(node->parent); in software_node_register()
810 struct swnode *p = NULL; in fwnode_create_software_node()
839 struct swnode *swnode = to_swnode(fwnode); in fwnode_remove_software_node() local
841 if (!swnode) in fwnode_remove_software_node()
844 if (swnode->parent) { in fwnode_remove_software_node()
845 ida_simple_remove(&swnode->parent->child_ids, swnode->id); in fwnode_remove_software_node()
846 list_del(&swnode->entry); in fwnode_remove_software_node()
848 ida_simple_remove(&swnode_root_ids, swnode->id); in fwnode_remove_software_node()
851 kobject_put(&swnode->kobj); in fwnode_remove_software_node()
858 struct swnode *swnode; in software_node_notify() local
869 swnode = to_swnode(fwnode); in software_node_notify()
873 ret = sysfs_create_link(&dev->kobj, &swnode->kobj, in software_node_notify()
878 ret = sysfs_create_link(&swnode->kobj, &dev->kobj, in software_node_notify()
884 kobject_get(&swnode->kobj); in software_node_notify()
887 sysfs_remove_link(&swnode->kobj, dev_name(dev)); in software_node_notify()
889 kobject_put(&swnode->kobj); in software_node_notify()