diff --git a/hal/wifi3.0/hal_reo.c b/hal/wifi3.0/hal_reo.c index 4b035ada6385..1a89f9d20c38 100644 --- a/hal/wifi3.0/hal_reo.c +++ b/hal/wifi3.0/hal_reo.c @@ -63,6 +63,23 @@ static inline void hal_uniform_desc_hdr_setup(uint32_t *desc, uint32_t owner, #endif #define HAL_NON_QOS_TID 16 +#ifdef HAL_DISABLE_NON_BA_2K_JUMP_ERROR +static inline uint32_t hal_update_non_ba_win_size(int tid, + uint32_t ba_window_size) +{ + return ba_window_size; +} +#else +static inline uint32_t hal_update_non_ba_win_size(int tid, + uint32_t ba_window_size) +{ + if ((ba_window_size == 1) && (tid != HAL_NON_QOS_TID)) + ba_window_size++; + + return ba_window_size; +} +#endif + /** * hal_reo_qdesc_setup - Setup HW REO queue descriptor * @@ -114,12 +131,13 @@ void hal_reo_qdesc_setup(hal_soc_handle_t hal_soc_hdl, int tid, if (ba_window_size < 1) ba_window_size = 1; + /* WAR to get 2k exception in Non BA case. * Setting window size to 2 to get 2k jump exception * when we receive aggregates in Non BA case */ - if ((ba_window_size == 1) && (tid != HAL_NON_QOS_TID)) - ba_window_size++; + ba_window_size = hal_update_non_ba_win_size(tid, ba_window_size); + /* Set RTY bit for non-BA case. Duplicate detection is currently not * done by HW in non-BA case if RTY bit is not set. * TODO: This is a temporary War and should be removed once HW fix is