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

Commit 84774e61 authored by Lee Jones's avatar Lee Jones Committed by Arnd Bergmann
Browse files

of: address: Don't fail a lookup just because a node has no reg property



Sometimes it doesn't make any sense for a node to have an address.
In this case device lookup will always be unsuccessful because we
currently assume every node will have a reg property. This patch
changes the semantics so that the resource address and the lookup
address will only be compared if one exists.

Things like AUXDATA() rely on of_dev_lookup to return the lookup
entry of a particular device in order to do things like apply
platform_data to a device. However, this is currently broken for
nodes which do not have a reg property, meaning that platform_data
can not be passed in those cases.

Acked-by: default avatarRob Herring <rob.herring@calxeda.com>
Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
parent 6887a413
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -317,8 +317,7 @@ static const struct of_dev_auxdata *of_dev_lookup(const struct of_dev_auxdata *l
	for(; lookup->compatible != NULL; lookup++) {
		if (!of_device_is_compatible(np, lookup->compatible))
			continue;
		if (of_address_to_resource(np, 0, &res))
			continue;
		if (!of_address_to_resource(np, 0, &res))
			if (res.start != lookup->phys_addr)
				continue;
		pr_debug("%s: devname=%s\n", np->full_name, lookup->name);