|
@@ -945,6 +945,8 @@ QDF_STATUS hdd_chan_change_notify(struct hdd_adapter *adapter,
|
|
|
enum nl80211_channel_type channel_type;
|
|
|
uint32_t freq;
|
|
|
mac_handle_t mac_handle = adapter->hdd_ctx->mac_handle;
|
|
|
+ struct wlan_objmgr_vdev *vdev;
|
|
|
+ uint16_t link_id = 0;
|
|
|
|
|
|
if (!mac_handle) {
|
|
|
hdd_err("mac_handle is NULL");
|
|
@@ -1015,10 +1017,20 @@ QDF_STATUS hdd_chan_change_notify(struct hdd_adapter *adapter,
|
|
|
chan_change.chan_params.mhz_freq_seg0;
|
|
|
}
|
|
|
|
|
|
+ vdev = hdd_objmgr_get_vdev_by_user(adapter, WLAN_OSIF_ID);
|
|
|
+ if (!vdev)
|
|
|
+ return -EINVAL;
|
|
|
+
|
|
|
+ if (wlan_vdev_mlme_is_mlo_vdev(vdev))
|
|
|
+ link_id = wlan_vdev_get_link_id(vdev);
|
|
|
+
|
|
|
+ hdd_debug("link_id is %d", link_id);
|
|
|
+
|
|
|
+ hdd_objmgr_put_vdev_by_user(vdev, WLAN_OSIF_ID);
|
|
|
hdd_debug("notify: chan:%d width:%d freq1:%d freq2:%d",
|
|
|
chandef.chan->center_freq, chandef.width,
|
|
|
chandef.center_freq1, chandef.center_freq2);
|
|
|
- wlan_cfg80211_ch_switch_notify(dev, &chandef, 0);
|
|
|
+ wlan_cfg80211_ch_switch_notify(dev, &chandef, link_id);
|
|
|
|
|
|
return QDF_STATUS_SUCCESS;
|
|
|
}
|
|
@@ -7544,6 +7556,8 @@ static int __wlan_hdd_cfg80211_start_ap(struct wiphy *wiphy,
|
|
|
enum QDF_OPMODE vdev_opmode;
|
|
|
uint8_t vdev_id_list[MAX_NUMBER_OF_CONC_CONNECTIONS], i;
|
|
|
enum policy_mgr_con_mode intf_pm_mode;
|
|
|
+ struct wlan_objmgr_vdev *vdev;
|
|
|
+ uint16_t link_id = 0;
|
|
|
|
|
|
hdd_enter();
|
|
|
|
|
@@ -7844,10 +7858,18 @@ static int __wlan_hdd_cfg80211_start_ap(struct wiphy *wiphy,
|
|
|
hdd_err("Error Start bss Failed");
|
|
|
goto err_start_bss;
|
|
|
}
|
|
|
+ vdev = hdd_objmgr_get_vdev_by_user(adapter, WLAN_OSIF_ID);
|
|
|
+ if (!vdev)
|
|
|
+ return -EINVAL;
|
|
|
+
|
|
|
+ if (wlan_vdev_mlme_is_mlo_vdev(vdev))
|
|
|
+ link_id = wlan_vdev_get_link_id(vdev);
|
|
|
+
|
|
|
+ hdd_objmgr_put_vdev_by_user(vdev, WLAN_OSIF_ID);
|
|
|
|
|
|
- if (wlan_util_get_centre_freq(wdev, 0) !=
|
|
|
+ if (wlan_util_get_centre_freq(wdev, link_id) !=
|
|
|
params->chandef.chan->center_freq)
|
|
|
- params->chandef = wlan_util_get_chan_def(wdev, 0);
|
|
|
+ params->chandef = wlan_util_get_chan_def(wdev, link_id);
|
|
|
/*
|
|
|
* If Do_Not_Break_Stream enabled send avoid channel list
|
|
|
* to application.
|