|
@@ -549,6 +549,16 @@ int tdls_recv_discovery_resp(struct tdls_vdev_priv_obj *tdls_vdev,
|
|
|
QDF_MAC_ADDR_REF(curr_peer->peer_mac.bytes),
|
|
|
curr_peer->link_status);
|
|
|
|
|
|
+ /* Since peer link status bases on vdev and stream goes through
|
|
|
+ * vdev0 (assoc link) at start, rx/tx pkt count on vdev0, but
|
|
|
+ * it choices vdev1 as tdls link, the peer status does not change on
|
|
|
+ * vdev1 though it has been changed for vdev0 per the rx/tx pkt count.
|
|
|
+ */
|
|
|
+ if (wlan_vdev_mlme_is_mlo_vdev(tdls_vdev->vdev) &&
|
|
|
+ curr_peer->link_status == TDLS_LINK_IDLE)
|
|
|
+ tdls_set_peer_link_status(curr_peer, TDLS_LINK_DISCOVERING,
|
|
|
+ TDLS_LINK_SUCCESS);
|
|
|
+
|
|
|
tdls_cfg = &tdls_vdev->threshold_config;
|
|
|
if (TDLS_LINK_DISCOVERING == curr_peer->link_status) {
|
|
|
/* Since we are here, it means Throughput threshold is
|
|
@@ -865,11 +875,11 @@ static void tdls_ct_process_cap_supported(struct tdls_peer *curr_peer,
|
|
|
struct tdls_soc_priv_obj *tdls_soc_obj)
|
|
|
{
|
|
|
if (curr_peer->rx_pkt || curr_peer->tx_pkt)
|
|
|
- tdls_debug(QDF_MAC_ADDR_FMT "link_status %d tdls_support %d tx %d rx %d rssi %d",
|
|
|
+ tdls_debug(QDF_MAC_ADDR_FMT "link_status %d tdls_support %d tx %d rx %d rssi %d vdev %d",
|
|
|
QDF_MAC_ADDR_REF(curr_peer->peer_mac.bytes),
|
|
|
curr_peer->link_status, curr_peer->tdls_support,
|
|
|
curr_peer->tx_pkt, curr_peer->rx_pkt,
|
|
|
- curr_peer->rssi);
|
|
|
+ curr_peer->rssi, wlan_vdev_get_id(tdls_vdev->vdev));
|
|
|
|
|
|
switch (curr_peer->link_status) {
|
|
|
case TDLS_LINK_IDLE:
|
|
@@ -910,10 +920,11 @@ static void tdls_ct_process_cap_unknown(struct tdls_peer *curr_peer,
|
|
|
return;
|
|
|
|
|
|
if (curr_peer->rx_pkt || curr_peer->tx_pkt)
|
|
|
- tdls_debug(QDF_MAC_ADDR_FMT "link_status %d tdls_support %d tx %d rx %d",
|
|
|
+ tdls_debug(QDF_MAC_ADDR_FMT "link_status %d tdls_support %d tx %d rx %d vdev %d",
|
|
|
QDF_MAC_ADDR_REF(curr_peer->peer_mac.bytes),
|
|
|
curr_peer->link_status, curr_peer->tdls_support,
|
|
|
- curr_peer->tx_pkt, curr_peer->rx_pkt);
|
|
|
+ curr_peer->tx_pkt, curr_peer->rx_pkt,
|
|
|
+ wlan_vdev_get_id(tdls_vdev->vdev));
|
|
|
|
|
|
if (!TDLS_IS_LINK_CONNECTED(curr_peer) &&
|
|
|
((curr_peer->tx_pkt + curr_peer->rx_pkt) >=
|
|
@@ -1025,7 +1036,7 @@ void tdls_ct_handler(void *user_data)
|
|
|
if (!user_data)
|
|
|
return;
|
|
|
|
|
|
- vdev = tdls_get_vdev(user_data, WLAN_TDLS_NB_ID);
|
|
|
+ vdev = (struct wlan_objmgr_vdev *)user_data;
|
|
|
if (!vdev)
|
|
|
return;
|
|
|
|
|
@@ -1040,9 +1051,6 @@ void tdls_ct_handler(void *user_data)
|
|
|
} else {
|
|
|
tdls_ct_process_handler(vdev);
|
|
|
}
|
|
|
-
|
|
|
- wlan_objmgr_vdev_release_ref(vdev,
|
|
|
- WLAN_TDLS_NB_ID);
|
|
|
}
|
|
|
|
|
|
int tdls_set_tdls_offchannel(struct tdls_soc_priv_obj *tdls_soc,
|