Browse Source

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
Shwetha G K 3 năm trước cách đây
mục cha
commit
d7046ba026
3 tập tin đã thay đổi với 43 bổ sung0 xóa
  1. 18 0
      dp/inc/cdp_txrx_cmn.h
  2. 5 0
      dp/inc/cdp_txrx_ops.h
  3. 20 0
      dp/wifi3.0/dp_main.c

+ 18 - 0
dp/inc/cdp_txrx_cmn.h

@@ -242,6 +242,24 @@ cdp_vdev_detach(ol_txrx_soc_handle soc, uint8_t vdev_id,
 						       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
 cdp_pdev_attach_target(ol_txrx_soc_handle soc, uint8_t pdev_id)
 {

+ 5 - 0
dp/inc/cdp_txrx_ops.h

@@ -613,6 +613,11 @@ struct cdp_cmn_ops {
 #ifdef FEATURE_RUNTIME_PM
 	void (*set_rtpm_tput_policy)(struct cdp_soc_t *soc, bool val);
 #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 {

+ 20 - 0
dp/wifi3.0/dp_main.c

@@ -12376,6 +12376,23 @@ dp_check_vdev_tx_delay_stats_enabled(struct cdp_soc_t *soc_hdl,
 }
 #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 = {
 	.txrx_soc_attach_target = dp_soc_attach_target_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
 	.set_pkt_capture_mode = dp_set_pkt_capture_mode,
 #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 = {