mirror of https://gitee.com/openkylin/linux.git
[POWERPC] fsl_soc: Fix get_immrbase() to use ranges, rather than reg.
Don't depend on the reg property as a way to determine the base of the immr space. The reg property might be defined differently for different SoC families. Signed-off-by: Scott Wood <scottwood@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
This commit is contained in:
parent
c7d24a2dd0
commit
6c7e072b16
|
@ -55,10 +55,18 @@ phys_addr_t get_immrbase(void)
|
|||
soc = of_find_node_by_type(NULL, "soc");
|
||||
if (soc) {
|
||||
int size;
|
||||
const void *prop = of_get_property(soc, "reg", &size);
|
||||
u32 naddr;
|
||||
const u32 *prop = of_get_property(soc, "#address-cells", &size);
|
||||
|
||||
if (prop && size == 4)
|
||||
naddr = *prop;
|
||||
else
|
||||
naddr = 2;
|
||||
|
||||
prop = of_get_property(soc, "ranges", &size);
|
||||
if (prop)
|
||||
immrbase = of_translate_address(soc, prop);
|
||||
immrbase = of_translate_address(soc, prop + naddr);
|
||||
|
||||
of_node_put(soc);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue