Lines Matching refs:dn

71 	struct device_node *dn;  in dlpar_parse_cc_node()  local
80 dn = kzalloc(sizeof(*dn), GFP_KERNEL); in dlpar_parse_cc_node()
81 if (!dn) in dlpar_parse_cc_node()
85 dn->full_name = kasprintf(GFP_KERNEL, "%s/%s", path, name); in dlpar_parse_cc_node()
86 if (!dn->full_name) { in dlpar_parse_cc_node()
87 kfree(dn); in dlpar_parse_cc_node()
91 of_node_set_flag(dn, OF_DYNAMIC); in dlpar_parse_cc_node()
92 of_node_init(dn); in dlpar_parse_cc_node()
94 return dn; in dlpar_parse_cc_node()
97 static void dlpar_free_one_cc_node(struct device_node *dn) in dlpar_free_one_cc_node() argument
101 while (dn->properties) { in dlpar_free_one_cc_node()
102 prop = dn->properties; in dlpar_free_one_cc_node()
103 dn->properties = prop->next; in dlpar_free_one_cc_node()
107 kfree(dn->full_name); in dlpar_free_one_cc_node()
108 kfree(dn); in dlpar_free_one_cc_node()
111 void dlpar_free_cc_nodes(struct device_node *dn) in dlpar_free_cc_nodes() argument
113 if (dn->child) in dlpar_free_cc_nodes()
114 dlpar_free_cc_nodes(dn->child); in dlpar_free_cc_nodes()
116 if (dn->sibling) in dlpar_free_cc_nodes()
117 dlpar_free_cc_nodes(dn->sibling); in dlpar_free_cc_nodes()
119 dlpar_free_one_cc_node(dn); in dlpar_free_cc_nodes()
134 struct device_node *dn; in dlpar_configure_connector() local
175 dn = dlpar_parse_cc_node(ccwa, parent_path); in dlpar_configure_connector()
176 if (!dn) in dlpar_configure_connector()
179 dn->parent = last_dn->parent; in dlpar_configure_connector()
180 last_dn->sibling = dn; in dlpar_configure_connector()
181 last_dn = dn; in dlpar_configure_connector()
188 dn = dlpar_parse_cc_node(ccwa, parent_path); in dlpar_configure_connector()
189 if (!dn) in dlpar_configure_connector()
193 dn->parent = parent; in dlpar_configure_connector()
194 first_dn = dn; in dlpar_configure_connector()
196 dn->parent = last_dn; in dlpar_configure_connector()
198 last_dn->child = dn; in dlpar_configure_connector()
201 last_dn = dn; in dlpar_configure_connector()
270 int dlpar_attach_node(struct device_node *dn) in dlpar_attach_node() argument
274 dn->parent = derive_parent(dn->full_name); in dlpar_attach_node()
275 if (!dn->parent) in dlpar_attach_node()
278 rc = of_attach_node(dn); in dlpar_attach_node()
281 dn->full_name); in dlpar_attach_node()
285 of_node_put(dn->parent); in dlpar_attach_node()
289 int dlpar_detach_node(struct device_node *dn) in dlpar_detach_node() argument
294 child = of_get_next_child(dn, NULL); in dlpar_detach_node()
297 child = of_get_next_child(dn, child); in dlpar_detach_node()
300 rc = of_detach_node(dn); in dlpar_detach_node()
304 of_node_put(dn); /* Must decrement the refcount */ in dlpar_detach_node()
364 static int dlpar_online_cpu(struct device_node *dn) in dlpar_online_cpu() argument
372 intserv = of_get_property(dn, "ibm,ppc-interrupt-server#s", &len); in dlpar_online_cpu()
407 struct device_node *dn, *parent; in dlpar_cpu_probe() local
423 dn = dlpar_configure_connector(cpu_to_be32(drc_index), parent); in dlpar_cpu_probe()
424 if (!dn) in dlpar_cpu_probe()
429 rc = dlpar_attach_node(dn); in dlpar_cpu_probe()
432 dlpar_free_cc_nodes(dn); in dlpar_cpu_probe()
436 rc = dlpar_online_cpu(dn); in dlpar_cpu_probe()
443 static int dlpar_offline_cpu(struct device_node *dn) in dlpar_offline_cpu() argument
451 intserv = of_get_property(dn, "ibm,ppc-interrupt-server#s", &len); in dlpar_offline_cpu()
501 struct device_node *dn; in dlpar_cpu_release() local
505 dn = of_find_node_by_path(buf); in dlpar_cpu_release()
506 if (!dn) in dlpar_cpu_release()
509 rc = of_property_read_u32(dn, "ibm,my-drc-index", &drc_index); in dlpar_cpu_release()
511 of_node_put(dn); in dlpar_cpu_release()
515 rc = dlpar_offline_cpu(dn); in dlpar_cpu_release()
517 of_node_put(dn); in dlpar_cpu_release()
523 of_node_put(dn); in dlpar_cpu_release()
527 rc = dlpar_detach_node(dn); in dlpar_cpu_release()
533 of_node_put(dn); in dlpar_cpu_release()