Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b8acee3e authored by Rob Herring's avatar Rob Herring
Browse files

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: default avatar"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: default avatarRob Herring <robh@kernel.org>
Tested-by: default avatarIvan T. Ivanov <iivanov@mm-sol.com>
Tested-by: default avatarFrank Rowand <frank.rowand@sonymobile.com>
Reviewed-by: default avatarFrank Rowand <frank.rowand@sonymobile.com>
parent d6d211db
Loading
Loading
Loading
Loading
+1 −10
Original line number Diff line number Diff line
@@ -78,7 +78,6 @@ void of_device_make_bus_id(struct device *dev)
	struct device_node *node = dev->of_node;
	const __be32 *reg;
	u64 addr;
	const __be32 *addrp;
	int magic;

#ifdef CONFIG_PPC_DCR
@@ -106,15 +105,7 @@ void of_device_make_bus_id(struct device *dev)
	 */
	reg = of_get_property(node, "reg", NULL);
	if (reg) {
		if (of_can_translate_address(node)) {
		addr = of_translate_address(node, reg);
		} else {
			addrp = of_get_address(node, 0, NULL, NULL);
			if (addrp)
				addr = of_read_number(addrp, 1);
			else
				addr = OF_BAD_ADDR;
		}
		if (addr != OF_BAD_ADDR) {
			dev_set_name(dev, "%llx.%s",
				     (unsigned long long)addr, node->name);