qcacmn: Add extract_roam_stats_event to wmi_ops

Add extract_roam_stats_event to wmi_ops to allow cld driver to register
the corresponding callback.

Change-Id: I77ebb05a1a2ce9fa0b2f2f2ffb50c523ab9070e6
CRs-Fixed: 3007690
This commit is contained in:
Sai Pavan Akhil Remella
2021-08-15 13:19:19 +05:30
committed by Madan Koyyalamudi
parent 14d9d6d697
commit 5adde265e2
2 changed files with 56 additions and 2 deletions

View File

@@ -14591,6 +14591,54 @@ convert_wtc_scan_mode(WMI_ROAM_TRIGGER_SCAN_MODE scan_mode)
}
}
static uint32_t wmi_convert_fw_to_cm_trig_reason(uint32_t fw_trig_reason)
{
switch (fw_trig_reason) {
case WMI_ROAM_TRIGGER_REASON_NONE:
return ROAM_TRIGGER_REASON_NONE;
case WMI_ROAM_TRIGGER_REASON_PER:
return ROAM_TRIGGER_REASON_PER;
case WMI_ROAM_TRIGGER_REASON_BMISS:
return ROAM_TRIGGER_REASON_BMISS;
case WMI_ROAM_TRIGGER_REASON_LOW_RSSI:
return ROAM_TRIGGER_REASON_LOW_RSSI;
case WMI_ROAM_TRIGGER_REASON_HIGH_RSSI:
return ROAM_TRIGGER_REASON_HIGH_RSSI;
case WMI_ROAM_TRIGGER_REASON_PERIODIC:
return ROAM_TRIGGER_REASON_PERIODIC;
case WMI_ROAM_TRIGGER_REASON_MAWC:
return ROAM_TRIGGER_REASON_MAWC;
case WMI_ROAM_TRIGGER_REASON_DENSE:
return ROAM_TRIGGER_REASON_DENSE;
case WMI_ROAM_TRIGGER_REASON_BACKGROUND:
return ROAM_TRIGGER_REASON_BACKGROUND;
case WMI_ROAM_TRIGGER_REASON_FORCED:
return ROAM_TRIGGER_REASON_FORCED;
case WMI_ROAM_TRIGGER_REASON_BTM:
return ROAM_TRIGGER_REASON_BTM;
case WMI_ROAM_TRIGGER_REASON_UNIT_TEST:
return ROAM_TRIGGER_REASON_UNIT_TEST;
case WMI_ROAM_TRIGGER_REASON_BSS_LOAD:
return ROAM_TRIGGER_REASON_BSS_LOAD;
case WMI_ROAM_TRIGGER_REASON_DEAUTH:
return ROAM_TRIGGER_REASON_DEAUTH;
case WMI_ROAM_TRIGGER_REASON_IDLE:
return ROAM_TRIGGER_REASON_IDLE;
case WMI_ROAM_TRIGGER_REASON_STA_KICKOUT:
return ROAM_TRIGGER_REASON_STA_KICKOUT;
case WMI_ROAM_TRIGGER_REASON_ESS_RSSI:
return ROAM_TRIGGER_REASON_ESS_RSSI;
case WMI_ROAM_TRIGGER_REASON_WTC_BTM:
return ROAM_TRIGGER_REASON_WTC_BTM;
case WMI_ROAM_TRIGGER_REASON_PMK_TIMEOUT:
return ROAM_TRIGGER_REASON_PMK_TIMEOUT;
case WMI_ROAM_TRIGGER_EXT_REASON_MAX:
return ROAM_TRIGGER_REASON_MAX;
default:
return ROAM_TRIGGER_REASON_NONE;
}
}
/**
* extract_roam_trigger_stats_tlv() - Extract the Roam trigger stats
* from the WMI_ROAM_STATS_EVENTID
@@ -14605,6 +14653,7 @@ extract_roam_trigger_stats_tlv(wmi_unified_t wmi_handle, void *evt_buf,
{
WMI_ROAM_STATS_EVENTID_param_tlvs *param_buf;
wmi_roam_trigger_reason *src_data = NULL;
uint32_t trig_reason;
param_buf = (WMI_ROAM_STATS_EVENTID_param_tlvs *)evt_buf;
if (!param_buf || !param_buf->roam_trigger_reason)
@@ -14613,12 +14662,13 @@ extract_roam_trigger_stats_tlv(wmi_unified_t wmi_handle, void *evt_buf,
src_data = &param_buf->roam_trigger_reason[idx];
trig->present = true;
trig->trigger_reason = src_data->trigger_reason;
trig_reason = src_data->trigger_reason;
trig->trigger_reason = wmi_convert_fw_to_cm_trig_reason(trig_reason);
trig->trigger_sub_reason = src_data->trigger_sub_reason;
trig->current_rssi = src_data->current_rssi;
trig->timestamp = src_data->timestamp;
switch (trig->trigger_reason) {
switch (trig_reason) {
case WMI_ROAM_TRIGGER_REASON_PER:
case WMI_ROAM_TRIGGER_REASON_BMISS:
case WMI_ROAM_TRIGGER_REASON_HIGH_RSSI: