Skip to content

Commit

Permalink
sparc: Move create_node() and friends into prom_common.c
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 Dec 6, 2008
1 parent 06c0db7 commit 7d9439d
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 78 deletions.
3 changes: 2 additions & 1 deletion arch/sparc/kernel/prom.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ extern void irq_trans_init(struct device_node *dp);

extern unsigned int prom_unique_id;

extern struct property * __init build_prop_list(phandle node);
extern struct device_node * __init create_node(phandle node,
struct device_node *parent);

#endif /* __PROM_H */
38 changes: 0 additions & 38 deletions arch/sparc/kernel/prom_32.c
Original file line number Diff line number Diff line change
Expand Up @@ -196,44 +196,6 @@ static char * __init build_full_name(struct device_node *dp)
return n;
}

static char * __init get_one_property(phandle node, const char *name)
{
char *buf = "<NULL>";
int len;

len = prom_getproplen(node, name);
if (len > 0) {
buf = prom_early_alloc(len);
len = prom_getproperty(node, name, buf, len);
}

return buf;
}

static struct device_node * __init create_node(phandle node, struct device_node *parent)
{
struct device_node *dp;

if (!node)
return NULL;

dp = prom_early_alloc(sizeof(*dp));
dp->unique_id = prom_unique_id++;
dp->parent = parent;

kref_init(&dp->kref);

dp->name = get_one_property(node, "name");
dp->type = get_one_property(node, "device_type");
dp->node = node;

/* Build interrupts later... */

dp->properties = build_prop_list(node);

return dp;
}

static struct device_node * __init build_tree(struct device_node *parent, phandle node, struct device_node ***nextp)
{
struct device_node *dp;
Expand Down
38 changes: 0 additions & 38 deletions arch/sparc/kernel/prom_64.c
Original file line number Diff line number Diff line change
Expand Up @@ -399,44 +399,6 @@ static char * __init build_full_name(struct device_node *dp)
return n;
}

static char * __init get_one_property(phandle node, const char *name)
{
char *buf = "<NULL>";
int len;

len = prom_getproplen(node, name);
if (len > 0) {
buf = prom_early_alloc(len);
len = prom_getproperty(node, name, buf, len);
}

return buf;
}

static struct device_node * __init create_node(phandle node, struct device_node *parent)
{
struct device_node *dp;

if (!node)
return NULL;

dp = prom_early_alloc(sizeof(*dp));
dp->unique_id = prom_unique_id++;
dp->parent = parent;

kref_init(&dp->kref);

dp->name = get_one_property(node, "name");
dp->type = get_one_property(node, "device_type");
dp->node = node;

dp->properties = build_prop_list(node);

irq_trans_init(dp);

return dp;
}

static struct device_node * __init build_tree(struct device_node *parent, phandle node, struct device_node ***nextp)
{
struct device_node *ret = NULL, *prev_sibling = NULL;
Expand Down
41 changes: 40 additions & 1 deletion arch/sparc/kernel/prom_common.c
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ static struct property * __init build_one_prop(phandle node, char *prev,
return p;
}

struct property * __init build_prop_list(phandle node)
static struct property * __init build_prop_list(phandle node)
{
struct property *head, *tail;

Expand All @@ -201,3 +201,42 @@ struct property * __init build_prop_list(phandle node)

return head;
}

static char * __init get_one_property(phandle node, const char *name)
{
char *buf = "<NULL>";
int len;

len = prom_getproplen(node, name);
if (len > 0) {
buf = prom_early_alloc(len);
len = prom_getproperty(node, name, buf, len);
}

return buf;
}

struct device_node * __init create_node(phandle node,
struct device_node *parent)
{
struct device_node *dp;

if (!node)
return NULL;

dp = prom_early_alloc(sizeof(*dp));
dp->unique_id = prom_unique_id++;
dp->parent = parent;

kref_init(&dp->kref);

dp->name = get_one_property(node, "name");
dp->type = get_one_property(node, "device_type");
dp->node = node;

/* Build interrupts later... */

dp->properties = build_prop_list(node);

return dp;
}

0 comments on commit 7d9439d

Please sign in to comment.