Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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.de


Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
parent 447fbbdc
Loading
Loading
Loading
Loading
+0 −1
Original line number Original line Diff line number Diff line
@@ -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);


+3 −3
Original line number Original line Diff line number Diff line
@@ -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;
}
}


/**
/**
+0 −16
Original line number Original line Diff line number Diff line
@@ -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;
+12 −5
Original line number Original line Diff line number Diff line
@@ -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)
		.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)
		.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)
		.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)
		.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,