[PATCH 04/11] ST SPEAr: Added basic header files for SPEAr platform
tony at atomide.com
Wed Mar 10 17:16:53 EST 2010
* Thomas Gleixner <tglx at linutronix.de> [100310 08:38]:
> On Wed, 10 Mar 2010, Paul Mundt wrote:
> > On Wed, Mar 10, 2010 at 03:41:51PM +0530, Viresh KUMAR wrote:
> > > As you may have seen in spear.h files in mach folders, we have multiple hardware
> > > timers in our design (3 in spear3xx, 4 in spear6xx and each timer have two
> > > independent channels. That doubles the timers count, so it is 6 and 8).
> > > One timer (or two channels) are used by clock event and clock source, but rest of
> > > the timers are still available. So we need some way to export this functionality
> > > of our hardware. It can be considered simply as a driver for GPT.
> > >
> > > What do you say?
> > >
> > This is hardly a unique situation for your platform, this is true for
> > most platforms. There's no reason why clockevents couldn't just be
> > extended and drivers could then just grab unused clockevents and pin them
> > accordingly. Most of the infrastructure is already in place for something
> > like that, without really having to do anything special.
> > Having said that, most drivers have pretty lame reasons for trying to get
> > at fixed timer channels, and most of the time they can easily get by with
> > an hrtimer instead. There's also the issue that you're effectively
> > bypassing nohz by having some timer channel off on the side doing who
> > knows what. You would need a pretty compelling reason for why you are
> > sidestepping all of the existing infrastructure anyways.
> Right, and that's exactly the reason why we did not add the few
> missing bits to make clock events directly usable from drivers.
Yeah still no direct users so far for the 12 hardware timers on
omaps.. I guess the only use I could see is bit banging data
over a few GPIO lines using a FIQ handler.
Another thing to consider is that most likely all hardware timers
are not able to wake up the system from idle, which would easily
cause some mysterious errors for drivers.
More information about the linux-arm-kernel