--- zzzz-none-000/linux-4.9.276/net/mac80211/scan.c 2021-07-20 14:21:16.000000000 +0000 +++ falcon-5530-750/linux-4.9.276/net/mac80211/scan.c 2023-04-05 08:19:02.000000000 +0000 @@ -171,6 +171,14 @@ bss->valid_data |= IEEE80211_BSS_VALID_WMM; } + if (elems->vendor_vht && (!elems->parse_error || + !(bss->valid_data & IEEE80211_BSS_VALID_VENDOR_VHT))) { + bss->vendor_vht = elems->vendor_vht; + bss->vendor_vht_len = elems->vendor_vht_len; + if (!elems->parse_error) + bss->valid_data |= IEEE80211_BSS_VALID_VENDOR_VHT; + } + if (beacon) { struct ieee80211_supported_band *sband = local->hw.wiphy->bands[rx_status->band]; @@ -474,6 +482,17 @@ return 0; } +void ieee80211_drv_start_sw_scan(struct ieee80211_hw *hw) +{ + struct ieee80211_local *local = hw_to_local(hw); + test_and_clear_bit(SCAN_HW_SCANNING, &local->scanning); + __set_bit(SCAN_SW_SCANNING, &local->scanning); + /* TODO: check remain on channel (scan for current channel requested) */ + + ieee80211_start_sw_scan(local, local->scan_sdata); +} +EXPORT_SYMBOL(ieee80211_drv_start_sw_scan); + static bool ieee80211_can_scan(struct ieee80211_local *local, struct ieee80211_sub_if_data *sdata) {