Skip to content

Commit

Permalink
[SPARC]: Centralize find_in_proplist() instead of duplicating N times.
Browse files Browse the repository at this point in the history
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
David S. Miller committed Aug 8, 2007
1 parent 4a2a4df commit 46bcea7
Show file tree
Hide file tree
Showing 6 changed files with 39 additions and 36 deletions.
15 changes: 15 additions & 0 deletions arch/sparc/kernel/prom.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
24 changes: 5 additions & 19 deletions arch/sparc64/kernel/mdesc.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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;
}
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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);
Expand Down
15 changes: 15 additions & 0 deletions arch/sparc64/kernel/prom.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
19 changes: 2 additions & 17 deletions arch/sparc64/kernel/vio.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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;
Expand Down Expand Up @@ -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;
Expand Down
1 change: 1 addition & 0 deletions include/asm-sparc/prom.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down
1 change: 1 addition & 0 deletions include/asm-sparc64/prom.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down

0 comments on commit 46bcea7

Please sign in to comment.