mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-10 22:40:54 -04:00
qcacmn: SmartMesh add support for multi radio
Add support for multi-radio to smart mesh feature Change-Id: I21f1a59be419cf68b3c038a08c58f17c82df33bb CRs-Fixed: 2017269
This commit is contained in:
parent
8b300c08c1
commit
7613908cb9
3 changed files with 15 additions and 11 deletions
|
|
@ -646,8 +646,8 @@ uint8_t dp_rx_process_invalid_peer(struct dp_soc *soc, qdf_nbuf_t mpdu)
|
|||
vdev = dp_rx_nac_filter(pdev, rx_pkt_hdr);
|
||||
if (vdev) {
|
||||
dp_rx_mon_deliver(soc, i,
|
||||
soc->invalid_peer_head_msdu,
|
||||
soc->invalid_peer_tail_msdu);
|
||||
pdev->invalid_peer_head_msdu,
|
||||
pdev->invalid_peer_tail_msdu);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -209,18 +209,18 @@ dp_rx_2k_jump_handle(struct dp_soc *soc, void *ring_desc,
|
|||
|
||||
static bool
|
||||
dp_rx_chain_msdus(struct dp_soc *soc, qdf_nbuf_t nbuf,
|
||||
struct dp_rx_desc *rx_desc)
|
||||
struct dp_rx_desc *rx_desc, uint8_t mac_id)
|
||||
{
|
||||
bool mpdu_done = false;
|
||||
/* TODO: Currently only single radio is supported, hence
|
||||
* pdev hard coded to '0' index
|
||||
*/
|
||||
struct dp_pdev *dp_pdev = soc->pdev_list[0];
|
||||
struct dp_pdev *dp_pdev = soc->pdev_list[mac_id];
|
||||
|
||||
if (hal_rx_msdu_end_first_msdu_get(rx_desc->rx_buf_start)) {
|
||||
qdf_nbuf_set_chfrag_start(rx_desc->nbuf, 1);
|
||||
soc->invalid_peer_head_msdu = NULL;
|
||||
soc->invalid_peer_tail_msdu = NULL;
|
||||
dp_pdev->invalid_peer_head_msdu = NULL;
|
||||
dp_pdev->invalid_peer_tail_msdu = NULL;
|
||||
|
||||
hal_rx_mon_hw_desc_get_mpdu_status(rx_desc->rx_buf_start,
|
||||
&(dp_pdev->ppdu_info.rx_status));
|
||||
|
|
@ -232,8 +232,8 @@ dp_rx_chain_msdus(struct dp_soc *soc, qdf_nbuf_t nbuf,
|
|||
mpdu_done = true;
|
||||
}
|
||||
|
||||
DP_RX_LIST_APPEND(soc->invalid_peer_head_msdu,
|
||||
soc->invalid_peer_tail_msdu,
|
||||
DP_RX_LIST_APPEND(dp_pdev->invalid_peer_head_msdu,
|
||||
dp_pdev->invalid_peer_tail_msdu,
|
||||
nbuf);
|
||||
|
||||
return mpdu_done;
|
||||
|
|
@ -277,6 +277,7 @@ dp_rx_null_q_desc_handle(struct dp_soc *soc, struct dp_rx_desc *rx_desc,
|
|||
struct dp_ast_entry *ase;
|
||||
uint16_t sa_idx;
|
||||
uint8_t *data;
|
||||
uint8_t pool_id;
|
||||
|
||||
rx_bufs_used++;
|
||||
|
||||
|
|
@ -287,6 +288,8 @@ dp_rx_null_q_desc_handle(struct dp_soc *soc, struct dp_rx_desc *rx_desc,
|
|||
|
||||
rx_desc->rx_buf_start = qdf_nbuf_data(nbuf);
|
||||
|
||||
pool_id = rx_desc->pool_id;
|
||||
|
||||
l2_hdr_offset =
|
||||
hal_rx_msdu_end_l3_hdr_padding_get(rx_desc->rx_buf_start);
|
||||
|
||||
|
|
@ -319,7 +322,7 @@ dp_rx_null_q_desc_handle(struct dp_soc *soc, struct dp_rx_desc *rx_desc,
|
|||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
||||
FL("peer is NULL"));
|
||||
|
||||
mpdu_done = dp_rx_chain_msdus(soc, nbuf, rx_desc);
|
||||
mpdu_done = dp_rx_chain_msdus(soc, nbuf, rx_desc, pool_id);
|
||||
if (mpdu_done)
|
||||
dp_rx_process_invalid_peer(soc, nbuf);
|
||||
|
||||
|
|
|
|||
|
|
@ -754,8 +754,6 @@ struct dp_soc {
|
|||
|
||||
/* Obj Mgr SoC */
|
||||
struct wlan_objmgr_psoc *psoc;
|
||||
qdf_nbuf_t invalid_peer_head_msdu;
|
||||
qdf_nbuf_t invalid_peer_tail_msdu;
|
||||
#ifdef QCA_SUPPORT_SON
|
||||
/* The timer to check station's inactivity status */
|
||||
os_timer_t pdev_bs_inact_timer;
|
||||
|
|
@ -966,6 +964,9 @@ struct dp_pdev {
|
|||
qdf_spinlock_t neighbour_peer_mutex;
|
||||
/* Neighnour peer list */
|
||||
TAILQ_HEAD(, dp_neighbour_peer) neighbour_peers_list;
|
||||
/* msdu chain head & tail */
|
||||
qdf_nbuf_t invalid_peer_head_msdu;
|
||||
qdf_nbuf_t invalid_peer_tail_msdu;
|
||||
|
||||
/* Band steering */
|
||||
/* TBD */
|
||||
|
|
|
|||
Loading…
Reference in a new issue