[RFC/NOT FOR MERGING] HACK: add global/private timers for A9

Tony Lindgren
2015-06-04T21:46:51Z

* Felipe Balbi <balbi@ti.com> [150604 13:41]:
> On Thu, Jun 04, 2015 at 10:32:40PM +0200, Mason wrote:
> > On 04/06/2015 22:08, Felipe Balbi wrote:
> >
> > > On Thu, Jun 04, 2015 at 11:46:59AM +0200, Mason wrote:
> > >> Also, check /proc/timer_list for a "Broadcast device". If you don't
> > >> define one, the TWD timers are set to periodic mode, with hrtimers
> > >> disabled.
> > >
> > > Did you manage to turn global timer into Broadcast device ?
> >
> > Disclaimer: I am a kernel noob, take everything I say with
> > a rock of salt.
> >
> > As far as I can see, the global timer code doesn't handle
> > frequency changes, whereas the TWD code does.
>
> All right, but TWD has C3STOP and that prevents it from being used as
> broadcast device.
>
> Tony Lindgren had the idea of implementing a timer switch during idle
> and that could help us strip the kernel off of C3STOP feature flag. That
> means we might be able to use TWD as broadcast until CPU decides to
> idle, at which point we need to switch to a different timer.

Yeah I'm looking at adding clocksource_pm_enter/exit() to allow also
changing the clocksource to a different one for idle.. Will post some
patches after investigating it a bit further.

Changing the clockevent for idle already works just fine based on
tick_broadcast_enable() + tick_broadcast_enter/exit().

Regards,

Tony