forked from Minki/linux
of/flattree: Merge of_flat_dt_is_compatible
Merge common code between PowerPC and Microblaze Signed-off-by: Grant Likely <grant.likely@secretlab.ca> Reviewed-by: Wolfram Sang <w.sang@pengutronix.de> Tested-by: Michal Simek <monstr@monstr.eu>
This commit is contained in:
parent
ca900cfa29
commit
00e38efd90
@ -50,25 +50,6 @@ typedef u32 cell_t;
|
|||||||
/* export that to outside world */
|
/* export that to outside world */
|
||||||
struct device_node *of_chosen;
|
struct device_node *of_chosen;
|
||||||
|
|
||||||
int __init of_flat_dt_is_compatible(unsigned long node, const char *compat)
|
|
||||||
{
|
|
||||||
const char *cp;
|
|
||||||
unsigned long cplen, l;
|
|
||||||
|
|
||||||
cp = of_get_flat_dt_prop(node, "compatible", &cplen);
|
|
||||||
if (cp == NULL)
|
|
||||||
return 0;
|
|
||||||
while (cplen > 0) {
|
|
||||||
if (strncasecmp(cp, compat, strlen(compat)) == 0)
|
|
||||||
return 1;
|
|
||||||
l = strlen(cp) + 1;
|
|
||||||
cp += l;
|
|
||||||
cplen -= l;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void *__init unflatten_dt_alloc(unsigned long *mem, unsigned long size,
|
static void *__init unflatten_dt_alloc(unsigned long *mem, unsigned long size,
|
||||||
unsigned long align)
|
unsigned long align)
|
||||||
{
|
{
|
||||||
|
@ -80,25 +80,6 @@ extern rwlock_t devtree_lock; /* temporary while merging */
|
|||||||
/* export that to outside world */
|
/* export that to outside world */
|
||||||
struct device_node *of_chosen;
|
struct device_node *of_chosen;
|
||||||
|
|
||||||
int __init of_flat_dt_is_compatible(unsigned long node, const char *compat)
|
|
||||||
{
|
|
||||||
const char* cp;
|
|
||||||
unsigned long cplen, l;
|
|
||||||
|
|
||||||
cp = of_get_flat_dt_prop(node, "compatible", &cplen);
|
|
||||||
if (cp == NULL)
|
|
||||||
return 0;
|
|
||||||
while (cplen > 0) {
|
|
||||||
if (strncasecmp(cp, compat, strlen(compat)) == 0)
|
|
||||||
return 1;
|
|
||||||
l = strlen(cp) + 1;
|
|
||||||
cp += l;
|
|
||||||
cplen -= l;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void *__init unflatten_dt_alloc(unsigned long *mem, unsigned long size,
|
static void *__init unflatten_dt_alloc(unsigned long *mem, unsigned long size,
|
||||||
unsigned long align)
|
unsigned long align)
|
||||||
{
|
{
|
||||||
|
@ -142,3 +142,27 @@ void *__init of_get_flat_dt_prop(unsigned long node, const char *name,
|
|||||||
} while (1);
|
} while (1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* of_flat_dt_is_compatible - Return true if given node has compat in compatible list
|
||||||
|
* @node: node to test
|
||||||
|
* @compat: compatible string to compare with compatible list.
|
||||||
|
*/
|
||||||
|
int __init of_flat_dt_is_compatible(unsigned long node, const char *compat)
|
||||||
|
{
|
||||||
|
const char *cp;
|
||||||
|
unsigned long cplen, l;
|
||||||
|
|
||||||
|
cp = of_get_flat_dt_prop(node, "compatible", &cplen);
|
||||||
|
if (cp == NULL)
|
||||||
|
return 0;
|
||||||
|
while (cplen > 0) {
|
||||||
|
if (strncasecmp(cp, compat, strlen(compat)) == 0)
|
||||||
|
return 1;
|
||||||
|
l = strlen(cp) + 1;
|
||||||
|
cp += l;
|
||||||
|
cplen -= l;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user