qcacmn: York Scan radio monitor mode bringup
Initial changes for York scan radio bringup in monitor mode. Change-Id: I99c9a6eea4c9bf2255b92975e3862500d31c2f1d CRs-Fixed: 3421410
This commit is contained in:

committed by
Madan Koyyalamudi

parent
f5553f82ef
commit
ea42206e31
@@ -2610,6 +2610,13 @@ static int dp_process_rxdma_dst_ring(struct dp_soc *soc,
|
|||||||
int mac_for_pdev,
|
int mac_for_pdev,
|
||||||
int total_budget)
|
int total_budget)
|
||||||
{
|
{
|
||||||
|
uint32_t target_type;
|
||||||
|
|
||||||
|
target_type = hal_get_target_type(soc->hal_soc);
|
||||||
|
if (target_type == TARGET_TYPE_QCN9160)
|
||||||
|
return dp_monitor_process(soc, int_ctx,
|
||||||
|
mac_for_pdev, total_budget);
|
||||||
|
else
|
||||||
return dp_rxdma_err_process(int_ctx, soc, mac_for_pdev,
|
return dp_rxdma_err_process(int_ctx, soc, mac_for_pdev,
|
||||||
total_budget);
|
total_budget);
|
||||||
}
|
}
|
||||||
@@ -17263,11 +17270,14 @@ static void dp_soc_cfg_attach(struct dp_soc *soc)
|
|||||||
case TARGET_TYPE_QCA6018:
|
case TARGET_TYPE_QCA6018:
|
||||||
case TARGET_TYPE_QCA9574:
|
case TARGET_TYPE_QCA9574:
|
||||||
case TARGET_TYPE_QCN6122:
|
case TARGET_TYPE_QCN6122:
|
||||||
case TARGET_TYPE_QCN9160:
|
|
||||||
case TARGET_TYPE_QCA5018:
|
case TARGET_TYPE_QCA5018:
|
||||||
wlan_cfg_set_tso_desc_attach_defer(soc->wlan_cfg_ctx, 1);
|
wlan_cfg_set_tso_desc_attach_defer(soc->wlan_cfg_ctx, 1);
|
||||||
wlan_cfg_set_rxdma1_enable(soc->wlan_cfg_ctx);
|
wlan_cfg_set_rxdma1_enable(soc->wlan_cfg_ctx);
|
||||||
break;
|
break;
|
||||||
|
case TARGET_TYPE_QCN9160:
|
||||||
|
wlan_cfg_set_tso_desc_attach_defer(soc->wlan_cfg_ctx, 1);
|
||||||
|
soc->wlan_cfg_ctx->rxdma1_enable = 0;
|
||||||
|
break;
|
||||||
case TARGET_TYPE_QCN9000:
|
case TARGET_TYPE_QCN9000:
|
||||||
wlan_cfg_set_tso_desc_attach_defer(soc->wlan_cfg_ctx, 1);
|
wlan_cfg_set_tso_desc_attach_defer(soc->wlan_cfg_ctx, 1);
|
||||||
wlan_cfg_set_rxdma1_enable(soc->wlan_cfg_ctx);
|
wlan_cfg_set_rxdma1_enable(soc->wlan_cfg_ctx);
|
||||||
|
@@ -3057,6 +3057,7 @@ QDF_STATUS dp_rx_pdev_desc_pool_init(struct dp_pdev *pdev)
|
|||||||
uint32_t rx_sw_desc_num;
|
uint32_t rx_sw_desc_num;
|
||||||
struct dp_srng *dp_rxdma_srng;
|
struct dp_srng *dp_rxdma_srng;
|
||||||
struct rx_desc_pool *rx_desc_pool;
|
struct rx_desc_pool *rx_desc_pool;
|
||||||
|
uint32_t target_type = hal_get_target_type(soc->hal_soc);
|
||||||
|
|
||||||
rx_desc_pool = &soc->rx_desc_buf[mac_for_pdev];
|
rx_desc_pool = &soc->rx_desc_buf[mac_for_pdev];
|
||||||
if (wlan_cfg_get_dp_pdev_nss_enabled(pdev->wlan_cfg_ctx)) {
|
if (wlan_cfg_get_dp_pdev_nss_enabled(pdev->wlan_cfg_ctx)) {
|
||||||
@@ -3086,6 +3087,9 @@ QDF_STATUS dp_rx_pdev_desc_pool_init(struct dp_pdev *pdev)
|
|||||||
rx_desc_pool->buf_size = RX_DATA_BUFFER_SIZE;
|
rx_desc_pool->buf_size = RX_DATA_BUFFER_SIZE;
|
||||||
rx_desc_pool->buf_alignment = RX_DATA_BUFFER_ALIGNMENT;
|
rx_desc_pool->buf_alignment = RX_DATA_BUFFER_ALIGNMENT;
|
||||||
/* Disable monitor dest processing via frag */
|
/* Disable monitor dest processing via frag */
|
||||||
|
if (target_type == TARGET_TYPE_QCN9160)
|
||||||
|
dp_rx_enable_mon_dest_frag(rx_desc_pool, true);
|
||||||
|
else
|
||||||
dp_rx_enable_mon_dest_frag(rx_desc_pool, false);
|
dp_rx_enable_mon_dest_frag(rx_desc_pool, false);
|
||||||
|
|
||||||
dp_rx_desc_pool_init(soc, mac_for_pdev,
|
dp_rx_desc_pool_init(soc, mac_for_pdev,
|
||||||
@@ -3112,6 +3116,7 @@ dp_rx_pdev_buffers_alloc(struct dp_pdev *pdev)
|
|||||||
struct dp_srng *dp_rxdma_srng;
|
struct dp_srng *dp_rxdma_srng;
|
||||||
struct rx_desc_pool *rx_desc_pool;
|
struct rx_desc_pool *rx_desc_pool;
|
||||||
uint32_t rxdma_entries;
|
uint32_t rxdma_entries;
|
||||||
|
uint32_t target_type = hal_get_target_type(soc->hal_soc);
|
||||||
|
|
||||||
dp_rxdma_srng = &soc->rx_refill_buf_ring[mac_for_pdev];
|
dp_rxdma_srng = &soc->rx_refill_buf_ring[mac_for_pdev];
|
||||||
rxdma_entries = dp_rxdma_srng->num_entries;
|
rxdma_entries = dp_rxdma_srng->num_entries;
|
||||||
@@ -3123,6 +3128,12 @@ dp_rx_pdev_buffers_alloc(struct dp_pdev *pdev)
|
|||||||
*/
|
*/
|
||||||
dp_rx_buffer_pool_init(soc, mac_for_pdev);
|
dp_rx_buffer_pool_init(soc, mac_for_pdev);
|
||||||
|
|
||||||
|
if (target_type == TARGET_TYPE_QCN9160)
|
||||||
|
return dp_pdev_rx_buffers_attach(soc, mac_for_pdev,
|
||||||
|
dp_rxdma_srng,
|
||||||
|
rx_desc_pool,
|
||||||
|
rxdma_entries - 1);
|
||||||
|
else
|
||||||
return dp_pdev_rx_buffers_attach_simple(soc, mac_for_pdev,
|
return dp_pdev_rx_buffers_attach_simple(soc, mac_for_pdev,
|
||||||
dp_rxdma_srng,
|
dp_rxdma_srng,
|
||||||
rx_desc_pool,
|
rx_desc_pool,
|
||||||
@@ -3135,10 +3146,15 @@ dp_rx_pdev_buffers_free(struct dp_pdev *pdev)
|
|||||||
int mac_for_pdev = pdev->lmac_id;
|
int mac_for_pdev = pdev->lmac_id;
|
||||||
struct dp_soc *soc = pdev->soc;
|
struct dp_soc *soc = pdev->soc;
|
||||||
struct rx_desc_pool *rx_desc_pool;
|
struct rx_desc_pool *rx_desc_pool;
|
||||||
|
uint32_t target_type = hal_get_target_type(soc->hal_soc);
|
||||||
|
|
||||||
rx_desc_pool = &soc->rx_desc_buf[mac_for_pdev];
|
rx_desc_pool = &soc->rx_desc_buf[mac_for_pdev];
|
||||||
|
|
||||||
|
if (target_type == TARGET_TYPE_QCN9160)
|
||||||
|
dp_rx_desc_frag_free(soc, rx_desc_pool);
|
||||||
|
else
|
||||||
dp_rx_desc_nbuf_free(soc, rx_desc_pool, false);
|
dp_rx_desc_nbuf_free(soc, rx_desc_pool, false);
|
||||||
|
|
||||||
dp_rx_buffer_pool_deinit(soc, mac_for_pdev);
|
dp_rx_buffer_pool_deinit(soc, mac_for_pdev);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -219,6 +219,10 @@ dp_rxdma_ring_sel_cfg_li(struct dp_soc *soc)
|
|||||||
struct htt_rx_ring_tlv_filter htt_tlv_filter = {0};
|
struct htt_rx_ring_tlv_filter htt_tlv_filter = {0};
|
||||||
struct dp_srng *rx_mac_srng;
|
struct dp_srng *rx_mac_srng;
|
||||||
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
||||||
|
uint32_t target_type = hal_get_target_type(soc->hal_soc);
|
||||||
|
|
||||||
|
if (target_type == TARGET_TYPE_QCN9160)
|
||||||
|
return status;
|
||||||
|
|
||||||
htt_tlv_filter.mpdu_start = 1;
|
htt_tlv_filter.mpdu_start = 1;
|
||||||
htt_tlv_filter.msdu_start = 1;
|
htt_tlv_filter.msdu_start = 1;
|
||||||
@@ -300,6 +304,10 @@ dp_rxdma_ring_sel_cfg_li(struct dp_soc *soc)
|
|||||||
struct htt_rx_ring_tlv_filter htt_tlv_filter = {0};
|
struct htt_rx_ring_tlv_filter htt_tlv_filter = {0};
|
||||||
struct dp_srng *rx_mac_srng;
|
struct dp_srng *rx_mac_srng;
|
||||||
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
||||||
|
uint32_t target_type = hal_get_target_type(soc->hal_soc);
|
||||||
|
|
||||||
|
if (target_type == TARGET_TYPE_QCN9160)
|
||||||
|
return status;
|
||||||
|
|
||||||
htt_tlv_filter.mpdu_start = 1;
|
htt_tlv_filter.mpdu_start = 1;
|
||||||
htt_tlv_filter.msdu_start = 1;
|
htt_tlv_filter.msdu_start = 1;
|
||||||
|
Reference in New Issue
Block a user