qcacld-3.0: Handle DFS channel radar history get vendor command

Add support for QCA_NL80211_VENDOR_SUBCMD_GET_RADAR_HISTORY vendor
command. This command will return the current NOL list in driver
and the last Radar detection result in previous SAP active state
(includes CAC state).

Change-Id: I719630c39b89c1813ca05c4356dce627d72d82e2
CRs-Fixed: 2966501
This commit is contained in:
Liangwei Dong
2021-06-03 16:25:37 +08:00
committed by Madan Koyyalamudi
parent ed537c76da
commit 3ad4f9d78b
6 changed files with 461 additions and 1 deletions

View File

@@ -615,6 +615,35 @@ typedef struct sSapDfsInfo {
uint16_t reduced_beacon_interval;
} tSapDfsInfo;
/* MAX number of CAC channels to be recorded */
#define MAX_NUM_OF_CAC_HISTORY 8
/**
* struct prev_cac_result - previous cac result
* @ap_start_time: ap start timestamp
* @ap_end_time: ap stop or cac end timestamp
* @cac_complete: cac complete without found radar event
* @cac_ch_param: ap channel parameters
*/
struct prev_cac_result {
uint64_t ap_start_time;
uint64_t ap_end_time;
bool cac_complete;
struct ch_params cac_ch_param;
};
/**
* struct dfs_radar_history - radar found history element
* @time: timestamp in us from system boot
* @radar_found: radar found or not
* @ch_freq: channel frequency in Mhz
*/
struct dfs_radar_history {
uint64_t time;
bool radar_found;
uint16_t ch_freq;
};
#ifdef DCS_INTERFERENCE_DETECTION
/**
* struct sap_dcs_info - record sap dcs information.
@@ -1546,6 +1575,24 @@ uint32_t wlansap_get_safe_channel_from_pcl_for_sap(struct sap_context *sap_ctx);
qdf_freq_t wlansap_get_chan_band_restrict(struct sap_context *sap_ctx,
enum sap_csa_reason_code *csa_reason);
#ifdef FEATURE_RADAR_HISTORY
/**
* wlansap_query_radar_history() - get radar history info
* @mac_handle: mac context
* @radar_history: radar history buffer to be returned
* @count: total history count
*
* The API will return the dfs nol list(Radar found history) and
* CAC history (no Radar found).
*
* Return - QDF_STATUS
*/
QDF_STATUS
wlansap_query_radar_history(mac_handle_t mac_handle,
struct dfs_radar_history **radar_history,
uint32_t *count);
#endif
#ifdef DCS_INTERFERENCE_DETECTION
/**
* wlansap_dcs_set_vdev_wlan_interference_mitigation() - set wlan