armv7: s5pc1xx: don't use function pointer for clock functions
PATCH 1/1 armv7: s5pc1xx: don't use function pointer for clock functions
Because of the bss area is cleared after relocation, we've lost pointers. This patch fixed it.
Signed-off-by Minkyu Kang <[email protected]>
Signed-off-by Kyungmin Park <[email protected]>
--- arch/arm/cpu/armv7/s5p-common/cpu_info.c | 2 - arch/arm/cpu/armv7/s5pc1xx/clock.c | 38 ++++++++++++++++++----------- arch/arm/include/asm/arch-s5pc1xx/clk.h | 10 +++---- 3 files changed, 27 insertions(+), 23 deletions(-)
arch/arm/cpu/armv7/s5p-common/cpu_info.c +0 -2
@@ -32,8 +32,6 @@ int arch_cpu_init(void) {s5p_set_cpu_id (); -s5p_clock_init (); -return 0 ; }#endif
arch/arm/cpu/armv7/s5pc1xx/clock.c +23 -15
@@ -38,11 +38,6 @@#define CONFIG_SYS_CLK_FREQ_C110 24000000#endif -unsigned long (*get_uart_clk)(int dev_index); -unsigned long (*get_pwm_clk)(void ); -unsigned long (*get_arm_clk)(void ); -unsigned long (*get_pll_clk)(int ); -/* s5pc110: return pll clock frequency */ static unsigned long s5pc100_get_pll_clk (int pllreg) {
@@ -316,15 +311,28 @@ static unsigned long s5pc1xx_get_pwm_clk(void)return s5pc100_get_pclk (); } -void s5p_clock_init (void ) +unsigned long get_pll_clk (int pllreg) { -if (cpu_is_s5pc110 ()) { - get_pll_clk = s5pc110_get_pll_clk; - get_arm_clk = s5pc110_get_arm_clk; - }else { - get_pll_clk = s5pc100_get_pll_clk; - get_arm_clk = s5pc100_get_arm_clk; - } - get_uart_clk = s5pc1xx_get_uart_clk; - get_pwm_clk = s5pc1xx_get_pwm_clk; +if (cpu_is_s5pc110 ()) +return s5pc110_get_pll_clk (pllreg); +else +return s5pc100_get_pll_clk (pllreg); +} + +unsigned long get_arm_clk (void ) +{ +if (cpu_is_s5pc110 ()) +return s5pc110_get_arm_clk (); +else +return s5pc100_get_arm_clk (); +} + +unsigned long get_pwm_clk (void ) +{ +return s5pc1xx_get_pwm_clk (); +} + +unsigned long get_uart_clk (int dev_index) +{ +return s5pc1xx_get_uart_clk (dev_index); }
arch/arm/include/asm/arch-s5pc1xx/clk.h +4 -6
@@ -29,11 +29,9 @@#define HPLL 3#define VPLL 4 -void s5p_clock_init (void ); - -extern unsigned long (*get_pll_clk)(int pllreg); -extern unsigned long (*get_arm_clk)(void ); -extern unsigned long (*get_pwm_clk)(void ); -extern unsigned long (*get_uart_clk)(int dev_index); +unsigned long get_pll_clk (int pllreg); +unsigned long get_arm_clk (void ); +unsigned long get_pwm_clk (void ); +unsigned long get_uart_clk (int dev_index);#endif
Signature · 1 line
1.7.1
PATCH 1/1 armv7: s5pc1xx: don't use function pointer for clock functions
Quoted 11 lines · Minkyu Kang
Because of the bss area is cleared after relocation, we've lost pointers. This patch fixed it.
Signed-off-by Minkyu Kang <[email protected]>Signed-off-by Kyungmin Park <[email protected]>---
?arch/arm/cpu/armv7/s5p-common/cpu_info.c | ? ?2 - ?arch/arm/cpu/armv7/s5pc1xx/clock.c ? ? ? | ? 38 ++++++++++++++++++----------- ?arch/arm/include/asm/arch-s5pc1xx/clk.h ?| ? 10 +++----?3 files changed, 27 insertions(+), 23 deletions(-)
applied to u-boot-samsung
Minkyu Kang
Signature · 2 lines
from. prom. www.promsoft.net