qcacmn: Add API to extract rate2power update response WMI event
Add API extract_tgtr2p_table_event_tlv to extract TLVs from the response event of rate2power table update cmd. Add a wrapper function wmi_extract_tgtr2p_table_event and call extract_tgtr2p_table_event_tlv from it. Add the host event id wmi_pdev_set_tgtr2p_table_eventid corresponding to the target id WMI_PDEV_SET_TGTR2P_TABLE_EVENTID. Also add this mapping to populate_tlv_events_id function. Change-Id: I0a870125120f1f92ee50002953e114b27d597ae6 CRs-Fixed: 3405417
This commit is contained in:

committed by
Madan Koyyalamudi

parent
0d3ef18cdf
commit
6ddd0be86d
@@ -123,6 +123,7 @@
|
|||||||
#define CTL_5G_SIZE 1536
|
#define CTL_5G_SIZE 1536
|
||||||
#define CTL_2G_SIZE 684
|
#define CTL_2G_SIZE 684
|
||||||
#define MAX_CTL_SIZE (CTL_5G_SIZE > CTL_2G_SIZE ? CTL_5G_SIZE : CTL_2G_SIZE)
|
#define MAX_CTL_SIZE (CTL_5G_SIZE > CTL_2G_SIZE ? CTL_5G_SIZE : CTL_2G_SIZE)
|
||||||
|
#define MAX_PWTAB_SIZE 3392
|
||||||
#define IEEE80211_MICBUF_SIZE (8+8)
|
#define IEEE80211_MICBUF_SIZE (8+8)
|
||||||
#define IEEE80211_TID_SIZE 17
|
#define IEEE80211_TID_SIZE 17
|
||||||
#define WME_NUM_AC 4
|
#define WME_NUM_AC 4
|
||||||
@@ -5250,6 +5251,7 @@ typedef enum {
|
|||||||
#ifdef WLAN_SUPPORT_GAP_LL_PS_MODE
|
#ifdef WLAN_SUPPORT_GAP_LL_PS_MODE
|
||||||
wmi_xgap_enable_complete_eventid,
|
wmi_xgap_enable_complete_eventid,
|
||||||
#endif
|
#endif
|
||||||
|
wmi_pdev_set_tgtr2p_table_eventid,
|
||||||
wmi_events_max,
|
wmi_events_max,
|
||||||
} wmi_conv_event_id;
|
} wmi_conv_event_id;
|
||||||
|
|
||||||
|
@@ -1405,6 +1405,10 @@ QDF_STATUS
|
|||||||
(*send_set_sta_max_pwr_table_cmd)(wmi_unified_t wmi_handle,
|
(*send_set_sta_max_pwr_table_cmd)(wmi_unified_t wmi_handle,
|
||||||
struct sta_max_pwr_table_params *param);
|
struct sta_max_pwr_table_params *param);
|
||||||
|
|
||||||
|
QDF_STATUS
|
||||||
|
(*send_set_power_table_cmd)(wmi_unified_t wmi_handle,
|
||||||
|
struct rate2power_table_params *param);
|
||||||
|
|
||||||
QDF_STATUS (*send_set_mimogain_table_cmd)(wmi_unified_t wmi_handle,
|
QDF_STATUS (*send_set_mimogain_table_cmd)(wmi_unified_t wmi_handle,
|
||||||
struct mimogain_table_params *param);
|
struct mimogain_table_params *param);
|
||||||
|
|
||||||
@@ -3219,6 +3223,12 @@ QDF_STATUS
|
|||||||
(*send_wmi_tdma_schedule_request_cmd)(wmi_unified_t wmi_handle,
|
(*send_wmi_tdma_schedule_request_cmd)(wmi_unified_t wmi_handle,
|
||||||
struct wlan_tdma_sched_cmd_param *param);
|
struct wlan_tdma_sched_cmd_param *param);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
QDF_STATUS
|
||||||
|
(*extract_tgtr2p_table_event)(wmi_unified_t wmi_handle,
|
||||||
|
uint8_t *evt_buf,
|
||||||
|
struct r2p_table_update_status_obj *update_status,
|
||||||
|
uint32_t len);
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Forward declaration for psoc*/
|
/* Forward declaration for psoc*/
|
||||||
|
@@ -135,4 +135,19 @@ QDF_STATUS wmi_extract_reg_ch_avoid_event(
|
|||||||
struct ch_avoid_ind_type *ch_avoid_ind,
|
struct ch_avoid_ind_type *ch_avoid_ind,
|
||||||
uint32_t len);
|
uint32_t len);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wmi_extract_tgtr2p_table_event() - function to read the contents of the
|
||||||
|
* rate2power update response event
|
||||||
|
* @wmi_handle: wmi handle
|
||||||
|
* @evt_buf: event buffer
|
||||||
|
* @update_status: Status object
|
||||||
|
* @len: length of buffer
|
||||||
|
*
|
||||||
|
* Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_FAILURE on error
|
||||||
|
*/
|
||||||
|
QDF_STATUS wmi_extract_tgtr2p_table_event(wmi_unified_t wmi_handle,
|
||||||
|
uint8_t *evt_buf,
|
||||||
|
struct r2p_table_update_status_obj *update_status,
|
||||||
|
uint32_t len);
|
||||||
|
|
||||||
#endif /* _WMI_UNIFIED_REG_API_H_ */
|
#endif /* _WMI_UNIFIED_REG_API_H_ */
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2017-2021 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2017-2021 The Linux Foundation. All rights reserved.
|
||||||
*
|
* Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -152,3 +152,19 @@ QDF_STATUS wmi_extract_reg_ch_avoid_event(
|
|||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
qdf_export_symbol(wmi_extract_reg_ch_avoid_event);
|
qdf_export_symbol(wmi_extract_reg_ch_avoid_event);
|
||||||
|
|
||||||
|
QDF_STATUS wmi_extract_tgtr2p_table_event(
|
||||||
|
wmi_unified_t wmi_handle,
|
||||||
|
uint8_t *evt_buf,
|
||||||
|
struct r2p_table_update_status_obj *update_status,
|
||||||
|
uint32_t len)
|
||||||
|
{
|
||||||
|
if (wmi_handle &&
|
||||||
|
wmi_handle->ops->extract_tgtr2p_table_event)
|
||||||
|
return wmi_handle->ops->extract_tgtr2p_table_event(
|
||||||
|
wmi_handle, evt_buf, update_status, len);
|
||||||
|
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
qdf_export_symbol(wmi_extract_tgtr2p_table_event);
|
||||||
|
@@ -20402,6 +20402,34 @@ extract_sap_coex_fix_chan_caps(wmi_unified_t wmi_handle,
|
|||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static QDF_STATUS extract_tgtr2p_table_event_tlv(wmi_unified_t wmi_handle,
|
||||||
|
uint8_t *evt_buf,
|
||||||
|
struct r2p_table_update_status_obj *update_status,
|
||||||
|
uint32_t len)
|
||||||
|
{
|
||||||
|
WMI_PDEV_SET_TGTR2P_TABLE_EVENTID_param_tlvs *param_buf;
|
||||||
|
wmi_pdev_set_tgtr2p_table_event_fixed_param *event_fixed_hdr;
|
||||||
|
|
||||||
|
param_buf = (WMI_PDEV_SET_TGTR2P_TABLE_EVENTID_param_tlvs *)evt_buf;
|
||||||
|
if (!param_buf) {
|
||||||
|
wmi_err("Invalid TGTR2P event buf");
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
event_fixed_hdr = param_buf->fixed_param;
|
||||||
|
update_status->pdev_id = event_fixed_hdr->pdev_id;
|
||||||
|
update_status->status = event_fixed_hdr->status;
|
||||||
|
|
||||||
|
if (update_status->status != WMI_PDEV_TGTR2P_SUCCESS &&
|
||||||
|
update_status->status !=
|
||||||
|
WMI_PDEV_TGTR2P_SUCCESS_WAITING_FOR_END_OF_UPDATE) {
|
||||||
|
wmi_err("Rate2Power table update failed. Status = %d",
|
||||||
|
update_status->status);
|
||||||
|
}
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
struct wmi_ops tlv_ops = {
|
struct wmi_ops tlv_ops = {
|
||||||
.send_vdev_create_cmd = send_vdev_create_cmd_tlv,
|
.send_vdev_create_cmd = send_vdev_create_cmd_tlv,
|
||||||
.send_vdev_delete_cmd = send_vdev_delete_cmd_tlv,
|
.send_vdev_delete_cmd = send_vdev_delete_cmd_tlv,
|
||||||
@@ -20886,6 +20914,7 @@ struct wmi_ops tlv_ops = {
|
|||||||
send_update_edca_pifs_param_cmd_tlv,
|
send_update_edca_pifs_param_cmd_tlv,
|
||||||
.extract_sap_coex_cap_service_ready_ext2 =
|
.extract_sap_coex_cap_service_ready_ext2 =
|
||||||
extract_sap_coex_fix_chan_caps,
|
extract_sap_coex_fix_chan_caps,
|
||||||
|
.extract_tgtr2p_table_event = extract_tgtr2p_table_event_tlv,
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef WLAN_FEATURE_11BE_MLO
|
#ifdef WLAN_FEATURE_11BE_MLO
|
||||||
@@ -21388,6 +21417,8 @@ static void populate_tlv_events_id(WMI_EVT_ID *event_ids)
|
|||||||
event_ids[wmi_xgap_enable_complete_eventid] =
|
event_ids[wmi_xgap_enable_complete_eventid] =
|
||||||
WMI_XGAP_ENABLE_COMPLETE_EVENTID;
|
WMI_XGAP_ENABLE_COMPLETE_EVENTID;
|
||||||
#endif
|
#endif
|
||||||
|
event_ids[wmi_pdev_set_tgtr2p_table_eventid] =
|
||||||
|
WMI_PDEV_SET_TGTR2P_TABLE_EVENTID;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef WLAN_FEATURE_LINK_LAYER_STATS
|
#ifdef WLAN_FEATURE_LINK_LAYER_STATS
|
||||||
|
Reference in New Issue
Block a user