lkml.org 
[lkml]   [2014]   [Oct]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v4 21/29] nios2: Time keeping
On Wed, 8 Oct 2014, Arnd Bergmann wrote:
> On Wednesday 08 October 2014 12:44:32 Thomas Gleixner wrote:
> > > +static int num_called;
> > > +static void __init nios2_time_init(struct device_node *timer)
> > > +{
> > > + switch (num_called) {
> > > + case 0:
> > > + nios2_clockevent_init(timer);
> > > + break;
> > > + case 1:
> > > + nios2_clocksource_init(timer);
> > > + break;
> > > + default:
> > > + break;
> > > + }
> > > +
> > > + num_called++;
> > > +}
> >
> > Eew. So this depends on the DT ordering. If thats wrong, then stuff
> > will be initialized in the wrong oder.
> >
> > > +CLOCKSOURCE_OF_DECLARE(nios2_timer, "altr,timer-1.0", nios2_time_init);
> >
> > Why can't you have separate match entries with where one calls
> > nios2_clockevent_init and the other nios2_clocksource_init?
>
> I believe we have the same logic in other drivers as well, the intention
> being that if you have multiple identical timers, the first one will
> be used as clockevent and the second one (if there is more than one)
> becomes the clocksource.
>
> If the hardware is really identical, I would argue that the comaptible
> string ought to be the same as well, as the DT is not supposed to
> care about what the timers are used for in Linux.

So why do we need two calls at all if we have one piece of hardware
which has two functions? We know that already, don't we?

Thanks,

tglx


\
 
 \ /
  Last update: 2014-10-08 18:02    [W:0.571 / U:0.340 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site