Re: [RFC PATCH v2 0/4] Add support for S3 non-stop TSC support.

Jason Gunthorpe
2013-03-05T04:32:19Z

On Tue, Mar 05, 2013 at 11:53:02AM +0800, Feng Tang wrote:

> > // Drops some small precision along the way but is simple..
> > static inline u64 cyclecounter_cyc2ns_128(const struct cyclecounter *cc,
> > cycle_t cycles)
> > {
> > u64 max = U64_MAX/cc->mult;
> > u64 num = cycles/max;
> > u64 result = num * ((max * cc->mult) >> cc->shift);
> > return result + cyclecounter_cyc2ns(cc, cycles - num*cc->mult);
> > }
>
> Your way is surely more accurate, if maintainers are ok with adding
> the new API, I will use it.

Okay, give it a good look though, I only wrote it out in email, never
tested it :)

> > You may want to also CC the maintainers of all the ARM subsystems that
> > use read_persistent_clock and check with them to ensure this new
> > interface will let them migrate their implementations as well.
>
> Maybe I didn't get it well, my patches didn't change the
> read_persistent_clock(), but inject a new way of counting suspended
> time. It should have no functional changes to existing platforms.

Right, your patches are fine stand alone.

The ARM case of plat-omap/counter_32k.c would ideally be converted to
use your new API though, that is what I ment about involving them.

I'm not sure about mach-tegra/timer.c though - it seems to be using a
counter as well but somehow sharing registers with the RTC?

Regards,
Jason