Lines Matching refs:swnode

14 struct swnode {
24 struct swnode *parent;
32 #define kobj_to_swnode(_kobj_) container_of(_kobj_, struct swnode, kobj)
48 struct swnode, fwnode) : NULL; \
51 static struct swnode *
54 struct swnode *swnode = NULL;
63 swnode = kobj_to_swnode(k);
64 if (swnode->node == node)
66 swnode = NULL;
71 return swnode;
76 const struct swnode *swnode = to_swnode(fwnode);
78 return swnode ? swnode->node : NULL;
84 struct swnode *swnode = software_node_to_swnode(node);
86 return swnode ? &swnode->fwnode : NULL;
352 struct swnode *swnode = to_swnode(fwnode);
354 kobject_get(&swnode->kobj);
356 return &swnode->fwnode;
361 struct swnode *swnode = to_swnode(fwnode);
363 kobject_put(&swnode->kobj);
369 struct swnode *swnode = to_swnode(fwnode);
371 return !!property_entry_get(swnode->node->properties, propname);
379 struct swnode *swnode = to_swnode(fwnode);
381 return property_entry_read_int_array(swnode->node->properties, propname,
389 struct swnode *swnode = to_swnode(fwnode);
391 return property_entry_read_string_array(swnode->node->properties,
398 const struct swnode *swnode = to_swnode(fwnode);
400 if (!swnode)
403 return kobject_name(&swnode->kobj);
430 struct swnode *swnode = to_swnode(fwnode);
432 if (!swnode || !swnode->parent)
435 return fwnode_handle_get(&swnode->parent->fwnode);
442 struct swnode *p = to_swnode(fwnode);
443 struct swnode *c = to_swnode(child);
454 c = list_first_entry(&p->children, struct swnode, entry);
464 struct swnode *swnode = to_swnode(fwnode);
465 struct swnode *child;
467 if (!swnode || list_empty(&swnode->children))
470 list_for_each_entry(child, &swnode->children, entry) {
485 struct swnode *swnode = to_swnode(fwnode);
494 if (!swnode)
497 prop = property_entry_get(swnode->node->properties, propname);
575 struct swnode *swnode = NULL;
584 swnode = kobj_to_swnode(k);
585 if (parent == swnode->node->parent && swnode->node->name &&
586 !strcmp(name, swnode->node->name)) {
587 kobject_get(&swnode->kobj);
590 swnode = NULL;
595 return swnode ? swnode->node : NULL;
616 struct swnode *swnode = kobj_to_swnode(kobj);
618 if (swnode->parent) {
619 ida_simple_remove(&swnode->parent->child_ids, swnode->id);
620 list_del(&swnode->entry);
622 ida_simple_remove(&swnode_root_ids, swnode->id);
625 if (swnode->allocated) {
626 property_entries_free(swnode->node->properties);
627 kfree(swnode->node);
629 ida_destroy(&swnode->child_ids);
630 kfree(swnode);
639 swnode_register(const struct software_node *node, struct swnode *parent,
642 struct swnode *swnode;
645 swnode = kzalloc(sizeof(*swnode), GFP_KERNEL);
646 if (!swnode) {
654 kfree(swnode);
658 swnode->id = ret;
659 swnode->node = node;
660 swnode->parent = parent;
661 swnode->allocated = allocated;
662 swnode->kobj.kset = swnode_kset;
663 swnode->fwnode.ops = &software_node_ops;
665 ida_init(&swnode->child_ids);
666 INIT_LIST_HEAD(&swnode->entry);
667 INIT_LIST_HEAD(&swnode->children);
670 ret = kobject_init_and_add(&swnode->kobj, &software_node_type,
674 ret = kobject_init_and_add(&swnode->kobj, &software_node_type,
676 "node%d", swnode->id);
678 kobject_put(&swnode->kobj);
683 list_add_tail(&swnode->entry, &parent->children);
685 kobject_uevent(&swnode->kobj, KOBJ_ADD);
686 return &swnode->fwnode;
787 struct swnode *parent = software_node_to_swnode(node->parent);
805 struct swnode *swnode;
807 swnode = software_node_to_swnode(node);
808 if (swnode)
809 fwnode_remove_software_node(&swnode->fwnode);
818 struct swnode *p = NULL;
847 struct swnode *swnode = to_swnode(fwnode);
849 if (!swnode)
852 kobject_put(&swnode->kobj);
859 struct swnode *swnode;
870 swnode = to_swnode(fwnode);
874 ret = sysfs_create_link(&dev->kobj, &swnode->kobj,
879 ret = sysfs_create_link(&swnode->kobj, &dev->kobj,
885 kobject_get(&swnode->kobj);
888 sysfs_remove_link(&swnode->kobj, dev_name(dev));
890 kobject_put(&swnode->kobj);