qcacmn: Use common REO2SW rings for all SOCs of MLO
Use common REO2SW rings for the packets coming from all chips of MLO Change-Id: Icdfd3292d2fbf5e38c1d3b8ff4b30b18009a49f8 CRs-Fixed: 3208378
This commit is contained in:

committed by
Madan Koyyalamudi

parent
5b5d4cb57a
commit
d66a8a55bb
@@ -1606,77 +1606,6 @@ static void dp_tx_implicit_rbm_set_be(struct dp_soc *soc,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef WLAN_MLO_MULTI_CHIP
|
|
||||||
static void dp_peer_get_reo_hash_be(struct dp_vdev *vdev,
|
|
||||||
struct cdp_peer_setup_info *setup_info,
|
|
||||||
enum cdp_host_reo_dest_ring *reo_dest,
|
|
||||||
bool *hash_based,
|
|
||||||
uint8_t *lmac_peer_id_msb)
|
|
||||||
{
|
|
||||||
struct dp_soc *soc = vdev->pdev->soc;
|
|
||||||
struct dp_soc_be *be_soc = dp_get_be_soc_from_dp_soc(soc);
|
|
||||||
uint8_t default_rx_ring_id;
|
|
||||||
uint8_t chip_id;
|
|
||||||
|
|
||||||
if (!be_soc->mlo_enabled)
|
|
||||||
return dp_vdev_get_default_reo_hash(vdev, reo_dest,
|
|
||||||
hash_based);
|
|
||||||
|
|
||||||
chip_id = be_soc->mlo_chip_id;
|
|
||||||
default_rx_ring_id =
|
|
||||||
wlan_cfg_mlo_default_rx_ring_get_by_chip_id(soc->wlan_cfg_ctx,
|
|
||||||
chip_id);
|
|
||||||
*reo_dest = hal_reo_ring_remap_value_get_be(default_rx_ring_id);
|
|
||||||
*hash_based = wlan_cfg_is_rx_hash_enabled(soc->wlan_cfg_ctx);
|
|
||||||
*lmac_peer_id_msb =
|
|
||||||
wlan_cfg_mlo_lmac_peer_id_msb_get_by_chip_id(soc->wlan_cfg_ctx,
|
|
||||||
chip_id);
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool dp_reo_remap_config_be(struct dp_soc *soc,
|
|
||||||
uint32_t *remap0,
|
|
||||||
uint32_t *remap1,
|
|
||||||
uint32_t *remap2)
|
|
||||||
{
|
|
||||||
uint8_t rx_ring_mask;
|
|
||||||
struct dp_soc_be *be_soc = dp_get_be_soc_from_dp_soc(soc);
|
|
||||||
|
|
||||||
if (!be_soc->mlo_enabled)
|
|
||||||
return dp_reo_remap_config(soc, remap0, remap1, remap2);
|
|
||||||
|
|
||||||
rx_ring_mask =
|
|
||||||
wlan_cfg_mlo_rx_ring_map_get_by_chip_id(soc->wlan_cfg_ctx, 0);
|
|
||||||
*remap0 = hal_reo_ix_remap_value_get_be(soc->hal_soc, rx_ring_mask);
|
|
||||||
|
|
||||||
rx_ring_mask =
|
|
||||||
wlan_cfg_mlo_rx_ring_map_get_by_chip_id(soc->wlan_cfg_ctx, 1);
|
|
||||||
*remap1 = hal_reo_ix_remap_value_get_be(soc->hal_soc, rx_ring_mask);
|
|
||||||
|
|
||||||
rx_ring_mask =
|
|
||||||
wlan_cfg_mlo_rx_ring_map_get_by_chip_id(soc->wlan_cfg_ctx, 2);
|
|
||||||
*remap2 = hal_reo_ix_remap_value_get_be(soc->hal_soc, rx_ring_mask);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
static void dp_peer_get_reo_hash_be(struct dp_vdev *vdev,
|
|
||||||
struct cdp_peer_setup_info *setup_info,
|
|
||||||
enum cdp_host_reo_dest_ring *reo_dest,
|
|
||||||
bool *hash_based,
|
|
||||||
uint8_t *lmac_peer_id_msb)
|
|
||||||
{
|
|
||||||
dp_vdev_get_default_reo_hash(vdev, reo_dest, hash_based);
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool dp_reo_remap_config_be(struct dp_soc *soc,
|
|
||||||
uint32_t *remap0,
|
|
||||||
uint32_t *remap1,
|
|
||||||
uint32_t *remap2)
|
|
||||||
{
|
|
||||||
return dp_reo_remap_config(soc, remap0, remap1, remap2);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
QDF_STATUS dp_txrx_set_vdev_param_be(struct dp_soc *soc,
|
QDF_STATUS dp_txrx_set_vdev_param_be(struct dp_soc *soc,
|
||||||
struct dp_vdev *vdev,
|
struct dp_vdev *vdev,
|
||||||
enum cdp_vdev_param_type param,
|
enum cdp_vdev_param_type param,
|
||||||
@@ -1837,8 +1766,6 @@ void dp_initialize_arch_ops_be(struct dp_arch_ops *arch_ops)
|
|||||||
dp_rx_peer_metadata_peer_id_get_be;
|
dp_rx_peer_metadata_peer_id_get_be;
|
||||||
arch_ops->soc_cfg_attach = dp_soc_cfg_attach_be;
|
arch_ops->soc_cfg_attach = dp_soc_cfg_attach_be;
|
||||||
arch_ops->tx_implicit_rbm_set = dp_tx_implicit_rbm_set_be;
|
arch_ops->tx_implicit_rbm_set = dp_tx_implicit_rbm_set_be;
|
||||||
arch_ops->peer_get_reo_hash = dp_peer_get_reo_hash_be;
|
|
||||||
arch_ops->reo_remap_config = dp_reo_remap_config_be;
|
|
||||||
arch_ops->txrx_set_vdev_param = dp_txrx_set_vdev_param_be;
|
arch_ops->txrx_set_vdev_param = dp_txrx_set_vdev_param_be;
|
||||||
dp_initialize_arch_ops_be_mlo(arch_ops);
|
dp_initialize_arch_ops_be_mlo(arch_ops);
|
||||||
arch_ops->dp_peer_rx_reorder_queue_setup =
|
arch_ops->dp_peer_rx_reorder_queue_setup =
|
||||||
|
@@ -147,8 +147,8 @@ uint32_t dp_rx_process_be(struct dp_intr *int_ctx,
|
|||||||
struct dp_rx_desc *rx_desc = NULL;
|
struct dp_rx_desc *rx_desc = NULL;
|
||||||
qdf_nbuf_t nbuf, next;
|
qdf_nbuf_t nbuf, next;
|
||||||
bool near_full;
|
bool near_full;
|
||||||
union dp_rx_desc_list_elem_t *head[MAX_PDEV_CNT];
|
union dp_rx_desc_list_elem_t *head[WLAN_MAX_MLO_CHIPS][MAX_PDEV_CNT];
|
||||||
union dp_rx_desc_list_elem_t *tail[MAX_PDEV_CNT];
|
union dp_rx_desc_list_elem_t *tail[WLAN_MAX_MLO_CHIPS][MAX_PDEV_CNT];
|
||||||
uint32_t num_pending;
|
uint32_t num_pending;
|
||||||
uint32_t rx_bufs_used = 0, rx_buf_cookie;
|
uint32_t rx_bufs_used = 0, rx_buf_cookie;
|
||||||
uint16_t msdu_len = 0;
|
uint16_t msdu_len = 0;
|
||||||
@@ -163,7 +163,7 @@ uint32_t dp_rx_process_be(struct dp_intr *int_ctx,
|
|||||||
enum hal_reo_error_status error;
|
enum hal_reo_error_status error;
|
||||||
uint32_t peer_mdata;
|
uint32_t peer_mdata;
|
||||||
uint8_t *rx_tlv_hdr;
|
uint8_t *rx_tlv_hdr;
|
||||||
uint32_t rx_bufs_reaped[MAX_PDEV_CNT];
|
uint32_t rx_bufs_reaped[WLAN_MAX_MLO_CHIPS][MAX_PDEV_CNT];
|
||||||
uint8_t mac_id = 0;
|
uint8_t mac_id = 0;
|
||||||
struct dp_pdev *rx_pdev;
|
struct dp_pdev *rx_pdev;
|
||||||
bool enh_flag;
|
bool enh_flag;
|
||||||
@@ -192,6 +192,7 @@ uint32_t dp_rx_process_be(struct dp_intr *int_ctx,
|
|||||||
struct dp_srng *rx_ring = &soc->reo_dest_ring[reo_ring_num];
|
struct dp_srng *rx_ring = &soc->reo_dest_ring[reo_ring_num];
|
||||||
int max_reap_limit, ring_near_full;
|
int max_reap_limit, ring_near_full;
|
||||||
struct dp_soc *replenish_soc;
|
struct dp_soc *replenish_soc;
|
||||||
|
uint8_t chip_id;
|
||||||
|
|
||||||
DP_HIST_INIT();
|
DP_HIST_INIT();
|
||||||
|
|
||||||
@@ -279,8 +280,8 @@ more_data:
|
|||||||
dp_rx_buffer_pool_nbuf_free(soc, rx_desc->nbuf,
|
dp_rx_buffer_pool_nbuf_free(soc, rx_desc->nbuf,
|
||||||
rx_desc->pool_id);
|
rx_desc->pool_id);
|
||||||
dp_rx_add_to_free_desc_list(
|
dp_rx_add_to_free_desc_list(
|
||||||
&head[rx_desc->pool_id],
|
&head[rx_desc->chip_id][rx_desc->pool_id],
|
||||||
&tail[rx_desc->pool_id],
|
&tail[rx_desc->chip_id][rx_desc->pool_id],
|
||||||
rx_desc);
|
rx_desc);
|
||||||
}
|
}
|
||||||
hal_srng_dst_get_next(hal_soc, hal_ring_hdl);
|
hal_srng_dst_get_next(hal_soc, hal_ring_hdl);
|
||||||
@@ -377,7 +378,7 @@ more_data:
|
|||||||
/* Pop out the descriptor*/
|
/* Pop out the descriptor*/
|
||||||
hal_srng_dst_get_next(hal_soc, hal_ring_hdl);
|
hal_srng_dst_get_next(hal_soc, hal_ring_hdl);
|
||||||
|
|
||||||
rx_bufs_reaped[rx_desc->pool_id]++;
|
rx_bufs_reaped[rx_desc->chip_id][rx_desc->pool_id]++;
|
||||||
peer_mdata = mpdu_desc_info.peer_meta_data;
|
peer_mdata = mpdu_desc_info.peer_meta_data;
|
||||||
QDF_NBUF_CB_RX_PEER_ID(rx_desc->nbuf) =
|
QDF_NBUF_CB_RX_PEER_ID(rx_desc->nbuf) =
|
||||||
dp_rx_peer_metadata_peer_id_get_be(soc, peer_mdata);
|
dp_rx_peer_metadata_peer_id_get_be(soc, peer_mdata);
|
||||||
@@ -447,8 +448,9 @@ more_data:
|
|||||||
if (qdf_likely(!qdf_nbuf_is_rx_chfrag_cont(rx_desc->nbuf)))
|
if (qdf_likely(!qdf_nbuf_is_rx_chfrag_cont(rx_desc->nbuf)))
|
||||||
quota -= 1;
|
quota -= 1;
|
||||||
|
|
||||||
dp_rx_add_to_free_desc_list(&head[rx_desc->pool_id],
|
dp_rx_add_to_free_desc_list
|
||||||
&tail[rx_desc->pool_id], rx_desc);
|
(&head[rx_desc->chip_id][rx_desc->pool_id],
|
||||||
|
&tail[rx_desc->chip_id][rx_desc->pool_id], rx_desc);
|
||||||
num_rx_bufs_reaped++;
|
num_rx_bufs_reaped++;
|
||||||
/*
|
/*
|
||||||
* only if complete msdu is received for scatter case,
|
* only if complete msdu is received for scatter case,
|
||||||
@@ -462,25 +464,30 @@ more_data:
|
|||||||
done:
|
done:
|
||||||
dp_rx_srng_access_end(int_ctx, soc, hal_ring_hdl);
|
dp_rx_srng_access_end(int_ctx, soc, hal_ring_hdl);
|
||||||
|
|
||||||
replenish_soc = dp_rx_replensih_soc_get(soc, reo_ring_num);
|
for (chip_id = 0; chip_id < WLAN_MAX_MLO_CHIPS; chip_id++) {
|
||||||
for (mac_id = 0; mac_id < MAX_PDEV_CNT; mac_id++) {
|
for (mac_id = 0; mac_id < MAX_PDEV_CNT; mac_id++) {
|
||||||
/*
|
/*
|
||||||
* continue with next mac_id if no pkts were reaped
|
* continue with next mac_id if no pkts were reaped
|
||||||
* from that pool
|
* from that pool
|
||||||
*/
|
*/
|
||||||
if (!rx_bufs_reaped[mac_id])
|
if (!rx_bufs_reaped[chip_id][mac_id])
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
dp_rxdma_srng = &replenish_soc->rx_refill_buf_ring[mac_id];
|
replenish_soc = dp_rx_replensih_soc_get(soc, chip_id);
|
||||||
|
|
||||||
|
dp_rxdma_srng =
|
||||||
|
&replenish_soc->rx_refill_buf_ring[mac_id];
|
||||||
|
|
||||||
rx_desc_pool = &replenish_soc->rx_desc_buf[mac_id];
|
rx_desc_pool = &replenish_soc->rx_desc_buf[mac_id];
|
||||||
|
|
||||||
dp_rx_buffers_replenish(replenish_soc, mac_id, dp_rxdma_srng,
|
dp_rx_buffers_replenish(replenish_soc, mac_id,
|
||||||
rx_desc_pool, rx_bufs_reaped[mac_id],
|
dp_rxdma_srng, rx_desc_pool,
|
||||||
&head[mac_id], &tail[mac_id]);
|
rx_bufs_reaped[chip_id][mac_id],
|
||||||
|
&head[chip_id][mac_id],
|
||||||
|
&tail[chip_id][mac_id]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dp_verbose_debug("replenished %u\n", rx_bufs_reaped[0]);
|
|
||||||
/* Peer can be NULL is case of LFR */
|
/* Peer can be NULL is case of LFR */
|
||||||
if (qdf_likely(txrx_peer))
|
if (qdf_likely(txrx_peer))
|
||||||
vdev = NULL;
|
vdev = NULL;
|
||||||
@@ -919,6 +926,7 @@ dp_rx_desc_pool_init_be_cc(struct dp_soc *soc,
|
|||||||
rx_desc_elem->rx_desc.cookie =
|
rx_desc_elem->rx_desc.cookie =
|
||||||
dp_cc_desc_id_generate(page_desc->ppt_index,
|
dp_cc_desc_id_generate(page_desc->ppt_index,
|
||||||
avail_entry_index);
|
avail_entry_index);
|
||||||
|
rx_desc_elem->rx_desc.chip_id = dp_mlo_get_chip_id(soc);
|
||||||
rx_desc_elem->rx_desc.pool_id = pool_id;
|
rx_desc_elem->rx_desc.pool_id = pool_id;
|
||||||
rx_desc_elem->rx_desc.in_use = 0;
|
rx_desc_elem->rx_desc.in_use = 0;
|
||||||
rx_desc_elem = rx_desc_elem->next;
|
rx_desc_elem = rx_desc_elem->next;
|
||||||
@@ -977,6 +985,8 @@ dp_rx_desc_pool_init_be_cc(struct dp_soc *soc,
|
|||||||
avail_entry_index);
|
avail_entry_index);
|
||||||
rx_desc_pool->array[i].rx_desc.pool_id = pool_id;
|
rx_desc_pool->array[i].rx_desc.pool_id = pool_id;
|
||||||
rx_desc_pool->array[i].rx_desc.in_use = 0;
|
rx_desc_pool->array[i].rx_desc.in_use = 0;
|
||||||
|
rx_desc_pool->array[i].rx_desc.chip_id =
|
||||||
|
dp_mlo_get_chip_id(soc);
|
||||||
|
|
||||||
avail_entry_index = (avail_entry_index + 1) &
|
avail_entry_index = (avail_entry_index + 1) &
|
||||||
DP_CC_SPT_PAGE_MAX_ENTRIES_MASK;
|
DP_CC_SPT_PAGE_MAX_ENTRIES_MASK;
|
||||||
|
@@ -216,10 +216,10 @@ uint32_t dp_rx_nf_process(struct dp_intr *int_ctx,
|
|||||||
|
|
||||||
#if defined(WLAN_FEATURE_11BE_MLO) && defined(WLAN_MLO_MULTI_CHIP)
|
#if defined(WLAN_FEATURE_11BE_MLO) && defined(WLAN_MLO_MULTI_CHIP)
|
||||||
struct dp_soc *
|
struct dp_soc *
|
||||||
dp_rx_replensih_soc_get(struct dp_soc *soc, uint8_t reo_ring_num);
|
dp_rx_replensih_soc_get(struct dp_soc *soc, uint8_t chip_id);
|
||||||
#else
|
#else
|
||||||
static inline struct dp_soc *
|
static inline struct dp_soc *
|
||||||
dp_rx_replensih_soc_get(struct dp_soc *soc, uint8_t reo_ring_num)
|
dp_rx_replensih_soc_get(struct dp_soc *soc, uint8_t chip_id)
|
||||||
{
|
{
|
||||||
return soc;
|
return soc;
|
||||||
}
|
}
|
||||||
|
@@ -543,26 +543,22 @@ void dp_mlo_get_rx_hash_key(struct dp_soc *soc,
|
|||||||
}
|
}
|
||||||
|
|
||||||
struct dp_soc *
|
struct dp_soc *
|
||||||
dp_rx_replensih_soc_get(struct dp_soc *soc, uint8_t reo_ring_num)
|
dp_rx_replensih_soc_get(struct dp_soc *soc, uint8_t chip_id)
|
||||||
{
|
{
|
||||||
struct dp_soc_be *be_soc = dp_get_be_soc_from_dp_soc(soc);
|
struct dp_soc_be *be_soc = dp_get_be_soc_from_dp_soc(soc);
|
||||||
struct dp_mlo_ctxt *mlo_ctxt = be_soc->ml_ctxt;
|
struct dp_mlo_ctxt *mlo_ctxt = be_soc->ml_ctxt;
|
||||||
uint8_t chip_id;
|
struct dp_soc *replenish_soc;
|
||||||
uint8_t rx_ring_mask;
|
|
||||||
|
|
||||||
if (!be_soc->mlo_enabled || !mlo_ctxt)
|
if (!be_soc->mlo_enabled || !mlo_ctxt)
|
||||||
return soc;
|
return soc;
|
||||||
|
|
||||||
for (chip_id = 0; chip_id < WLAN_MAX_MLO_CHIPS; chip_id++) {
|
replenish_soc = dp_mlo_get_soc_ref_by_chip_id(mlo_ctxt, chip_id);
|
||||||
rx_ring_mask =
|
if (qdf_unlikely(!replenish_soc)) {
|
||||||
wlan_cfg_mlo_rx_ring_map_get_by_chip_id
|
dp_alert("replenish SOC is NULL");
|
||||||
(soc->wlan_cfg_ctx, chip_id);
|
qdf_assert_always(0);
|
||||||
|
|
||||||
if (rx_ring_mask & (1 << reo_ring_num))
|
|
||||||
return dp_mlo_get_soc_ref_by_chip_id(mlo_ctxt, chip_id);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return soc;
|
return replenish_soc;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef WLAN_MCAST_MLO
|
#ifdef WLAN_MCAST_MLO
|
||||||
|
@@ -7554,10 +7554,8 @@ static inline bool dp_is_vdev_subtype_p2p(struct dp_vdev *vdev)
|
|||||||
* Return: None
|
* Return: None
|
||||||
*/
|
*/
|
||||||
static void dp_peer_setup_get_reo_hash(struct dp_vdev *vdev,
|
static void dp_peer_setup_get_reo_hash(struct dp_vdev *vdev,
|
||||||
struct cdp_peer_setup_info *setup_info,
|
|
||||||
enum cdp_host_reo_dest_ring *reo_dest,
|
enum cdp_host_reo_dest_ring *reo_dest,
|
||||||
bool *hash_based,
|
bool *hash_based)
|
||||||
uint8_t *lmac_peer_id_msb)
|
|
||||||
{
|
{
|
||||||
struct dp_soc *soc;
|
struct dp_soc *soc;
|
||||||
struct dp_pdev *pdev;
|
struct dp_pdev *pdev;
|
||||||
@@ -7605,15 +7603,10 @@ static void dp_peer_setup_get_reo_hash(struct dp_vdev *vdev,
|
|||||||
* Return: None
|
* Return: None
|
||||||
*/
|
*/
|
||||||
static void dp_peer_setup_get_reo_hash(struct dp_vdev *vdev,
|
static void dp_peer_setup_get_reo_hash(struct dp_vdev *vdev,
|
||||||
struct cdp_peer_setup_info *setup_info,
|
|
||||||
enum cdp_host_reo_dest_ring *reo_dest,
|
enum cdp_host_reo_dest_ring *reo_dest,
|
||||||
bool *hash_based,
|
bool *hash_based)
|
||||||
uint8_t *lmac_peer_id_msb)
|
|
||||||
{
|
{
|
||||||
struct dp_soc *soc = vdev->pdev->soc;
|
dp_vdev_get_default_reo_hash(vdev, reo_dest, hash_based);
|
||||||
|
|
||||||
soc->arch_ops.peer_get_reo_hash(vdev, setup_info, reo_dest, hash_based,
|
|
||||||
lmac_peer_id_msb);
|
|
||||||
}
|
}
|
||||||
#endif /* IPA_OFFLOAD */
|
#endif /* IPA_OFFLOAD */
|
||||||
|
|
||||||
@@ -7656,9 +7649,7 @@ dp_peer_setup_wifi3(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
|
|||||||
/* save vdev related member in case vdev freed */
|
/* save vdev related member in case vdev freed */
|
||||||
vdev_opmode = vdev->opmode;
|
vdev_opmode = vdev->opmode;
|
||||||
pdev = vdev->pdev;
|
pdev = vdev->pdev;
|
||||||
dp_peer_setup_get_reo_hash(vdev, setup_info,
|
dp_peer_setup_get_reo_hash(vdev, &reo_dest, &hash_based);
|
||||||
&reo_dest, &hash_based,
|
|
||||||
&lmac_peer_id_msb);
|
|
||||||
|
|
||||||
dp_info("pdev: %d vdev :%d opmode:%u hash-based-steering:%d default-reo_dest:%u",
|
dp_info("pdev: %d vdev :%d opmode:%u hash-based-steering:%d default-reo_dest:%u",
|
||||||
pdev->pdev_id, vdev->vdev_id,
|
pdev->pdev_id, vdev->vdev_id,
|
||||||
@@ -14035,7 +14026,8 @@ void *dp_soc_init(struct dp_soc *soc, HTC_HANDLE htc_handle,
|
|||||||
* Reo ring remap is not required if both radios
|
* Reo ring remap is not required if both radios
|
||||||
* are offloaded to NSS
|
* are offloaded to NSS
|
||||||
*/
|
*/
|
||||||
if (soc->arch_ops.reo_remap_config(soc, &reo_params.remap0,
|
|
||||||
|
if (dp_reo_remap_config(soc, &reo_params.remap0,
|
||||||
&reo_params.remap1,
|
&reo_params.remap1,
|
||||||
&reo_params.remap2))
|
&reo_params.remap2))
|
||||||
reo_params.rx_hash_enabled = true;
|
reo_params.rx_hash_enabled = true;
|
||||||
|
@@ -115,6 +115,8 @@ struct dp_rx_desc_dbg_info {
|
|||||||
* @pool_id : pool Id for which this allocated.
|
* @pool_id : pool Id for which this allocated.
|
||||||
* Can only be used if there is no flow
|
* Can only be used if there is no flow
|
||||||
* steering
|
* steering
|
||||||
|
* @chip_id : chip_id indicating MLO chip_id
|
||||||
|
* valid or used only in case of multi-chip MLO
|
||||||
* @in_use rx_desc is in use
|
* @in_use rx_desc is in use
|
||||||
* @unmapped used to mark rx_desc an unmapped if the corresponding
|
* @unmapped used to mark rx_desc an unmapped if the corresponding
|
||||||
* nbuf is already unmapped
|
* nbuf is already unmapped
|
||||||
@@ -127,6 +129,7 @@ struct dp_rx_desc {
|
|||||||
qdf_dma_addr_t paddr_buf_start;
|
qdf_dma_addr_t paddr_buf_start;
|
||||||
uint32_t cookie;
|
uint32_t cookie;
|
||||||
uint8_t pool_id;
|
uint8_t pool_id;
|
||||||
|
uint8_t chip_id;
|
||||||
#ifdef RX_DESC_DEBUG_CHECK
|
#ifdef RX_DESC_DEBUG_CHECK
|
||||||
uint32_t magic;
|
uint32_t magic;
|
||||||
uint8_t *nbuf_data_addr;
|
uint8_t *nbuf_data_addr;
|
||||||
|
@@ -1716,13 +1716,6 @@ struct dp_arch_ops {
|
|||||||
void (*txrx_peer_map_detach)(struct dp_soc *soc);
|
void (*txrx_peer_map_detach)(struct dp_soc *soc);
|
||||||
QDF_STATUS (*dp_rxdma_ring_sel_cfg)(struct dp_soc *soc);
|
QDF_STATUS (*dp_rxdma_ring_sel_cfg)(struct dp_soc *soc);
|
||||||
void (*soc_cfg_attach)(struct dp_soc *soc);
|
void (*soc_cfg_attach)(struct dp_soc *soc);
|
||||||
void (*peer_get_reo_hash)(struct dp_vdev *vdev,
|
|
||||||
struct cdp_peer_setup_info *setup_info,
|
|
||||||
enum cdp_host_reo_dest_ring *reo_dest,
|
|
||||||
bool *hash_based,
|
|
||||||
uint8_t *lmac_peer_id_msb);
|
|
||||||
bool (*reo_remap_config)(struct dp_soc *soc, uint32_t *remap0,
|
|
||||||
uint32_t *remap1, uint32_t *remap2);
|
|
||||||
|
|
||||||
/* TX RX Arch Ops */
|
/* TX RX Arch Ops */
|
||||||
QDF_STATUS (*tx_hw_enqueue)(struct dp_soc *soc, struct dp_vdev *vdev,
|
QDF_STATUS (*tx_hw_enqueue)(struct dp_soc *soc, struct dp_vdev *vdev,
|
||||||
|
@@ -508,23 +508,6 @@ static void dp_tx_implicit_rbm_set_li(struct dp_soc *soc,
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
static void dp_peer_get_reo_hash_li(struct dp_vdev *vdev,
|
|
||||||
struct cdp_peer_setup_info *setup_info,
|
|
||||||
enum cdp_host_reo_dest_ring *reo_dest,
|
|
||||||
bool *hash_based,
|
|
||||||
uint8_t *lmac_peer_id_msb)
|
|
||||||
{
|
|
||||||
dp_vdev_get_default_reo_hash(vdev, reo_dest, hash_based);
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool dp_reo_remap_config_li(struct dp_soc *soc,
|
|
||||||
uint32_t *remap0,
|
|
||||||
uint32_t *remap1,
|
|
||||||
uint32_t *remap2)
|
|
||||||
{
|
|
||||||
return dp_reo_remap_config(soc, remap0, remap1, remap2);
|
|
||||||
}
|
|
||||||
|
|
||||||
static QDF_STATUS dp_txrx_set_vdev_param_li(struct dp_soc *soc,
|
static QDF_STATUS dp_txrx_set_vdev_param_li(struct dp_soc *soc,
|
||||||
struct dp_vdev *vdev,
|
struct dp_vdev *vdev,
|
||||||
enum cdp_vdev_param_type param,
|
enum cdp_vdev_param_type param,
|
||||||
@@ -619,8 +602,6 @@ void dp_initialize_arch_ops_li(struct dp_arch_ops *arch_ops)
|
|||||||
dp_rx_peer_metadata_peer_id_get_li;
|
dp_rx_peer_metadata_peer_id_get_li;
|
||||||
arch_ops->soc_cfg_attach = dp_soc_cfg_attach_li;
|
arch_ops->soc_cfg_attach = dp_soc_cfg_attach_li;
|
||||||
arch_ops->tx_implicit_rbm_set = dp_tx_implicit_rbm_set_li;
|
arch_ops->tx_implicit_rbm_set = dp_tx_implicit_rbm_set_li;
|
||||||
arch_ops->peer_get_reo_hash = dp_peer_get_reo_hash_li;
|
|
||||||
arch_ops->reo_remap_config = dp_reo_remap_config_li;
|
|
||||||
arch_ops->txrx_set_vdev_param = dp_txrx_set_vdev_param_li;
|
arch_ops->txrx_set_vdev_param = dp_txrx_set_vdev_param_li;
|
||||||
arch_ops->txrx_print_peer_stats = dp_print_peer_txrx_stats_li;
|
arch_ops->txrx_print_peer_stats = dp_print_peer_txrx_stats_li;
|
||||||
arch_ops->dp_peer_rx_reorder_queue_setup =
|
arch_ops->dp_peer_rx_reorder_queue_setup =
|
||||||
|
Reference in New Issue
Block a user