On Thu, 14 Aug 2025 11:13:47 +0100, Steven Price <steven.price@xxxxxxx> wrote: > > On 07/08/2025 17:02, Marc Zyngier wrote: > > Add a new driver for the MMIO side of the ARM architected timer. > > Most of it has been lifted from the existing arch timer code, > > massaged, and finally rewritten. > > > > It supports both DT and ACPI as firmware descriptions. > > > > Signed-off-by: Marc Zyngier <maz@xxxxxxxxxx> > > --- > > MAINTAINERS | 1 + > > drivers/clocksource/arm_arch_timer_mmio.c | 420 ++++++++++++++++++++++ > > 2 files changed, 421 insertions(+) > > create mode 100644 drivers/clocksource/arm_arch_timer_mmio.c > > > [...] > > +static void arch_timer_mmio_setup(struct arch_timer *at, int irq) > > +{ > > + at->evt = (struct clock_event_device) { > > + .features = (CLOCK_EVT_FEAT_ONESHOT | > > + CLOCK_EVT_FEAT_DYNIRQ), > > + .name = "arch_mem_timer", > > + .rating = 400, > > + .cpumask = cpu_possible_mask, > > + .irq = irq, > > + .set_next_event = arch_timer_mmio_set_next_event, > > + .set_state_oneshot_stopped = arch_timer_mmio_shutdown, > > + .set_state_shutdown = arch_timer_mmio_shutdown, > > + }; > > + > > + at->evt.set_state_shutdown(&at->evt); > > + > > + clockevents_config_and_register(&at->evt, at->rate, 0xf, CLOCKSOURCE_MASK(56)); > > This doesn't work on 32 bit - clockevents_config_and_register()'s final > argument is an unsigned long, and a 56 bit mask doesn't fit. This > triggers a compiler warning: Already reported, see 20250814111657.7debc9f1@xxxxxxxxxxxxxxxx. > Possible this should really be min(CLOCKSOURCE_MASK(56), ULONG_MAX)? But > I'm not familiar enough with this code. Most likely it's dead code on a > 32 bit platform. No, this definitely exists on 32bit crap, since it has been part of the architecture from the ARMv7+VE days. I think this is more of an impedance mismatch between the CLOCKSOURCE_MASK() helper and the clockevents_config_and_register(), and a (unsigned long) cast would do the trick. But it also means that the per-cpu timer also gets truncated the same way, and that has interesting impacts on how often the timer is reprogrammed. Daniel, do you want a patch on top or a new series? M. -- Without deviation from the norm, progress is not possible.