linux-yocto/drivers/clocksource
Paul Burton 790f74d684 clocksource: mips-gic-timer: Enable counter when CPUs start
[ Upstream commit 3128b0a2e0 ]

In multi-cluster MIPS I6500 systems there is a GIC in each cluster,
each with its own counter. When a cluster powers up the counter will
be stopped, with the COUNTSTOP bit set in the GIC_CONFIG register.

In single cluster systems, it has been fine to clear COUNTSTOP once
in gic_clocksource_of_init() to start the counter. In multi-cluster
systems, this will only have started the counter in the boot cluster,
and any CPUs in other clusters will find their counter stopped which
will break the GIC clock_event_device.

Resolve this by having CPUs clear the COUNTSTOP bit when they come
online, using the existing gic_starting_cpu() CPU hotplug callback. This
will allow CPUs in secondary clusters to ensure that the cluster's GIC
counter is running as expected.

Signed-off-by: Paul Burton <paulburton@kernel.org>
Signed-off-by: Chao-ying Fu <cfu@wavecomp.com>
Signed-off-by: Dragan Mladjenovic <dragan.mladjenovic@syrmia.com>
Signed-off-by: Aleksandar Rikalo <arikalo@gmail.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Tested-by: Serge Semin <fancer.lancer@gmail.com>
Tested-by: Gregory CLEMENT <gregory.clement@bootlin.com>
Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-06-04 14:40:12 +02:00
..
acpi_pm.c
arc_timer.c
arm_arch_timer.c clocksource/drivers/arm_arch_timer: limit XGene-1 workaround 2023-11-20 11:52:01 +01:00
arm_global_timer.c clocksource/drivers/arm_global_timer: Guard against division by zero 2024-08-29 17:30:36 +02:00
armv7m_systick.c
asm9260_timer.c
bcm_kona_timer.c clocksource/drivers/bcm_kona: Convert to SPDX identifier 2022-05-18 11:08:59 +02:00
bcm2835_timer.c
clksrc_st_lpc.c
clksrc-dbx500-prcmu.c
clps711x-timer.c
dummy_timer.c
dw_apb_timer_of.c
dw_apb_timer.c
em_sti.c
exynos_mct.c clocksource/drivers/exynos_mct: Support local-timers property 2022-09-20 10:49:45 +02:00
hyperv_timer.c x86/hyperv: Fix hv tsc page based sched_clock for hibernation 2025-01-09 13:29:56 +01:00
i8253.c clocksource/i8253: Use raw_spinlock_irqsave() in clockevent_i8253_disable() 2025-05-22 14:10:01 +02:00
ingenic-ost.c
ingenic-sysost.c
ingenic-timer.c
jcore-pit.c clocksource/drivers/jcore: Convert to SPDX identifier 2022-05-18 11:08:59 +02:00
Kconfig clocksource/drivers:sp804: Make user selectable 2024-12-14 19:53:19 +01:00
Makefile - Add the missing DT bindings for the MTU nomadik timer (Linus 2022-07-28 12:33:34 +02:00
mips-gic-timer.c clocksource: mips-gic-timer: Enable counter when CPUs start 2025-06-04 14:40:12 +02:00
mmio.c
mps2-timer.c
mxs_timer.c
nomadik-mtu.c
numachip.c
renesas-ostm.c clocksource/drivers/renesas-ostm: Add support for RZ/V2L SoC 2022-09-07 10:12:56 +02:00
samsung_pwm_timer.c
scx200_hrt.c
sh_cmt.c clocksource/drivers/sh_cmt: Address race condition for clock events 2024-08-14 13:52:45 +02:00
sh_mtu2.c
sh_tmu.c
timer-armada-370-xp.c clocksource/drivers/armada-370-xp: Convert to SPDX identifier 2022-05-18 11:08:59 +02:00
timer-atmel-pit.c
timer-atmel-st.c
timer-atmel-tcb.c clocksource/drivers/timer-atmel-tcb: Fix initialization on SAM9 hardware 2023-11-28 17:06:55 +00:00
timer-cadence-ttc.c clocksource/drivers/cadence-ttc: Fix memory leak in ttc_timer_probe 2023-07-19 16:20:59 +02:00
timer-clint.c
timer-cs5535.c
timer-davinci.c clocksource/drivers/davinci: Fix memory leak in davinci_timer_register when init fails 2023-05-11 23:03:35 +09:00
timer-digicolor.c clocksource/drivers/digicolor: Convert to SPDX identifier 2022-05-18 11:08:59 +02:00
timer-fsl-ftm.c
timer-fttmr010.c
timer-goldfish.c clocksource/drivers: Add a goldfish-timer clocksource 2022-04-11 11:48:01 +02:00
timer-gx6605s.c
timer-gxp.c clocksource/drivers/timer-gxp: Add missing error handling in gxp_timer_probe 2022-09-20 10:49:45 +02:00
timer-imx-gpt.c clocksource/drivers/timer-imx-gpt: Fix potential memory leak 2023-11-28 17:06:54 +00:00
timer-imx-sysctr.c clocksource/drivers/imx-sysctr: handle nxp,no-divider property 2022-09-20 10:49:46 +02:00
timer-imx-tpm.c clocksource/drivers/imx-tpm: Fix next event not taking effect sometime 2024-09-12 11:10:27 +02:00
timer-integrator-ap.c
timer-ixp4xx.c clocksource/drivers/ixp4xx: Drop boardfile probe path 2022-05-18 11:08:52 +02:00
timer-keystone.c
timer-lpc32xx.c clocksource/drivers/lpc32xx: Convert to SPDX identifier 2022-05-18 11:08:59 +02:00
timer-mediatek.c clocksource/drivers/timer-mediatek: Implement CPUXGPT timers 2022-07-16 00:41:51 +02:00
timer-meson6.c
timer-microchip-pit64b.c clocksource/drivers/timer-microchip-pit64b: Fix compilation warnings 2022-07-16 00:52:43 +02:00
timer-milbeaut.c
timer-mp-csky.c
timer-msc313e.c
timer-npcm7xx.c
timer-of.c clocksource/drivers/timer-of: Remove percpu irq related code 2024-09-12 11:10:27 +02:00
timer-of.h clocksource/drivers/timer-of: Remove percpu irq related code 2024-09-12 11:10:27 +02:00
timer-orion.c clocksource/drivers/orion: Convert to SPDX identifier 2022-05-18 11:08:59 +02:00
timer-owl.c
timer-oxnas-rps.c clocksource/drivers/oxnas-rps: Fix irq_of_parse_and_map() return value 2022-05-24 09:16:29 +02:00
timer-pistachio.c clocksource/drivers/pistachio: Convert to SPDX identifier 2022-05-18 11:08:59 +02:00
timer-probe.c
timer-pxa.c
timer-qcom.c clocksource/drivers/qcom: Add missing iounmap() on errors in msm_dt_timer_init() 2024-10-17 15:20:47 +02:00
timer-rda.c
timer-riscv.c clocksource/drivers/riscv: Patch riscv_clock_next_event() jump before first use 2023-03-10 09:33:03 +01:00
timer-rockchip.c
timer-sp.h
timer-sp804.c clocksource/drivers/sp804: Avoid error on multiple instances 2022-05-18 11:08:52 +02:00
timer-sprd.c
timer-stm32-lp.c clocksource/drivers/stm32-lptimer: Use wakeup capable instead of init wakeup 2025-04-25 10:43:39 +02:00
timer-stm32.c
timer-sun4i.c clocksource/drivers/sun4i: Add definition of clear interrupt 2022-09-20 10:49:39 +02:00
timer-sun5i.c clocksource/drivers/sun5i: Remove unnecessary (void*) conversions 2022-07-27 17:01:52 +02:00
timer-tegra.c
timer-tegra186.c clocksource/drivers/timer-tegra186: Add support for Tegra234 SoC 2022-07-16 00:38:50 +02:00
timer-ti-32k.c
timer-ti-dm-systimer.c clocksource/drivers/timer-ti-dm: Fix child node refcount handling 2024-12-14 19:53:19 +01:00
timer-ti-dm.c clocksource/drivers/timer-ti-dm: Fix make W=n kerneldoc warnings 2024-01-25 15:27:39 -08:00
timer-versatile.c
timer-vf-pit.c
timer-vt8500.c
timer-zevio.c