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>
This commit is contained in:
committed by
Grant Likely
parent
fcdeb7fedf
commit
89751a7cb7
@@ -176,27 +176,6 @@ void __init early_init_devtree(void *params)
|
|||||||
*
|
*
|
||||||
*******/
|
*******/
|
||||||
|
|
||||||
/**
|
|
||||||
* of_find_node_by_phandle - Find a node given a phandle
|
|
||||||
* @handle: phandle of the node to find
|
|
||||||
*
|
|
||||||
* Returns a node pointer with refcount incremented, use
|
|
||||||
* of_node_put() on it when done.
|
|
||||||
*/
|
|
||||||
struct device_node *of_find_node_by_phandle(phandle handle)
|
|
||||||
{
|
|
||||||
struct device_node *np;
|
|
||||||
|
|
||||||
read_lock(&devtree_lock);
|
|
||||||
for (np = allnodes; np != NULL; np = np->allnext)
|
|
||||||
if (np->phandle == handle)
|
|
||||||
break;
|
|
||||||
of_node_get(np);
|
|
||||||
read_unlock(&devtree_lock);
|
|
||||||
return np;
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(of_find_node_by_phandle);
|
|
||||||
|
|
||||||
#if defined(CONFIG_DEBUG_FS) && defined(DEBUG)
|
#if defined(CONFIG_DEBUG_FS) && defined(DEBUG)
|
||||||
static struct debugfs_blob_wrapper flat_dt_blob;
|
static struct debugfs_blob_wrapper flat_dt_blob;
|
||||||
|
|
||||||
|
@@ -765,27 +765,6 @@ void __init early_init_devtree(void *params)
|
|||||||
*
|
*
|
||||||
*******/
|
*******/
|
||||||
|
|
||||||
/**
|
|
||||||
* of_find_node_by_phandle - Find a node given a phandle
|
|
||||||
* @handle: phandle of the node to find
|
|
||||||
*
|
|
||||||
* Returns a node pointer with refcount incremented, use
|
|
||||||
* of_node_put() on it when done.
|
|
||||||
*/
|
|
||||||
struct device_node *of_find_node_by_phandle(phandle handle)
|
|
||||||
{
|
|
||||||
struct device_node *np;
|
|
||||||
|
|
||||||
read_lock(&devtree_lock);
|
|
||||||
for (np = allnodes; np != 0; np = np->allnext)
|
|
||||||
if (np->phandle == handle)
|
|
||||||
break;
|
|
||||||
of_node_get(np);
|
|
||||||
read_unlock(&devtree_lock);
|
|
||||||
return np;
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(of_find_node_by_phandle);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* of_find_next_cache_node - Find a node's subsidiary cache
|
* of_find_next_cache_node - Find a node's subsidiary cache
|
||||||
* @np: node of type "cpu" or "cache"
|
* @np: node of type "cpu" or "cache"
|
||||||
|
@@ -37,18 +37,6 @@ EXPORT_SYMBOL(of_console_path);
|
|||||||
char *of_console_options;
|
char *of_console_options;
|
||||||
EXPORT_SYMBOL(of_console_options);
|
EXPORT_SYMBOL(of_console_options);
|
||||||
|
|
||||||
struct device_node *of_find_node_by_phandle(phandle handle)
|
|
||||||
{
|
|
||||||
struct device_node *np;
|
|
||||||
|
|
||||||
for (np = allnodes; np; np = np->allnext)
|
|
||||||
if (np->phandle == handle)
|
|
||||||
break;
|
|
||||||
|
|
||||||
return np;
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(of_find_node_by_phandle);
|
|
||||||
|
|
||||||
int of_getintprop_default(struct device_node *np, const char *name, int def)
|
int of_getintprop_default(struct device_node *np, const char *name, int def)
|
||||||
{
|
{
|
||||||
struct property *prop;
|
struct property *prop;
|
||||||
|
@@ -614,6 +614,27 @@ int of_modalias_node(struct device_node *node, char *modalias, int len)
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(of_modalias_node);
|
EXPORT_SYMBOL_GPL(of_modalias_node);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* of_find_node_by_phandle - Find a node given a phandle
|
||||||
|
* @handle: phandle of the node to find
|
||||||
|
*
|
||||||
|
* Returns a node pointer with refcount incremented, use
|
||||||
|
* of_node_put() on it when done.
|
||||||
|
*/
|
||||||
|
struct device_node *of_find_node_by_phandle(phandle handle)
|
||||||
|
{
|
||||||
|
struct device_node *np;
|
||||||
|
|
||||||
|
read_lock(&devtree_lock);
|
||||||
|
for (np = allnodes; np; np = np->allnext)
|
||||||
|
if (np->phandle == handle)
|
||||||
|
break;
|
||||||
|
of_node_get(np);
|
||||||
|
read_unlock(&devtree_lock);
|
||||||
|
return np;
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(of_find_node_by_phandle);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* of_parse_phandle - Resolve a phandle property to a device_node pointer
|
* of_parse_phandle - Resolve a phandle property to a device_node pointer
|
||||||
* @np: Pointer to device node holding phandle property
|
* @np: Pointer to device node holding phandle property
|
||||||
|
Reference in New Issue
Block a user