diff --git a/qdf/linux/src/qdf_event.c b/qdf/linux/src/qdf_event.c index 9ad2080746..efaa62fbb3 100644 --- a/qdf/linux/src/qdf_event.c +++ b/qdf/linux/src/qdf_event.c @@ -38,6 +38,13 @@ #include "qdf_event.h" #include +/* Flag for napier emulation */ +#ifdef QCA_WIFI_NAPIER_EMULATION +#define QDF_TIMER_MULTIPLIER 100 +#else +#define QDF_TIMER_MULTIPLIER 1 +#endif + /* Function Definitions and Documentation */ /** @@ -243,6 +250,8 @@ QDF_STATUS qdf_wait_single_event(qdf_event_t *event, uint32_t timeout) return QDF_STATUS_E_INVAL; } + /* update the timeout if its on a emaulation platform */ + timeout *= QDF_TIMER_MULTIPLIER; if (timeout) { long ret; ret = wait_for_completion_timeout(&event->complete, diff --git a/qdf/linux/src/qdf_mc_timer.c b/qdf/linux/src/qdf_mc_timer.c index b42b3cf875..2b6b2c770a 100644 --- a/qdf/linux/src/qdf_mc_timer.c +++ b/qdf/linux/src/qdf_mc_timer.c @@ -46,6 +46,13 @@ #define LINUX_INVALID_TIMER_COOKIE 0xfeedface #define TMR_INVALID_ID (0) +/* Flag for napier emulation */ +#ifdef QCA_WIFI_NAPIER_EMULATION +#define QDF_TIMER_MULTIPLIER 100 +#else +#define QDF_TIMER_MULTIPLIER 1 +#endif + /* Type declarations */ /* Static Variable Definitions */ @@ -562,6 +569,9 @@ QDF_STATUS qdf_mc_timer_start(qdf_mc_timer_t *timer, uint32_t expiration_time) return QDF_STATUS_E_INVAL; } + /* update expiration time based on if emulation platform */ + expiration_time *= QDF_TIMER_MULTIPLIER; + /* make sure the remainer of the logic isn't interrupted */ qdf_spin_lock_irqsave(&timer->platform_info.spinlock);