qcacmn: Add API to flush peers in recovery case

Add cdp wrapper API to flush the peers in recovery case.

CRs-Fixed: 3153535
Change-Id: I58869bf118f0aea487e63865300ba8e7462651ac
This commit is contained in:
Shwetha G K
2022-03-25 17:25:35 +05:30
committed by Madan Koyyalamudi
parent ba015feedc
commit d7046ba026
3 changed files with 43 additions and 0 deletions

View File

@@ -242,6 +242,24 @@ cdp_vdev_detach(ol_txrx_soc_handle soc, uint8_t vdev_id,
callback, cb_context); callback, cb_context);
} }
#if defined(WLAN_FEATURE_11BE_MLO) && defined(WLAN_MLO_MULTI_CHIP)
static inline void
cdp_vdev_recovery_flush_peers(ol_txrx_soc_handle soc, uint8_t vdev_id)
{
if (!soc || !soc->ops) {
dp_cdp_debug("Invalid Instance:");
QDF_BUG(0);
return;
}
if (!soc->ops->cmn_drv_ops ||
!soc->ops->cmn_drv_ops->txrx_recovery_vdev_flush_peers)
return;
soc->ops->cmn_drv_ops->txrx_recovery_vdev_flush_peers(soc, vdev_id);
}
#endif
static inline int static inline int
cdp_pdev_attach_target(ol_txrx_soc_handle soc, uint8_t pdev_id) cdp_pdev_attach_target(ol_txrx_soc_handle soc, uint8_t pdev_id)
{ {

View File

@@ -613,6 +613,11 @@ struct cdp_cmn_ops {
#ifdef FEATURE_RUNTIME_PM #ifdef FEATURE_RUNTIME_PM
void (*set_rtpm_tput_policy)(struct cdp_soc_t *soc, bool val); void (*set_rtpm_tput_policy)(struct cdp_soc_t *soc, bool val);
#endif #endif
#if defined(WLAN_FEATURE_11BE_MLO) && defined(WLAN_MLO_MULTI_CHIP)
void (*txrx_recovery_vdev_flush_peers)(struct cdp_soc_t *soc,
uint8_t vdev_id);
#endif
}; };
struct cdp_ctrl_ops { struct cdp_ctrl_ops {

View File

@@ -12376,6 +12376,23 @@ dp_check_vdev_tx_delay_stats_enabled(struct cdp_soc_t *soc_hdl,
} }
#endif #endif
#if defined(WLAN_FEATURE_11BE_MLO) && defined(WLAN_MLO_MULTI_CHIP)
static void
dp_recovery_vdev_flush_peers(struct cdp_soc_t *cdp_soc, uint8_t vdev_id)
{
struct dp_soc *soc = (struct dp_soc *)cdp_soc;
struct dp_vdev *vdev;
vdev = dp_vdev_get_ref_by_id(soc, vdev_id, DP_MOD_ID_CDP);
if (!vdev)
return;
dp_vdev_flush_peers((struct cdp_vdev *)vdev, false);
dp_vdev_unref_delete(soc, vdev, DP_MOD_ID_CDP);
}
#endif
static struct cdp_cmn_ops dp_ops_cmn = { static struct cdp_cmn_ops dp_ops_cmn = {
.txrx_soc_attach_target = dp_soc_attach_target_wifi3, .txrx_soc_attach_target = dp_soc_attach_target_wifi3,
.txrx_vdev_attach = dp_vdev_attach_wifi3, .txrx_vdev_attach = dp_vdev_attach_wifi3,
@@ -12488,6 +12505,9 @@ static struct cdp_cmn_ops dp_ops_cmn = {
#ifdef WLAN_FEATURE_PKT_CAPTURE_V2 #ifdef WLAN_FEATURE_PKT_CAPTURE_V2
.set_pkt_capture_mode = dp_set_pkt_capture_mode, .set_pkt_capture_mode = dp_set_pkt_capture_mode,
#endif #endif
#if defined(WLAN_FEATURE_11BE_MLO) && defined(WLAN_MLO_MULTI_CHIP)
.txrx_recovery_vdev_flush_peers = dp_recovery_vdev_flush_peers,
#endif
}; };
static struct cdp_ctrl_ops dp_ops_ctrl = { static struct cdp_ctrl_ops dp_ops_ctrl = {