qcacmn: Add support to print candidate rssi in kmsg
First Requirement: In case of WTC_BTM roam trigger reason, if FW reports rssi threshold for 5G and 6G AP via wmi_roam_trigger_reason, Host should print it in kmsg. If wtc_candi_rssi_ext_present is set (1), It means fw reports 5g and 6g candidate rssi (new firmware case). If wtc_candi_rssi_ext_present is clear (0), It means fw doesn’t report 5g and 6g candidate rssi (old firmware case). Host use flag "wtc_candi_rssi_ext_present" to keep backward compatibility. Second requirement: As per user space, value for scan mode in WTC command, is like below: 0: no Scan, 1: partial scan and 2: full scan. For NO scan case, FW sends value ROAM_TRIGGER_SCAN_MODE_NO_SCAN_DISCONNECTION (3) in wmi_roam_trigger_reason-> wtc_scan_mode. When driver receives WTC scan mode as ROAM_TRIGGER_SCAN_MODE_NO_SCAN_DISCONNECTION, it should print value as 0 instead of 3. Convert WTC scan mode comes from FW to wmi_configure_roam_trigger_parameters->scan_mode to make it compatible to WTC command. Change-Id: I8266460aac1272d345e4349c2ca52b4f9a745d4c CRs-Fixed: 2965362
This commit is contained in:

committed by
Madan Koyyalamudi

parent
fa7cf78ebf
commit
96f19b772c
@@ -7536,6 +7536,10 @@ struct wmi_roam_deauth_trigger_data {
|
|||||||
* @wtc_scan_mode: WTC scan mode
|
* @wtc_scan_mode: WTC scan mode
|
||||||
* @wtc_rssi_th: Connected AP threshold
|
* @wtc_rssi_th: Connected AP threshold
|
||||||
* @wtc_candi_rssi_th: Candidate AP threshold
|
* @wtc_candi_rssi_th: Candidate AP threshold
|
||||||
|
* @wtc_candi_rssi_ext_present: Flag to notify that whether fw sends rssi
|
||||||
|
* threshold for 5g & 6g AP to host or not
|
||||||
|
* @wtc_candi_rssi_th_5g: 5g candidate AP rssi threshold
|
||||||
|
* @wtc_candi_rssi_th_6g: 6g candidate AP rssi threshold
|
||||||
*/
|
*/
|
||||||
struct wmi_roam_wtc_btm_trigger_data {
|
struct wmi_roam_wtc_btm_trigger_data {
|
||||||
uint32_t roaming_mode;
|
uint32_t roaming_mode;
|
||||||
@@ -7545,6 +7549,9 @@ struct wmi_roam_wtc_btm_trigger_data {
|
|||||||
uint32_t wtc_scan_mode;
|
uint32_t wtc_scan_mode;
|
||||||
uint32_t wtc_rssi_th;
|
uint32_t wtc_rssi_th;
|
||||||
uint32_t wtc_candi_rssi_th;
|
uint32_t wtc_candi_rssi_th;
|
||||||
|
uint32_t wtc_candi_rssi_ext_present;
|
||||||
|
uint32_t wtc_candi_rssi_th_5g;
|
||||||
|
uint32_t wtc_candi_rssi_th_6g;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -14351,6 +14351,28 @@ static QDF_STATUS extract_ani_level_tlv(uint8_t *evt_buf,
|
|||||||
#endif /* FEATURE_ANI_LEVEL_REQUEST */
|
#endif /* FEATURE_ANI_LEVEL_REQUEST */
|
||||||
|
|
||||||
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
|
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
|
||||||
|
/**
|
||||||
|
* convert_wtc_scan_mode() - Function to convert TLV specific
|
||||||
|
* ROAM_TRIGGER_SCAN_MODE scan mode to unified Roam trigger scan mode enum
|
||||||
|
* @scan_mode: scan freq scheme coming from firmware
|
||||||
|
*
|
||||||
|
* Return: ROAM_TRIGGER_SCAN_MODE
|
||||||
|
*/
|
||||||
|
static enum roam_scan_freq_scheme
|
||||||
|
convert_wtc_scan_mode(WMI_ROAM_TRIGGER_SCAN_MODE scan_mode)
|
||||||
|
{
|
||||||
|
switch (scan_mode) {
|
||||||
|
case ROAM_TRIGGER_SCAN_MODE_NO_SCAN_DISCONNECTION:
|
||||||
|
return ROAM_SCAN_FREQ_SCHEME_NO_SCAN;
|
||||||
|
case ROAM_TRIGGER_SCAN_MODE_PARTIAL:
|
||||||
|
return ROAM_SCAN_FREQ_SCHEME_PARTIAL_SCAN;
|
||||||
|
case ROAM_TRIGGER_SCAN_MODE_FULL:
|
||||||
|
return ROAM_SCAN_FREQ_SCHEME_FULL_SCAN;
|
||||||
|
default:
|
||||||
|
return ROAM_SCAN_FREQ_SCHEME_NONE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* extract_roam_trigger_stats_tlv() - Extract the Roam trigger stats
|
* extract_roam_trigger_stats_tlv() - Extract the Roam trigger stats
|
||||||
* from the WMI_ROAM_STATS_EVENTID
|
* from the WMI_ROAM_STATS_EVENTID
|
||||||
@@ -14431,11 +14453,19 @@ extract_roam_trigger_stats_tlv(wmi_unified_t wmi_handle, void *evt_buf,
|
|||||||
trig->wtc_btm_trig_data.wtc_mode =
|
trig->wtc_btm_trig_data.wtc_mode =
|
||||||
src_data->vendor_specific1[3];
|
src_data->vendor_specific1[3];
|
||||||
trig->wtc_btm_trig_data.wtc_scan_mode =
|
trig->wtc_btm_trig_data.wtc_scan_mode =
|
||||||
src_data->vendor_specific1[4];
|
convert_wtc_scan_mode(src_data->vendor_specific1[4]);
|
||||||
trig->wtc_btm_trig_data.wtc_rssi_th =
|
trig->wtc_btm_trig_data.wtc_rssi_th =
|
||||||
src_data->vendor_specific1[5];
|
src_data->vendor_specific1[5];
|
||||||
trig->wtc_btm_trig_data.wtc_candi_rssi_th =
|
trig->wtc_btm_trig_data.wtc_candi_rssi_th =
|
||||||
src_data->vendor_specific1[6];
|
src_data->vendor_specific1[6];
|
||||||
|
|
||||||
|
trig->wtc_btm_trig_data.wtc_candi_rssi_ext_present =
|
||||||
|
src_data->vendor_specific2[0];
|
||||||
|
trig->wtc_btm_trig_data.wtc_candi_rssi_th_5g =
|
||||||
|
src_data->vendor_specific2[1];
|
||||||
|
trig->wtc_btm_trig_data.wtc_candi_rssi_th_6g =
|
||||||
|
src_data->vendor_specific2[2];
|
||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
default:
|
default:
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
|
Reference in New Issue
Block a user