Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

of: merge of_find_node_by_phandle

Merge common function between powerpc, sparc and microblaze. Code is
identical for powerpc and microblaze, but adds a lock (and release) of
the devtree_lock on sparc.

Signed-off-by: Jeremy Kerr <jeremy.kerr@canonical.com>
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

authored by

Jeremy Kerr and committed by
Grant Likely
89751a7c fcdeb7fe

+21 -54
-21
arch/microblaze/kernel/prom.c
··· 176 176 * 177 177 *******/ 178 178 179 - /** 180 - * of_find_node_by_phandle - Find a node given a phandle 181 - * @handle: phandle of the node to find 182 - * 183 - * Returns a node pointer with refcount incremented, use 184 - * of_node_put() on it when done. 185 - */ 186 - struct device_node *of_find_node_by_phandle(phandle handle) 187 - { 188 - struct device_node *np; 189 - 190 - read_lock(&devtree_lock); 191 - for (np = allnodes; np != NULL; np = np->allnext) 192 - if (np->phandle == handle) 193 - break; 194 - of_node_get(np); 195 - read_unlock(&devtree_lock); 196 - return np; 197 - } 198 - EXPORT_SYMBOL(of_find_node_by_phandle); 199 - 200 179 #if defined(CONFIG_DEBUG_FS) && defined(DEBUG) 201 180 static struct debugfs_blob_wrapper flat_dt_blob; 202 181
-21
arch/powerpc/kernel/prom.c
··· 766 766 *******/ 767 767 768 768 /** 769 - * of_find_node_by_phandle - Find a node given a phandle 770 - * @handle: phandle of the node to find 771 - * 772 - * Returns a node pointer with refcount incremented, use 773 - * of_node_put() on it when done. 774 - */ 775 - struct device_node *of_find_node_by_phandle(phandle handle) 776 - { 777 - struct device_node *np; 778 - 779 - read_lock(&devtree_lock); 780 - for (np = allnodes; np != 0; np = np->allnext) 781 - if (np->phandle == handle) 782 - break; 783 - of_node_get(np); 784 - read_unlock(&devtree_lock); 785 - return np; 786 - } 787 - EXPORT_SYMBOL(of_find_node_by_phandle); 788 - 789 - /** 790 769 * of_find_next_cache_node - Find a node's subsidiary cache 791 770 * @np: node of type "cpu" or "cache" 792 771 *
-12
arch/sparc/kernel/prom_common.c
··· 37 37 char *of_console_options; 38 38 EXPORT_SYMBOL(of_console_options); 39 39 40 - struct device_node *of_find_node_by_phandle(phandle handle) 41 - { 42 - struct device_node *np; 43 - 44 - for (np = allnodes; np; np = np->allnext) 45 - if (np->phandle == handle) 46 - break; 47 - 48 - return np; 49 - } 50 - EXPORT_SYMBOL(of_find_node_by_phandle); 51 - 52 40 int of_getintprop_default(struct device_node *np, const char *name, int def) 53 41 { 54 42 struct property *prop;
+21
drivers/of/base.c
··· 615 615 EXPORT_SYMBOL_GPL(of_modalias_node); 616 616 617 617 /** 618 + * of_find_node_by_phandle - Find a node given a phandle 619 + * @handle: phandle of the node to find 620 + * 621 + * Returns a node pointer with refcount incremented, use 622 + * of_node_put() on it when done. 623 + */ 624 + struct device_node *of_find_node_by_phandle(phandle handle) 625 + { 626 + struct device_node *np; 627 + 628 + read_lock(&devtree_lock); 629 + for (np = allnodes; np; np = np->allnext) 630 + if (np->phandle == handle) 631 + break; 632 + of_node_get(np); 633 + read_unlock(&devtree_lock); 634 + return np; 635 + } 636 + EXPORT_SYMBOL(of_find_node_by_phandle); 637 + 638 + /** 618 639 * of_parse_phandle - Resolve a phandle property to a device_node pointer 619 640 * @np: Pointer to device node holding phandle property 620 641 * @phandle_name: Name of property holding a phandle value