[PATCH 2/5] Implement generic time of day clocksource for powerpc machines.

Daniel Walker dwalker at mvista.com
Thu Sep 20 01:43:14 EST 2007


On Wed, 2007-09-19 at 16:49 +1000, Tony Breeds wrote:
> +/* clocksource code */
> +/* FIXME: provide an RTC clocksource /or/ use a better name */
> +static cycle_t timebase_read(void)
> +{
> +       if (__USE_RTC())
> +               return (cycle_t)get_rtc();
> +       return (cycle_t)get_tb();
> +}

If you switch to the rtc do the shift and mult need to change?

> +void update_vsyscall(struct timespec *wall_time, struct clocksource
> *clock)
> +{
> +       u64 t2x, stamp_xsec;
> +
> +       if (__USE_RTC() || clock != &clocksource_timebase)
> +               return;
> +
> +       /* Make userspace gettimeofday spin until we're done. */
> +       ++vdso_data->tb_update_count;
> +       smp_mb();
> +
> +       /* XXX this assumes clock->shift == 22 */
> +       /* 4611686018 ~= 2^(20+64-22) / 1e9 */
> +       t2x = (u64) clock->mult * 4611686018ULL;

It might make the code more readable if you put that constant into a
macro that gives it a name.

Daniel




More information about the Linuxppc-dev mailing list