]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/commitdiff
Merge branch 'fortglx/3.3/tip/timers/core' of git://git.linaro.org/people/jstultz...
authorThomas Gleixner <tglx@linutronix.de>
Mon, 5 Dec 2011 21:13:49 +0000 (22:13 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Mon, 5 Dec 2011 21:13:49 +0000 (22:13 +0100)
15 files changed:
arch/cris/arch-v32/kernel/time.c
arch/m68k/platform/68328/timers.c
arch/m68k/platform/coldfire/dma_timer.c
arch/m68k/platform/coldfire/pit.c
arch/m68k/platform/coldfire/sltimers.c
arch/m68k/platform/coldfire/timers.c
arch/parisc/kernel/time.c
arch/um/kernel/time.c
arch/x86/include/asm/mach_timer.h
arch/x86/kernel/tsc.c
arch/xtensa/kernel/time.c
drivers/clocksource/acpi_pm.c
drivers/clocksource/i8253.c
drivers/clocksource/tcb_clksrc.c
kernel/time/timekeeping.c

index bb978ede89852ef06bc7d41f6520cb9bb20769b5..6773fc83a670f08568a059bfa81c2c2e7a3bfa7f 100644 (file)
@@ -47,14 +47,12 @@ static struct clocksource cont_rotime = {
        .rating = 300,
        .read   = read_cont_rotime,
        .mask   = CLOCKSOURCE_MASK(32),
-       .shift  = 10,
        .flags  = CLOCK_SOURCE_IS_CONTINUOUS,
 };
 
 static int __init etrax_init_cont_rotime(void)
 {
-       cont_rotime.mult = clocksource_khz2mult(100000, cont_rotime.shift);
-       clocksource_register(&cont_rotime);
+       clocksource_register_khz(&cont_rotime, 100000);
        return 0;
 }
 arch_initcall(etrax_init_cont_rotime);
index 309f725995bf4900bb1423a64ad21f0353acd697..f2678866067bb3b41faf4eb1c7f71eae6ff63832 100644 (file)
@@ -93,7 +93,6 @@ static struct clocksource m68328_clk = {
        .name   = "timer",
        .rating = 250,
        .read   = m68328_read_clk,
-       .shift  = 20,
        .mask   = CLOCKSOURCE_MASK(32),
        .flags  = CLOCK_SOURCE_IS_CONTINUOUS,
 };
@@ -115,8 +114,7 @@ void hw_timer_init(void)
 
        /* Enable timer 1 */
        TCTL |= TCTL_TEN;
-       m68328_clk.mult = clocksource_hz2mult(TICKS_PER_JIFFY*HZ, m68328_clk.shift);
-       clocksource_register(&m68328_clk);
+       clocksource_register_hz(&m68328_clk, TICKS_PER_JIFFY*HZ);
 }
 
 /***************************************************************************/
index a5f562823d7acfa9e5d4fc6a66d37b9cd31c4428..235ad57c470798c9538fab0fab7fef4936bd7a3c 100644 (file)
@@ -44,7 +44,6 @@ static struct clocksource clocksource_cf_dt = {
        .rating         = 200,
        .read           = cf_dt_get_cycles,
        .mask           = CLOCKSOURCE_MASK(32),
-       .shift          = 20,
        .flags          = CLOCK_SOURCE_IS_CONTINUOUS,
 };
 
@@ -60,9 +59,7 @@ static int __init  init_cf_dt_clocksource(void)
        __raw_writeb(0x00, DTER0);
        __raw_writel(0x00000000, DTRR0);
        __raw_writew(DMA_DTMR_CLK_DIV_16 | DMA_DTMR_ENABLE, DTMR0);
-       clocksource_cf_dt.mult = clocksource_hz2mult(DMA_FREQ,
-                                                    clocksource_cf_dt.shift);
-       return clocksource_register(&clocksource_cf_dt);
+       return clocksource_register_hz(&clocksource_cf_dt, DMA_FREQ);
 }
 
 arch_initcall(init_cf_dt_clocksource);
index c2b980926becfb001f8ec21f8b98d5cc233550e8..02663d25822ddb6f8ce8363c8e7501f97b299867 100644 (file)
@@ -144,7 +144,6 @@ static struct clocksource pit_clk = {
        .name   = "pit",
        .rating = 100,
        .read   = pit_read_clk,
-       .shift  = 20,
        .mask   = CLOCKSOURCE_MASK(32),
 };
 
@@ -162,8 +161,7 @@ void hw_timer_init(void)
 
        setup_irq(MCFINT_VECBASE + MCFINT_PIT1, &pit_irq);
 
-       pit_clk.mult = clocksource_hz2mult(FREQ, pit_clk.shift);
-       clocksource_register(&pit_clk);
+       clocksource_register_hz(&pit_clk, FREQ);
 }
 
 /***************************************************************************/
index 6a85daf9a7fd5a2b3dfc7ed9cde4a487cc92500d..b7f822b552bbdba06474d78dfa2b89832d15995c 100644 (file)
@@ -114,7 +114,6 @@ static struct clocksource mcfslt_clk = {
        .name   = "slt",
        .rating = 250,
        .read   = mcfslt_read_clk,
-       .shift  = 20,
        .mask   = CLOCKSOURCE_MASK(32),
        .flags  = CLOCK_SOURCE_IS_CONTINUOUS,
 };
@@ -136,8 +135,7 @@ void hw_timer_init(void)
 
        setup_irq(MCF_IRQ_TIMER, &mcfslt_timer_irq);
 
-       mcfslt_clk.mult = clocksource_hz2mult(MCF_BUSCLK, mcfslt_clk.shift);
-       clocksource_register(&mcfslt_clk);
+       clocksource_register_hz(&mcfslt_clk, MCF_BUSCLK);
 
 #ifdef CONFIG_HIGHPROFILE
        mcfslt_profile_init();
index 60242f65fea90a3df427d9fca7158cd37b45fb89..0d90da32fcdb7631f6eec295c9e98e0476e6ba3f 100644 (file)
@@ -88,7 +88,6 @@ static struct clocksource mcftmr_clk = {
        .name   = "tmr",
        .rating = 250,
        .read   = mcftmr_read_clk,
-       .shift  = 20,
        .mask   = CLOCKSOURCE_MASK(32),
        .flags  = CLOCK_SOURCE_IS_CONTINUOUS,
 };
@@ -109,8 +108,7 @@ void hw_timer_init(void)
        __raw_writew(MCFTIMER_TMR_ENORI | MCFTIMER_TMR_CLK16 |
                MCFTIMER_TMR_RESTART | MCFTIMER_TMR_ENABLE, TA(MCFTIMER_TMR));
 
-       mcftmr_clk.mult = clocksource_hz2mult(FREQ, mcftmr_clk.shift);
-       clocksource_register(&mcftmr_clk);
+       clocksource_register_hz(&mcftmr_clk, FREQ);
 
        setup_irq(MCF_IRQ_TIMER, &mcftmr_timer_irq);
 
index 45b7389d77aa5a18e1ce4adf883ff7c985b320cc..7c0774397b896a0e42450bf1dc0266ad903b67b1 100644 (file)
@@ -198,8 +198,6 @@ static struct clocksource clocksource_cr16 = {
        .rating                 = 300,
        .read                   = read_cr16,
        .mask                   = CLOCKSOURCE_MASK(BITS_PER_LONG),
-       .mult                   = 0, /* to be set */
-       .shift                  = 22,
        .flags                  = CLOCK_SOURCE_IS_CONTINUOUS,
 };
 
@@ -270,7 +268,5 @@ void __init time_init(void)
 
        /* register at clocksource framework */
        current_cr16_khz = PAGE0->mem_10msec/10;  /* kHz */
-       clocksource_cr16.mult = clocksource_khz2mult(current_cr16_khz,
-                                               clocksource_cr16.shift);
-       clocksource_register(&clocksource_cr16);
+       clocksource_register_khz(&clocksource_cr16, current_cr16_khz);
 }
index a08d9fab81f2025c008c23e8b4ed229ff6c65525..82a6e22f1f3567d4e4c95c668c3635ed058cda4c 100644 (file)
@@ -75,8 +75,6 @@ static struct clocksource itimer_clocksource = {
        .rating         = 300,
        .read           = itimer_read,
        .mask           = CLOCKSOURCE_MASK(64),
-       .mult           = 1000,
-       .shift          = 0,
        .flags          = CLOCK_SOURCE_IS_CONTINUOUS,
 };
 
@@ -94,9 +92,9 @@ static void __init setup_itimer(void)
                clockevent_delta2ns(60 * HZ, &itimer_clockevent);
        itimer_clockevent.min_delta_ns =
                clockevent_delta2ns(1, &itimer_clockevent);
-       err = clocksource_register(&itimer_clocksource);
+       err = clocksource_register_hz(&itimer_clocksource, USEC_PER_SEC);
        if (err) {
-               printk(KERN_ERR "clocksource_register returned %d\n", err);
+               printk(KERN_ERR "clocksource_register_hz returned %d\n", err);
                return;
        }
        clockevents_register_device(&itimer_clockevent);
index 853728519ae9b928bf113ead296d50c04388a737..88d0c3c74c1326706707b0fa78dcd5ef8f654eee 100644 (file)
@@ -15,7 +15,7 @@
 
 #define CALIBRATE_TIME_MSEC 30 /* 30 msecs */
 #define CALIBRATE_LATCH        \
-       ((CLOCK_TICK_RATE * CALIBRATE_TIME_MSEC + 1000/2)/1000)
+       ((PIT_TICK_RATE * CALIBRATE_TIME_MSEC + 1000/2)/1000)
 
 static inline void mach_prepare_counter(void)
 {
index eee465109e1641da80102e36cfe60eea3c7c939b..2c9cf0fd78f59a66d1c802d26a4956319f1b9c1b 100644 (file)
@@ -178,11 +178,11 @@ static unsigned long calc_pmtimer_ref(u64 deltatsc, u64 pm1, u64 pm2)
 }
 
 #define CAL_MS         10
-#define CAL_LATCH      (CLOCK_TICK_RATE / (1000 / CAL_MS))
+#define CAL_LATCH      (PIT_TICK_RATE / (1000 / CAL_MS))
 #define CAL_PIT_LOOPS  1000
 
 #define CAL2_MS                50
-#define CAL2_LATCH     (CLOCK_TICK_RATE / (1000 / CAL2_MS))
+#define CAL2_LATCH     (PIT_TICK_RATE / (1000 / CAL2_MS))
 #define CAL2_PIT_LOOPS 5000
 
 
index f3e5eb43f71cc3ab2669c35d22f27a12a95c0f84..ac62f9cf1e100518ce719d10beb7110385b149ba 100644 (file)
@@ -41,14 +41,6 @@ static struct clocksource ccount_clocksource = {
        .rating = 200,
        .read = ccount_read,
        .mask = CLOCKSOURCE_MASK(32),
-       /*
-        * With a shift of 22 the lower limit of the cpu clock is
-        * 1MHz, where NSEC_PER_CCOUNT is 1000 or a bit less than
-        * 2^10: Since we have 32 bits and the multiplicator can
-        * already take up as much as 10 bits, this leaves us with
-        * remaining upper 22 bits.
-        */
-       .shift = 22,
 };
 
 static irqreturn_t timer_interrupt(int irq, void *dev_id);
@@ -66,10 +58,7 @@ void __init time_init(void)
        printk("%d.%02d MHz\n", (int)ccount_per_jiffy/(1000000/HZ),
                        (int)(ccount_per_jiffy/(10000/HZ))%100);
 #endif
-       ccount_clocksource.mult =
-               clocksource_hz2mult(CCOUNT_PER_JIFFY * HZ,
-                               ccount_clocksource.shift);
-       clocksource_register(&ccount_clocksource);
+       clocksource_register_hz(&ccount_clocksource, CCOUNT_PER_JIFFY * HZ);
 
        /* Initialize the linux timer interrupt. */
 
index effe7974aa9a742b78e893d5ef508fca63481376..6b5cf02c35c88147970c69cd19048650bff7610d 100644 (file)
@@ -143,7 +143,7 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_LE,
 #ifndef CONFIG_X86_64
 #include <asm/mach_timer.h>
 #define PMTMR_EXPECTED_RATE \
-  ((CALIBRATE_LATCH * (PMTMR_TICKS_PER_SEC >> 10)) / (CLOCK_TICK_RATE>>10))
+  ((CALIBRATE_LATCH * (PMTMR_TICKS_PER_SEC >> 10)) / (PIT_TICK_RATE>>10))
 /*
  * Some boards have the PMTMR running way too fast. We check
  * the PMTMR rate against PIT channel 2 to catch these cases.
index 27c49e60b7d651e74818567d807e162fb00a298d..e7cab2da910f72724123b95d836d8a89ea2def01 100644 (file)
@@ -53,7 +53,7 @@ static cycle_t i8253_read(struct clocksource *cs)
        count |= inb_p(PIT_CH0) << 8;
 
        /* VIA686a test code... reset the latch if count > max + 1 */
-       if (count > LATCH) {
+       if (count > PIT_LATCH) {
                outb_p(0x34, PIT_MODE);
                outb_p(PIT_LATCH & 0xff, PIT_CH0);
                outb_p(PIT_LATCH >> 8, PIT_CH0);
@@ -114,8 +114,8 @@ static void init_pit_timer(enum clock_event_mode mode,
        case CLOCK_EVT_MODE_PERIODIC:
                /* binary, mode 2, LSB/MSB, ch 0 */
                outb_p(0x34, PIT_MODE);
-               outb_p(LATCH & 0xff , PIT_CH0); /* LSB */
-               outb_p(LATCH >> 8 , PIT_CH0);           /* MSB */
+               outb_p(PIT_LATCH & 0xff , PIT_CH0);     /* LSB */
+               outb_p(PIT_LATCH >> 8 , PIT_CH0);               /* MSB */
                break;
 
        case CLOCK_EVT_MODE_SHUTDOWN:
index 79c47e88d5d1ed17059aa99c9370168af7530d12..55d0f95f82f9350571aca599b8480edefb5adfae 100644 (file)
@@ -59,7 +59,6 @@ static struct clocksource clksrc = {
        .rating         = 200,
        .read           = tc_get_cycles,
        .mask           = CLOCKSOURCE_MASK(32),
-       .shift          = 18,
        .flags          = CLOCK_SOURCE_IS_CONTINUOUS,
 };
 
@@ -256,7 +255,6 @@ static int __init tcb_clksrc_init(void)
                best_divisor_idx = i;
        }
 
-       clksrc.mult = clocksource_hz2mult(divided_rate, clksrc.shift);
 
        printk(bootinfo, clksrc.name, CONFIG_ATMEL_TCB_CLKSRC_BLOCK,
                        divided_rate / 1000000,
@@ -292,7 +290,7 @@ static int __init tcb_clksrc_init(void)
        __raw_writel(ATMEL_TC_SYNC, tcaddr + ATMEL_TC_BCR);
 
        /* and away we go! */
-       clocksource_register(&clksrc);
+       clocksource_register_hz(&clksrc, divided_rate);
 
        /* channel 2:  periodic and oneshot timer support */
        setup_clkevents(tc, clk32k_divisor_idx);
index 237841378c031ef0f2fa6c492559e695a111b74f..0c6358186401b8bd40d169fd42f82b6260802dca 100644 (file)
@@ -131,7 +131,7 @@ static inline s64 timekeeping_get_ns_raw(void)
        /* calculate the delta since the last update_wall_time: */
        cycle_delta = (cycle_now - clock->cycle_last) & clock->mask;
 
-       /* return delta convert to nanoseconds using ntp adjusted mult. */
+       /* return delta convert to nanoseconds. */
        return clocksource_cyc2ns(cycle_delta, clock->mult, clock->shift);
 }
 
@@ -813,11 +813,11 @@ static void timekeeping_adjust(s64 offset)
         * First we shift it down from NTP_SHIFT to clocksource->shifted nsecs.
         *
         * Note we subtract one in the shift, so that error is really error*2.
-        * This "saves" dividing(shifting) intererval twice, but keeps the
-        * (error > interval) comparision as still measuring if error is
+        * This "saves" dividing(shifting) interval twice, but keeps the
+        * (error > interval) comparison as still measuring if error is
         * larger then half an interval.
         *
-        * Note: It does not "save" on aggrivation when reading the code.
+        * Note: It does not "save" on aggravation when reading the code.
         */
        error = timekeeper.ntp_error >> (timekeeper.ntp_error_shift - 1);
        if (error > interval) {
@@ -833,7 +833,7 @@ static void timekeeping_adjust(s64 offset)
                 * nanosecond, and store the amount rounded up into
                 * the error. This causes the likely below to be unlikely.
                 *
-                * The properfix is to avoid rounding up by using
+                * The proper fix is to avoid rounding up by using
                 * the high precision timekeeper.xtime_nsec instead of
                 * xtime.tv_nsec everywhere. Fixing this will take some
                 * time.