diff --git a/hal/wifi3.0/hal_api.h b/hal/wifi3.0/hal_api.h index 6ce4ba9d92..f19aeed320 100644 --- a/hal/wifi3.0/hal_api.h +++ b/hal/wifi3.0/hal_api.h @@ -3304,4 +3304,64 @@ void *hal_srng_dst_get_next_32_byte_desc(hal_soc_handle_t hal_soc_hdl, return (void *)last_prefetched_hw_desc; } + +/** + * hal_srng_src_set_hp() - set head idx. + * @hal_soc_hdl: HAL SOC handle + * @idx: head idx + * + * return: none + */ +static inline +void hal_srng_src_set_hp(hal_ring_handle_t hal_ring_hdl, uint16_t idx) +{ + struct hal_srng *srng = (struct hal_srng *)hal_ring_hdl; + + srng->u.src_ring.hp = idx * srng->entry_size; +} + +/** + * hal_srng_dst_set_tp() - set tail idx. + * @hal_soc_hdl: HAL SOC handle + * @idx: tail idx + * + * return: none + */ +static inline +void hal_srng_dst_set_tp(hal_ring_handle_t hal_ring_hdl, uint16_t idx) +{ + struct hal_srng *srng = (struct hal_srng *)hal_ring_hdl; + + srng->u.dst_ring.tp = idx * srng->entry_size; +} + +/** + * hal_srng_src_get_tpidx() - get tail idx + * @hal_soc_hdl: HAL SOC handle + * + * return: tail idx + */ +static inline +uint16_t hal_srng_src_get_tpidx(hal_ring_handle_t hal_ring_hdl) +{ + struct hal_srng *srng = (struct hal_srng *)hal_ring_hdl; + uint32_t tp = *(volatile uint32_t *)(srng->u.src_ring.tp_addr); + + return tp / srng->entry_size; +} + +/** + * hal_srng_dst_get_hpidx() - get head idx + * @hal_soc_hdl: HAL SOC handle + * + * return: head idx + */ +static inline +uint16_t hal_srng_dst_get_hpidx(hal_ring_handle_t hal_ring_hdl) +{ + struct hal_srng *srng = (struct hal_srng *)hal_ring_hdl; + uint32_t hp = *(volatile uint32_t *)(srng->u.dst_ring.hp_addr); + + return hp / srng->entry_size; +} #endif /* _HAL_APIH_ */ diff --git a/hal/wifi3.0/hal_internal.h b/hal/wifi3.0/hal_internal.h index 75e3560cea..4aff8fbf69 100644 --- a/hal/wifi3.0/hal_internal.h +++ b/hal/wifi3.0/hal_internal.h @@ -1470,7 +1470,8 @@ struct hal_srng *hal_ring_handle_to_hal_srng(hal_ring_handle_t hal_ring) /* * REO2PPE destination indication */ -#define REO2PPE_DST_IND 11 +#define REO2PPE_DST_IND 6 +#define REO2PPE_DST_RING 11 #define REO2PPE_RULE_FAIL_FB 0x2000 /** diff --git a/hal/wifi3.0/qcn9224/hal_9224.h b/hal/wifi3.0/qcn9224/hal_9224.h index 8020f3af85..997e962bc5 100644 --- a/hal/wifi3.0/qcn9224/hal_9224.h +++ b/hal/wifi3.0/qcn9224/hal_9224.h @@ -1422,7 +1422,7 @@ void hal_compute_reo_remap_ix0_9224(struct hal_soc *soc) (REO_REG_REG_BASE)); remap0 &= ~(HAL_REO_REMAP_IX0(0xF, 6)); - remap0 |= HAL_REO_REMAP_IX0(REO2PPE_DST_IND, 6); + remap0 |= HAL_REO_REMAP_IX0(REO2PPE_DST_RING, 6); HAL_REG_WRITE(soc, HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_ADDR (REO_REG_REG_BASE), remap0); diff --git a/wlan_cfg/cfg_dp.h b/wlan_cfg/cfg_dp.h index f20da98829..dc54dfc444 100644 --- a/wlan_cfg/cfg_dp.h +++ b/wlan_cfg/cfg_dp.h @@ -442,9 +442,9 @@ #define WLAN_CFG_RADIO_DEFAULT_REO_MIN 0x1 #define WLAN_CFG_RADIO_DEFAULT_REO_MAX 0x4 -#define WLAN_CFG_REO2PPE_RING_SIZE 1024 +#define WLAN_CFG_REO2PPE_RING_SIZE 2048 #define WLAN_CFG_REO2PPE_RING_SIZE_MIN 64 -#define WLAN_CFG_REO2PPE_RING_SIZE_MAX 1024 +#define WLAN_CFG_REO2PPE_RING_SIZE_MAX 16384 #define WLAN_CFG_PPE2TCL_RING_SIZE 1024 #define WLAN_CFG_PPE2TCL_RING_SIZE_MIN 64