For the past 10 years, both Mark and I have been lamenting about the sorry state of the badly named "arch_timer" driver, and about the way the MMIO part is intricately weaved into the system-register part. The time has finally come to take a stab at it. This small series simply creates a new timer driver for the MMIO arch timer, and only that. It is an actual driver, and not some kludge that has to run super early (that's what the per-CPU timers are for). This allows, in turn, a pretty large cleanup of the per-CPU driver, though there is more to come -- one thing at a time. As an added bonus, we get a clocksource, which the original code didn't provide. Just in case it might be useful. The end-result is far more readable, and about 100 lines smaller. Patches on top of 6.17-rc1. * From v1 [1]: - Narrow the max delta to something that fits an unsigned long, as the core code doesn't deal with 64bit quantities on 32bit CPUs. - Collected RBs and TBs from Sudeep, with thanks. Marc Zyngier (4): ACPI: GTDT: Generate platform devices for MMIO timers clocksource/drivers/arm_arch_timer: Add standalone MMIO driver clocksource/drivers/arm_arch_timer_mmio: Switch over to standalone driver clocksource/drivers/arm_arch_timer_mmio: Add MMIO clocksource MAINTAINERS | 1 + drivers/acpi/arm64/gtdt.c | 29 +- drivers/clocksource/Makefile | 1 + drivers/clocksource/arm_arch_timer.c | 686 ++-------------------- drivers/clocksource/arm_arch_timer_mmio.c | 440 ++++++++++++++ include/clocksource/arm_arch_timer.h | 5 - 6 files changed, 532 insertions(+), 630 deletions(-) create mode 100644 drivers/clocksource/arm_arch_timer_mmio.c -- 2.39.2