qcacmn: DP changes corresponding to single netdev model
DP changes to support the single netdev model. Change-Id: I03c74e605c7530f4ab81edb68f0090f103e84578 CRs-Fixed: 3360499
This commit is contained in:

committed by
Madan Koyyalamudi

parent
40bbbf5e3e
commit
e219606587
@@ -3085,4 +3085,20 @@ struct cdp_pdev_attach_params {
|
|||||||
uint8_t pdev_id;
|
uint8_t pdev_id;
|
||||||
uint32_t mlo_link_id;
|
uint32_t mlo_link_id;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* cdp_txrx_peer_params_update
|
||||||
|
*
|
||||||
|
* @osif_vdev: Handle for OS shim virtual device
|
||||||
|
* @peer_mac: Peer mac address
|
||||||
|
* @chip_id: CHIP ID
|
||||||
|
* @pdev_id: PDEV ID
|
||||||
|
*/
|
||||||
|
struct cdp_txrx_peer_params_update {
|
||||||
|
void *osif_vdev;
|
||||||
|
uint8_t *peer_mac;
|
||||||
|
uint8_t chip_id;
|
||||||
|
uint8_t pdev_id;
|
||||||
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -790,6 +790,12 @@ enum WDI_EVENT {
|
|||||||
#endif
|
#endif
|
||||||
WDI_EVENT_LITE_MON_RX,
|
WDI_EVENT_LITE_MON_RX,
|
||||||
WDI_EVENT_LITE_MON_TX,
|
WDI_EVENT_LITE_MON_TX,
|
||||||
|
WDI_EVENT_TXRX_PEER_CREATE,
|
||||||
|
WDI_EVENT_PEER_UNMAP,
|
||||||
|
WDI_EVENT_PEER_DELETE,
|
||||||
|
WDI_EVENT_PEER_PRIMARY_UMAC_UPDATE,
|
||||||
|
WDI_EVENT_MCAST_PRIMARY_UPDATE,
|
||||||
|
WDI_EVENT_STA_PRIMARY_UMAC_UPDATE,
|
||||||
/* End of new event items */
|
/* End of new event items */
|
||||||
WDI_EVENT_LAST
|
WDI_EVENT_LAST
|
||||||
};
|
};
|
||||||
|
@@ -2168,10 +2168,21 @@ static void dp_txrx_set_mlo_mcast_primary_vdev_param_be(
|
|||||||
HAL_TX_MCAST_CTRL_NO_SPECIAL);
|
HAL_TX_MCAST_CTRL_NO_SPECIAL);
|
||||||
|
|
||||||
if (be_vdev->mcast_primary) {
|
if (be_vdev->mcast_primary) {
|
||||||
|
struct cdp_txrx_peer_params_update params = {0};
|
||||||
|
|
||||||
dp_mcast_mlo_iter_ptnr_vdev(be_soc, be_vdev,
|
dp_mcast_mlo_iter_ptnr_vdev(be_soc, be_vdev,
|
||||||
dp_mlo_mcast_reset_pri_mcast,
|
dp_mlo_mcast_reset_pri_mcast,
|
||||||
(void *)&be_vdev->mcast_primary,
|
(void *)&be_vdev->mcast_primary,
|
||||||
DP_MOD_ID_TX_MCAST);
|
DP_MOD_ID_TX_MCAST);
|
||||||
|
|
||||||
|
params.chip_id = be_soc->mlo_chip_id;
|
||||||
|
params.pdev_id = vdev->pdev->pdev_id;
|
||||||
|
params.osif_vdev = vdev->osif_vdev;
|
||||||
|
dp_wdi_event_handler(
|
||||||
|
WDI_EVENT_MCAST_PRIMARY_UPDATE,
|
||||||
|
vdev->pdev->soc,
|
||||||
|
(void *)¶ms, CDP_INVALID_PEER,
|
||||||
|
WDI_NO_VAL, params.pdev_id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -7815,6 +7815,7 @@ static QDF_STATUS dp_txrx_peer_detach(struct dp_soc *soc, struct dp_peer *peer)
|
|||||||
{
|
{
|
||||||
struct dp_txrx_peer *txrx_peer;
|
struct dp_txrx_peer *txrx_peer;
|
||||||
struct dp_pdev *pdev;
|
struct dp_pdev *pdev;
|
||||||
|
struct cdp_txrx_peer_params_update params = {0};
|
||||||
|
|
||||||
/* dp_txrx_peer exists for mld peer and legacy peer */
|
/* dp_txrx_peer exists for mld peer and legacy peer */
|
||||||
if (peer->txrx_peer) {
|
if (peer->txrx_peer) {
|
||||||
@@ -7822,6 +7823,13 @@ static QDF_STATUS dp_txrx_peer_detach(struct dp_soc *soc, struct dp_peer *peer)
|
|||||||
peer->txrx_peer = NULL;
|
peer->txrx_peer = NULL;
|
||||||
pdev = txrx_peer->vdev->pdev;
|
pdev = txrx_peer->vdev->pdev;
|
||||||
|
|
||||||
|
params.osif_vdev = (void *)peer->vdev->osif_vdev;
|
||||||
|
params.peer_mac = peer->mac_addr.raw;
|
||||||
|
|
||||||
|
dp_wdi_event_handler(WDI_EVENT_PEER_DELETE, soc,
|
||||||
|
(void *)¶ms, peer->peer_id,
|
||||||
|
WDI_NO_VAL, pdev->pdev_id);
|
||||||
|
|
||||||
dp_peer_defrag_rx_tids_deinit(txrx_peer);
|
dp_peer_defrag_rx_tids_deinit(txrx_peer);
|
||||||
/*
|
/*
|
||||||
* Deallocate the extended stats contenxt
|
* Deallocate the extended stats contenxt
|
||||||
@@ -7841,6 +7849,7 @@ static QDF_STATUS dp_txrx_peer_attach(struct dp_soc *soc, struct dp_peer *peer)
|
|||||||
{
|
{
|
||||||
struct dp_txrx_peer *txrx_peer;
|
struct dp_txrx_peer *txrx_peer;
|
||||||
struct dp_pdev *pdev;
|
struct dp_pdev *pdev;
|
||||||
|
struct cdp_txrx_peer_params_update params = {0};
|
||||||
|
|
||||||
txrx_peer = (struct dp_txrx_peer *)qdf_mem_malloc(sizeof(*txrx_peer));
|
txrx_peer = (struct dp_txrx_peer *)qdf_mem_malloc(sizeof(*txrx_peer));
|
||||||
|
|
||||||
@@ -7884,6 +7893,15 @@ static QDF_STATUS dp_txrx_peer_attach(struct dp_soc *soc, struct dp_peer *peer)
|
|||||||
|
|
||||||
dp_txrx_peer_attach_add(soc, peer, txrx_peer);
|
dp_txrx_peer_attach_add(soc, peer, txrx_peer);
|
||||||
|
|
||||||
|
params.peer_mac = peer->mac_addr.raw;
|
||||||
|
params.osif_vdev = (void *)peer->vdev->osif_vdev;
|
||||||
|
params.chip_id = dp_mlo_get_chip_id(soc);
|
||||||
|
params.pdev_id = peer->vdev->pdev->pdev_id;
|
||||||
|
|
||||||
|
dp_wdi_event_handler(WDI_EVENT_TXRX_PEER_CREATE, soc,
|
||||||
|
(void *)¶ms, peer->peer_id,
|
||||||
|
WDI_NO_VAL, params.pdev_id);
|
||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -8162,6 +8180,7 @@ QDF_STATUS dp_peer_mlo_setup(
|
|||||||
struct cdp_peer_setup_info *setup_info)
|
struct cdp_peer_setup_info *setup_info)
|
||||||
{
|
{
|
||||||
struct dp_peer *mld_peer = NULL;
|
struct dp_peer *mld_peer = NULL;
|
||||||
|
struct cdp_txrx_peer_params_update params = {0};
|
||||||
|
|
||||||
/* Non-MLO connection, do nothing */
|
/* Non-MLO connection, do nothing */
|
||||||
if (!setup_info || !setup_info->mld_peer_mac)
|
if (!setup_info || !setup_info->mld_peer_mac)
|
||||||
@@ -8184,6 +8203,21 @@ QDF_STATUS dp_peer_mlo_setup(
|
|||||||
setup_info->mld_peer_mac,
|
setup_info->mld_peer_mac,
|
||||||
CDP_MLD_PEER_TYPE);
|
CDP_MLD_PEER_TYPE);
|
||||||
|
|
||||||
|
if (peer->vdev->opmode == wlan_op_mode_sta &&
|
||||||
|
setup_info->is_primary_link) {
|
||||||
|
struct cdp_txrx_peer_params_update params = {0};
|
||||||
|
|
||||||
|
params.chip_id = dp_mlo_get_chip_id(soc);
|
||||||
|
params.pdev_id = peer->vdev->pdev->pdev_id;
|
||||||
|
params.osif_vdev = peer->vdev->osif_vdev;
|
||||||
|
|
||||||
|
dp_wdi_event_handler(
|
||||||
|
WDI_EVENT_STA_PRIMARY_UMAC_UPDATE,
|
||||||
|
soc,
|
||||||
|
(void *)¶ms, peer->peer_id,
|
||||||
|
WDI_NO_VAL, params.pdev_id);
|
||||||
|
}
|
||||||
|
|
||||||
peer->first_link = setup_info->is_first_link;
|
peer->first_link = setup_info->is_first_link;
|
||||||
peer->primary_link = setup_info->is_primary_link;
|
peer->primary_link = setup_info->is_primary_link;
|
||||||
mld_peer = dp_mld_peer_find_hash_find(soc,
|
mld_peer = dp_mld_peer_find_hash_find(soc,
|
||||||
@@ -8233,6 +8267,15 @@ QDF_STATUS dp_peer_mlo_setup(
|
|||||||
soc, mld_peer, prev_vdev,
|
soc, mld_peer, prev_vdev,
|
||||||
mld_peer->vdev);
|
mld_peer->vdev);
|
||||||
|
|
||||||
|
params.osif_vdev = (void *)peer->vdev->osif_vdev;
|
||||||
|
params.peer_mac = peer->mac_addr.raw;
|
||||||
|
params.chip_id = dp_mlo_get_chip_id(soc);
|
||||||
|
params.pdev_id = peer->vdev->pdev->pdev_id;
|
||||||
|
|
||||||
|
dp_wdi_event_handler(
|
||||||
|
WDI_EVENT_PEER_PRIMARY_UMAC_UPDATE,
|
||||||
|
soc, (void *)¶ms, peer->peer_id,
|
||||||
|
WDI_NO_VAL, params.pdev_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* associate mld and link peer */
|
/* associate mld and link peer */
|
||||||
|
@@ -3269,6 +3269,21 @@ dp_rx_peer_unmap_handler(struct dp_soc *soc, uint16_t peer_id,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
vdev = peer->vdev;
|
||||||
|
|
||||||
|
if (peer->txrx_peer) {
|
||||||
|
struct cdp_txrx_peer_params_update params = {0};
|
||||||
|
|
||||||
|
params.osif_vdev = (void *)vdev->osif_vdev;
|
||||||
|
params.peer_mac = peer->mac_addr.raw;
|
||||||
|
params.chip_id = dp_mlo_get_chip_id(soc);
|
||||||
|
params.pdev_id = vdev->pdev->pdev_id;
|
||||||
|
|
||||||
|
dp_wdi_event_handler(WDI_EVENT_PEER_UNMAP, soc,
|
||||||
|
(void *)¶ms, peer_id,
|
||||||
|
WDI_NO_VAL, vdev->pdev->pdev_id);
|
||||||
|
}
|
||||||
|
|
||||||
/* If V2 Peer map messages are enabled AST entry has to be
|
/* If V2 Peer map messages are enabled AST entry has to be
|
||||||
* freed here
|
* freed here
|
||||||
*/
|
*/
|
||||||
|
Reference in New Issue
Block a user