}
/* Update scan timing for P2P social channels scan. */
- if ((request->ie) && cfg80211_find_vendor_ie(WLAN_OUI_WFA, WLAN_OUI_TYPE_WFA_P2P, request->ie, request->ie_len)
- && SLSI_IS_P2P_SSID(request->ssids[0].ssid, request->ssids[0].ssid_len)) {
+ if ((request->ie) &&
+ cfg80211_find_vendor_ie(WLAN_OUI_WFA, WLAN_OUI_TYPE_WFA_P2P, request->ie, request->ie_len) &&
+ request->ssids && SLSI_IS_P2P_SSID(request->ssids[0].ssid, request->ssids[0].ssid_len)) {
/* In supplicant during joining procedure the P2P GO scan
* with GO's operating channel comes on P2P device. Hence added the
* check for n_channels as 1
struct sk_buff *req,
u32 num_channels,
struct ieee80211_channel *channels[],
- u16 scan_type)
+ u16 scan_type,
+ bool passive_scan)
{
int chann;
u16 freq_fw_unit;
freq_fw_unit = cpu_to_le16(freq_fw_unit);
memcpy(p, &freq_fw_unit, sizeof(freq_fw_unit));
- p[2] = 0;
+ if (passive_scan)
+ p[2] = FAPI_SCANPOLICY_PASSIVE;
+ else
+ p[2] = 0;
channels_list_ie[1] += SLSI_SCAN_CHANNEL_DESCRIPTOR_SIZE;
}
}
if (request->n_channels) {
- r = slsi_mlme_append_channel_list(sdev, dev, req, request->n_channels, request->channels, FAPI_SCANTYPE_SCHEDULED_SCAN);
+ r = slsi_mlme_append_channel_list(sdev, dev, req, request->n_channels, request->channels,
+ FAPI_SCANTYPE_SCHEDULED_SCAN, request->n_ssids == 0);
if (r)
return r;
}
fapi_append_data(req, ies, ies_len);
if (n_channels) {
- r = slsi_mlme_append_channel_list(sdev, dev, req, n_channels, channels, scan_type);
+ r = slsi_mlme_append_channel_list(sdev, dev, req, n_channels, channels, scan_type,
+ n_ssids == 0);
if (r)
return r;
}