Messages in this thread | | | Date | Mon, 4 Mar 2013 21:32:03 -0700 | From | Jason Gunthorpe <> | Subject | Re: [RFC PATCH v2 0/4] Add support for S3 non-stop TSC support. |
| |
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
| |