diff options
Diffstat (limited to 'include/linux/clocksource.h')
| -rw-r--r-- | include/linux/clocksource.h | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/include/linux/clocksource.h b/include/linux/clocksource.h index 83d2fbd81b93..8a4a130cc196 100644 --- a/include/linux/clocksource.h +++ b/include/linux/clocksource.h | |||
| @@ -151,6 +151,7 @@ extern u64 timecounter_cyc2time(struct timecounter *tc, | |||
| 151 | * subtraction of non 64 bit counters | 151 | * subtraction of non 64 bit counters |
| 152 | * @mult: cycle to nanosecond multiplier | 152 | * @mult: cycle to nanosecond multiplier |
| 153 | * @shift: cycle to nanosecond divisor (power of two) | 153 | * @shift: cycle to nanosecond divisor (power of two) |
| 154 | * @max_idle_ns: max idle time permitted by the clocksource (nsecs) | ||
| 154 | * @flags: flags describing special properties | 155 | * @flags: flags describing special properties |
| 155 | * @vread: vsyscall based read | 156 | * @vread: vsyscall based read |
| 156 | * @resume: resume function for the clocksource, if necessary | 157 | * @resume: resume function for the clocksource, if necessary |
| @@ -168,6 +169,7 @@ struct clocksource { | |||
| 168 | cycle_t mask; | 169 | cycle_t mask; |
| 169 | u32 mult; | 170 | u32 mult; |
| 170 | u32 shift; | 171 | u32 shift; |
| 172 | u64 max_idle_ns; | ||
| 171 | unsigned long flags; | 173 | unsigned long flags; |
| 172 | cycle_t (*vread)(void); | 174 | cycle_t (*vread)(void); |
| 173 | void (*resume)(void); | 175 | void (*resume)(void); |
| @@ -279,11 +281,23 @@ extern void clocksource_resume(void); | |||
| 279 | extern struct clocksource * __init __weak clocksource_default_clock(void); | 281 | extern struct clocksource * __init __weak clocksource_default_clock(void); |
| 280 | extern void clocksource_mark_unstable(struct clocksource *cs); | 282 | extern void clocksource_mark_unstable(struct clocksource *cs); |
| 281 | 283 | ||
| 284 | extern void | ||
| 285 | clocks_calc_mult_shift(u32 *mult, u32 *shift, u32 from, u32 to, u32 minsec); | ||
| 286 | |||
| 287 | static inline void | ||
| 288 | clocksource_calc_mult_shift(struct clocksource *cs, u32 freq, u32 minsec) | ||
| 289 | { | ||
| 290 | return clocks_calc_mult_shift(&cs->mult, &cs->shift, freq, | ||
| 291 | NSEC_PER_SEC, minsec); | ||
| 292 | } | ||
| 293 | |||
| 282 | #ifdef CONFIG_GENERIC_TIME_VSYSCALL | 294 | #ifdef CONFIG_GENERIC_TIME_VSYSCALL |
| 283 | extern void update_vsyscall(struct timespec *ts, struct clocksource *c); | 295 | extern void |
| 296 | update_vsyscall(struct timespec *ts, struct clocksource *c, u32 mult); | ||
| 284 | extern void update_vsyscall_tz(void); | 297 | extern void update_vsyscall_tz(void); |
| 285 | #else | 298 | #else |
| 286 | static inline void update_vsyscall(struct timespec *ts, struct clocksource *c) | 299 | static inline void |
| 300 | update_vsyscall(struct timespec *ts, struct clocksource *c, u32 mult) | ||
| 287 | { | 301 | { |
| 288 | } | 302 | } |
| 289 | 303 | ||
