diff --git a/hal/wifi3.0/hal_generic_api.h b/hal/wifi3.0/hal_generic_api.h index 1915f80e17..a10a5e0033 100644 --- a/hal/wifi3.0/hal_generic_api.h +++ b/hal/wifi3.0/hal_generic_api.h @@ -182,6 +182,11 @@ static inline void hal_srng_hw_disable_generic(struct hal_soc *hal, struct hal_srng *srng) { uint32_t reg_val = 0; + struct hal_hw_srng_config *ring_config = + HAL_SRNG_CONFIG(hal, srng->ring_type); + + if (ring_config->lmac_ring) + return; if (srng->ring_dir == HAL_SRNG_DST_RING) { reg_val = SRNG_DST_REG_READ(srng, MISC) & ~(SRNG_ENABLE_BIT); diff --git a/hal/wifi3.0/qca5332/hal_5332.c b/hal/wifi3.0/qca5332/hal_5332.c index f61bc1ee24..e17354a474 100644 --- a/hal/wifi3.0/qca5332/hal_5332.c +++ b/hal/wifi3.0/qca5332/hal_5332.c @@ -1347,6 +1347,7 @@ static void hal_hw_txrx_ops_attach_qca5332(struct hal_soc *hal_soc) /* init and setup */ hal_soc->ops->hal_srng_dst_hw_init = hal_srng_dst_hw_init_generic; hal_soc->ops->hal_srng_src_hw_init = hal_srng_src_hw_init_generic; + hal_soc->ops->hal_srng_hw_disable = hal_srng_hw_disable_generic; hal_soc->ops->hal_get_hw_hptp = hal_get_hw_hptp_generic; hal_soc->ops->hal_get_window_address = hal_get_window_address_5332; hal_soc->ops->hal_cmem_write = hal_cmem_write_5332;