sparc: Move create_node() and friends into prom_common.c
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -15,6 +15,7 @@ extern void irq_trans_init(struct device_node *dp);
|
|||||||
|
|
||||||
extern unsigned int prom_unique_id;
|
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 */
|
#endif /* __PROM_H */
|
||||||
|
@@ -196,44 +196,6 @@ static char * __init build_full_name(struct device_node *dp)
|
|||||||
return n;
|
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)
|
static struct device_node * __init build_tree(struct device_node *parent, phandle node, struct device_node ***nextp)
|
||||||
{
|
{
|
||||||
struct device_node *dp;
|
struct device_node *dp;
|
||||||
|
@@ -399,44 +399,6 @@ static char * __init build_full_name(struct device_node *dp)
|
|||||||
return n;
|
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)
|
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;
|
struct device_node *ret = NULL, *prev_sibling = NULL;
|
||||||
|
@@ -184,7 +184,7 @@ static struct property * __init build_one_prop(phandle node, char *prev,
|
|||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct property * __init build_prop_list(phandle node)
|
static struct property * __init build_prop_list(phandle node)
|
||||||
{
|
{
|
||||||
struct property *head, *tail;
|
struct property *head, *tail;
|
||||||
|
|
||||||
@@ -201,3 +201,42 @@ struct property * __init build_prop_list(phandle node)
|
|||||||
|
|
||||||
return head;
|
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;
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user