qcacmn: Add cdp params to configure soc/pdev cfg items

Add soc/pdev level cdp config params, so that these can be used
to get and set config context items.

Change-Id: I6cfeafb4333bf2f267121dce37b64f22cb86e98c
CRs-Fixed: 3502588
This commit is contained in:
Karthik Kantamneni
2023-05-18 15:51:58 +05:30
committed by Rahul Choudhary
parent 94cb877e2a
commit 7990bb266d
2 changed files with 119 additions and 3 deletions

View File

@@ -1334,6 +1334,7 @@ enum cdp_peer_param_type {
* @CDP_CONFIG_ENHANCED_STATS_ENABLE: * @CDP_CONFIG_ENHANCED_STATS_ENABLE:
* @CDP_ISOLATION: set isolation flag * @CDP_ISOLATION: set isolation flag
* @CDP_CONFIG_UNDECODED_METADATA_CAPTURE_ENABLE: Undecoded metadata capture * @CDP_CONFIG_UNDECODED_METADATA_CAPTURE_ENABLE: Undecoded metadata capture
* @CDP_CONFIG_RXDMA_BUF_RING_SIZE: RXDMA buffer ring size configure
*/ */
enum cdp_pdev_param_type { enum cdp_pdev_param_type {
CDP_CONFIG_DEBUG_SNIFFER, CDP_CONFIG_DEBUG_SNIFFER,
@@ -1369,6 +1370,7 @@ enum cdp_pdev_param_type {
CDP_CONFIG_ENHANCED_STATS_ENABLE, CDP_CONFIG_ENHANCED_STATS_ENABLE,
CDP_ISOLATION, CDP_ISOLATION,
CDP_CONFIG_UNDECODED_METADATA_CAPTURE_ENABLE, CDP_CONFIG_UNDECODED_METADATA_CAPTURE_ENABLE,
CDP_CONFIG_RXDMA_BUF_RING_SIZE,
}; };
/** /**
@@ -1449,6 +1451,15 @@ enum cdp_pdev_param_type {
* @cdp_vdev_tx_to_fw: Set to_fw bit for all tx packets for the vdev * @cdp_vdev_tx_to_fw: Set to_fw bit for all tx packets for the vdev
* @cdp_peer_metadata_ver: DP rx peer metadata version configuration * @cdp_peer_metadata_ver: DP rx peer metadata version configuration
* @hal_soc_hdl: DP HAL soc handle * @hal_soc_hdl: DP HAL soc handle
* @cdp_tx_desc_num: DP TX desc number config
* @cdp_tx_ext_desc_num: number of TX EXT desc config
* @cdp_tx_ring_size: TX ring size config
* @cdp_tx_comp_ring_size: TX completion ring size config
* @cdp_rx_sw_desc_num: RX SW descriptor number config
* @cdp_reo_dst_ring_size: REO destination ring size config
* @cdp_rxdma_refill_ring_size: RXDMA refill ring size config
* @cdp_rx_refill_buf_pool_size: RX refill ring size config
* @cdp_rxdma_buf_ring_size: RXDMA buf ring size config
*/ */
typedef union cdp_config_param_t { typedef union cdp_config_param_t {
/* peer params */ /* peer params */
@@ -1541,6 +1552,16 @@ typedef union cdp_config_param_t {
bool cdp_vdev_tx_to_fw; bool cdp_vdev_tx_to_fw;
uint8_t cdp_peer_metadata_ver; uint8_t cdp_peer_metadata_ver;
void *hal_soc_hdl; void *hal_soc_hdl;
int cdp_tx_desc_num;
int cdp_tx_ext_desc_num;
int cdp_tx_ring_size;
int cdp_tx_comp_ring_size;
int cdp_rx_sw_desc_num;
int cdp_reo_dst_ring_size;
int cdp_rxdma_refill_ring_size;
int cdp_rx_refill_buf_pool_size;
int cdp_rxdma_buf_ring_size;
} cdp_config_param_type; } cdp_config_param_type;
/** /**
@@ -1698,6 +1719,14 @@ enum cdp_vdev_param_type {
* @CDP_UMAC_RESET_STATS: UMAC reset stats * @CDP_UMAC_RESET_STATS: UMAC reset stats
* @CDP_CFG_RX_PEER_METADATA_VER: RX peer metadata configuration * @CDP_CFG_RX_PEER_METADATA_VER: RX peer metadata configuration
* @CDP_TXRX_HAL_SOC_HDL: HAL soc handle * @CDP_TXRX_HAL_SOC_HDL: HAL soc handle
* @CDP_CFG_TX_DESC_NUM: number of TX descriptors config
* @CDP_CFG_TX_EXT_DESC_NUM: number of TX EXT descriptors config
* @CDP_CFG_TX_RING_SIZE: TX ring size config param
* @CDP_CFG_TX_COMPL_RING_SIZE: TX completion ring size param
* @CDP_CFG_RX_SW_DESC_NUM: RX SW descriptor number
* @CDP_CFG_REO_DST_RING_SIZE: REO destination ring size config
* @CDP_CFG_RXDMA_REFILL_RING_SIZE: RXDMA refill ring size config
* @CDP_CFG_RX_REFILL_POOL_NUM: RX refill pool size config param
*/ */
enum cdp_psoc_param_type { enum cdp_psoc_param_type {
CDP_ENABLE_RATE_STATS, CDP_ENABLE_RATE_STATS,
@@ -1712,6 +1741,16 @@ enum cdp_psoc_param_type {
CDP_UMAC_RESET_STATS, CDP_UMAC_RESET_STATS,
CDP_CFG_RX_PEER_METADATA_VER, CDP_CFG_RX_PEER_METADATA_VER,
CDP_TXRX_HAL_SOC_HDL, CDP_TXRX_HAL_SOC_HDL,
CDP_CFG_TX_DESC_NUM,
CDP_CFG_TX_EXT_DESC_NUM,
CDP_CFG_TX_RING_SIZE,
CDP_CFG_TX_COMPL_RING_SIZE,
CDP_CFG_RX_SW_DESC_NUM,
CDP_CFG_REO_DST_RING_SIZE,
CDP_CFG_RXDMA_REFILL_RING_SIZE,
#ifdef WLAN_FEATURE_RX_PREALLOC_BUFFER_POOL
CDP_CFG_RX_REFILL_POOL_NUM,
#endif
}; };
#ifdef CONFIG_AP_PLATFORM #ifdef CONFIG_AP_PLATFORM

View File

@@ -7000,6 +7000,10 @@ static QDF_STATUS dp_get_pdev_param(struct cdp_soc_t *cdp_soc, uint8_t pdev_id,
val->cdp_pdev_param_mon_freq = val->cdp_pdev_param_mon_freq =
dp_monitor_get_chan_freq((struct dp_pdev *)pdev); dp_monitor_get_chan_freq((struct dp_pdev *)pdev);
break; break;
case CDP_CONFIG_RXDMA_BUF_RING_SIZE:
val->cdp_rxdma_buf_ring_size =
wlan_cfg_get_rx_dma_buf_ring_size(((struct dp_pdev *)pdev)->wlan_cfg_ctx);
break;
default: default:
return QDF_STATUS_E_FAILURE; return QDF_STATUS_E_FAILURE;
} }
@@ -7133,6 +7137,10 @@ static QDF_STATUS dp_set_pdev_param(struct cdp_soc_t *cdp_soc, uint8_t pdev_id,
return dp_monitor_config_undecoded_metadata_capture(pdev, return dp_monitor_config_undecoded_metadata_capture(pdev,
val.cdp_pdev_param_undecoded_metadata_enable); val.cdp_pdev_param_undecoded_metadata_enable);
break; break;
case CDP_CONFIG_RXDMA_BUF_RING_SIZE:
wlan_cfg_set_rx_dma_buf_ring_size(pdev->wlan_cfg_ctx,
val.cdp_rxdma_buf_ring_size);
break;
default: default:
return QDF_STATUS_E_INVAL; return QDF_STATUS_E_INVAL;
} }
@@ -7757,6 +7765,40 @@ dp_set_psoc_param(struct cdp_soc_t *cdp_soc,
case CDP_TXRX_HAL_SOC_HDL: case CDP_TXRX_HAL_SOC_HDL:
val.hal_soc_hdl = soc->hal_soc; val.hal_soc_hdl = soc->hal_soc;
break; break;
case CDP_CFG_TX_DESC_NUM:
wlan_cfg_set_num_tx_desc(wlan_cfg_ctx,
val.cdp_tx_desc_num);
break;
case CDP_CFG_TX_EXT_DESC_NUM:
wlan_cfg_set_num_tx_ext_desc(wlan_cfg_ctx,
val.cdp_tx_ext_desc_num);
break;
case CDP_CFG_TX_RING_SIZE:
wlan_cfg_set_tx_ring_size(wlan_cfg_ctx,
val.cdp_tx_ring_size);
break;
case CDP_CFG_TX_COMPL_RING_SIZE:
wlan_cfg_set_tx_comp_ring_size(wlan_cfg_ctx,
val.cdp_tx_comp_ring_size);
break;
case CDP_CFG_RX_SW_DESC_NUM:
wlan_cfg_set_dp_soc_rx_sw_desc_num(wlan_cfg_ctx,
val.cdp_rx_sw_desc_num);
break;
case CDP_CFG_REO_DST_RING_SIZE:
wlan_cfg_set_reo_dst_ring_size(wlan_cfg_ctx,
val.cdp_reo_dst_ring_size);
break;
case CDP_CFG_RXDMA_REFILL_RING_SIZE:
wlan_cfg_set_dp_soc_rxdma_refill_ring_size(wlan_cfg_ctx,
val.cdp_rxdma_refill_ring_size);
break;
#ifdef WLAN_FEATURE_RX_PREALLOC_BUFFER_POOL
case CDP_CFG_RX_REFILL_POOL_NUM:
wlan_cfg_set_rx_refill_buf_pool_size(wlan_cfg_ctx,
val.cdp_rx_refill_buf_pool_size);
break;
#endif
default: default:
break; break;
} }
@@ -7767,7 +7809,7 @@ dp_set_psoc_param(struct cdp_soc_t *cdp_soc,
/** /**
* dp_get_psoc_param: function to get parameters in soc * dp_get_psoc_param: function to get parameters in soc
* @cdp_soc: DP soc handle * @cdp_soc: DP soc handle
* @param: parameter type to be set * @param: parameter type to be get
* @val: address of buffer * @val: address of buffer
* *
* Return: status * Return: status
@@ -7777,22 +7819,57 @@ static QDF_STATUS dp_get_psoc_param(struct cdp_soc_t *cdp_soc,
cdp_config_param_type *val) cdp_config_param_type *val)
{ {
struct dp_soc *soc = (struct dp_soc *)cdp_soc; struct dp_soc *soc = (struct dp_soc *)cdp_soc;
struct wlan_cfg_dp_soc_ctxt *wlan_cfg_ctx;
if (!soc) if (!soc)
return QDF_STATUS_E_FAILURE; return QDF_STATUS_E_FAILURE;
wlan_cfg_ctx = soc->wlan_cfg_ctx;
switch (param) { switch (param) {
case CDP_CFG_PEER_EXT_STATS: case CDP_CFG_PEER_EXT_STATS:
val->cdp_psoc_param_pext_stats = val->cdp_psoc_param_pext_stats =
wlan_cfg_is_peer_ext_stats_enabled(soc->wlan_cfg_ctx); wlan_cfg_is_peer_ext_stats_enabled(wlan_cfg_ctx);
break; break;
case CDP_CFG_VDEV_STATS_HW_OFFLOAD: case CDP_CFG_VDEV_STATS_HW_OFFLOAD:
val->cdp_psoc_param_vdev_stats_hw_offload = val->cdp_psoc_param_vdev_stats_hw_offload =
wlan_cfg_get_vdev_stats_hw_offload_config(soc->wlan_cfg_ctx); wlan_cfg_get_vdev_stats_hw_offload_config(wlan_cfg_ctx);
break; break;
case CDP_UMAC_RST_SKEL_ENABLE: case CDP_UMAC_RST_SKEL_ENABLE:
val->cdp_umac_rst_skel = dp_umac_rst_skel_enable_get(soc); val->cdp_umac_rst_skel = dp_umac_rst_skel_enable_get(soc);
break; break;
case CDP_CFG_TX_DESC_NUM:
val->cdp_tx_desc_num = wlan_cfg_get_num_tx_desc(wlan_cfg_ctx);
break;
case CDP_CFG_TX_EXT_DESC_NUM:
val->cdp_tx_ext_desc_num =
wlan_cfg_get_num_tx_ext_desc(wlan_cfg_ctx);
break;
case CDP_CFG_TX_RING_SIZE:
val->cdp_tx_ring_size = wlan_cfg_tx_ring_size(wlan_cfg_ctx);
break;
case CDP_CFG_TX_COMPL_RING_SIZE:
val->cdp_tx_comp_ring_size =
wlan_cfg_tx_comp_ring_size(wlan_cfg_ctx);
break;
case CDP_CFG_RX_SW_DESC_NUM:
val->cdp_rx_sw_desc_num =
wlan_cfg_get_dp_soc_rx_sw_desc_num(wlan_cfg_ctx);
break;
case CDP_CFG_REO_DST_RING_SIZE:
val->cdp_reo_dst_ring_size =
wlan_cfg_get_reo_dst_ring_size(wlan_cfg_ctx);
break;
case CDP_CFG_RXDMA_REFILL_RING_SIZE:
val->cdp_rxdma_refill_ring_size =
wlan_cfg_get_dp_soc_rxdma_refill_ring_size(wlan_cfg_ctx);
break;
#ifdef WLAN_FEATURE_RX_PREALLOC_BUFFER_POOL
case CDP_CFG_RX_REFILL_POOL_NUM:
val->cdp_rx_refill_buf_pool_size =
wlan_cfg_get_rx_refill_buf_pool_size(wlan_cfg_ctx);
#endif
break;
default: default:
dp_warn("Invalid param: %u", param); dp_warn("Invalid param: %u", param);
break; break;