qcacmn: Allow FW to scan 6G chan based on RNR flag only

First host checks below two things in host scan request:
1. Userspace sets NL80211_SCAN_FLAG_COLOCATED_6GHZ flag
in host scan request.
2. At least one 6G channel is present in the host scan req.

If any of the above conditions satisfies, Host fills all
remaining (other than channel(s) present in host scan req)
valid 6 GHz channel(s) to scan requests and set the flag
FLAG_SCAN_ONLY_IF_RNR_FOUND for each remaining channel(s).

Host sends this updated channel list via WMI command
WMI_START_SCAN_CMDID_param_tlvs->channel_list for host scan
to firmware.

With this change, driver allows Firmware to scan 6G channels
based on RNR IEs only (for colocated APs reported by 2.4/5
GHz APs).

Change-Id: I2d9d2aac58bbc521b2476756d5919647bdc265cc
CRs-Fixed: 3103873
This commit is contained in:
abhinav kumar
2021-12-28 23:03:23 +05:30
committed by Madan Koyyalamudi
父節點 dffef9958a
當前提交 9c2ce46fc6
共有 3 個文件被更改,包括 125 次插入3 次删除

查看文件

@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017-2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -1304,6 +1304,27 @@ void wlan_cfg80211_cleanup_scan_queue(struct wlan_objmgr_pdev *pdev,
return;
}
/**
* wlan_cfg80211_is_colocated_6ghz_scan_supported() - Check whether colocated
* 6ghz scan flag present in scan request or not
* @scan_flag: Flags bitmap coming from kernel
*
* Return: True if colocated 6ghz scan flag present in scan req
*/
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0))
static bool
wlan_cfg80211_is_colocated_6ghz_scan_supported(uint32_t scan_flag)
{
return !!(scan_flag & NL80211_SCAN_FLAG_COLOCATED_6GHZ);
}
#else
static inline bool
wlan_cfg80211_is_colocated_6ghz_scan_supported(uint32_t scan_flag)
{
return false;
}
#endif
/**
* wlan_cfg80211_update_scan_policy_type_flags() - Set scan flags according to
* scan request
@@ -1323,6 +1344,9 @@ static void wlan_cfg80211_update_scan_policy_type_flags(
scan_req->scan_policy_low_span = true;
if (req->flags & NL80211_SCAN_FLAG_LOW_POWER)
scan_req->scan_policy_low_power = true;
if (wlan_cfg80211_is_colocated_6ghz_scan_supported(req->flags))
scan_req->scan_policy_colocated_6ghz = true;
}
#else
static inline void wlan_cfg80211_update_scan_policy_type_flags(