summaryrefslogtreecommitdiffstats
path: root/drivers/clocksource/Kconfig
diff options
context:
space:
mode:
authorDing Tianhong <dingtianhong@huawei.com>2017-02-06 16:47:42 +0000
committerDaniel Lezcano <daniel.lezcano@linaro.org>2017-02-08 00:14:04 +0100
commitbb42ca47401010fc02901b5e8f79e40a26f208cb (patch)
treeb93be8bb1c508f6e5777698b0f46f327d6581fe3 /drivers/clocksource/Kconfig
parent16d10ef29f25aba923779234bb93a451b14d20e6 (diff)
downloadlinux-bb42ca47401010fc02901b5e8f79e40a26f208cb.tar.gz
linux-bb42ca47401010fc02901b5e8f79e40a26f208cb.tar.bz2
linux-bb42ca47401010fc02901b5e8f79e40a26f208cb.zip
clocksource/drivers/arm_arch_timer: Work around Hisilicon erratum 161010101
Erratum Hisilicon-161010101 says that the ARM generic timer counter "has the potential to contain an erroneous value when the timer value changes". Accesses to TVAL (both read and write) are also affected due to the implicit counter read. Accesses to CVAL are not affected. The workaround is to reread the system count registers until the value of the second read is larger than the first one by less than 32, the system counter can be guaranteed not to return wrong value twice by back-to-back read and the error value is always larger than the correct one by 32. Writes to TVAL are replaced with an equivalent write to CVAL. Signed-off-by: Ding Tianhong <dingtianhong@huawei.com> [Mark: split patch, fix Kconfig, reword commit message] Signed-off-by: Mark Rutland <mark.rutland@arm.com> Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Diffstat (limited to 'drivers/clocksource/Kconfig')
-rw-r--r--drivers/clocksource/Kconfig10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/clocksource/Kconfig b/drivers/clocksource/Kconfig
index 1945af2d8d3e..3356ab821624 100644
--- a/drivers/clocksource/Kconfig
+++ b/drivers/clocksource/Kconfig
@@ -356,6 +356,16 @@ config FSL_ERRATUM_A008585
value"). The workaround will only be active if the
fsl,erratum-a008585 property is found in the timer node.
+config HISILICON_ERRATUM_161010101
+ bool "Workaround for Hisilicon Erratum 161010101"
+ default y
+ select ARM_ARCH_TIMER_OOL_WORKAROUND
+ depends on ARM_ARCH_TIMER && ARM64
+ help
+ This option enables a workaround for Hisilicon Erratum
+ 161010101. The workaround will be active if the hisilicon,erratum-161010101
+ property is found in the timer node.
+
config ARM_GLOBAL_TIMER
bool "Support for the ARM global timer" if COMPILE_TEST
select CLKSRC_OF if OF