• K
    ARM: Drop fixed 200 Hz timer requirement from Samsung platforms · da6b21e9
    Krzysztof Kozlowski 提交于
    All Samsung platforms, including the Exynos, are selecting HZ_FIXED with
    200 Hz.  Unfortunately in case of multiplatform image this affects also
    other platforms when Exynos is enabled.
    
    This looks like an very old legacy code, dating back to initial
    upstreaming of S3C24xx.  Probably it was required for s3c24xx timer
    driver, which was removed in commit ad38bdd1 ("ARM: SAMSUNG: Remove
    unused plat-samsung/time.c").
    
    Since then, this fixed 200 Hz spread everywhere, including out-of-tree
    Samsung kernels (SoC vendor's and Tizen's).  I believe this choice
    was rather an effect of coincidence instead of conscious choice.
    
    On S3C24xx, the PWM counter is only 16 bit wide, and with the
    typical 12MHz input clock that overflows every 5.5ms.  This works
    with HZ=200 or higher but not with HZ=100 which needs a 10ms
    interval between ticks.  On Later chips (S3C64xx, S5P and EXYNOS),
    the counter is 32 bits and does not have this problem.
    
    The new samsung_pwm_timer driver solves the problem by scaling the input
    clock by a factor of 50 on S3C24xx, which makes it less accurate but
    allows HZ=100 as well as CONFIG_NO_HZ with fewer wakeups.
    
    Few perf mem and sched tests on Odroid XU3 board (Exynos5422, 4x Cortex
    A7, 4x Cortex A15) show no regressions when switching from 200 Hz to
    other values.
    Reported-by: NLee Jones <lee.jones@linaro.org>
    [Dropping of 200_HZ from S3C/S5P was suggested by Arnd]
    Reported-by: NArnd Bergmann <arnd@arndb.de>
    Cc: Kukjin Kim <kgene@kernel.org>
    Signed-off-by: NKrzysztof Kozlowski <krzk@kernel.org>
    [Tested on Exynos5800]
    Tested-by: NJavier Martinez Canillas <javier@osg.samsung.com>
    Acked-by: NKukjin Kim <kgene@kernel.org>
    [Tested on S3C2440]
    Tested-by: NSylwester Nawrocki <s.nawrocki@samsung.com>
    Acked-by: NLee Jones <lee.jones@linaro.org>
    da6b21e9
Kconfig 64.8 KB