qcacmn: Add extract API for UTF event to support TLV and Non-TLV targets

Add extract API for handling UTF event data received from the target
for both TLV and non-TLV cases.

Change-Id: I62525d7c8663fe90e0e3e76cf5286bb9dc86acd0
CRs-Fixed: 1115293
This commit is contained in:
Sathish Kumar
2017-01-24 17:51:26 +05:30
committed by qcabuildsw
parent 139d36723e
commit 3541df9810
6 changed files with 82 additions and 0 deletions

View File

@@ -1362,4 +1362,7 @@ QDF_STATUS wmi_extract_reg_cap_service_ready_ext(
void *wmi_hdl,
uint8_t *evt_buf, uint8_t phy_idx,
struct WMI_HOST_HAL_REG_CAPABILITIES_EXT *param);
QDF_STATUS wmi_extract_pdev_utf_event(void *wmi_hdl,
uint8_t *evt_buf,
struct wmi_host_pdev_utf_event *param);
#endif /* _WMI_UNIFIED_API_H_ */

View File

@@ -7214,4 +7214,15 @@ struct action_wakeup_set_param {
uint32_t action_category_map[WMI_SUPPORTED_ACTION_CATEGORY_ELE_LIST];
};
/**
* struct wmi_host_pdev_utf_event - Host defined struct to hold utf event data
* @data: Pointer to data
* @datalen: Data length
*
*/
struct wmi_host_pdev_utf_event {
uint8_t *data;
uint16_t datalen;
};
#endif /* _WMI_UNIFIED_PARAM_H_ */

View File

@@ -1212,6 +1212,11 @@ QDF_STATUS (*extract_reg_cap_service_ready_ext)(
wmi_unified_t wmi_handle,
uint8_t *evt_buf, uint8_t phy_idx,
struct WMI_HOST_HAL_REG_CAPABILITIES_EXT *param);
QDF_STATUS (*extract_pdev_utf_event)(wmi_unified_t wmi_hdl,
uint8_t *evt_buf,
struct wmi_host_pdev_utf_event *param);
uint16_t (*wmi_set_htc_tx_tag)(wmi_unified_t wmi_handle,
wmi_buf_t buf, uint32_t cmd_id);
};

View File

@@ -6560,3 +6560,26 @@ QDF_STATUS wmi_extract_reg_cap_service_ready_ext(
return QDF_STATUS_E_FAILURE;
}
/**
* wmi_extract_pdev_utf_event() -
* extract UTF data from pdev utf event
* @wmi_handle: wmi handle
* @param evt_buf: pointer to event buffer
* @param param: Pointer to hold evt buf
*
* Return: QDF_STATUS_SUCCESS for success or error code
*/
QDF_STATUS wmi_extract_pdev_utf_event(void *wmi_hdl,
uint8_t *evt_buf,
struct wmi_host_pdev_utf_event *param)
{
wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
if (wmi_handle->ops->extract_pdev_utf_event)
return wmi_handle->ops->extract_pdev_utf_event(
wmi_handle,
evt_buf, param);
return QDF_STATUS_E_FAILURE;
}

View File

@@ -7846,6 +7846,24 @@ static QDF_STATUS extract_atf_token_info_ev_non_tlv(
return QDF_STATUS_SUCCESS;
}
/**
* extract_pdev_utf_event_non_tlv() - extract UTF data info from event
* @wmi_handle: WMI handle
* @param evt_buf: Pointer to event buffer
* @param param: Pointer to hold data
*
* Return : QDF_STATUS_SUCCESS for success or error code
*/
static QDF_STATUS extract_pdev_utf_event_non_tlv(
wmi_unified_t wmi_handle,
uint8_t *evt_buf,
struct wmi_host_pdev_utf_event *event)
{
event->data = evt_buf;
return QDF_STATUS_SUCCESS;
}
#ifdef WMI_INTERFACE_EVENT_LOGGING
static bool is_management_record_non_tlv(uint32_t cmd_id)
{
@@ -8087,6 +8105,7 @@ struct wmi_ops non_tlv_ops = {
.extract_mu_db_entry = extract_mu_db_entry_non_tlv,
.extract_atf_peer_stats_ev = extract_atf_peer_stats_ev_non_tlv,
.extract_atf_token_info_ev = extract_atf_token_info_ev_non_tlv,
.extract_pdev_utf_event = extract_pdev_utf_event_non_tlv,
.wmi_set_htc_tx_tag = wmi_set_htc_tx_tag_non_tlv,
};

View File

@@ -12774,6 +12774,26 @@ static QDF_STATUS extract_chan_info_event_tlv(wmi_unified_t wmi_handle,
return QDF_STATUS_SUCCESS;
}
/**
* extract_pdev_utf_event_tlv() - extract UTF data info from event
* @wmi_handle: WMI handle
* @param evt_buf: Pointer to event buffer
* @param param: Pointer to hold data
*
* Return : QDF_STATUS_SUCCESS for success or error code
*/
static QDF_STATUS extract_pdev_utf_event_tlv(wmi_unified_t wmi_handle,
uint8_t *evt_buf,
struct wmi_host_pdev_utf_event *event)
{
WMI_PDEV_UTF_EVENTID_param_tlvs *param_buf;
param_buf = (WMI_PDEV_UTF_EVENTID_param_tlvs *)evt_buf;
event->data = param_buf->data;
event->datalen = param_buf->num_data;
return QDF_STATUS_SUCCESS;
}
/**
* extract_channel_hopping_event_tlv() - extract channel hopping param
* from event
@@ -13382,6 +13402,7 @@ struct wmi_ops tlv_ops = {
extract_mac_phy_cap_service_ready_ext_tlv,
.extract_reg_cap_service_ready_ext =
extract_reg_cap_service_ready_ext_tlv,
.extract_pdev_utf_event = extract_pdev_utf_event_tlv,
.wmi_set_htc_tx_tag = wmi_set_htc_tx_tag_tlv,
};