qcacmn: Initialize only one RXDMA Monitor Status ring
For WCN7850, the first mac (i.e.. MAC0) is capable of 2G/5G and 6G data transfer. Hence initialize and use only on RXDMA monitor status ring. Change-Id: Idb6e23a887a9ed32a52dd54765e5ed3c6a12df06 CRs-Fixed: 3094138
Esse commit está contido em:

commit de
Madan Koyyalamudi

pai
fc5f47db1a
commit
125174cdd1
@@ -2600,7 +2600,9 @@ static void dp_queue_ring_stats(struct dp_pdev *pdev)
|
|||||||
qdf_assert_always(++j < DP_MAX_SRNGS);
|
qdf_assert_always(++j < DP_MAX_SRNGS);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (mac_id = 0; mac_id < NUM_RXDMA_RINGS_PER_PDEV; mac_id++) {
|
for (mac_id = 0;
|
||||||
|
mac_id < soc->wlan_cfg_ctx->num_rxdma_status_rings_per_pdev;
|
||||||
|
mac_id++) {
|
||||||
lmac_id = dp_get_lmac_id_for_pdev_id(pdev->soc,
|
lmac_id = dp_get_lmac_id_for_pdev_id(pdev->soc,
|
||||||
mac_id, pdev->pdev_id);
|
mac_id, pdev->pdev_id);
|
||||||
|
|
||||||
|
@@ -14261,6 +14261,8 @@ static void dp_soc_cfg_init(struct dp_soc *soc)
|
|||||||
|
|
||||||
soc->wlan_cfg_ctx->rxdma1_enable = 0;
|
soc->wlan_cfg_ctx->rxdma1_enable = 0;
|
||||||
soc->wlan_cfg_ctx->num_rxdma_dst_rings_per_pdev = 1;
|
soc->wlan_cfg_ctx->num_rxdma_dst_rings_per_pdev = 1;
|
||||||
|
/* use only MAC0 status ring */
|
||||||
|
soc->wlan_cfg_ctx->num_rxdma_status_rings_per_pdev = 1;
|
||||||
break;
|
break;
|
||||||
case TARGET_TYPE_QCA8074:
|
case TARGET_TYPE_QCA8074:
|
||||||
wlan_cfg_set_raw_mode_war(soc->wlan_cfg_ctx, true);
|
wlan_cfg_set_raw_mode_war(soc->wlan_cfg_ctx, true);
|
||||||
|
@@ -5366,7 +5366,9 @@ dp_print_ring_stats(struct dp_pdev *pdev)
|
|||||||
&pdev->rx_mac_buf_ring[i],
|
&pdev->rx_mac_buf_ring[i],
|
||||||
RXDMA_BUF);
|
RXDMA_BUF);
|
||||||
|
|
||||||
for (mac_id = 0; mac_id < NUM_RXDMA_RINGS_PER_PDEV; mac_id++) {
|
for (mac_id = 0;
|
||||||
|
mac_id < soc->wlan_cfg_ctx->num_rxdma_status_rings_per_pdev;
|
||||||
|
mac_id++) {
|
||||||
lmac_id = dp_get_lmac_id_for_pdev_id(pdev->soc,
|
lmac_id = dp_get_lmac_id_for_pdev_id(pdev->soc,
|
||||||
mac_id, pdev->pdev_id);
|
mac_id, pdev->pdev_id);
|
||||||
|
|
||||||
|
@@ -161,7 +161,9 @@ void dp_mon_rings_deinit_1_0(struct dp_pdev *pdev)
|
|||||||
|
|
||||||
pdev_cfg_ctx = pdev->wlan_cfg_ctx;
|
pdev_cfg_ctx = pdev->wlan_cfg_ctx;
|
||||||
|
|
||||||
for (mac_id = 0; mac_id < NUM_RXDMA_RINGS_PER_PDEV; mac_id++) {
|
for (mac_id = 0;
|
||||||
|
mac_id < soc->wlan_cfg_ctx->num_rxdma_status_rings_per_pdev;
|
||||||
|
mac_id++) {
|
||||||
int lmac_id = dp_get_lmac_id_for_pdev_id(soc, mac_id,
|
int lmac_id = dp_get_lmac_id_for_pdev_id(soc, mac_id,
|
||||||
pdev->pdev_id);
|
pdev->pdev_id);
|
||||||
|
|
||||||
@@ -181,7 +183,9 @@ void dp_mon_rings_free_1_0(struct dp_pdev *pdev)
|
|||||||
|
|
||||||
pdev_cfg_ctx = pdev->wlan_cfg_ctx;
|
pdev_cfg_ctx = pdev->wlan_cfg_ctx;
|
||||||
|
|
||||||
for (mac_id = 0; mac_id < NUM_RXDMA_RINGS_PER_PDEV; mac_id++) {
|
for (mac_id = 0;
|
||||||
|
mac_id < soc->wlan_cfg_ctx->num_rxdma_status_rings_per_pdev;
|
||||||
|
mac_id++) {
|
||||||
int lmac_id = dp_get_lmac_id_for_pdev_id(soc, mac_id,
|
int lmac_id = dp_get_lmac_id_for_pdev_id(soc, mac_id,
|
||||||
pdev->pdev_id);
|
pdev->pdev_id);
|
||||||
|
|
||||||
@@ -200,7 +204,9 @@ QDF_STATUS dp_mon_rings_init_1_0(struct dp_pdev *pdev)
|
|||||||
|
|
||||||
pdev_cfg_ctx = pdev->wlan_cfg_ctx;
|
pdev_cfg_ctx = pdev->wlan_cfg_ctx;
|
||||||
|
|
||||||
for (mac_id = 0; mac_id < NUM_RXDMA_RINGS_PER_PDEV; mac_id++) {
|
for (mac_id = 0;
|
||||||
|
mac_id < soc->wlan_cfg_ctx->num_rxdma_status_rings_per_pdev;
|
||||||
|
mac_id++) {
|
||||||
int lmac_id = dp_get_lmac_id_for_pdev_id(soc, mac_id,
|
int lmac_id = dp_get_lmac_id_for_pdev_id(soc, mac_id,
|
||||||
pdev->pdev_id);
|
pdev->pdev_id);
|
||||||
|
|
||||||
@@ -231,7 +237,9 @@ QDF_STATUS dp_mon_rings_alloc_1_0(struct dp_pdev *pdev)
|
|||||||
|
|
||||||
pdev_cfg_ctx = pdev->wlan_cfg_ctx;
|
pdev_cfg_ctx = pdev->wlan_cfg_ctx;
|
||||||
|
|
||||||
for (mac_id = 0; mac_id < NUM_RXDMA_RINGS_PER_PDEV; mac_id++) {
|
for (mac_id = 0;
|
||||||
|
mac_id < soc->wlan_cfg_ctx->num_rxdma_status_rings_per_pdev;
|
||||||
|
mac_id++) {
|
||||||
int lmac_id =
|
int lmac_id =
|
||||||
dp_get_lmac_id_for_pdev_id(soc, mac_id, pdev->pdev_id);
|
dp_get_lmac_id_for_pdev_id(soc, mac_id, pdev->pdev_id);
|
||||||
entries = wlan_cfg_get_dma_mon_stat_ring_size(pdev_cfg_ctx);
|
entries = wlan_cfg_get_dma_mon_stat_ring_size(pdev_cfg_ctx);
|
||||||
@@ -636,6 +644,9 @@ QDF_STATUS dp_mon_htt_srng_setup_1_0(struct dp_soc *soc,
|
|||||||
if (status != QDF_STATUS_SUCCESS)
|
if (status != QDF_STATUS_SUCCESS)
|
||||||
return status;
|
return status;
|
||||||
|
|
||||||
|
if (!soc->rxdma_mon_status_ring[mac_id].hal_srng)
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
|
||||||
status = htt_srng_setup(soc->htt_handle, mac_for_pdev,
|
status = htt_srng_setup(soc->htt_handle, mac_for_pdev,
|
||||||
soc->rxdma_mon_status_ring[mac_id]
|
soc->rxdma_mon_status_ring[mac_id]
|
||||||
.hal_srng,
|
.hal_srng,
|
||||||
|
@@ -1403,7 +1403,9 @@ static void dp_cfr_filter(struct cdp_soc_t *soc_hdl,
|
|||||||
htt_tlv_filter.mo_data_filter = filter_val->mo_data;
|
htt_tlv_filter.mo_data_filter = filter_val->mo_data;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (mac_id = 0; mac_id < max_mac_rings; mac_id++) {
|
for (mac_id = 0;
|
||||||
|
mac_id < soc->wlan_cfg_ctx->num_rxdma_status_rings_per_pdev;
|
||||||
|
mac_id++) {
|
||||||
int mac_for_pdev =
|
int mac_for_pdev =
|
||||||
dp_get_mac_id_for_pdev(mac_id,
|
dp_get_mac_id_for_pdev(mac_id,
|
||||||
pdev->pdev_id);
|
pdev->pdev_id);
|
||||||
|
@@ -92,6 +92,9 @@ dp_mon_ht2_rx_ring_cfg(struct dp_soc *soc,
|
|||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!hal_ring_hdl)
|
||||||
|
continue;
|
||||||
|
|
||||||
status = htt_h2t_rx_ring_cfg(soc->htt_handle, mac_for_pdev,
|
status = htt_h2t_rx_ring_cfg(soc->htt_handle, mac_for_pdev,
|
||||||
hal_ring_hdl, hal_ring_type,
|
hal_ring_hdl, hal_ring_type,
|
||||||
ring_buf_size,
|
ring_buf_size,
|
||||||
|
@@ -201,16 +201,20 @@ static const uint8_t rx_ring_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|||||||
|
|
||||||
#ifdef CONFIG_BERYLLIUM
|
#ifdef CONFIG_BERYLLIUM
|
||||||
static const uint8_t rxdma2host_ring_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
static const uint8_t rxdma2host_ring_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
||||||
[13] = WLAN_CFG_RXDMA2HOST_RING_MASK_0 |
|
[13] = WLAN_CFG_RXDMA2HOST_RING_MASK_0};
|
||||||
WLAN_CFG_RXDMA2HOST_RING_MASK_1};
|
|
||||||
#else
|
#else
|
||||||
static const uint8_t rxdma2host_ring_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
static const uint8_t rxdma2host_ring_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
||||||
[5] = WLAN_CFG_RXDMA2HOST_RING_MASK_0,
|
[5] = WLAN_CFG_RXDMA2HOST_RING_MASK_0,
|
||||||
[6] = WLAN_CFG_RXDMA2HOST_RING_MASK_1};
|
[6] = WLAN_CFG_RXDMA2HOST_RING_MASK_1};
|
||||||
#endif /* CONFIG_BERYLLIUM */
|
#endif /* CONFIG_BERYLLIUM */
|
||||||
|
|
||||||
|
#ifdef CONFIG_BERYLLIUM
|
||||||
|
static const uint8_t rx_mon_ring_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
||||||
|
[5] = WLAN_CFG_RX_MON_RING_MASK_0};
|
||||||
|
#else
|
||||||
static const uint8_t rx_mon_ring_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
static const uint8_t rx_mon_ring_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
||||||
[1] = WLAN_CFG_RX_MON_RING_MASK_0, [2] = WLAN_CFG_RX_MON_RING_MASK_1};
|
[1] = WLAN_CFG_RX_MON_RING_MASK_0, [2] = WLAN_CFG_RX_MON_RING_MASK_1};
|
||||||
|
#endif
|
||||||
|
|
||||||
static const uint8_t host2rxdma_ring_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = {0};
|
static const uint8_t host2rxdma_ring_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = {0};
|
||||||
|
|
||||||
@@ -2141,6 +2145,8 @@ wlan_cfg_soc_attach(struct cdp_ctrl_objmgr_psoc *psoc)
|
|||||||
PKT_CAPTURE_MODE_DATA_ONLY;
|
PKT_CAPTURE_MODE_DATA_ONLY;
|
||||||
#endif
|
#endif
|
||||||
wlan_cfg_ctx->num_rxdma_dst_rings_per_pdev = NUM_RXDMA_RINGS_PER_PDEV;
|
wlan_cfg_ctx->num_rxdma_dst_rings_per_pdev = NUM_RXDMA_RINGS_PER_PDEV;
|
||||||
|
wlan_cfg_ctx->num_rxdma_status_rings_per_pdev =
|
||||||
|
NUM_RXDMA_RINGS_PER_PDEV;
|
||||||
|
|
||||||
return wlan_cfg_ctx;
|
return wlan_cfg_ctx;
|
||||||
}
|
}
|
||||||
|
@@ -250,6 +250,7 @@ struct wlan_srng_cfg {
|
|||||||
* @vdev_stats_hw_offload_config: HW vdev stats config
|
* @vdev_stats_hw_offload_config: HW vdev stats config
|
||||||
* @vdev_stats_hw_offload_timer: HW vdev stats timer duration
|
* @vdev_stats_hw_offload_timer: HW vdev stats timer duration
|
||||||
* @txmon_hw_support: TxMON HW support
|
* @txmon_hw_support: TxMON HW support
|
||||||
|
* @num_rxdma_status_rings_per_pdev: Num RXDMA status rings
|
||||||
*/
|
*/
|
||||||
struct wlan_cfg_dp_soc_ctxt {
|
struct wlan_cfg_dp_soc_ctxt {
|
||||||
int num_int_ctxts;
|
int num_int_ctxts;
|
||||||
@@ -410,6 +411,7 @@ struct wlan_cfg_dp_soc_ctxt {
|
|||||||
#endif
|
#endif
|
||||||
uint8_t num_rxdma_dst_rings_per_pdev;
|
uint8_t num_rxdma_dst_rings_per_pdev;
|
||||||
bool txmon_hw_support;
|
bool txmon_hw_support;
|
||||||
|
uint8_t num_rxdma_status_rings_per_pdev;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Referência em uma nova issue
Block a user