On Mon, 2016-09-19 at 17:52 +0100, Mark Rutland wrote: > > > > > > > > +static void fsl_a008585_set_sne(struct clock_event_device *clk) > > > > +{ > > > > +#ifdef CONFIG_FSL_ERRATUM_A008585 > > > > + if (!static_branch_unlikely(&arch_timer_read_ool_enabled)) > > > > + return; > > > > + > > > > + if (arch_timer_uses_ppi == VIRT_PPI) > > > > + clk->set_next_event = > > > > fsl_a008585_set_next_event_virt; > > > > + else > > > > + clk->set_next_event = > > > > fsl_a008585_set_next_event_phys; > > > > +#endif > > > > +} > > > > + > > > I'm not keen on the magic hook to reset the function pointers, and the > > > additional phys/virt stubs seem pointless. Instead, can we fold this > > > into the existing set_next_event? e.g. have that do: > > > > > > if (needs_fsl_a008585_workaround() { > > > fsl_a008585_set_next_event(access, evt, clk); > > > return; > > > } > > OK. I had been trying to avoid messing with the standard set_next_event, > > but > > it doesn't matter as much now that static branches are being used. In > > that > > case we can avoid duplicating the ctrl code, and only replace the tval > > write. > Reconsidering my suggestion, I realise this will also affect the MMIO > timers, so that doesn't work. > > So for the moment, I guess we have to keep fsl_a008585_set_next_event(). What is the problem with MMIO timers? needs_fsl_a008585_workaround() should always be false for them. -Scott -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html