ARM: OMAP2+: Get rid of custom OMAP_32K_TIMER_HZ
Subsystems (2)
PATCH 1/1 ARM: OMAP2+: Get rid of custom OMAP_32K_TIMER_HZ
The timekeeping doesn't depend on HZ value in presence of fine grained clocksource and hence there should not be any time drift because of HZ value which was chosen to be divisor of 32768.
OMAP has been using HZ = 128 value to avoid any time drift issues because of 32768 HZ clock. But with various measurements performed with HZ = 100, no time drift is observed and it also proves the point about HZ not having impact on time keeping on OMAP.
Very informative thread on this topic is here:
https://lkml.org/lkml/2013/1/29/435
Special thanks to John Stulz, Arnd Bergmann and Russell King for their valuable suggestions.
--- arch/arm/Kconfig | 1 - arch/arm/plat-omap/Kconfig | 9 --------- arch/arm/plat-omap/include/plat/timex.h | 8 -------- 3 files changed, 18 deletions(-)
arch/arm/Kconfig +0 -1
@@ -1648,7 +1648,6 @@ config HZ int default 200 if ARCH_EBSA110 || ARCH_S3C24XX || ARCH_S5P64X0 || \ ARCH_S5PV210 || ARCH_EXYNOS4 - default OMAP_32K_TIMER_HZ if ARCH_OMAP && OMAP_32K_TIMER default AT91_TIMER_HZ if ARCH_AT91 default SHMOBILE_TIMER_HZ if ARCH_SHMOBILE default 100
arch/arm/plat-omap/Kconfig +0 -9
@@ -147,15 +147,6 @@ config OMAP3_L2_AUX_SECURE_SERVICE_SET_ID help PPA routine service ID for setting L2 auxiliary control register. -config OMAP_32K_TIMER_HZ - int "Kernel internal timer frequency for 32KHz timer" - range 32 1024 - depends on OMAP_32K_TIMER - default "128" - help - Kernel internal timer frequency should be a divisor of 32768, - such as 64 or 128. - config OMAP_DM_TIMER bool "Use dual-mode timer" depends on ARCH_OMAP16XX || ARCH_OMAP2PLUS
arch/arm/plat-omap/include/plat/timex.h +0 -8
@@ -28,14 +28,6 @@#if !defined(__ASM_ARCH_OMAP_TIMEX_H)#define __ASM_ARCH_OMAP_TIMEX_H -/* -* OMAP 32KHz timer updates time one jiffie at a time from a secondary timer, -* and that's why the CLOCK_TICK_RATE is not 32768. -*/ -#ifdef CONFIG_OMAP_32K_TIMER -#define CLOCK_TICK_RATE (CONFIG_OMAP_32K_TIMER_HZ) -#else #define CLOCK_TICK_RATE (HZ * 100000UL) -#endif #endif /* __ASM_ARCH_OMAP_TIMEX_H */
Signature · 1 line
1.7.9.5
PATCH 1/1 ARM: OMAP2+: Get rid of custom OMAP_32K_TIMER_HZ
Quoted 12 lines · On Thursday 31 January 2013 21:02:00 Santosh Shilimkar wrote:
The timekeeping doesn't depend on HZ value in presence of fine grained clocksource and hence there should not be any time drift because of HZ value which was chosen to be divisor of 32768.
OMAP has been using HZ = 128 value to avoid any time drift issues because of 32768 HZ clock. But with various measurements performed with HZ = 100, no time drift is observed and it also proves the point about HZ not having impact on time keeping on OMAP.
Very informative thread on this topic is here:
https://lkml.org/lkml/2013/1/29/435
Quoted 7 lines
Special thanks to John Stulz, Arnd Bergmann and Russell King for their valuable suggestions.
Cc Arnd Bergmann <[email protected]>Cc Russell King <[email protected]>Cc John Stultz <[email protected]>Cc Tony Lindgren <[email protected]>
Thanks so much for looking into this!
PATCH 1/1 ARM: OMAP2+: Get rid of custom OMAP_32K_TIMER_HZ
Quoted 16 lines · Arnd Bergmann
Quoted 15 lines · On Thursday 31 January 2013 21:02:00 Santosh Shilimkar wrote:
The timekeeping doesn't depend on HZ value in presence of fine grained clocksource and hence there should not be any time drift because of HZ value which was chosen to be divisor of 32768.
OMAP has been using HZ = 128 value to avoid any time drift issues because of 32768 HZ clock. But with various measurements performed with HZ = 100, no time drift is observed and it also proves the point about HZ not having impact on time keeping on OMAP.
Very informative thread on this topic is here:
https://lkml.org/lkml/2013/1/29/435Special thanks to John Stulz, Arnd Bergmann and Russell King for their valuable suggestions.
Quoted 8 lines
Quoted 4 lines
Cc Arnd Bergmann <[email protected]>Cc Russell King <[email protected]>Cc John Stultz <[email protected]>Cc Tony Lindgren <[email protected]>Acked-by Arnd Bergmann <[email protected]>Thanks so much for looking into this!
Great thanks for checking it Santosh! Applying into omap-for-v3.9/soc.
Tony
PATCH 1/1 ARM: OMAP2+: Get rid of custom OMAP_32K_TIMER_HZ
In reply to Santosh ShilimkarQuoted 8 lines · Santosh Shilimkar
The timekeeping doesn't depend on HZ value in presence of fine grained clocksource and hence there should not be any time drift because of HZ value which was chosen to be divisor of 32768.
OMAP has been using HZ = 128 value to avoid any time drift issues because of 32768 HZ clock. But with various measurements performed with HZ = 100, no time drift is observed and it also proves the point about HZ not having impact on time keeping on OMAP.
Great! I had the same patch in my tree already for several months, but I was afraid to send it as I had no time to test it thoroughly. These kind of things are always scary to send without proper testing...
Thank you very much for testing and sending this out!
Quoted 11 lines
Very informative thread on this topic is here:
https://lkml.org/lkml/2013/1/29/435Special thanks to John Stulz, Arnd Bergmann and Russell King for their valuable suggestions.
Cc Arnd Bergmann <[email protected]>Cc Russell King <[email protected]>Cc John Stultz <[email protected]>Cc Tony Lindgren <[email protected]>
If it still not too late:
Quoted 61 lines
Signed-off-by Santosh Shilimkar <[email protected]>Tested-by Lokesh Vutla <[email protected]>--- arch/arm/Kconfig | 1 - arch/arm/plat-omap/Kconfig | 9 --------- arch/arm/plat-omap/include/plat/timex.h | 8 -------- 3 files changed, 18 deletions(-)arch/arm/Kconfig +0
-1@@ -1648,7 +1648,6 @@ config HZ int default 200 if ARCH_EBSA110 || ARCH_S3C24XX || ARCH_S5P64X0 || \ ARCH_S5PV210 || ARCH_EXYNOS4 - default OMAP_32K_TIMER_HZ if ARCH_OMAP && OMAP_32K_TIMER default AT91_TIMER_HZ if ARCH_AT91 default SHMOBILE_TIMER_HZ if ARCH_SHMOBILE default 100arch/arm/plat-omap/Kconfig +0
-9@@ -147,15 +147,6 @@ config OMAP3_L2_AUX_SECURE_SERVICE_SET_ID help PPA routine service ID for setting L2 auxiliary control register. -config OMAP_32K_TIMER_HZ - int "Kernel internal timer frequency for 32KHz timer" - range 32 1024 - depends on OMAP_32K_TIMER - default "128" - help - Kernel internal timer frequency should be a divisor of 32768, - such as 64 or 128. - config OMAP_DM_TIMER bool "Use dual-mode timer" depends on ARCH_OMAP16XX || ARCH_OMAP2PLUSarch/arm/plat-omap/include/plat/timex.h +0
-8@@ -28,14 +28,6 @@#if !defined(__ASM_ARCH_OMAP_TIMEX_H)#define __ASM_ARCH_OMAP_TIMEX_H -/* -* OMAP 32KHz timer updates time one jiffie at a time from a secondary timer, -* and that's why the CLOCK_TICK_RATE is not 32768. -*/ -#ifdef CONFIG_OMAP_32K_TIMER -#define CLOCK_TICK_RATE (CONFIG_OMAP_32K_TIMER_HZ) -#else #define CLOCK_TICK_RATE (HZ * 100000UL) -#endif #endif /* __ASM_ARCH_OMAP_TIMEX_H */
Signature · 2 lines
Regards, Igor.