diff --git a/include/nuttx/arch.h b/include/nuttx/arch.h index 45cbe9f0176..70eb53e3a41 100644 --- a/include/nuttx/arch.h +++ b/include/nuttx/arch.h @@ -2063,8 +2063,8 @@ int up_alarm_tick_cancel(FAR clock_t *ticks); * ****************************************************************************/ -#if defined(CONFIG_HRTIMER) || \ - defined(CONFIG_SCHED_TICKLESS) && defined(CONFIG_SCHED_TICKLESS_ALARM) +#if (defined(CONFIG_HRTIMER) && defined(CONFIG_ALARM_ARCH)) || \ + (defined(CONFIG_SCHED_TICKLESS) && defined(CONFIG_SCHED_TICKLESS_ALARM)) int up_alarm_start(FAR const struct timespec *ts); int up_alarm_tick_start(clock_t ticks); #endif @@ -2135,7 +2135,8 @@ int up_timer_tick_cancel(FAR clock_t *ticks); * ****************************************************************************/ -#if defined(CONFIG_SCHED_TICKLESS) && !defined(CONFIG_SCHED_TICKLESS_ALARM) +#if (defined(CONFIG_HRTIMER) && defined(CONFIG_TIMER_ARCH)) || \ + (defined(CONFIG_SCHED_TICKLESS) && !defined(CONFIG_SCHED_TICKLESS_ALARM)) int up_timer_start(FAR const struct timespec *ts); int up_timer_tick_start(clock_t ticks); #endif diff --git a/sched/hrtimer/hrtimer.h b/sched/hrtimer/hrtimer.h index 606cd086350..2b6386910bd 100644 --- a/sched/hrtimer/hrtimer.h +++ b/sched/hrtimer/hrtimer.h @@ -122,26 +122,29 @@ void hrtimer_process(uint64_t now); * ns - Expiration time in nanoseconds. * * Returned Value: - * OK (0) on success, negated errno on failure. + * None. + * + * Assumptions: + * The underlying timer start function returns 0 on success. ****************************************************************************/ static inline_function void hrtimer_reprogram(uint64_t next_expired) { -#ifdef CONFIG_SCHED_TICKLESS - int ret; + int ret = 0; struct timespec ts; -# ifdef CONFIG_SCHED_TICKLESS_ALARM + clock_nsec2time(&ts, next_expired); + +#ifdef CONFIG_ALARM_ARCH ret = up_alarm_start(&ts); -# else +#else struct timespec current; up_timer_gettime(¤t); - clock_nsec2time(&ts, next_expired); clock_timespec_subtract(&ts, ¤t, &ts); ret = up_timer_start(&ts); -# endif - DEBUGASSERT(ret == 0); #endif + + DEBUGASSERT(ret == 0); } /****************************************************************************