Lines Matching refs:np

44 void __of_detach_node_sysfs(struct device_node *np)
51 BUG_ON(!of_node_is_initialized(np));
56 if (of_node_is_attached(np)) {
57 for_each_property_of_node(np, pp)
58 sysfs_remove_bin_file(&np->kobj, &pp->attr);
59 kobject_del(&np->kobj);
63 of_node_put(np);
88 int of_property_notify(int action, struct device_node *np,
94 if (!of_node_is_attached(np))
97 pr.dn = np;
103 void __of_attach_node(struct device_node *np)
108 np->name = __of_get_property(np, "name", NULL) ? : "<NULL>";
109 np->type = __of_get_property(np, "device_type", NULL) ? : "<NULL>";
111 phandle = __of_get_property(np, "phandle", &sz);
113 phandle = __of_get_property(np, "linux,phandle", &sz);
115 phandle = __of_get_property(np, "ibm,phandle", &sz);
116 np->phandle = (phandle && (sz >= 4)) ? be32_to_cpup(phandle) : 0;
118 np->child = NULL;
119 np->sibling = np->parent->child;
120 np->allnext = np->parent->allnext;
121 np->parent->allnext = np;
122 np->parent->child = np;
123 of_node_clear_flag(np, OF_DETACHED);
129 int of_attach_node(struct device_node *np)
135 __of_attach_node(np);
138 __of_attach_node_sysfs(np);
141 of_reconfig_notify(OF_RECONFIG_ATTACH_NODE, np);
146 void __of_detach_node(struct device_node *np)
150 if (WARN_ON(of_node_check_flag(np, OF_DETACHED)))
153 parent = np->parent;
157 if (of_allnodes == np)
158 of_allnodes = np->allnext;
162 prev->allnext != np;
165 prev->allnext = np->allnext;
168 if (parent->child == np)
169 parent->child = np->sibling;
172 for (prevsib = np->parent->child;
173 prevsib->sibling != np;
176 prevsib->sibling = np->sibling;
179 of_node_set_flag(np, OF_DETACHED);
188 int of_detach_node(struct device_node *np)
195 __of_detach_node(np);
198 __of_detach_node_sysfs(np);
201 of_reconfig_notify(OF_RECONFIG_DETACH_NODE, np);
323 of_node_put(ce->np);
334 ce, "ADD_PROPERTY ", ce->np->full_name,
339 ce, "REMOVE_PROPERTY", ce->np->full_name,
344 ce, "UPDATE_PROPERTY", ce->np->full_name,
349 ce, "ATTACH_NODE ", ce->np->full_name);
353 ce, "DETACH_NODE ", ce->np->full_name);
402 ret = of_reconfig_notify(ce->action, ce->np);
407 ret = of_property_notify(ce->action, ce->np, ce->prop, ce->old_prop);
416 pr_err("%s: notifier error @%s\n", __func__, ce->np->full_name);
430 __of_attach_node(ce->np);
433 __of_detach_node(ce->np);
437 for (propp = &ce->np->deadprops; *propp; propp = &(*propp)->next) {
445 ret = __of_add_property(ce->np, ce->prop);
448 __func__, ce->np->full_name,
454 ret = __of_remove_property(ce->np, ce->prop);
457 __func__, ce->np->full_name,
465 for (propp = &ce->np->deadprops; *propp; propp = &(*propp)->next) {
473 ret = __of_update_property(ce->np, ce->prop, &old_prop);
476 __func__, ce->np->full_name,
491 __of_attach_node_sysfs(ce->np);
494 __of_detach_node_sysfs(ce->np);
498 __of_add_property_sysfs(ce->np, ce->prop);
501 __of_remove_property_sysfs(ce->np, ce->prop);
504 __of_update_property_sysfs(ce->np, ce->prop, ce->old_prop);
631 * @np: Pointer to device node
643 struct device_node *np, struct property *prop)
654 ce->np = of_node_get(np);
658 ce->old_prop = of_find_property(np, prop->name, NULL);