diff options
author | Shawn Guo <shawn.guo@linaro.org> | 2011-08-15 03:28:14 -0400 |
---|---|---|
committer | Grant Likely <grant.likely@secretlab.ca> | 2011-09-22 13:12:10 -0400 |
commit | 611cad720148c899db5a383c1c676fd820df7023 (patch) | |
tree | 780adeaa4418b7b1e76d4a3b8fe600f04475c7df /drivers/of/pdt.c | |
parent | a81dd364de50bc1eb1519af0ecfa100753a09351 (diff) |
dt: add of_alias_scan and of_alias_get_id
The patch adds function of_alias_scan to populate a global lookup
table with the properties of 'aliases' node and function
of_alias_get_id for drivers to find alias id from the lookup table.
v3: Split out automatic addition of aliases on id lookup so that it can be
debated separately from the core functionality.
v2: - Add of_chosen/of_aliases populating and of_alias_scan() invocation
for OF_PROMTREE.
- Add locking
- rework parse loop
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Acked-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Diffstat (limited to 'drivers/of/pdt.c')
-rw-r--r-- | drivers/of/pdt.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/of/pdt.c b/drivers/of/pdt.c index 4d87b5dc9284..bc5b3990f6ed 100644 --- a/drivers/of/pdt.c +++ b/drivers/of/pdt.c | |||
@@ -229,6 +229,11 @@ static struct device_node * __init of_pdt_build_tree(struct device_node *parent, | |||
229 | return ret; | 229 | return ret; |
230 | } | 230 | } |
231 | 231 | ||
232 | static void *kernel_tree_alloc(u64 size, u64 align) | ||
233 | { | ||
234 | return prom_early_alloc(size); | ||
235 | } | ||
236 | |||
232 | void __init of_pdt_build_devicetree(phandle root_node, struct of_pdt_ops *ops) | 237 | void __init of_pdt_build_devicetree(phandle root_node, struct of_pdt_ops *ops) |
233 | { | 238 | { |
234 | struct device_node **nextp; | 239 | struct device_node **nextp; |
@@ -245,4 +250,7 @@ void __init of_pdt_build_devicetree(phandle root_node, struct of_pdt_ops *ops) | |||
245 | nextp = &allnodes->allnext; | 250 | nextp = &allnodes->allnext; |
246 | allnodes->child = of_pdt_build_tree(allnodes, | 251 | allnodes->child = of_pdt_build_tree(allnodes, |
247 | of_pdt_prom_ops->getchild(allnodes->phandle), &nextp); | 252 | of_pdt_prom_ops->getchild(allnodes->phandle), &nextp); |
253 | |||
254 | /* Get pointer to "/chosen" and "/aliasas" nodes for use everywhere */ | ||
255 | of_alias_scan(kernel_tree_alloc); | ||
248 | } | 256 | } |