فهرست منبع

qcacmn: Fix intrabss forward issue in split-phy

In case of split phy return the partner vdev from
same SOC for intrabss forward

Change-Id: Id7d2acd80d60e4d5cfb6df821f72a8d885d8fe57
CRs-Fixed: 3398627
Chaithanya Garrepalli 2 سال پیش
والد
کامیت
28235e65eb
1فایلهای تغییر یافته به همراه10 افزوده شده و 5 حذف شده
  1. 10 5
      dp/wifi3.0/be/dp_be_rx.c

+ 10 - 5
dp/wifi3.0/be/dp_be_rx.c

@@ -1388,23 +1388,28 @@ dp_rx_intrabss_ucast_check_be(qdf_nbuf_t nbuf,
 	hal_rx_tlv_get_dest_chip_pmac_id(rx_tlv_hdr,
 					 &dest_chip_id,
 					 &dest_chip_pmac_id);
+
 	qdf_assert_always(dest_chip_id <= (DP_MLO_MAX_DEST_CHIP_ID - 1));
 
 	if (dest_chip_id == be_soc->mlo_chip_id) {
-		/* TODO: adding to self list is better */
-		params->tx_vdev_id = ta_peer->vdev->vdev_id;
+		if (dest_chip_pmac_id == ta_peer->vdev->pdev->pdev_id)
+			params->tx_vdev_id = ta_peer->vdev->vdev_id;
+		else
+			params->tx_vdev_id =
+				be_vdev->partner_vdev_list[dest_chip_id]
+							  [dest_chip_pmac_id];
 		return true;
 	}
 
+	params->tx_vdev_id =
+		be_vdev->partner_vdev_list[dest_chip_id][dest_chip_pmac_id];
+
 	params->dest_soc =
 		dp_mlo_get_soc_ref_by_chip_id(be_soc->ml_ctxt,
 					      dest_chip_id);
 	if (!params->dest_soc)
 		return false;
 
-	params->tx_vdev_id =
-		be_vdev->partner_vdev_list[dest_chip_id][dest_chip_pmac_id];
-
 	return true;
 }
 #else