Lines Matching refs:dn
73 struct device_node *dn; in dlpar_parse_cc_node() local
82 dn = kzalloc(sizeof(*dn), GFP_KERNEL); in dlpar_parse_cc_node()
83 if (!dn) in dlpar_parse_cc_node()
87 dn->full_name = kasprintf(GFP_KERNEL, "%s/%s", path, name); in dlpar_parse_cc_node()
88 if (!dn->full_name) { in dlpar_parse_cc_node()
89 kfree(dn); in dlpar_parse_cc_node()
93 of_node_set_flag(dn, OF_DYNAMIC); in dlpar_parse_cc_node()
94 of_node_init(dn); in dlpar_parse_cc_node()
96 return dn; in dlpar_parse_cc_node()
99 static void dlpar_free_one_cc_node(struct device_node *dn) in dlpar_free_one_cc_node() argument
103 while (dn->properties) { in dlpar_free_one_cc_node()
104 prop = dn->properties; in dlpar_free_one_cc_node()
105 dn->properties = prop->next; in dlpar_free_one_cc_node()
109 kfree(dn->full_name); in dlpar_free_one_cc_node()
110 kfree(dn); in dlpar_free_one_cc_node()
113 void dlpar_free_cc_nodes(struct device_node *dn) in dlpar_free_cc_nodes() argument
115 if (dn->child) in dlpar_free_cc_nodes()
116 dlpar_free_cc_nodes(dn->child); in dlpar_free_cc_nodes()
118 if (dn->sibling) in dlpar_free_cc_nodes()
119 dlpar_free_cc_nodes(dn->sibling); in dlpar_free_cc_nodes()
121 dlpar_free_one_cc_node(dn); in dlpar_free_cc_nodes()
136 struct device_node *dn; in dlpar_configure_connector() local
177 dn = dlpar_parse_cc_node(ccwa, parent_path); in dlpar_configure_connector()
178 if (!dn) in dlpar_configure_connector()
181 dn->parent = last_dn->parent; in dlpar_configure_connector()
182 last_dn->sibling = dn; in dlpar_configure_connector()
183 last_dn = dn; in dlpar_configure_connector()
190 dn = dlpar_parse_cc_node(ccwa, parent_path); in dlpar_configure_connector()
191 if (!dn) in dlpar_configure_connector()
195 dn->parent = parent; in dlpar_configure_connector()
196 first_dn = dn; in dlpar_configure_connector()
198 dn->parent = last_dn; in dlpar_configure_connector()
200 last_dn->child = dn; in dlpar_configure_connector()
203 last_dn = dn; in dlpar_configure_connector()
249 int dlpar_attach_node(struct device_node *dn) in dlpar_attach_node() argument
253 dn->parent = pseries_of_derive_parent(dn->full_name); in dlpar_attach_node()
254 if (IS_ERR(dn->parent)) in dlpar_attach_node()
255 return PTR_ERR(dn->parent); in dlpar_attach_node()
257 rc = of_attach_node(dn); in dlpar_attach_node()
260 dn->full_name); in dlpar_attach_node()
264 of_node_put(dn->parent); in dlpar_attach_node()
268 int dlpar_detach_node(struct device_node *dn) in dlpar_detach_node() argument
273 child = of_get_next_child(dn, NULL); in dlpar_detach_node()
276 child = of_get_next_child(dn, child); in dlpar_detach_node()
279 rc = of_detach_node(dn); in dlpar_detach_node()
283 of_node_put(dn); /* Must decrement the refcount */ in dlpar_detach_node()
343 static int dlpar_online_cpu(struct device_node *dn) in dlpar_online_cpu() argument
351 intserv = of_get_property(dn, "ibm,ppc-interrupt-server#s", &len); in dlpar_online_cpu()
386 struct device_node *dn, *parent; in dlpar_cpu_probe() local
402 dn = dlpar_configure_connector(cpu_to_be32(drc_index), parent); in dlpar_cpu_probe()
404 if (!dn) { in dlpar_cpu_probe()
409 rc = dlpar_attach_node(dn); in dlpar_cpu_probe()
412 dlpar_free_cc_nodes(dn); in dlpar_cpu_probe()
416 rc = dlpar_online_cpu(dn); in dlpar_cpu_probe()
423 static int dlpar_offline_cpu(struct device_node *dn) in dlpar_offline_cpu() argument
431 intserv = of_get_property(dn, "ibm,ppc-interrupt-server#s", &len); in dlpar_offline_cpu()
481 struct device_node *dn; in dlpar_cpu_release() local
485 dn = of_find_node_by_path(buf); in dlpar_cpu_release()
486 if (!dn) in dlpar_cpu_release()
489 rc = of_property_read_u32(dn, "ibm,my-drc-index", &drc_index); in dlpar_cpu_release()
491 of_node_put(dn); in dlpar_cpu_release()
495 rc = dlpar_offline_cpu(dn); in dlpar_cpu_release()
497 of_node_put(dn); in dlpar_cpu_release()
503 of_node_put(dn); in dlpar_cpu_release()
507 rc = dlpar_detach_node(dn); in dlpar_cpu_release()
513 of_node_put(dn); in dlpar_cpu_release()