Commit be0f9ca0 authored by Rob Herring's avatar Rob Herring Committed by Michael Ellerman
Browse files

powerpc: fsl_soc: Use of_range_to_resource() for "ranges" parsing



"ranges" is a standard property with common parsing functions. Users
shouldn't be implementing their own parsing of it. Refactor the FSL RapidIO
"ranges" parsing to use of_range_to_resource() instead.

Signed-off-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20230609183238.1767186-1-robh@kernel.org
parent f892ac77
Loading
Loading
Loading
Loading
+4 −12
Original line number Diff line number Diff line
@@ -51,18 +51,10 @@ phys_addr_t get_immrbase(void)

	soc = of_find_node_by_type(NULL, "soc");
	if (soc) {
		int size;
		u32 naddr;
		const __be32 *prop = of_get_property(soc, "#address-cells", &size);

		if (prop && size == 4)
			naddr = be32_to_cpup(prop);
		else
			naddr = 2;

		prop = of_get_property(soc, "ranges", &size);
		if (prop)
			immrbase = of_translate_address(soc, prop + naddr);
		struct resource res;

		if (!of_range_to_resource(soc, 0, &res))
			immrbase = res.start;

		of_node_put(soc);
	}