Browse Source

Merge "qcacmn: Extend ce_name to include 16 ces for wkk"

Linux Build Service Account 3 years ago
parent
commit
f16969fa98

+ 16 - 1
dp/wifi3.0/dp_stats.c

@@ -7558,7 +7558,9 @@ void dp_update_pdev_stats(struct dp_pdev *tgtobj,
 {
 	uint8_t i;
 	uint8_t pream_type;
+	struct cdp_pdev_stats *pdev_stats = NULL;
 
+	pdev_stats = &tgtobj->stats;
 	for (pream_type = 0; pream_type < DOT11_MAX; pream_type++) {
 		for (i = 0; i < MAX_MCS; i++) {
 			tgtobj->stats.tx.pkt_type[pream_type].
@@ -7598,9 +7600,20 @@ void dp_update_pdev_stats(struct dp_pdev *tgtobj,
 			srcobj->rx.sgi_count[i];
 	}
 
-	for (i = 0; i < MAX_RECEPTION_TYPES; i++)
+	for (i = 0; i < MAX_RECEPTION_TYPES; i++) {
 		tgtobj->stats.rx.reception_type[i] +=
 			srcobj->rx.reception_type[i];
+		tgtobj->stats.rx.ppdu_cnt[i] += srcobj->rx.ppdu_cnt[i];
+	}
+
+	for (i = 0; i < MAX_TRANSMIT_TYPES; i++) {
+		tgtobj->stats.tx.transmit_type[i].num_msdu +=
+				srcobj->tx.transmit_type[i].num_msdu;
+		tgtobj->stats.tx.transmit_type[i].num_mpdu +=
+				srcobj->tx.transmit_type[i].num_mpdu;
+		tgtobj->stats.tx.transmit_type[i].mpdu_tried +=
+				srcobj->tx.transmit_type[i].mpdu_tried;
+	}
 
 	tgtobj->stats.tx.comp_pkt.bytes += srcobj->tx.comp_pkt.bytes;
 	tgtobj->stats.tx.comp_pkt.num += srcobj->tx.comp_pkt.num;
@@ -7719,6 +7732,8 @@ void dp_update_pdev_stats(struct dp_pdev *tgtobj,
 		srcobj->rx.peer_unauth_rx_pkt_drop;
 	tgtobj->stats.rx.policy_check_drop +=
 		srcobj->rx.policy_check_drop;
+
+	DP_UPDATE_11BE_STATS(pdev_stats, srcobj);
 }
 
 void dp_update_vdev_ingress_stats(struct dp_vdev *tgtobj)

+ 7 - 1
hif/src/ce/ce_tasklet.c

@@ -816,7 +816,7 @@ irqreturn_t ce_dispatch_interrupt(int ce_id,
  *
  * @ce_name: ce_name
  */
-const char *ce_name[] = {
+const char *ce_name[CE_COUNT_MAX] = {
 	"WLAN_CE_0",
 	"WLAN_CE_1",
 	"WLAN_CE_2",
@@ -829,6 +829,12 @@ const char *ce_name[] = {
 	"WLAN_CE_9",
 	"WLAN_CE_10",
 	"WLAN_CE_11",
+#ifdef QCA_WIFI_QCN9224
+	"WLAN_CE_12",
+	"WLAN_CE_13",
+	"WLAN_CE_14",
+	"WLAN_CE_15",
+#endif
 };
 /**
  * ce_unregister_irq() - ce_unregister_irq

+ 7 - 1
os_if/linux/mlme/src/osif_cm_connect_rsp.c

@@ -877,7 +877,13 @@ QDF_STATUS osif_failed_candidate_handler(struct wlan_objmgr_vdev *vdev,
 		       rsp->ssid.length, rsp->ssid.ssid, rsp->cm_id,
 		       rsp->reason, rsp->status_code);
 
-	osif_check_and_unlink_bss(vdev, osif_priv, rsp);
+	/**
+	 * Do not unlink the BSS if it is an ML candidate. In case of ML,
+	 * failed candidate may be used as partner link while trying the
+	 * connection on other links.
+	 */
+	if (!wlan_vdev_mlme_is_mlo_vdev(vdev))
+		osif_check_and_unlink_bss(vdev, osif_priv, rsp);
 
 	return QDF_STATUS_SUCCESS;
 }

+ 4 - 4
umac/mlo_mgr/src/wlan_mlo_mgr_sta.c

@@ -842,9 +842,9 @@ QDF_STATUS mlo_disconnect(struct wlan_objmgr_vdev *vdev,
 		copied_conn_req_lock_release(sta_ctx);
 	}
 
-	if (wlan_vdev_mlme_is_mlo_vdev(vdev)) {
+	if (mlo_dev_ctx && wlan_vdev_mlme_is_mlo_vdev(vdev)) {
 		mlo_dev_lock_acquire(mlo_dev_ctx);
-		if (sta_ctx->connect_req) {
+		if (sta_ctx && sta_ctx->connect_req) {
 			mlo_free_connect_ies(sta_ctx->connect_req);
 			qdf_mem_free(sta_ctx->connect_req);
 			sta_ctx->connect_req = NULL;
@@ -884,8 +884,8 @@ QDF_STATUS mlo_sync_disconnect(struct wlan_objmgr_vdev *vdev,
 		copied_conn_req_lock_release(sta_ctx);
 	}
 
-	if (wlan_vdev_mlme_is_mlo_vdev(vdev)) {
-		if (sta_ctx->connect_req) {
+	if (mlo_dev_ctx && wlan_vdev_mlme_is_mlo_vdev(vdev)) {
+		if (sta_ctx && sta_ctx->connect_req) {
 			mlo_free_connect_ies(sta_ctx->connect_req);
 			qdf_mem_free(sta_ctx->connect_req);
 			sta_ctx->connect_req = NULL;