[PATCH v2] clocksource/drivers/arm_arch_timer: Fix handling of ARM erratum 85821

Kunkun Jiang jiangkunkun at huawei.com
Tue Sep 13 23:21:48 PDT 2022


The subject is wrong. s/85821/858921
Please review v3.

Thanks,
Kunkun Jiang

On 2022/9/14 10:21, Kunkun Jiang wrote:
> The commit a38b71b0833e ("clocksource/drivers/arm_arch_timer:
> Move system register timer programming over to CVAL") moves the
> programming of the timers from the countdown timer (TVAL) over
> to the comparator (CVAL). This makes it necessary to read the
> counter when programming next event. However, the workaround of
> Cortex-A73 erratum 858921 does not set the corresponding
> set_next_event_phys and set_next_event_virt.
>
> Add the appropriate hooks to apply the erratum mitigation when
> programming the next timer event.
>
> Fixes: a38b71b0833e ("clocksource/drivers/arm_arch_timer: Move system register timer programming over to CVAL")
> Signed-off-by: Kunkun Jiang <jiangkunkun at huawei.com>
> Acked-by: Marc Zyngier <maz at kernel.org>
> ---
>   drivers/clocksource/arm_arch_timer.c | 2 ++
>   1 file changed, 2 insertions(+)
>
> diff --git a/drivers/clocksource/arm_arch_timer.c b/drivers/clocksource/arm_arch_timer.c
> index 9ab8221ee3c6..ff935efb6a88 100644
> --- a/drivers/clocksource/arm_arch_timer.c
> +++ b/drivers/clocksource/arm_arch_timer.c
> @@ -473,6 +473,8 @@ static const struct arch_timer_erratum_workaround ool_workarounds[] = {
>   		.desc = "ARM erratum 858921",
>   		.read_cntpct_el0 = arm64_858921_read_cntpct_el0,
>   		.read_cntvct_el0 = arm64_858921_read_cntvct_el0,
> +		.set_next_event_phys = erratum_set_next_event_phys,
> +		.set_next_event_virt = erratum_set_next_event_virt,
>   	},
>   #endif
>   #ifdef CONFIG_SUN50I_ERRATUM_UNKNOWN1



More information about the linux-arm-kernel mailing list