Forráskód Böngészése

qcacld-3.0: Indicate channel switch on MLO assoc dev

Do not indicate channel switch on link dev, because there is no
links information in wireless_dev of link dev. Links information
is saved in wireless_dev of assoc dev through cfg80211_connect_done.

Indicate channel switch on MLO assoc dev, otherwise channel switch
event will be dropped.

Change-Id: I17b861cacafa2bd98c9d50c45e5fb65ba2a30eef
CRs-Fixed: 3447351
Bing Sun 2 éve
szülő
commit
3f820fd0bf
1 módosított fájl, 12 hozzáadás és 0 törlés
  1. 12 0
      core/hdd/src/wlan_hdd_hostapd.c

+ 12 - 0
core/hdd/src/wlan_hdd_hostapd.c

@@ -962,6 +962,7 @@ QDF_STATUS hdd_chan_change_notify(struct hdd_adapter *adapter,
 	struct wlan_objmgr_vdev *vdev;
 	uint16_t link_id = 0;
 	uint16_t puncture_bitmap = 0;
+	struct hdd_adapter *assoc_adapter;
 
 	if (!mac_handle) {
 		hdd_err("mac_handle is NULL");
@@ -1046,6 +1047,17 @@ QDF_STATUS hdd_chan_change_notify(struct hdd_adapter *adapter,
 	hdd_debug("notify: chan:%d width:%d freq1:%d freq2:%d",
 		  chandef.chan->center_freq, chandef.width,
 		  chandef.center_freq1, chandef.center_freq2);
+
+	if (hdd_adapter_is_link_adapter(adapter)) {
+		hdd_debug("replace link adapter dev with ml adapter dev");
+		assoc_adapter = hdd_adapter_get_mlo_adapter_from_link(adapter);
+		if (!assoc_adapter) {
+			hdd_err("Assoc adapter is NULL");
+			return -EINVAL;
+		}
+		dev = assoc_adapter->dev;
+	}
+
 	wlan_cfg80211_ch_switch_notify(dev, &chandef, link_id,
 				       puncture_bitmap);