nds32: ag101/ag102: Fix setting lastdec and now values
PATCH 1/1 nds32: ag101/ag102: Fix setting lastdec and now values
The timer3 counter unit for lastdesc and now values are inconsistent in current code. The unit of "readl(&tmr->timer3_counter) / (CONFIG_SYS_CLK_FREQ / 2)" is second. However, CONFIG_SYS_HZ is defined as 1000 in board config file. This means the accuracy of "lastdec" and "now" should be in millisecond, thus fix the equation to set lastdec and now variables accordingly.
---
Hi Kuan-Yu,
This change is based on your suggestion.
I don't have this hardware, can you test if this patch works?
Thanks,
Axel
arch/nds32/cpu/n1213/ag101/timer.c | 7 ++++--- arch/nds32/cpu/n1213/ag102/timer.c | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-)
arch/nds32/cpu/n1213/ag101/timer.c +4 -3
@@ -86,7 +86,8 @@ void reset_timer_masked(void)#ifdef CONFIG_FTTMR010_EXT_CLK lastdec =readl (&tmr->timer3_counter) / (TIMER_CLOCK /CONFIG_SYS_HZ );#else - lastdec =readl (&tmr->timer3_counter) / (CONFIG_SYS_CLK_FREQ /2 ); + lastdec =readl (&tmr->timer3_counter) / + (CONFIG_SYS_CLK_FREQ /2 /CONFIG_SYS_HZ );#endif timestamp =0 ;/* start "advancing" time stamp from 0 */
@@ -110,8 +111,8 @@ ulong get_timer_masked(void)#ifdef CONFIG_FTTMR010_EXT_CLK ulong now =readl (&tmr->timer3_counter) / (TIMER_CLOCK /CONFIG_SYS_HZ );#else -ulong now =readl (&tmr->timer3_counter) / \ - (CONFIG_SYS_CLK_FREQ /2 /1024 ); +ulong now =readl (&tmr->timer3_counter) / + (CONFIG_SYS_CLK_FREQ /2 /CONFIG_SYS_HZ );#endif debug ("%s(): now = %lx, lastdec = %lx\n" , __func__, now, lastdec);
arch/nds32/cpu/n1213/ag102/timer.c +4 -3
@@ -86,7 +86,8 @@ void reset_timer_masked(void)#ifdef CONFIG_FTTMR010_EXT_CLK lastdec =readl (&tmr->timer3_counter) / (TIMER_CLOCK /CONFIG_SYS_HZ );#else - lastdec =readl (&tmr->timer3_counter) / (CONFIG_SYS_CLK_FREQ /2 ); + lastdec =readl (&tmr->timer3_counter) / + (CONFIG_SYS_CLK_FREQ /2 /CONFIG_SYS_HZ );#endif timestamp =0 ;/* start "advancing" time stamp from 0 */
@@ -110,8 +111,8 @@ ulong get_timer_masked(void)#ifdef CONFIG_FTTMR010_EXT_CLK ulong now =readl (&tmr->timer3_counter) / (TIMER_CLOCK /CONFIG_SYS_HZ );#else -ulong now =readl (&tmr->timer3_counter) / \ - (CONFIG_SYS_CLK_FREQ /2 /1024 ); +ulong now =readl (&tmr->timer3_counter) / + (CONFIG_SYS_CLK_FREQ /2 /CONFIG_SYS_HZ );#endif debug ("%s(): now = %lx, lastdec = %lx\n" , __func__, now, lastdec);
Signature · 1 line
1.8.1.2
PATCH 1/1 nds32: ag101/ag102: Fix setting lastdec and now values
Hi Axel,
2013/7/8 Axel Lin <[email protected]>:
Quoted 6 lines
The timer3 counter unit for lastdesc and now values are inconsistent in current code. The unit of "
readl(&tmr->timer3_counter)/ (CONFIG_SYS_CLK_FREQ/ 2)" is second. However,CONFIG_SYS_HZis defined as 1000 in board config file. This means the accuracy of "lastdec" and "now" should be in millisecond, thus fix the equation to set lastdec and now variables accordingly.
Quoted 7 lines
Signed-off-by Axel Lin <[email protected]>---
Hi Kuan-Yu,
This change is based on your suggestion.
I don't have this hardware, can you test if this patch works?Thanks,
Applied to u-boot-nds32/master
Thanks for your help!
Signature · 2 lines
Best regards, Macpaul Lin