qcacmn: Set default REO of radio through ini

Set default REO of radio through ini parameter

Change-Id: I576f3ddffe4d18b955099e0b75ecb297228475da
This commit is contained in:
Radha Krishna Simha Jiguru
2020-09-24 16:34:19 +05:30
committed by snandini
parent 7d55cb743a
commit 3048f53867
4 changed files with 107 additions and 2 deletions

View File

@@ -13400,6 +13400,33 @@ static void dp_soc_cfg_attach(struct dp_soc *soc)
} }
} }
static inline void dp_pdev_set_default_reo(struct dp_pdev *pdev)
{
struct dp_soc *soc = pdev->soc;
switch (pdev->pdev_id) {
case 0:
pdev->reo_dest =
wlan_cfg_radio0_default_reo_get(soc->wlan_cfg_ctx);
break;
case 1:
pdev->reo_dest =
wlan_cfg_radio1_default_reo_get(soc->wlan_cfg_ctx);
break;
case 2:
pdev->reo_dest =
wlan_cfg_radio2_default_reo_get(soc->wlan_cfg_ctx);
break;
default:
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
"Invalid pdev_id %d for reo selection", pdev->pdev_id);
break;
}
}
static inline QDF_STATUS dp_pdev_init(struct cdp_soc_t *txrx_soc, static inline QDF_STATUS dp_pdev_init(struct cdp_soc_t *txrx_soc,
HTC_HANDLE htc_handle, HTC_HANDLE htc_handle,
qdf_device_t qdf_osdev, qdf_device_t qdf_osdev,
@@ -13519,7 +13546,7 @@ static inline QDF_STATUS dp_pdev_init(struct cdp_soc_t *txrx_soc,
dp_pcp_tid_map_setup(pdev); dp_pcp_tid_map_setup(pdev);
/* set the reo destination during initialization */ /* set the reo destination during initialization */
pdev->reo_dest = pdev->pdev_id + 1; dp_pdev_set_default_reo(pdev);
/* /*
* initialize ppdu tlv list * initialize ppdu tlv list

View File

@@ -367,6 +367,13 @@
#define WLAN_CFG_NUM_REO_RINGS_MAP_MIN 0x1 #define WLAN_CFG_NUM_REO_RINGS_MAP_MIN 0x1
#define WLAN_CFG_NUM_REO_RINGS_MAP_MAX 0xF #define WLAN_CFG_NUM_REO_RINGS_MAP_MAX 0xF
#define WLAN_CFG_RADIO_0_DEFAULT_REO 0x1
#define WLAN_CFG_RADIO_1_DEFAULT_REO 0x2
#define WLAN_CFG_RADIO_2_DEFAULT_REO 0x3
#define WLAN_CFG_RADIO_DEFAULT_REO_MIN 0x1
#define WLAN_CFG_RADIO_DEFAULT_REO_MAX 0x4
/* DP INI Declerations */ /* DP INI Declerations */
#define CFG_DP_HTT_PACKET_TYPE \ #define CFG_DP_HTT_PACKET_TYPE \
CFG_INI_UINT("dp_htt_packet_type", \ CFG_INI_UINT("dp_htt_packet_type", \
@@ -946,6 +953,27 @@
WLAN_CFG_NUM_REO_RINGS_MAP, \ WLAN_CFG_NUM_REO_RINGS_MAP, \
CFG_VALUE_OR_DEFAULT, "REO Destination Rings Mapping") CFG_VALUE_OR_DEFAULT, "REO Destination Rings Mapping")
#define CFG_DP_RX_RADIO_0_DEFAULT_REO \
CFG_INI_UINT("dp_rx_radio0_default_reo", \
WLAN_CFG_RADIO_DEFAULT_REO_MIN, \
WLAN_CFG_RADIO_DEFAULT_REO_MAX, \
WLAN_CFG_RADIO_0_DEFAULT_REO, \
CFG_VALUE_OR_DEFAULT, "Radio0 to REO destination default mapping")
#define CFG_DP_RX_RADIO_1_DEFAULT_REO \
CFG_INI_UINT("dp_rx_radio1_default_reo", \
WLAN_CFG_RADIO_DEFAULT_REO_MIN, \
WLAN_CFG_RADIO_DEFAULT_REO_MAX, \
WLAN_CFG_RADIO_1_DEFAULT_REO, \
CFG_VALUE_OR_DEFAULT, "Radio1 to REO destination default mapping")
#define CFG_DP_RX_RADIO_2_DEFAULT_REO \
CFG_INI_UINT("dp_rx_radio2_default_reo", \
WLAN_CFG_RADIO_DEFAULT_REO_MIN, \
WLAN_CFG_RADIO_DEFAULT_REO_MAX, \
WLAN_CFG_RADIO_2_DEFAULT_REO, \
CFG_VALUE_OR_DEFAULT, "Radio2 to REO destination default mapping")
#define CFG_DP_PEER_EXT_STATS \ #define CFG_DP_PEER_EXT_STATS \
CFG_INI_BOOL("peer_ext_stats", \ CFG_INI_BOOL("peer_ext_stats", \
false, "Peer extended stats") false, "Peer extended stats")
@@ -1086,5 +1114,8 @@
CFG(CFG_DP_POLL_MODE_ENABLE) \ CFG(CFG_DP_POLL_MODE_ENABLE) \
CFG(CFG_DP_SWLM_ENABLE) \ CFG(CFG_DP_SWLM_ENABLE) \
CFG(CFG_DP_TX_PER_PKT_VDEV_ID_CHECK) \ CFG(CFG_DP_TX_PER_PKT_VDEV_ID_CHECK) \
CFG(CFG_DP_RX_FST_IN_CMEM) CFG(CFG_DP_RX_FST_IN_CMEM) \
CFG(CFG_DP_RX_RADIO_0_DEFAULT_REO) \
CFG(CFG_DP_RX_RADIO_1_DEFAULT_REO) \
CFG(CFG_DP_RX_RADIO_2_DEFAULT_REO)
#endif /* _CFG_DP_H_ */ #endif /* _CFG_DP_H_ */

View File

@@ -624,6 +624,12 @@ wlan_cfg_soc_attach(struct cdp_ctrl_objmgr_psoc *psoc)
wlan_cfg_ctx->fst_in_cmem = cfg_get(psoc, CFG_DP_RX_FST_IN_CMEM); wlan_cfg_ctx->fst_in_cmem = cfg_get(psoc, CFG_DP_RX_FST_IN_CMEM);
wlan_cfg_ctx->tx_per_pkt_vdev_id_check = wlan_cfg_ctx->tx_per_pkt_vdev_id_check =
cfg_get(psoc, CFG_DP_TX_PER_PKT_VDEV_ID_CHECK); cfg_get(psoc, CFG_DP_TX_PER_PKT_VDEV_ID_CHECK);
wlan_cfg_ctx->radio0_rx_default_reo =
cfg_get(psoc, CFG_DP_RX_RADIO_0_DEFAULT_REO);
wlan_cfg_ctx->radio1_rx_default_reo =
cfg_get(psoc, CFG_DP_RX_RADIO_1_DEFAULT_REO);
wlan_cfg_ctx->radio2_rx_default_reo =
cfg_get(psoc, CFG_DP_RX_RADIO_2_DEFAULT_REO);
return wlan_cfg_ctx; return wlan_cfg_ctx;
} }
@@ -1459,3 +1465,17 @@ bool wlan_cfg_is_swlm_enabled(struct wlan_cfg_dp_soc_ctxt *cfg)
return false; return false;
} }
#endif #endif
uint8_t wlan_cfg_radio0_default_reo_get(struct wlan_cfg_dp_soc_ctxt *cfg)
{
return cfg->radio0_rx_default_reo;
}
uint8_t wlan_cfg_radio1_default_reo_get(struct wlan_cfg_dp_soc_ctxt *cfg)
{
return cfg->radio1_rx_default_reo;
}
uint8_t wlan_cfg_radio2_default_reo_get(struct wlan_cfg_dp_soc_ctxt *cfg)
{
return cfg->radio2_rx_default_reo;
}

View File

@@ -303,6 +303,9 @@ struct wlan_cfg_dp_soc_ctxt {
uint8_t is_swlm_enabled; uint8_t is_swlm_enabled;
bool fst_in_cmem; bool fst_in_cmem;
bool tx_per_pkt_vdev_id_check; bool tx_per_pkt_vdev_id_check;
uint8_t radio0_rx_default_reo;
uint8_t radio1_rx_default_reo;
uint8_t radio2_rx_default_reo;
}; };
/** /**
@@ -1475,3 +1478,27 @@ bool wlan_cfg_is_fst_in_cmem_enabled(struct wlan_cfg_dp_soc_ctxt *cfg);
bool wlan_cfg_is_swlm_enabled(struct wlan_cfg_dp_soc_ctxt *cfg); bool wlan_cfg_is_swlm_enabled(struct wlan_cfg_dp_soc_ctxt *cfg);
#endif #endif
/**
* wlan_cfg_radio0_default_reo_get - Get Radio0 default REO
* @cfg: soc configuration context
*
* Return: .
*/
uint8_t wlan_cfg_radio0_default_reo_get(struct wlan_cfg_dp_soc_ctxt *cfg);
/**
* wlan_cfg_radio1_default_reo_get - Get Radio1 default REO
* @cfg: soc configuration context
*
* Return: .
*/
uint8_t wlan_cfg_radio1_default_reo_get(struct wlan_cfg_dp_soc_ctxt *cfg);
/**
* wlan_cfg_radio2_default_reo_get() - Get Radio2 default REO
* @cfg: soc configuration context
*
* Return: .
*/
uint8_t wlan_cfg_radio2_default_reo_get(struct wlan_cfg_dp_soc_ctxt *cfg);