From: James Yang

get_ddr_freq() and get_bus_freq() used get_sys_info() each time they were
called.  However, get_sys_info() recalculates extraneous information when
called each time.  Have get_ddr_freq() and get_bus_freq() return memoized
values from global_data instead.

Signed-off-by: James Yang
Signed-off-by: Kumar Gala <[EMAIL PROTECTED]>
---
in my git tree.

 cpu/mpc85xx/speed.c           |   21 +++++----------------
 include/asm-ppc/global_data.h |    2 --
 2 files changed, 5 insertions(+), 18 deletions(-)

diff --git a/cpu/mpc85xx/speed.c b/cpu/mpc85xx/speed.c
index 952f30c..343316e 100644
--- a/cpu/mpc85xx/speed.c
+++ b/cpu/mpc85xx/speed.c
@@ -48,6 +48,8 @@ void get_sys_info (sys_info_t * sysInfo)
         * overflow for processor speeds above 2GHz */
        half_freqSystemBus = sysInfo->freqSystemBus/2;
        sysInfo->freqProcessor = e500_ratio*half_freqSystemBus;
+
+       /* Note: freqDDRBus is the MCLK frequency, not the data rate. */
        sysInfo->freqDDRBus = sysInfo->freqSystemBus;

 #ifdef CONFIG_DDR_CLK_FREQ
@@ -75,6 +77,7 @@ int get_clocks (void)
        get_sys_info (&sys_info);
        gd->cpu_clk = sys_info.freqProcessor;
        gd->bus_clk = sys_info.freqSystemBus;
+       gd->mem_clk = sys_info.freqDDRBus;
        gd->i2c1_clk = sys_info.freqSystemBus;
        gd->i2c2_clk = sys_info.freqSystemBus;

@@ -96,14 +99,7 @@ int get_clocks (void)
  *********************************************/
 ulong get_bus_freq (ulong dummy)
 {
-       ulong val;
-
-       sys_info_t sys_info;
-
-       get_sys_info (&sys_info);
-       val = sys_info.freqSystemBus;
-
-       return val;
+       return gd->bus_clk;
 }

 /********************************************
@@ -112,12 +108,5 @@ ulong get_bus_freq (ulong dummy)
  *********************************************/
 ulong get_ddr_freq (ulong dummy)
 {
-       ulong val;
-
-       sys_info_t sys_info;
-
-       get_sys_info (&sys_info);
-       val = sys_info.freqDDRBus;
-
-       return val;
+       return gd->mem_clk;
 }
diff --git a/include/asm-ppc/global_data.h b/include/asm-ppc/global_data.h
index 2319b27..4220c73 100644
--- a/include/asm-ppc/global_data.h
+++ b/include/asm-ppc/global_data.h
@@ -49,9 +49,7 @@ typedef       struct  global_data {
        unsigned long   scc_clk;
        unsigned long   brg_clk;
 #endif
-#if defined(CONFIG_MPC7448HPC2)
        unsigned long   mem_clk;
-#endif
 #if defined(CONFIG_MPC83XX)
        /* There are other clocks in the MPC83XX */
        u32 csb_clk;
-- 
1.5.3.8


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
U-Boot-Users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/u-boot-users

Reply via email to