[SPARC]: Centralize find_in_proplist() instead of duplicating N times.
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
4a2a4df7b6
commit
46bcea7751
6 changed files with 39 additions and 36 deletions
|
@ -102,6 +102,21 @@ int of_set_property(struct device_node *dp, const char *name, void *val, int len
|
|||
}
|
||||
EXPORT_SYMBOL(of_set_property);
|
||||
|
||||
int of_find_in_proplist(const char *list, const char *match, int len)
|
||||
{
|
||||
while (len > 0) {
|
||||
int l;
|
||||
|
||||
if (!strcmp(list, match))
|
||||
return 1;
|
||||
l = strlen(list) + 1;
|
||||
list += l;
|
||||
len -= l;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(of_find_in_proplist);
|
||||
|
||||
static unsigned int prom_early_allocated;
|
||||
|
||||
static void * __init prom_early_alloc(unsigned long size)
|
||||
|
|
|
@ -568,20 +568,6 @@ static void __init report_platform_properties(void)
|
|||
mdesc_release(hp);
|
||||
}
|
||||
|
||||
static int inline find_in_proplist(const char *list, const char *match, int len)
|
||||
{
|
||||
while (len > 0) {
|
||||
int l;
|
||||
|
||||
if (!strcmp(list, match))
|
||||
return 1;
|
||||
l = strlen(list) + 1;
|
||||
list += l;
|
||||
len -= l;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void __devinit fill_in_one_cache(cpuinfo_sparc *c,
|
||||
struct mdesc_handle *hp,
|
||||
u64 mp)
|
||||
|
@ -596,10 +582,10 @@ static void __devinit fill_in_one_cache(cpuinfo_sparc *c,
|
|||
|
||||
switch (*level) {
|
||||
case 1:
|
||||
if (find_in_proplist(type, "instn", type_len)) {
|
||||
if (of_find_in_proplist(type, "instn", type_len)) {
|
||||
c->icache_size = *size;
|
||||
c->icache_line_size = *line_size;
|
||||
} else if (find_in_proplist(type, "data", type_len)) {
|
||||
} else if (of_find_in_proplist(type, "data", type_len)) {
|
||||
c->dcache_size = *size;
|
||||
c->dcache_line_size = *line_size;
|
||||
}
|
||||
|
@ -677,7 +663,7 @@ static void __devinit set_core_ids(struct mdesc_handle *hp)
|
|||
continue;
|
||||
|
||||
type = mdesc_get_property(hp, mp, "type", &len);
|
||||
if (!find_in_proplist(type, "instn", len))
|
||||
if (!of_find_in_proplist(type, "instn", len))
|
||||
continue;
|
||||
|
||||
mark_core_ids(hp, mp, idx);
|
||||
|
@ -718,8 +704,8 @@ static void __devinit __set_proc_ids(struct mdesc_handle *hp,
|
|||
int len;
|
||||
|
||||
type = mdesc_get_property(hp, mp, "type", &len);
|
||||
if (!find_in_proplist(type, "int", len) &&
|
||||
!find_in_proplist(type, "integer", len))
|
||||
if (!of_find_in_proplist(type, "int", len) &&
|
||||
!of_find_in_proplist(type, "integer", len))
|
||||
continue;
|
||||
|
||||
mark_proc_ids(hp, mp, idx);
|
||||
|
|
|
@ -107,6 +107,21 @@ int of_set_property(struct device_node *dp, const char *name, void *val, int len
|
|||
}
|
||||
EXPORT_SYMBOL(of_set_property);
|
||||
|
||||
int of_find_in_proplist(const char *list, const char *match, int len)
|
||||
{
|
||||
while (len > 0) {
|
||||
int l;
|
||||
|
||||
if (!strcmp(list, match))
|
||||
return 1;
|
||||
l = strlen(list) + 1;
|
||||
list += l;
|
||||
len -= l;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(of_find_in_proplist);
|
||||
|
||||
static unsigned int prom_early_allocated;
|
||||
|
||||
static void * __init prom_early_alloc(unsigned long size)
|
||||
|
|
|
@ -16,21 +16,6 @@
|
|||
#include <asm/mdesc.h>
|
||||
#include <asm/vio.h>
|
||||
|
||||
static inline int find_in_proplist(const char *list, const char *match,
|
||||
int len)
|
||||
{
|
||||
while (len > 0) {
|
||||
int l;
|
||||
|
||||
if (!strcmp(list, match))
|
||||
return 1;
|
||||
l = strlen(list) + 1;
|
||||
list += l;
|
||||
len -= l;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct vio_device_id *vio_match_device(
|
||||
const struct vio_device_id *matches,
|
||||
const struct vio_dev *dev)
|
||||
|
@ -49,7 +34,7 @@ static const struct vio_device_id *vio_match_device(
|
|||
|
||||
if (matches->compat[0]) {
|
||||
match &= len &&
|
||||
find_in_proplist(compat, matches->compat, len);
|
||||
of_find_in_proplist(compat, matches->compat, len);
|
||||
}
|
||||
if (match)
|
||||
return matches;
|
||||
|
@ -406,7 +391,7 @@ static int __init vio_init(void)
|
|||
"property\n");
|
||||
goto out_release;
|
||||
}
|
||||
if (!find_in_proplist(compat, channel_devices_compat, len)) {
|
||||
if (!of_find_in_proplist(compat, channel_devices_compat, len)) {
|
||||
printk(KERN_ERR "VIO: Channel devices node lacks (%s) "
|
||||
"compat entry.\n", channel_devices_compat);
|
||||
goto out_release;
|
||||
|
|
|
@ -67,6 +67,7 @@ extern int of_set_property(struct device_node *node, const char *name, void *val
|
|||
extern int of_getintprop_default(struct device_node *np,
|
||||
const char *name,
|
||||
int def);
|
||||
extern int of_find_in_proplist(const char *list, const char *match, int len);
|
||||
|
||||
extern void prom_build_devicetree(void);
|
||||
|
||||
|
|
|
@ -76,6 +76,7 @@ extern int of_set_property(struct device_node *node, const char *name, void *val
|
|||
extern int of_getintprop_default(struct device_node *np,
|
||||
const char *name,
|
||||
int def);
|
||||
extern int of_find_in_proplist(const char *list, const char *match, int len);
|
||||
|
||||
extern void prom_build_devicetree(void);
|
||||
|
||||
|
|
Loading…
Reference in a new issue