Skip to content

Commit

Permalink
of/flattree: Merge of_flat_dt_is_compatible
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Grant Likely committed Nov 24, 2009
1 parent ca900cf commit 00e38ef
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 38 deletions.
19 changes: 0 additions & 19 deletions arch/microblaze/kernel/prom.c
Original file line number Diff line number Diff line change
Expand Up @@ -50,25 +50,6 @@ typedef u32 cell_t;
/* export that to outside world */
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,
unsigned long align)
{
Expand Down
19 changes: 0 additions & 19 deletions arch/powerpc/kernel/prom.c
Original file line number Diff line number Diff line change
Expand Up @@ -80,25 +80,6 @@ extern rwlock_t devtree_lock; /* temporary while merging */
/* export that to outside world */
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,
unsigned long align)
{
Expand Down
24 changes: 24 additions & 0 deletions drivers/of/fdt.c
Original file line number Diff line number Diff line change
Expand Up @@ -142,3 +142,27 @@ void *__init of_get_flat_dt_prop(unsigned long node, const char *name,
} 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;
}

0 comments on commit 00e38ef

Please sign in to comment.