aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/of/platform.c
diff options
context:
space:
mode:
authorRob Herring <robh@kernel.org>2014-05-07 16:17:26 -0400
committerRob Herring <robh@kernel.org>2014-05-13 15:11:09 -0400
commitb8acee3ef83f0fc50e57a3d4c91234982befda95 (patch)
tree85e9ed42b391e329b68020307736dcf3f7a136be /drivers/of/platform.c
parentd6d211db37e75de2ddc3a4f979038c40df7cc79c (diff)
of/platform: fix device naming for non-translatable addresses
Using non-translatable addresses in platform device names is wrong because they may not be globally unique. Just use the default naming with a global index if the address cannot be translated instead. of_can_translate_address has the same checks as of_translate_address, so we can remove it here as well. Reported-by: "Ivan T. Ivanov" <iivanov@mm-sol.com> Cc: Josh Cartwright <joshc@codeaurora.org> Cc: Courtney Cavin <courtney.cavin@sonymobile.com> Cc: Bjorn Andersson <bjorn@kryo.se> Cc: Grant Likely <grant.likely@linaro.org> Signed-off-by: Rob Herring <robh@kernel.org> Tested-by: Ivan T. Ivanov <iivanov@mm-sol.com> Tested-by: Frank Rowand <frank.rowand@sonymobile.com> Reviewed-by: Frank Rowand <frank.rowand@sonymobile.com>
Diffstat (limited to 'drivers/of/platform.c')
-rw-r--r--drivers/of/platform.c11
1 files changed, 1 insertions, 10 deletions
diff --git a/drivers/of/platform.c b/drivers/of/platform.c
index bd47fbc53dc9..0602eb5b1be2 100644
--- a/drivers/of/platform.c
+++ b/drivers/of/platform.c
@@ -78,7 +78,6 @@ void of_device_make_bus_id(struct device *dev)
78 struct device_node *node = dev->of_node; 78 struct device_node *node = dev->of_node;
79 const __be32 *reg; 79 const __be32 *reg;
80 u64 addr; 80 u64 addr;
81 const __be32 *addrp;
82 int magic; 81 int magic;
83 82
84#ifdef CONFIG_PPC_DCR 83#ifdef CONFIG_PPC_DCR
@@ -106,15 +105,7 @@ void of_device_make_bus_id(struct device *dev)
106 */ 105 */
107 reg = of_get_property(node, "reg", NULL); 106 reg = of_get_property(node, "reg", NULL);
108 if (reg) { 107 if (reg) {
109 if (of_can_translate_address(node)) { 108 addr = of_translate_address(node, reg);
110 addr = of_translate_address(node, reg);
111 } else {
112 addrp = of_get_address(node, 0, NULL, NULL);
113 if (addrp)
114 addr = of_read_number(addrp, 1);
115 else
116 addr = OF_BAD_ADDR;
117 }
118 if (addr != OF_BAD_ADDR) { 109 if (addr != OF_BAD_ADDR) {
119 dev_set_name(dev, "%llx.%s", 110 dev_set_name(dev, "%llx.%s",
120 (unsigned long long)addr, node->name); 111 (unsigned long long)addr, node->name);