Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6c7e072b1682eeb7c17ed5fdec0672fcf3ccb205
Commit:     6c7e072b1682eeb7c17ed5fdec0672fcf3ccb205
Parent:     c7d24a2dd02b9fe736e13931ee3e4a1f4f89cb47
Author:     Scott Wood <[EMAIL PROTECTED]>
AuthorDate: Mon Jan 14 10:29:35 2008 -0600
Committer:  Kumar Gala <[EMAIL PROTECTED]>
CommitDate: Wed Jan 23 19:34:33 2008 -0600

    [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 <[EMAIL PROTECTED]>
    Signed-off-by: Kumar Gala <[EMAIL PROTECTED]>
---
 arch/powerpc/sysdev/fsl_soc.c |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/arch/powerpc/sysdev/fsl_soc.c b/arch/powerpc/sysdev/fsl_soc.c
index 474cb8e..f2c0988 100644
--- a/arch/powerpc/sysdev/fsl_soc.c
+++ b/arch/powerpc/sysdev/fsl_soc.c
@@ -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);
        }
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to