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_ISOLATION: set isolation flag
* @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 {
CDP_CONFIG_DEBUG_SNIFFER,
@@ -1369,6 +1370,7 @@ enum cdp_pdev_param_type {
CDP_CONFIG_ENHANCED_STATS_ENABLE,
CDP_ISOLATION,
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_peer_metadata_ver: DP rx peer metadata version configuration
* @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 {
/* peer params */
@@ -1541,6 +1552,16 @@ typedef union cdp_config_param_t {
bool cdp_vdev_tx_to_fw;
uint8_t cdp_peer_metadata_ver;
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;
/**
@@ -1698,6 +1719,14 @@ enum cdp_vdev_param_type {
* @CDP_UMAC_RESET_STATS: UMAC reset stats
* @CDP_CFG_RX_PEER_METADATA_VER: RX peer metadata configuration
* @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 {
CDP_ENABLE_RATE_STATS,
@@ -1712,6 +1741,16 @@ enum cdp_psoc_param_type {
CDP_UMAC_RESET_STATS,
CDP_CFG_RX_PEER_METADATA_VER,
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

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 =
dp_monitor_get_chan_freq((struct dp_pdev *)pdev);
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:
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,
val.cdp_pdev_param_undecoded_metadata_enable);
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:
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:
val.hal_soc_hdl = soc->hal_soc;
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:
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
* @cdp_soc: DP soc handle
* @param: parameter type to be set
* @param: parameter type to be get
* @val: address of buffer
*
* Return: status
@@ -7777,22 +7819,57 @@ static QDF_STATUS dp_get_psoc_param(struct cdp_soc_t *cdp_soc,
cdp_config_param_type *val)
{
struct dp_soc *soc = (struct dp_soc *)cdp_soc;
struct wlan_cfg_dp_soc_ctxt *wlan_cfg_ctx;
if (!soc)
return QDF_STATUS_E_FAILURE;
wlan_cfg_ctx = soc->wlan_cfg_ctx;
switch (param) {
case CDP_CFG_PEER_EXT_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;
case CDP_CFG_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;
case CDP_UMAC_RST_SKEL_ENABLE:
val->cdp_umac_rst_skel = dp_umac_rst_skel_enable_get(soc);
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:
dp_warn("Invalid param: %u", param);
break;