of/fdt: Fix ‘of_fdt_match’ defined but not used compiler warning
When CONFIG_OF_EARLY_FLATTREE is disabled, there is a compiler
warning,
drivers/of/fdt.c:129:19: warning: ‘of_fdt_match’ defined but not used [-Wunused-function]
static int __init of_fdt_match(const void *blob, unsigned long node,
Since the only caller of of_fdt_match() is of_flat_dt_match(),
let's move the body of of_fdt_match() into of_flat_dt_match()
and eliminate of_fdt_match().
Meanwhile, move of_fdt_is_compatible() under CONFIG_OF_EARLY_FLATTREE,
as all callers are over there.
Fixes: 9b4d2b635b
("of/fdt: Remove dead code and mark functions with __init")
Cc: Frank Rowand <frowand.list@gmail.com>
Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
Reviewed-by: Stephen Boyd <swboyd@chromium.org>
Signed-off-by: Rob Herring <robh@kernel.org>
alistair/sunxi64-5.4-dsi
parent
2554fcb8cc
commit
5d9c4e9591
|
@ -78,38 +78,6 @@ void __init of_fdt_limit_memory(int limit)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* of_fdt_is_compatible - Return true if given node from the given blob has
|
|
||||||
* compat in its compatible list
|
|
||||||
* @blob: A device tree blob
|
|
||||||
* @node: node to test
|
|
||||||
* @compat: compatible string to compare with compatible list.
|
|
||||||
*
|
|
||||||
* On match, returns a non-zero value with smaller values returned for more
|
|
||||||
* specific compatible values.
|
|
||||||
*/
|
|
||||||
static int of_fdt_is_compatible(const void *blob,
|
|
||||||
unsigned long node, const char *compat)
|
|
||||||
{
|
|
||||||
const char *cp;
|
|
||||||
int cplen;
|
|
||||||
unsigned long l, score = 0;
|
|
||||||
|
|
||||||
cp = fdt_getprop(blob, node, "compatible", &cplen);
|
|
||||||
if (cp == NULL)
|
|
||||||
return 0;
|
|
||||||
while (cplen > 0) {
|
|
||||||
score++;
|
|
||||||
if (of_compat_cmp(cp, compat, strlen(compat)) == 0)
|
|
||||||
return score;
|
|
||||||
l = strlen(cp) + 1;
|
|
||||||
cp += l;
|
|
||||||
cplen -= l;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool of_fdt_device_is_available(const void *blob, unsigned long node)
|
static bool of_fdt_device_is_available(const void *blob, unsigned long node)
|
||||||
{
|
{
|
||||||
const char *status = fdt_getprop(blob, node, "status", NULL);
|
const char *status = fdt_getprop(blob, node, "status", NULL);
|
||||||
|
@ -123,27 +91,6 @@ static bool of_fdt_device_is_available(const void *blob, unsigned long node)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* of_fdt_match - Return true if node matches a list of compatible values
|
|
||||||
*/
|
|
||||||
static int __init of_fdt_match(const void *blob, unsigned long node,
|
|
||||||
const char *const *compat)
|
|
||||||
{
|
|
||||||
unsigned int tmp, score = 0;
|
|
||||||
|
|
||||||
if (!compat)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
while (*compat) {
|
|
||||||
tmp = of_fdt_is_compatible(blob, node, *compat);
|
|
||||||
if (tmp && (score == 0 || (tmp < score)))
|
|
||||||
score = tmp;
|
|
||||||
compat++;
|
|
||||||
}
|
|
||||||
|
|
||||||
return score;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void *unflatten_dt_alloc(void **mem, unsigned long size,
|
static void *unflatten_dt_alloc(void **mem, unsigned long size,
|
||||||
unsigned long align)
|
unsigned long align)
|
||||||
{
|
{
|
||||||
|
@ -764,6 +711,38 @@ const void *__init of_get_flat_dt_prop(unsigned long node, const char *name,
|
||||||
return fdt_getprop(initial_boot_params, node, name, size);
|
return fdt_getprop(initial_boot_params, node, name, size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* of_fdt_is_compatible - Return true if given node from the given blob has
|
||||||
|
* compat in its compatible list
|
||||||
|
* @blob: A device tree blob
|
||||||
|
* @node: node to test
|
||||||
|
* @compat: compatible string to compare with compatible list.
|
||||||
|
*
|
||||||
|
* On match, returns a non-zero value with smaller values returned for more
|
||||||
|
* specific compatible values.
|
||||||
|
*/
|
||||||
|
static int of_fdt_is_compatible(const void *blob,
|
||||||
|
unsigned long node, const char *compat)
|
||||||
|
{
|
||||||
|
const char *cp;
|
||||||
|
int cplen;
|
||||||
|
unsigned long l, score = 0;
|
||||||
|
|
||||||
|
cp = fdt_getprop(blob, node, "compatible", &cplen);
|
||||||
|
if (cp == NULL)
|
||||||
|
return 0;
|
||||||
|
while (cplen > 0) {
|
||||||
|
score++;
|
||||||
|
if (of_compat_cmp(cp, compat, strlen(compat)) == 0)
|
||||||
|
return score;
|
||||||
|
l = strlen(cp) + 1;
|
||||||
|
cp += l;
|
||||||
|
cplen -= l;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* of_flat_dt_is_compatible - Return true if given node has compat in compatible list
|
* of_flat_dt_is_compatible - Return true if given node has compat in compatible list
|
||||||
* @node: node to test
|
* @node: node to test
|
||||||
|
@ -779,7 +758,19 @@ int __init of_flat_dt_is_compatible(unsigned long node, const char *compat)
|
||||||
*/
|
*/
|
||||||
static int __init of_flat_dt_match(unsigned long node, const char *const *compat)
|
static int __init of_flat_dt_match(unsigned long node, const char *const *compat)
|
||||||
{
|
{
|
||||||
return of_fdt_match(initial_boot_params, node, compat);
|
unsigned int tmp, score = 0;
|
||||||
|
|
||||||
|
if (!compat)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
while (*compat) {
|
||||||
|
tmp = of_fdt_is_compatible(initial_boot_params, node, *compat);
|
||||||
|
if (tmp && (score == 0 || (tmp < score)))
|
||||||
|
score = tmp;
|
||||||
|
compat++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return score;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue