Skip to content

Commit

Permalink
[POWERPC] fsl_soc: Fix get_immrbase() to use ranges, rather than reg.
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Scott Wood authored and Kumar Gala committed Jan 24, 2008
1 parent c7d24a2 commit 6c7e072
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions arch/powerpc/sysdev/fsl_soc.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

Expand Down

0 comments on commit 6c7e072

Please sign in to comment.