Serge Semin
bffe2c8e23
clocksource: dw_apb_timer_of: Fix missing clockevent timers
...
[ Upstream commit 6d2e16a3181bafb77b535095c39ad1c8b9558c8c ]
Commit 1002148899 ("clocksource: dw_apb_timer_of: use
clocksource_of_init") replaced a publicly available driver
initialization method with one called by the timer_probe() method
available after CLKSRC_OF. In current implementation it traverses
all the timers available in the system and calls their initialization
methods if corresponding devices were either in dtb or in acpi. But
if before the commit any number of available timers would be installed
as clockevent and clocksource devices, after that there would be at most
two. The rest are just ignored since default case branch doesn't do
anything. I don't see a reason of such behaviour, neither the commit
message explains it. Moreover this might be wrong if on some platforms
these timers might be used for different purpose, as virtually CPU-local
clockevent timers and as an independent broadcast timer. So in order
to keep the compatibility with the platforms where the order of the
timers detection has some meaning, lets add the secondly discovered
timer to be of clocksource/sched_clock type, while the very first and
the others would provide the clockevents service.
Fixes: 1002148899 ("clocksource: dw_apb_timer_of: use clocksource_of_init")
Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
Cc: Alexey Malahov <Alexey.Malahov@baikalelectronics.ru>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: Paul Burton <paulburton@kernel.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: linux-mips@vger.kernel.org
Cc: linux-rtc@vger.kernel.org
Cc: devicetree@vger.kernel.org
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Link: https://lore.kernel.org/r/20200521204818.25436-7-Sergey.Semin@baikalelectronics.ru
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-06-22 09:30:55 +02:00
..
acpi_pm.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 243
2019-06-19 17:09:07 +02:00
arc_timer.c
Merge branch 'timers/vdso' into timers/core
2019-07-03 10:50:21 +02:00
arm_arch_timer.c
Merge branch 'timers/vdso' into timers/core
2019-07-03 10:50:21 +02:00
arm_global_timer.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
armv7m_systick.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194
2019-05-30 11:29:22 -07:00
asm9260_timer.c
clocksource/drivers/asm9260: Add a check for of_clk_get
2020-01-04 19:17:07 +01:00
bcm2835_timer.c
clocksource/drivers/bcm2835_timer: Fix memory leak of timer
2020-02-24 08:36:28 +01:00
bcm_kona_timer.c
clksrc-dbx500-prcmu.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 197
2019-05-30 11:29:22 -07:00
clksrc_st_lpc.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
clps711x-timer.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
dummy_timer.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
dw_apb_timer.c
clocksource: dw_apb_timer: Make CPU-affiliation being optional
2020-06-22 09:30:55 +02:00
dw_apb_timer_of.c
clocksource: dw_apb_timer_of: Fix missing clockevent timers
2020-06-22 09:30:55 +02:00
em_sti.c
clocksource: Remove dev_err() usage after platform_get_irq()
2019-08-27 00:31:39 +02:00
exynos_mct.c
Merge branch 'timers/vdso' into timers/core
2019-07-03 10:50:21 +02:00
h8300_timer8.c
h8300_timer16.c
h8300_tpu.c
hyperv_timer.c
clocksource/drivers/hyper-v: Untangle stimers and timesync from clocksources
2020-04-01 11:02:12 +02:00
i8253.c
clockevents/drivers/i8253: Add support for PIT shutdown quirk
2018-11-04 11:04:46 +01:00
ingenic-timer.c
clocksource: Add a new timer-ingenic driver
2019-08-08 15:30:08 -07:00
jcore-pit.c
Kconfig
Main MIPS changes for v5.4:
2019-09-22 09:30:30 -07:00
Makefile
clocksource: Add a new timer-ingenic driver
2019-08-08 15:30:08 -07:00
mips-gic-timer.c
clocksource/drivers/mips-gic-timer: Make gic_compare_irqaction static
2019-03-22 22:59:33 +01:00
mmio.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
mps2-timer.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
mxs_timer.c
nomadik-mtu.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
numachip.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282
2019-06-05 17:36:37 +02:00
renesas-ostm.c
clocksource/drivers/renesas-ostm: Use DIV_ROUND_CLOSEST() helper
2019-08-27 00:31:39 +02:00
samsung_pwm_timer.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
scx200_hrt.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
sh_cmt.c
clocksource/drivers/sh_cmt: Document "cmt-48" as deprecated
2019-08-27 00:31:39 +02:00
sh_mtu2.c
clocksource/drivers/sh_mtu2: Do not loop using platform_get_irq_by_name()
2019-10-18 07:55:16 +02:00
sh_tmu.c
clocksource: Remove dev_err() usage after platform_get_irq()
2019-08-27 00:31:39 +02:00
timer-armada-370-xp.c
clocksource/drivers: Unify the names to timer-* format
2018-10-03 14:37:02 +02:00
timer-atcpit100.c
timer-atlas7.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 4
2019-05-21 11:28:40 +02:00
timer-atmel-pit.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
timer-atmel-st.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156
2019-05-30 11:26:35 -07:00
timer-atmel-tcb.c
clocksource/drivers/tcb_clksrc: Register delay timer
2019-08-27 00:31:39 +02:00
timer-cadence-ttc.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282
2019-06-05 17:36:37 +02:00
timer-cs5535.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 206
2019-05-30 11:29:53 -07:00
timer-davinci.c
clocksource: davinci: only enable clockevents once tim34 is initialized
2020-02-24 08:36:46 +01:00
timer-digicolor.c
timer-efm32.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
timer-fsl-ftm.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
timer-fttmr010.c
clocksource/drivers/fttmr010: Fix invalid interrupt register access
2018-12-18 22:22:23 +01:00
timer-gx6605s.c
clocksource/drivers/c-sky: Add gx6605s SOC system timer
2018-11-02 19:41:12 +01:00
timer-imx-gpt.c
clocksource/drivers/imx-gpt: Remove unnecessary irq protection
2018-12-18 22:22:23 +01:00
timer-imx-sysctr.c
clocksource/drivers/imx-sysctr: Add internal clock divider handle
2019-08-27 00:31:39 +02:00
timer-imx-tpm.c
clocksource/drivers/timer-imx-tpm: Specify clock name for timer-of
2018-12-18 22:22:23 +01:00
timer-integrator-ap.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156
2019-05-30 11:26:35 -07:00
timer-ixp4xx.c
clocksource/drivers/ixp4xx: Implement delay timer
2019-06-25 19:49:18 +02:00
timer-keystone.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
timer-lpc32xx.c
clocksource/drivers: Unify the names to timer-* format
2018-10-03 14:37:02 +02:00
timer-mediatek.c
clocksource/drivers/mediatek: Fix error handling
2019-10-16 17:04:50 +02:00
timer-meson6.c
clocksource/drivers/timer-meson6: Update with SPDX Licence identifier
2019-06-25 19:49:18 +02:00
timer-milbeaut.c
clocksource/drivers/timer-milbeaut: Cleanup common register accesses
2019-05-02 21:55:58 +02:00
timer-mp-csky.c
clocksource/drivers/c-sky: fixup ftrace call-graph panic
2018-12-31 23:17:23 +08:00
timer-npcm7xx.c
clocksource/drivers/npcm: Fix GENMASK and timer operation
2019-08-27 00:31:39 +02:00
timer-nps.c
timer-of.c
clocksource/drivers/timer-of: Use unique device name instead of timer
2020-01-04 19:17:08 +01:00
timer-of.h
timer-orion.c
clocksource/drivers: Unify the names to timer-* format
2018-10-03 14:37:02 +02:00
timer-owl.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
timer-oxnas-rps.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201
2019-05-30 11:29:52 -07:00
timer-pistachio.c
clocksource/drivers: Unify the names to timer-* format
2018-10-03 14:37:02 +02:00
timer-prima2.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 4
2019-05-21 11:28:40 +02:00
timer-probe.c
clocksource/drivers: Do not warn on probe defer
2019-08-27 00:31:39 +02:00
timer-pxa.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
timer-qcom.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282
2019-06-05 17:36:37 +02:00
timer-rda.c
clocksource/drivers/rda: Add clock driver for RDA8810PL SoC
2018-12-18 22:22:23 +01:00
timer-riscv.c
clocksource: riscv: add notrace to riscv_sched_clock
2020-01-09 10:19:59 +01:00
timer-rockchip.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
timer-sp.h
timer-sp804.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156
2019-05-30 11:26:35 -07:00
timer-sprd.c
timer-stm32.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194
2019-05-30 11:29:22 -07:00
timer-sun4i.c
clocksource: sun4i: Add missing compatibles
2019-08-27 00:31:39 +02:00
timer-sun5i.c
clocksource/drivers/sun5i: Fail gracefully when clock rate is unavailable
2019-02-23 12:13:45 +01:00
timer-tango-xtal.c
clocksource/drivers/tango-xtal: Rename the file for consistency
2019-02-23 12:13:45 +01:00
timer-tegra.c
clocksource/drivers/tegra: Set up maximum-ticks limit properly
2019-06-25 19:49:18 +02:00
timer-ti-32k.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 341
2019-06-05 17:37:07 +02:00
timer-ti-dm.c
clocksource/drivers/timer-ti-dm: Change to new style declaration
2019-05-24 15:51:30 +02:00
timer-u300.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194
2019-05-30 11:29:22 -07:00
timer-versatile.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174
2019-05-30 11:26:41 -07:00
timer-vf-pit.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
timer-vt8500.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156
2019-05-30 11:26:35 -07:00
timer-zevio.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00