qcacmn: Add ctl failsafe event

CTL failsafe event handler adds the capability to inform host
when failsafe algorithm invoked.

CRs-Fixed: 2333137
Change-Id: I91298c9be1f0f8291c927dbd3ac4a2a9f1b9f31b
This commit is contained in:
Alok Singh
2018-09-20 16:07:28 +05:30
committed by nshrivas
parent f6694f8e83
commit 0243e7d191
3 changed files with 83 additions and 0 deletions

View File

@@ -3005,6 +3005,30 @@ wmi_send_reset_peer_mumimo_tx_count_cmd(void *wmi_hdl, uint32_t value)
} }
/* Extract - APIs */ /* Extract - APIs */
/**
* wmi_extract_ctl_failsafe_check_ev_param() - extract ctl data
* from event
* @wmi_handle: wmi handle
* @param evt_buf: pointer to event buffer
* @param param: Pointer to hold ctl data
*
* Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
*/
QDF_STATUS
wmi_extract_ctl_failsafe_check_ev_param(void *wmi_hdl,
void *evt_buf,
struct wmi_host_pdev_ctl_failsafe_event
*param)
{
wmi_unified_t wmi = (wmi_unified_t)wmi_hdl;
if (wmi->ops->extract_ctl_failsafe_check_ev_param)
return wmi->ops->extract_ctl_failsafe_check_ev_param(
wmi, evt_buf, param);
return QDF_STATUS_E_FAILURE;
}
/** /**
* wmi_extract_fips_event_data() - extract fips event data * wmi_extract_fips_event_data() - extract fips event data
* @wmi_handle: wmi handle * @wmi_handle: wmi handle

View File

@@ -6768,6 +6768,28 @@ static QDF_STATUS extract_pdev_caldata_version_check_ev_param_non_tlv(
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
} }
/**
* extract_ctl_failsafe_check_ev_param_non_tlv() - extract ctl data from
* event
* @wmi_handle: wmi handle
* @param evt_buf: pointer to event buffer
* @param param: Pointer to hold peer ctl data
*
* Return: QDF_STATUS_SUCCESS for success
*/
static QDF_STATUS extract_ctl_failsafe_check_ev_param_non_tlv(
wmi_unified_t wmi_handle,
void *evt_buf,
struct wmi_host_pdev_ctl_failsafe_event *param)
{
wmi_pdev_ctl_failsafe_event *event =
(wmi_pdev_ctl_failsafe_event *)evt_buf;
param->ctl_failsafe_status = event->ctl_FailsafeStatus;
return QDF_STATUS_SUCCESS;
}
/** /**
* extract_pdev_tpc_config_ev_param_non_tlv() - extract pdev tpc configuration * extract_pdev_tpc_config_ev_param_non_tlv() - extract pdev tpc configuration
* param from event * param from event
@@ -8983,6 +9005,8 @@ struct wmi_ops non_tlv_ops = {
#endif #endif
.extract_esp_estimation_ev_param = .extract_esp_estimation_ev_param =
extract_esp_estimation_ev_param_non_tlv, extract_esp_estimation_ev_param_non_tlv,
.extract_ctl_failsafe_check_ev_param =
extract_ctl_failsafe_check_ev_param_non_tlv,
}; };
/** /**
@@ -9290,6 +9314,8 @@ static void populate_non_tlv_events_id(uint32_t *event_ids)
#endif #endif
event_ids[wmi_esp_estimate_event_id] = event_ids[wmi_esp_estimate_event_id] =
WMI_ESP_ESTIMATE_EVENTID; WMI_ESP_ESTIMATE_EVENTID;
event_ids[wmi_pdev_ctl_failsafe_check_event_id] =
WMI_PDEV_CTL_FAILSAFE_CHECK_EVENTID;
} }
/** /**

View File

@@ -7582,6 +7582,35 @@ static QDF_STATUS extract_cca_stats_tlv(wmi_unified_t wmi_handle,
} }
#endif /* QCA_SUPPORT_CP_STATS */ #endif /* QCA_SUPPORT_CP_STATS */
/**
* extract_ctl_failsafe_check_ev_param_tlv() - extract ctl data from
* event
* @wmi_handle: wmi handle
* @param evt_buf: pointer to event buffer
* @param param: Pointer to hold peer ctl data
*
* Return: QDF_STATUS_SUCCESS for success or error code
*/
static QDF_STATUS extract_ctl_failsafe_check_ev_param_tlv(
wmi_unified_t wmi_handle,
void *evt_buf,
struct wmi_host_pdev_ctl_failsafe_event *param)
{
WMI_PDEV_CTL_FAILSAFE_CHECK_EVENTID_param_tlvs *param_buf;
wmi_pdev_ctl_failsafe_check_fixed_param *fix_param;
param_buf = (WMI_PDEV_CTL_FAILSAFE_CHECK_EVENTID_param_tlvs *)evt_buf;
if (!param_buf) {
WMI_LOGE("Invalid ctl_failsafe event buffer");
return QDF_STATUS_E_INVAL;
}
fix_param = param_buf->fixed_param;
param->ctl_failsafe_status = fix_param->ctl_FailsafeStatus;
return QDF_STATUS_SUCCESS;
}
/** /**
* save_service_bitmap_tlv() - save service bitmap * save_service_bitmap_tlv() - save service bitmap
* @wmi_handle: wmi handle * @wmi_handle: wmi handle
@@ -11107,6 +11136,8 @@ struct wmi_ops tlv_ops = {
.send_obss_spatial_reuse_set = send_obss_spatial_reuse_set_cmd_tlv, .send_obss_spatial_reuse_set = send_obss_spatial_reuse_set_cmd_tlv,
#endif #endif
.extract_offload_bcn_tx_status_evt = extract_offload_bcn_tx_status_evt, .extract_offload_bcn_tx_status_evt = extract_offload_bcn_tx_status_evt,
.extract_ctl_failsafe_check_ev_param =
extract_ctl_failsafe_check_ev_param_tlv,
}; };
/** /**
@@ -11406,6 +11437,8 @@ static void populate_tlv_events_id(uint32_t *event_ids)
#ifdef AST_HKV1_WORKAROUND #ifdef AST_HKV1_WORKAROUND
event_ids[wmi_wds_peer_event_id] = WMI_WDS_PEER_EVENTID; event_ids[wmi_wds_peer_event_id] = WMI_WDS_PEER_EVENTID;
#endif #endif
event_ids[wmi_pdev_ctl_failsafe_check_event_id] =
WMI_PDEV_CTL_FAILSAFE_CHECK_EVENTID;
} }
/** /**