diff --git a/qdf/inc/qdf_timer.h b/qdf/inc/qdf_timer.h index 0f82b1c216..83ec8d3bd1 100644 --- a/qdf/inc/qdf_timer.h +++ b/qdf/inc/qdf_timer.h @@ -51,19 +51,13 @@ qdf_timer_init(qdf_handle_t hdl, qdf_timer_t *timer, qdf_timer_func_t func, return __qdf_timer_init(timer, func, arg, type); } -#ifdef QDF_TIMER_MULTIPLIER_FRAC -#define qdf_msecs_to_jiffies(msec) \ - (QDF_TIMER_MULTIPLIER_FRAC * __qdf_msecs_to_jiffies(msec)) -#else -#define qdf_msecs_to_jiffies(msec) \ - (qdf_timer_get_multiplier() * __qdf_msecs_to_jiffies(msec)) -#endif - /** * qdf_timer_start() - start a timer * @timer: timer to start * @msec: Expiration period in milliseconds * + * If QDF timer multiplier is set, the timeout value may get scaled. + * * Return: none */ static inline void qdf_timer_start(qdf_timer_t *timer, int msec) @@ -78,6 +72,8 @@ static inline void qdf_timer_start(qdf_timer_t *timer, int msec) * * If @timer is not active, it will be activated. * + * If QDF timer multiplier is set, the timeout value may get scaled. + * * Return: none */ static inline void qdf_timer_mod(qdf_timer_t *timer, int msec) diff --git a/qdf/linux/src/i_qdf_timer.h b/qdf/linux/src/i_qdf_timer.h index 2cbb6cbf7c..29c7782a94 100644 --- a/qdf/linux/src/i_qdf_timer.h +++ b/qdf/linux/src/i_qdf_timer.h @@ -43,7 +43,13 @@ struct __qdf_timer_t { void *context; }; -#define __qdf_msecs_to_jiffies(msec) msecs_to_jiffies(msec) +#ifdef QDF_TIMER_MULTIPLIER_FRAC +#define __qdf_scaled_msecs_to_jiffies(msec) \ + (QDF_TIMER_MULTIPLIER_FRAC * msecs_to_jiffies(msec)) +#else +#define __qdf_scaled_msecs_to_jiffies(msec) \ + (qdf_timer_get_multiplier() * msecs_to_jiffies(msec)) +#endif #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0) static inline void __os_timer_shim(struct timer_list *os_timer) @@ -121,13 +127,14 @@ static inline void __qdf_timer_start(struct __qdf_timer_t *timer, uint32_t msec) { struct timer_list *os_timer = &timer->os_timer; - os_timer->expires = jiffies + __qdf_msecs_to_jiffies(msec); + os_timer->expires = jiffies + __qdf_scaled_msecs_to_jiffies(msec); add_timer(os_timer); } static inline void __qdf_timer_mod(struct __qdf_timer_t *timer, uint32_t msec) { - mod_timer(&timer->os_timer, jiffies + __qdf_msecs_to_jiffies(msec)); + mod_timer(&timer->os_timer, + jiffies + __qdf_scaled_msecs_to_jiffies(msec)); } static inline bool __qdf_timer_stop(struct __qdf_timer_t *timer) diff --git a/qdf/linux/src/qdf_event.c b/qdf/linux/src/qdf_event.c index 929eff8972..c504e586b4 100644 --- a/qdf/linux/src/qdf_event.c +++ b/qdf/linux/src/qdf_event.c @@ -214,7 +214,7 @@ QDF_STATUS qdf_wait_single_event(qdf_event_t *event, uint32_t timeout) ret = wait_for_completion_timeout( &event->complete, - qdf_msecs_to_jiffies(timeout)); + __qdf_scaled_msecs_to_jiffies(timeout)); if (ret <= 0) return QDF_STATUS_E_TIMEOUT; diff --git a/qdf/linux/src/qdf_mc_timer.c b/qdf/linux/src/qdf_mc_timer.c index 61f7f94109..451986a60c 100644 --- a/qdf/linux/src/qdf_mc_timer.c +++ b/qdf/linux/src/qdf_mc_timer.c @@ -677,7 +677,7 @@ QDF_STATUS qdf_mc_timer_start(qdf_mc_timer_t *timer, uint32_t expiration_time) /* start the timer */ mod_timer(&(timer->platform_info.timer), - jiffies + qdf_msecs_to_jiffies(expiration_time)); + jiffies + __qdf_scaled_msecs_to_jiffies(expiration_time)); timer->state = QDF_TIMER_STATE_RUNNING;