Commit 056a3cac authored by Thomas Gleixner's avatar Thomas Gleixner

hrtimer: Get rid of hrtimer_get_res()

The resolution is directly accessible now. So its simpler just to fill
in the values of the timespec and be done with it.

Text size reduction (combined with "hrtimer: Get rid of the resolution
field in hrtimer_clock_base"):
       x8664 -61, i386 -221, ARM -60, power64 -48
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Acked-by: default avatarPeter Zijlstra <peterz@infradead.org>
Cc: Preeti U Murthy <preeti@linux.vnet.ibm.com>
Cc: Viresh Kumar <viresh.kumar@linaro.org>
Cc: Marcelo Tosatti <mtosatti@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Link: http://lkml.kernel.org/r/20150414203500.879888080@linutronix.deSigned-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
parent 447fbbdc
...@@ -385,7 +385,6 @@ static inline int hrtimer_restart(struct hrtimer *timer) ...@@ -385,7 +385,6 @@ static inline int hrtimer_restart(struct hrtimer *timer)
/* Query timers: */ /* Query timers: */
extern ktime_t hrtimer_get_remaining(const struct hrtimer *timer); extern ktime_t hrtimer_get_remaining(const struct hrtimer *timer);
extern int hrtimer_get_res(const clockid_t which_clock, struct timespec *tp);
extern ktime_t hrtimer_get_next_event(void); extern ktime_t hrtimer_get_next_event(void);
......
...@@ -495,12 +495,12 @@ static enum alarmtimer_restart alarm_handle_timer(struct alarm *alarm, ...@@ -495,12 +495,12 @@ static enum alarmtimer_restart alarm_handle_timer(struct alarm *alarm,
*/ */
static int alarm_clock_getres(const clockid_t which_clock, struct timespec *tp) static int alarm_clock_getres(const clockid_t which_clock, struct timespec *tp)
{ {
clockid_t baseid = alarm_bases[clock2alarm(which_clock)].base_clockid;
if (!alarmtimer_get_rtcdev()) if (!alarmtimer_get_rtcdev())
return -EINVAL; return -EINVAL;
return hrtimer_get_res(baseid, tp); tp->tv_sec = 0;
tp->tv_nsec = hrtimer_resolution;
return 0;
} }
/** /**
......
...@@ -1179,22 +1179,6 @@ void hrtimer_init(struct hrtimer *timer, clockid_t clock_id, ...@@ -1179,22 +1179,6 @@ void hrtimer_init(struct hrtimer *timer, clockid_t clock_id,
} }
EXPORT_SYMBOL_GPL(hrtimer_init); EXPORT_SYMBOL_GPL(hrtimer_init);
/**
* hrtimer_get_res - get the timer resolution for a clock
* @which_clock: which clock to query
* @tp: pointer to timespec variable to store the resolution
*
* Store the resolution of the clock selected by @which_clock in the
* variable pointed to by @tp.
*/
int hrtimer_get_res(const clockid_t which_clock, struct timespec *tp)
{
tp->tv_sec = 0;
tp->tv_nsec = hrtimer_resolution;
return 0;
}
EXPORT_SYMBOL_GPL(hrtimer_get_res);
static void __run_hrtimer(struct hrtimer *timer, ktime_t *now) static void __run_hrtimer(struct hrtimer *timer, ktime_t *now)
{ {
struct hrtimer_clock_base *base = timer->base; struct hrtimer_clock_base *base = timer->base;
......
...@@ -272,13 +272,20 @@ static int posix_get_tai(clockid_t which_clock, struct timespec *tp) ...@@ -272,13 +272,20 @@ static int posix_get_tai(clockid_t which_clock, struct timespec *tp)
return 0; return 0;
} }
static int posix_get_hrtimer_res(clockid_t which_clock, struct timespec *tp)
{
tp->tv_sec = 0;
tp->tv_nsec = hrtimer_resolution;
return 0;
}
/* /*
* Initialize everything, well, just everything in Posix clocks/timers ;) * Initialize everything, well, just everything in Posix clocks/timers ;)
*/ */
static __init int init_posix_timers(void) static __init int init_posix_timers(void)
{ {
struct k_clock clock_realtime = { struct k_clock clock_realtime = {
.clock_getres = hrtimer_get_res, .clock_getres = posix_get_hrtimer_res,
.clock_get = posix_clock_realtime_get, .clock_get = posix_clock_realtime_get,
.clock_set = posix_clock_realtime_set, .clock_set = posix_clock_realtime_set,
.clock_adj = posix_clock_realtime_adj, .clock_adj = posix_clock_realtime_adj,
...@@ -290,7 +297,7 @@ static __init int init_posix_timers(void) ...@@ -290,7 +297,7 @@ static __init int init_posix_timers(void)
.timer_del = common_timer_del, .timer_del = common_timer_del,
}; };
struct k_clock clock_monotonic = { struct k_clock clock_monotonic = {
.clock_getres = hrtimer_get_res, .clock_getres = posix_get_hrtimer_res,
.clock_get = posix_ktime_get_ts, .clock_get = posix_ktime_get_ts,
.nsleep = common_nsleep, .nsleep = common_nsleep,
.nsleep_restart = hrtimer_nanosleep_restart, .nsleep_restart = hrtimer_nanosleep_restart,
...@@ -300,7 +307,7 @@ static __init int init_posix_timers(void) ...@@ -300,7 +307,7 @@ static __init int init_posix_timers(void)
.timer_del = common_timer_del, .timer_del = common_timer_del,
}; };
struct k_clock clock_monotonic_raw = { struct k_clock clock_monotonic_raw = {
.clock_getres = hrtimer_get_res, .clock_getres = posix_get_hrtimer_res,
.clock_get = posix_get_monotonic_raw, .clock_get = posix_get_monotonic_raw,
}; };
struct k_clock clock_realtime_coarse = { struct k_clock clock_realtime_coarse = {
...@@ -312,7 +319,7 @@ static __init int init_posix_timers(void) ...@@ -312,7 +319,7 @@ static __init int init_posix_timers(void)
.clock_get = posix_get_monotonic_coarse, .clock_get = posix_get_monotonic_coarse,
}; };
struct k_clock clock_tai = { struct k_clock clock_tai = {
.clock_getres = hrtimer_get_res, .clock_getres = posix_get_hrtimer_res,
.clock_get = posix_get_tai, .clock_get = posix_get_tai,
.nsleep = common_nsleep, .nsleep = common_nsleep,
.nsleep_restart = hrtimer_nanosleep_restart, .nsleep_restart = hrtimer_nanosleep_restart,
...@@ -322,7 +329,7 @@ static __init int init_posix_timers(void) ...@@ -322,7 +329,7 @@ static __init int init_posix_timers(void)
.timer_del = common_timer_del, .timer_del = common_timer_del,
}; };
struct k_clock clock_boottime = { struct k_clock clock_boottime = {
.clock_getres = hrtimer_get_res, .clock_getres = posix_get_hrtimer_res,
.clock_get = posix_get_boottime, .clock_get = posix_get_boottime,
.nsleep = common_nsleep, .nsleep = common_nsleep,
.nsleep_restart = hrtimer_nanosleep_restart, .nsleep_restart = hrtimer_nanosleep_restart,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment