mirror of
https://github.com/torvalds/linux.git
synced 2024-11-25 13:41:51 +00:00
x86: Convert remaining x86 clocksources to clocksource_register_hz/khz
This converts the remaining x86 clocksources to use clocksource_register_hz/khz. CC: jacob.jun.pan@intel.com CC: Glauber Costa <glommer@redhat.com> CC: Dimitri Sivanich <sivanich@sgi.com> CC: Rusty Russell <rusty@rustcorp.com.au> CC: Jeremy Fitzhardinge <jeremy@xensource.com> CC: Chris McDermott <lcm@us.ibm.com> CC: Thomas Gleixner <tglx@linutronix.de> Tested-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> [xen] Signed-off-by: John Stultz <johnstul@us.ibm.com>
This commit is contained in:
parent
36d8593ec7
commit
b01cc1b0ea
@ -177,7 +177,6 @@ static struct clocksource clocksource_apbt = {
|
||||
.rating = APBT_CLOCKSOURCE_RATING,
|
||||
.read = apbt_read_clocksource,
|
||||
.mask = APBT_MASK,
|
||||
.shift = APBT_SHIFT,
|
||||
.flags = CLOCK_SOURCE_IS_CONTINUOUS,
|
||||
.resume = apbt_restart_clocksource,
|
||||
};
|
||||
@ -595,14 +594,7 @@ static int apbt_clocksource_register(void)
|
||||
if (t1 == apbt_read_clocksource(&clocksource_apbt))
|
||||
panic("APBT counter not counting. APBT disabled\n");
|
||||
|
||||
/*
|
||||
* initialize and register APBT clocksource
|
||||
* convert that to ns/clock cycle
|
||||
* mult = (ns/c) * 2^APBT_SHIFT
|
||||
*/
|
||||
clocksource_apbt.mult = div_sc(MSEC_PER_SEC,
|
||||
(unsigned long) apbt_freq, APBT_SHIFT);
|
||||
clocksource_register(&clocksource_apbt);
|
||||
clocksource_register_khz(&clocksource_apbt, (u32)apbt_freq*1000);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -188,8 +188,6 @@ static struct clocksource pit_cs = {
|
||||
.rating = 110,
|
||||
.read = pit_read,
|
||||
.mask = CLOCKSOURCE_MASK(32),
|
||||
.mult = 0,
|
||||
.shift = 20,
|
||||
};
|
||||
|
||||
static int __init init_pit_clocksource(void)
|
||||
@ -205,9 +203,7 @@ static int __init init_pit_clocksource(void)
|
||||
pit_ce.mode != CLOCK_EVT_MODE_PERIODIC)
|
||||
return 0;
|
||||
|
||||
pit_cs.mult = clocksource_hz2mult(CLOCK_TICK_RATE, pit_cs.shift);
|
||||
|
||||
return clocksource_register(&pit_cs);
|
||||
return clocksource_register_hz(&pit_cs, CLOCK_TICK_RATE);
|
||||
}
|
||||
arch_initcall(init_pit_clocksource);
|
||||
|
||||
|
@ -26,8 +26,6 @@
|
||||
#include <asm/x86_init.h>
|
||||
#include <asm/reboot.h>
|
||||
|
||||
#define KVM_SCALE 22
|
||||
|
||||
static int kvmclock = 1;
|
||||
static int msr_kvm_system_time = MSR_KVM_SYSTEM_TIME;
|
||||
static int msr_kvm_wall_clock = MSR_KVM_WALL_CLOCK;
|
||||
@ -120,8 +118,6 @@ static struct clocksource kvm_clock = {
|
||||
.read = kvm_clock_get_cycles,
|
||||
.rating = 400,
|
||||
.mask = CLOCKSOURCE_MASK(64),
|
||||
.mult = 1 << KVM_SCALE,
|
||||
.shift = KVM_SCALE,
|
||||
.flags = CLOCK_SOURCE_IS_CONTINUOUS,
|
||||
};
|
||||
|
||||
@ -203,7 +199,7 @@ void __init kvmclock_init(void)
|
||||
machine_ops.crash_shutdown = kvm_crash_shutdown;
|
||||
#endif
|
||||
kvm_get_preset_lpj();
|
||||
clocksource_register(&kvm_clock);
|
||||
clocksource_register_hz(&kvm_clock, NSEC_PER_SEC);
|
||||
pv_info.paravirt_enabled = 1;
|
||||
pv_info.name = "KVM";
|
||||
|
||||
|
@ -913,8 +913,6 @@ static struct clocksource lguest_clock = {
|
||||
.rating = 200,
|
||||
.read = lguest_clock_read,
|
||||
.mask = CLOCKSOURCE_MASK(64),
|
||||
.mult = 1 << 22,
|
||||
.shift = 22,
|
||||
.flags = CLOCK_SOURCE_IS_CONTINUOUS,
|
||||
};
|
||||
|
||||
@ -997,7 +995,7 @@ static void lguest_time_init(void)
|
||||
/* Set up the timer interrupt (0) to go to our simple timer routine */
|
||||
set_irq_handler(0, lguest_time_irq);
|
||||
|
||||
clocksource_register(&lguest_clock);
|
||||
clocksource_register_hz(&lguest_clock, NSEC_PER_SEC);
|
||||
|
||||
/* We can't set cpumask in the initializer: damn C limitations! Set it
|
||||
* here and register our timer device. */
|
||||
|
@ -40,7 +40,6 @@ static struct clocksource clocksource_uv = {
|
||||
.rating = 400,
|
||||
.read = uv_read_rtc,
|
||||
.mask = (cycle_t)UVH_RTC_REAL_TIME_CLOCK_MASK,
|
||||
.shift = 10,
|
||||
.flags = CLOCK_SOURCE_IS_CONTINUOUS,
|
||||
};
|
||||
|
||||
@ -372,14 +371,11 @@ static __init int uv_rtc_setup_clock(void)
|
||||
if (!is_uv_system())
|
||||
return -ENODEV;
|
||||
|
||||
clocksource_uv.mult = clocksource_hz2mult(sn_rtc_cycles_per_second,
|
||||
clocksource_uv.shift);
|
||||
|
||||
/* If single blade, prefer tsc */
|
||||
if (uv_num_possible_blades() == 1)
|
||||
clocksource_uv.rating = 250;
|
||||
|
||||
rc = clocksource_register(&clocksource_uv);
|
||||
rc = clocksource_register_hz(&clocksource_uv, sn_rtc_cycles_per_second);
|
||||
if (rc)
|
||||
printk(KERN_INFO "UV RTC clocksource failed rc %d\n", rc);
|
||||
else
|
||||
|
@ -26,8 +26,6 @@
|
||||
|
||||
#include "xen-ops.h"
|
||||
|
||||
#define XEN_SHIFT 22
|
||||
|
||||
/* Xen may fire a timer up to this many ns early */
|
||||
#define TIMER_SLOP 100000
|
||||
#define NS_PER_TICK (1000000000LL / HZ)
|
||||
@ -211,8 +209,6 @@ static struct clocksource xen_clocksource __read_mostly = {
|
||||
.rating = 400,
|
||||
.read = xen_clocksource_get_cycles,
|
||||
.mask = ~0,
|
||||
.mult = 1<<XEN_SHIFT, /* time directly in nanoseconds */
|
||||
.shift = XEN_SHIFT,
|
||||
.flags = CLOCK_SOURCE_IS_CONTINUOUS,
|
||||
};
|
||||
|
||||
@ -446,7 +442,7 @@ static __init void xen_time_init(void)
|
||||
int cpu = smp_processor_id();
|
||||
struct timespec tp;
|
||||
|
||||
clocksource_register(&xen_clocksource);
|
||||
clocksource_register_hz(&xen_clocksource, NSEC_PER_SEC);
|
||||
|
||||
if (HYPERVISOR_vcpu_op(VCPUOP_stop_periodic_timer, cpu, NULL) == 0) {
|
||||
/* Successfully turned off 100Hz tick, so we have the
|
||||
|
@ -29,8 +29,6 @@ static struct clocksource clocksource_cyclone = {
|
||||
.rating = 250,
|
||||
.read = read_cyclone,
|
||||
.mask = CYCLONE_TIMER_MASK,
|
||||
.mult = 10,
|
||||
.shift = 0,
|
||||
.flags = CLOCK_SOURCE_IS_CONTINUOUS,
|
||||
};
|
||||
|
||||
@ -108,12 +106,8 @@ static int __init init_cyclone_clocksource(void)
|
||||
}
|
||||
cyclone_ptr = cyclone_timer;
|
||||
|
||||
/* sort out mult/shift values: */
|
||||
clocksource_cyclone.shift = 22;
|
||||
clocksource_cyclone.mult = clocksource_hz2mult(CYCLONE_TIMER_FREQ,
|
||||
clocksource_cyclone.shift);
|
||||
|
||||
return clocksource_register(&clocksource_cyclone);
|
||||
return clocksource_register_hz(&clocksource_cyclone,
|
||||
CYCLONE_TIMER_FREQ);
|
||||
}
|
||||
|
||||
arch_initcall(init_cyclone_clocksource);
|
||||
|
Loading…
Reference in New Issue
Block a user