[PATCH v3 0/9] clocksource: improve Atmel TCB timer driver

From: Alexandre Belloni
Date: Fri Apr 26 2019 - 17:47:29 EST


Hi,

This series immproves the Atmel TCB clocksource driver to address the
most urgent shortcomings:
- the current tcb_clksrc driver is probed too late to be able to be used at
boot and we now have SoCs that don't have a PIT. They currently are not able
to boot an upstream kernel.
- using the PIT doesn't work well with preempt-rt because its interrupt is
shared (in particular with the UART) and their interrupt flags are
incompatible). This also happen with the threadedirq command line
switch.
- there is currently no high resolution sched_clock.

The plan is to get those changes upstream as soon as possible as they are fixing
real issues that people are facing. There are further changes needed on the
clocksource driver to try to stop wasting a TCB channel.
The PWM TCB driver will also be changed to actually use the reviewed binding
and this will allow to get rid of atmel_tclib.

Changes in v3:
- collected ack from GKH
- return -EBUSY instead of 0 when the TCB is already used

Changes in v2:
- collected acks from Thierry and Arnd
- dropped most of the atmel_tclib changes that coud be separated.
- added a patch from kbuild
- dropped the patch removing the PIT from the defconfig
- moved the atmel_tcb.h inclusion in drivers/pwm/pwm-atmel-tcb.c as requested
by Thierry
- stopped using atmel_tcb_config
- reworked the irq number parsing to only care for channel 2


Alexandre Belloni (8):
ARM: at91: move SoC specific definitions to SoC folder
clocksource/drivers/tcb_clksrc: stop depending on atmel_tclib
clocksource/drivers/tcb_clksrc: Use tcb as sched_clock
ARM: at91: Implement clocksource selection
clocksource/drivers/tcb_clksrc: move Kconfig option
clocksource/drivers/timer-atmel-pit: rework Kconfig option
clocksource/drivers/tcb_clksrc: Rename the file for consistency
misc: atmel_tclib: do not probe already used TCBs

kbuild test robot (1):
clocksource/drivers/timer-atmel-tcb: tc_clksrc_suspend() can be static

arch/arm/mach-at91/Kconfig | 23 ++++
drivers/clocksource/Kconfig | 12 +-
drivers/clocksource/Makefile | 2 +-
.../{tcb_clksrc.c => timer-atmel-tcb.c} | 130 ++++++++++++------
drivers/misc/Kconfig | 24 ----
drivers/misc/atmel_tclib.c | 5 +-
drivers/pwm/pwm-atmel-tcb.c | 2 +-
.../atmel_tc.h => soc/at91/atmel_tcb.h} | 4 +-
8 files changed, 129 insertions(+), 73 deletions(-)
rename drivers/clocksource/{tcb_clksrc.c => timer-atmel-tcb.c} (79%)
rename include/{linux/atmel_tc.h => soc/at91/atmel_tcb.h} (99%)

--
2.20.1