qcacmn: Changes to support pdev_id in host from zero
pdev_id in FW starts from one. Zero is reserved for Soc. But host uses pdev_id starting from zero. Make WMI changes to take care of this difference and always provide and accept pdev_id starting from zero at WMI. Use 0xFF for SoC on host. Change-Id: I49f481e54bbaeea9359753bc7d3da9092fc9559a CRs-Fixed: 2045125
This commit is contained in:

committed by
snandini

parent
5bdc4b3014
commit
8dfac0797a
@@ -309,6 +309,15 @@ wmi_stop(wmi_unified_t wmi_handle);
|
|||||||
void
|
void
|
||||||
wmi_flush_endpoint(wmi_unified_t wmi_handle);
|
wmi_flush_endpoint(wmi_unified_t wmi_handle);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wmi_pdev_id_conversion_enable() - API to enable pdev_id conversion in WMI
|
||||||
|
* By default pdev_id conversion is not done in WMI.
|
||||||
|
* This API can be used enable conversion in WMI.
|
||||||
|
* @param wmi_handle : handle to WMI
|
||||||
|
* Return none
|
||||||
|
*/
|
||||||
|
void wmi_pdev_id_conversion_enable(wmi_unified_t wmi_handle);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* API to handle wmi rx event after UMAC has taken care of execution
|
* API to handle wmi rx event after UMAC has taken care of execution
|
||||||
* context
|
* context
|
||||||
|
@@ -7232,4 +7232,8 @@ struct coex_config_params {
|
|||||||
uint32_t config_arg6;
|
uint32_t config_arg6;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define WMI_HOST_PDEV_ID_SOC 0xFF
|
||||||
|
#define WMI_HOST_PDEV_ID_0 0
|
||||||
|
#define WMI_HOST_PDEV_ID_1 1
|
||||||
|
#define WMI_HOST_PDEV_ID_2 2
|
||||||
#endif /* _WMI_UNIFIED_PARAM_H_ */
|
#endif /* _WMI_UNIFIED_PARAM_H_ */
|
||||||
|
@@ -1313,9 +1313,12 @@ QDF_STATUS (*extract_dfs_radar_detection_event)(wmi_unified_t wmi_handle,
|
|||||||
struct radar_found_info *radar_found,
|
struct radar_found_info *radar_found,
|
||||||
uint32_t len);
|
uint32_t len);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
QDF_STATUS (*send_set_country_cmd)(wmi_unified_t wmi_handle,
|
QDF_STATUS (*send_set_country_cmd)(wmi_unified_t wmi_handle,
|
||||||
struct set_country *param);
|
struct set_country *param);
|
||||||
|
|
||||||
|
uint32_t (*convert_pdev_id_host_to_target)(uint32_t pdev_id);
|
||||||
|
uint32_t (*convert_pdev_id_target_to_host)(uint32_t pdev_id);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct target_abi_version {
|
struct target_abi_version {
|
||||||
@@ -1430,8 +1433,11 @@ struct wmi_soc {
|
|||||||
/* ONLY_NON_TLV_TARGET:TLV attach dummy function defintion for case when
|
/* ONLY_NON_TLV_TARGET:TLV attach dummy function defintion for case when
|
||||||
* driver supports only NON-TLV target (WIN mainline) */
|
* driver supports only NON-TLV target (WIN mainline) */
|
||||||
#define wmi_tlv_attach(x) qdf_print("TLV Unavailable\n")
|
#define wmi_tlv_attach(x) qdf_print("TLV Unavailable\n")
|
||||||
|
#define wmi_tlv_pdev_id_conversion_enable(wmi_hdl) \
|
||||||
|
qdf_print("PDEV conversion Not Available")
|
||||||
#else
|
#else
|
||||||
void wmi_tlv_attach(wmi_unified_t wmi_handle);
|
void wmi_tlv_attach(wmi_unified_t wmi_handle);
|
||||||
|
void wmi_tlv_pdev_id_conversion_enable(wmi_unified_t wmi_handle);
|
||||||
#endif
|
#endif
|
||||||
void wmi_non_tlv_attach(wmi_unified_t wmi_handle);
|
void wmi_non_tlv_attach(wmi_unified_t wmi_handle);
|
||||||
|
|
||||||
|
@@ -3042,4 +3042,18 @@ wmi_stop(wmi_unified_t wmi_handle)
|
|||||||
wmi_handle->wmi_stopinprogress = 1;
|
wmi_handle->wmi_stopinprogress = 1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wmi_pdev_id_conversion_enable() - API to enable pdev_id conversion in WMI
|
||||||
|
* By default pdev_id conversion is not done in WMI.
|
||||||
|
* This API can be used enable conversion in WMI.
|
||||||
|
* @param wmi_handle : handle to WMI
|
||||||
|
* Return none
|
||||||
|
*/
|
||||||
|
void wmi_pdev_id_conversion_enable(wmi_unified_t wmi_handle)
|
||||||
|
{
|
||||||
|
if (wmi_handle->target_type == WMI_TLV_TARGET)
|
||||||
|
wmi_tlv_pdev_id_conversion_enable(wmi_handle);
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -38,12 +38,12 @@
|
|||||||
#include "wmi.h"
|
#include "wmi.h"
|
||||||
#include "wmi_unified.h"
|
#include "wmi_unified.h"
|
||||||
|
|
||||||
/* Pdev_id starts from 1. For backward compatability value zero is used
|
|
||||||
* for broadcast ID. pdev_id is used to distinguish the radio for which event
|
/* pdev_id is used to distinguish the radio for which event
|
||||||
* is recieved. Since non-tlv target has only one radio, setting
|
* is recieved. Since non-tlv target has only one radio, setting
|
||||||
* default pdev_id to one to keep rest of the code using WMI APIs unfiorm.
|
* default pdev_id to one to keep rest of the code using WMI APIs unfiorm.
|
||||||
*/
|
*/
|
||||||
#define WMI_NON_TLV_DEFAULT_PDEV_ID 1
|
#define WMI_NON_TLV_DEFAULT_PDEV_ID WMI_HOST_PDEV_ID_0
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* send_vdev_create_cmd_non_tlv() - send VDEV create command to fw
|
* send_vdev_create_cmd_non_tlv() - send VDEV create command to fw
|
||||||
|
@@ -37,6 +37,7 @@
|
|||||||
|
|
||||||
/* copy_vdev_create_pdev_id() - copy pdev from host params to target command
|
/* copy_vdev_create_pdev_id() - copy pdev from host params to target command
|
||||||
* buffer.
|
* buffer.
|
||||||
|
* @wmi_handle: pointer to wmi_handle
|
||||||
* @cmd: pointer target vdev create command buffer
|
* @cmd: pointer target vdev create command buffer
|
||||||
* @param: pointer host params for vdev create
|
* @param: pointer host params for vdev create
|
||||||
*
|
*
|
||||||
@@ -44,6 +45,7 @@
|
|||||||
*/
|
*/
|
||||||
#ifdef CONFIG_MCL
|
#ifdef CONFIG_MCL
|
||||||
static inline void copy_vdev_create_pdev_id(
|
static inline void copy_vdev_create_pdev_id(
|
||||||
|
struct wmi_unified *wmi_handle,
|
||||||
wmi_vdev_create_cmd_fixed_param * cmd,
|
wmi_vdev_create_cmd_fixed_param * cmd,
|
||||||
struct vdev_create_params *param)
|
struct vdev_create_params *param)
|
||||||
{
|
{
|
||||||
@@ -51,10 +53,12 @@ static inline void copy_vdev_create_pdev_id(
|
|||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
static inline void copy_vdev_create_pdev_id(
|
static inline void copy_vdev_create_pdev_id(
|
||||||
|
struct wmi_unified *wmi_handle,
|
||||||
wmi_vdev_create_cmd_fixed_param * cmd,
|
wmi_vdev_create_cmd_fixed_param * cmd,
|
||||||
struct vdev_create_params *param)
|
struct vdev_create_params *param)
|
||||||
{
|
{
|
||||||
cmd->pdev_id = param->pdev_id;
|
cmd->pdev_id = wmi_handle->ops->convert_pdev_id_host_to_target(
|
||||||
|
param->pdev_id);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -93,7 +97,7 @@ static QDF_STATUS send_vdev_create_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
cmd->vdev_type = param->type;
|
cmd->vdev_type = param->type;
|
||||||
cmd->vdev_subtype = param->subtype;
|
cmd->vdev_subtype = param->subtype;
|
||||||
cmd->num_cfg_txrx_streams = num_bands;
|
cmd->num_cfg_txrx_streams = num_bands;
|
||||||
copy_vdev_create_pdev_id(cmd, param);
|
copy_vdev_create_pdev_id(wmi_handle, cmd, param);
|
||||||
WMI_CHAR_ARRAY_TO_MAC_ADDR(macaddr, &cmd->vdev_macaddr);
|
WMI_CHAR_ARRAY_TO_MAC_ADDR(macaddr, &cmd->vdev_macaddr);
|
||||||
WMI_LOGD("%s: ID = %d VAP Addr = %02x:%02x:%02x:%02x:%02x:%02x",
|
WMI_LOGD("%s: ID = %d VAP Addr = %02x:%02x:%02x:%02x:%02x:%02x",
|
||||||
__func__, param->if_id,
|
__func__, param->if_id,
|
||||||
@@ -976,7 +980,7 @@ static QDF_STATUS send_green_ap_ps_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
WMITLV_TAG_STRUC_wmi_pdev_green_ap_ps_enable_cmd_fixed_param,
|
WMITLV_TAG_STRUC_wmi_pdev_green_ap_ps_enable_cmd_fixed_param,
|
||||||
WMITLV_GET_STRUCT_TLVLEN
|
WMITLV_GET_STRUCT_TLVLEN
|
||||||
(wmi_pdev_green_ap_ps_enable_cmd_fixed_param));
|
(wmi_pdev_green_ap_ps_enable_cmd_fixed_param));
|
||||||
cmd->pdev_id = mac_id;
|
cmd->pdev_id = wmi_handle->ops->convert_pdev_id_host_to_target(mac_id);
|
||||||
cmd->enable = value;
|
cmd->enable = value;
|
||||||
|
|
||||||
if (wmi_unified_cmd_send(wmi_handle, buf, len,
|
if (wmi_unified_cmd_send(wmi_handle, buf, len,
|
||||||
@@ -1131,7 +1135,7 @@ send_pdev_param_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
WMITLV_TAG_STRUC_wmi_pdev_set_param_cmd_fixed_param,
|
WMITLV_TAG_STRUC_wmi_pdev_set_param_cmd_fixed_param,
|
||||||
WMITLV_GET_STRUCT_TLVLEN
|
WMITLV_GET_STRUCT_TLVLEN
|
||||||
(wmi_pdev_set_param_cmd_fixed_param));
|
(wmi_pdev_set_param_cmd_fixed_param));
|
||||||
cmd->pdev_id = mac_id;
|
cmd->pdev_id = wmi_handle->ops->convert_pdev_id_host_to_target(mac_id);
|
||||||
cmd->param_id = pdev_param;
|
cmd->param_id = pdev_param;
|
||||||
cmd->param_value = param->param_value;
|
cmd->param_value = param->param_value;
|
||||||
WMI_LOGD("Setting pdev param = %x, value = %u", param->param_id,
|
WMI_LOGD("Setting pdev param = %x, value = %u", param->param_id,
|
||||||
@@ -1212,7 +1216,7 @@ static QDF_STATUS send_resume_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
WMITLV_TAG_STRUC_wmi_pdev_resume_cmd_fixed_param,
|
WMITLV_TAG_STRUC_wmi_pdev_resume_cmd_fixed_param,
|
||||||
WMITLV_GET_STRUCT_TLVLEN
|
WMITLV_GET_STRUCT_TLVLEN
|
||||||
(wmi_pdev_resume_cmd_fixed_param));
|
(wmi_pdev_resume_cmd_fixed_param));
|
||||||
cmd->pdev_id = WMI_PDEV_ID_SOC;
|
cmd->pdev_id = wmi_handle->ops->convert_pdev_id_host_to_target(mac_id);
|
||||||
ret = wmi_unified_cmd_send(wmi_handle, wmibuf, sizeof(*cmd),
|
ret = wmi_unified_cmd_send(wmi_handle, wmibuf, sizeof(*cmd),
|
||||||
WMI_PDEV_RESUME_CMDID);
|
WMI_PDEV_RESUME_CMDID);
|
||||||
if (QDF_IS_STATUS_ERROR(ret)) {
|
if (QDF_IS_STATUS_ERROR(ret)) {
|
||||||
@@ -2313,7 +2317,8 @@ static QDF_STATUS send_scan_stop_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
cmd->vdev_id = param->vdev_id;
|
cmd->vdev_id = param->vdev_id;
|
||||||
cmd->requestor = param->requester;
|
cmd->requestor = param->requester;
|
||||||
cmd->scan_id = param->scan_id;
|
cmd->scan_id = param->scan_id;
|
||||||
cmd->pdev_id = param->pdev_id + 1;
|
cmd->pdev_id = wmi_handle->ops->convert_pdev_id_host_to_target(
|
||||||
|
param->pdev_id);
|
||||||
/* stop the scan with the corresponding scan_id */
|
/* stop the scan with the corresponding scan_id */
|
||||||
if (param->req_type == WLAN_SCAN_CANCEL_PDEV_ALL) {
|
if (param->req_type == WLAN_SCAN_CANCEL_PDEV_ALL) {
|
||||||
/* Cancelling all scans */
|
/* Cancelling all scans */
|
||||||
@@ -2405,7 +2410,8 @@ static QDF_STATUS send_scan_chan_list_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
tchan_info++;
|
tchan_info++;
|
||||||
chan_info++;
|
chan_info++;
|
||||||
}
|
}
|
||||||
cmd->pdev_id = chan_list->pdev_id + 1;
|
cmd->pdev_id = wmi_handle->ops->convert_pdev_id_host_to_target(
|
||||||
|
chan_list->pdev_id);
|
||||||
|
|
||||||
qdf_status = wmi_unified_cmd_send(wmi_handle,
|
qdf_status = wmi_unified_cmd_send(wmi_handle,
|
||||||
buf, len, WMI_SCAN_CHAN_LIST_CMDID);
|
buf, len, WMI_SCAN_CHAN_LIST_CMDID);
|
||||||
@@ -2448,7 +2454,8 @@ static QDF_STATUS send_scan_chan_list_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
|
|
||||||
WMI_LOGD("no of channels = %d, len = %d", chan_list->nallchans, len);
|
WMI_LOGD("no of channels = %d, len = %d", chan_list->nallchans, len);
|
||||||
|
|
||||||
cmd->pdev_id = chan_list->pdev_id;
|
cmd->pdev_id = wmi_handle->ops->convert_pdev_id_host_to_target(
|
||||||
|
chan_list->pdev_id);
|
||||||
cmd->num_scan_chans = chan_list->nallchans;
|
cmd->num_scan_chans = chan_list->nallchans;
|
||||||
WMITLV_SET_HDR((buf_ptr + sizeof(wmi_scan_chan_list_cmd_fixed_param)),
|
WMITLV_SET_HDR((buf_ptr + sizeof(wmi_scan_chan_list_cmd_fixed_param)),
|
||||||
WMITLV_TAG_ARRAY_STRUC,
|
WMITLV_TAG_ARRAY_STRUC,
|
||||||
@@ -2500,7 +2507,8 @@ static QDF_STATUS send_scan_chan_list_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
tchan_info++;
|
tchan_info++;
|
||||||
chan_info++;
|
chan_info++;
|
||||||
}
|
}
|
||||||
cmd->pdev_id = chan_list->pdev_id + 1;
|
cmd->pdev_id = wmi_handle->ops->convert_pdev_id_host_to_target(
|
||||||
|
chan_list->pdev_id);
|
||||||
|
|
||||||
qdf_status = wmi_unified_cmd_send(
|
qdf_status = wmi_unified_cmd_send(
|
||||||
wmi_handle,
|
wmi_handle,
|
||||||
@@ -3891,7 +3899,7 @@ static QDF_STATUS send_set_enable_disable_mcc_adaptive_scheduler_cmd_tlv(
|
|||||||
WMITLV_GET_STRUCT_TLVLEN
|
WMITLV_GET_STRUCT_TLVLEN
|
||||||
(wmi_resmgr_adaptive_ocs_enable_disable_cmd_fixed_param));
|
(wmi_resmgr_adaptive_ocs_enable_disable_cmd_fixed_param));
|
||||||
cmd->enable = mcc_adaptive_scheduler;
|
cmd->enable = mcc_adaptive_scheduler;
|
||||||
cmd->pdev_id = pdev_id;
|
cmd->pdev_id = wmi_handle->ops->convert_pdev_id_host_to_target(pdev_id);
|
||||||
|
|
||||||
ret = wmi_unified_cmd_send(wmi_handle, buf, len,
|
ret = wmi_unified_cmd_send(wmi_handle, buf, len,
|
||||||
WMI_RESMGR_ADAPTIVE_OCS_ENABLE_DISABLE_CMDID);
|
WMI_RESMGR_ADAPTIVE_OCS_ENABLE_DISABLE_CMDID);
|
||||||
@@ -8085,7 +8093,8 @@ static QDF_STATUS send_pktlog_wmi_send_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
cmd->evlist = PKTLOG_EVENT;
|
cmd->evlist = PKTLOG_EVENT;
|
||||||
cmd->enable = user_triggered ? WMI_PKTLOG_ENABLE_FORCE
|
cmd->enable = user_triggered ? WMI_PKTLOG_ENABLE_FORCE
|
||||||
: WMI_PKTLOG_ENABLE_AUTO;
|
: WMI_PKTLOG_ENABLE_AUTO;
|
||||||
cmd->pdev_id = WMI_PDEV_ID_SOC;
|
cmd->pdev_id = wmi_handle->ops->convert_pdev_id_host_to_target(
|
||||||
|
WMI_HOST_PDEV_ID_SOC);
|
||||||
if (wmi_unified_cmd_send(wmi_handle, buf, len,
|
if (wmi_unified_cmd_send(wmi_handle, buf, len,
|
||||||
WMI_PDEV_PKTLOG_ENABLE_CMDID)) {
|
WMI_PDEV_PKTLOG_ENABLE_CMDID)) {
|
||||||
WMI_LOGE("failed to send pktlog enable cmdid");
|
WMI_LOGE("failed to send pktlog enable cmdid");
|
||||||
@@ -8105,7 +8114,9 @@ static QDF_STATUS send_pktlog_wmi_send_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
WMITLV_TAG_STRUC_wmi_pdev_pktlog_disable_cmd_fixed_param,
|
WMITLV_TAG_STRUC_wmi_pdev_pktlog_disable_cmd_fixed_param,
|
||||||
WMITLV_GET_STRUCT_TLVLEN
|
WMITLV_GET_STRUCT_TLVLEN
|
||||||
(wmi_pdev_pktlog_disable_cmd_fixed_param));
|
(wmi_pdev_pktlog_disable_cmd_fixed_param));
|
||||||
disable_cmd->pdev_id = WMI_PDEV_ID_SOC;
|
disable_cmd->pdev_id =
|
||||||
|
wmi_handle->ops->convert_pdev_id_host_to_target(
|
||||||
|
WMI_HOST_PDEV_ID_SOC);
|
||||||
if (wmi_unified_cmd_send(wmi_handle, buf, len,
|
if (wmi_unified_cmd_send(wmi_handle, buf, len,
|
||||||
WMI_PDEV_PKTLOG_DISABLE_CMDID)) {
|
WMI_PDEV_PKTLOG_DISABLE_CMDID)) {
|
||||||
WMI_LOGE("failed to send pktlog disable cmdid");
|
WMI_LOGE("failed to send pktlog disable cmdid");
|
||||||
@@ -9115,7 +9126,8 @@ send_pdev_set_regdomain_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
cmd->conformance_test_limit_2G = param->ctl_2G;
|
cmd->conformance_test_limit_2G = param->ctl_2G;
|
||||||
cmd->conformance_test_limit_5G = param->ctl_5G;
|
cmd->conformance_test_limit_5G = param->ctl_5G;
|
||||||
cmd->dfs_domain = param->dfsDomain;
|
cmd->dfs_domain = param->dfsDomain;
|
||||||
cmd->pdev_id = param->pdev_id;
|
cmd->pdev_id = wmi_handle->ops->convert_pdev_id_host_to_target(
|
||||||
|
param->pdev_id);
|
||||||
|
|
||||||
if (wmi_unified_cmd_send(wmi_handle, buf, len,
|
if (wmi_unified_cmd_send(wmi_handle, buf, len,
|
||||||
WMI_PDEV_SET_REGDOMAIN_CMDID)) {
|
WMI_PDEV_SET_REGDOMAIN_CMDID)) {
|
||||||
@@ -9690,7 +9702,8 @@ static QDF_STATUS send_smart_ant_enable_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
WMITLV_GET_STRUCT_TLVLEN(
|
WMITLV_GET_STRUCT_TLVLEN(
|
||||||
wmi_pdev_smart_ant_enable_cmd_fixed_param));
|
wmi_pdev_smart_ant_enable_cmd_fixed_param));
|
||||||
|
|
||||||
cmd->pdev_id = param->pdev_id;
|
cmd->pdev_id = wmi_handle->ops->convert_pdev_id_host_to_target(
|
||||||
|
param->pdev_id);
|
||||||
cmd->enable = param->enable;
|
cmd->enable = param->enable;
|
||||||
cmd->mode = param->mode;
|
cmd->mode = param->mode;
|
||||||
cmd->rx_antenna = param->rx_antenna;
|
cmd->rx_antenna = param->rx_antenna;
|
||||||
@@ -9723,7 +9736,9 @@ static QDF_STATUS send_smart_ant_enable_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
gpio_param->gpio_func = param->gpio_func[loop];
|
gpio_param->gpio_func = param->gpio_func[loop];
|
||||||
}
|
}
|
||||||
/* Setting it to 0 for now */
|
/* Setting it to 0 for now */
|
||||||
gpio_param->pdev_id = param->pdev_id;
|
gpio_param->pdev_id =
|
||||||
|
wmi_handle->ops->convert_pdev_id_host_to_target(
|
||||||
|
param->pdev_id);
|
||||||
gpio_param++;
|
gpio_param++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -9780,7 +9795,8 @@ static QDF_STATUS send_smart_ant_set_rx_ant_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
WMITLV_GET_STRUCT_TLVLEN(
|
WMITLV_GET_STRUCT_TLVLEN(
|
||||||
wmi_pdev_smart_ant_set_rx_antenna_cmd_fixed_param));
|
wmi_pdev_smart_ant_set_rx_antenna_cmd_fixed_param));
|
||||||
cmd->rx_antenna = param->antenna;
|
cmd->rx_antenna = param->antenna;
|
||||||
cmd->pdev_id = param->pdev_id;
|
cmd->pdev_id = wmi_handle->ops->convert_pdev_id_host_to_target(
|
||||||
|
param->pdev_id);
|
||||||
|
|
||||||
ret = wmi_unified_cmd_send(wmi_handle,
|
ret = wmi_unified_cmd_send(wmi_handle,
|
||||||
buf,
|
buf,
|
||||||
@@ -9846,7 +9862,8 @@ send_set_ctl_table_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
WMITLV_GET_STRUCT_TLVLEN(
|
WMITLV_GET_STRUCT_TLVLEN(
|
||||||
wmi_pdev_set_ctl_table_cmd_fixed_param));
|
wmi_pdev_set_ctl_table_cmd_fixed_param));
|
||||||
cmd->ctl_len = param->ctl_cmd_len;
|
cmd->ctl_len = param->ctl_cmd_len;
|
||||||
cmd->pdev_id = param->pdev_id;
|
cmd->pdev_id = wmi_handle->ops->convert_pdev_id_host_to_target(
|
||||||
|
param->pdev_id);
|
||||||
|
|
||||||
buf_ptr += sizeof(*cmd);
|
buf_ptr += sizeof(*cmd);
|
||||||
WMITLV_SET_HDR(buf_ptr, WMITLV_TAG_ARRAY_UINT32,
|
WMITLV_SET_HDR(buf_ptr, WMITLV_TAG_ARRAY_UINT32,
|
||||||
@@ -9918,7 +9935,8 @@ send_set_mimogain_table_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
WMITLV_GET_STRUCT_TLVLEN(
|
WMITLV_GET_STRUCT_TLVLEN(
|
||||||
wmi_pdev_set_mimogain_table_cmd_fixed_param));
|
wmi_pdev_set_mimogain_table_cmd_fixed_param));
|
||||||
|
|
||||||
cmd->pdev_id = param->pdev_id;
|
cmd->pdev_id = wmi_handle->ops->convert_pdev_id_host_to_target(
|
||||||
|
param->pdev_id);
|
||||||
WMI_MIMOGAIN_ARRAY_GAIN_LEN_SET(cmd->mimogain_info, param->tbl_len);
|
WMI_MIMOGAIN_ARRAY_GAIN_LEN_SET(cmd->mimogain_info, param->tbl_len);
|
||||||
WMI_MIMOGAIN_MULTI_CHAIN_BYPASS_SET(cmd->mimogain_info,
|
WMI_MIMOGAIN_MULTI_CHAIN_BYPASS_SET(cmd->mimogain_info,
|
||||||
param->multichain_gain_bypass);
|
param->multichain_gain_bypass);
|
||||||
@@ -9969,7 +9987,8 @@ send_packet_power_info_get_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
WMITLV_TAG_STRUC_wmi_pdev_get_tpc_cmd_fixed_param,
|
WMITLV_TAG_STRUC_wmi_pdev_get_tpc_cmd_fixed_param,
|
||||||
WMITLV_GET_STRUCT_TLVLEN(
|
WMITLV_GET_STRUCT_TLVLEN(
|
||||||
wmi_pdev_get_tpc_cmd_fixed_param));
|
wmi_pdev_get_tpc_cmd_fixed_param));
|
||||||
cmd->pdev_id = param->pdev_id;
|
cmd->pdev_id = wmi_handle->ops->convert_pdev_id_host_to_target(
|
||||||
|
param->pdev_id);
|
||||||
cmd->rate_flags = param->rate_flags;
|
cmd->rate_flags = param->rate_flags;
|
||||||
cmd->nss = param->nss;
|
cmd->nss = param->nss;
|
||||||
cmd->preamble = param->preamble;
|
cmd->preamble = param->preamble;
|
||||||
@@ -10219,7 +10238,8 @@ send_set_ant_switch_tbl_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
|
|
||||||
cmd->antCtrlCommon1 = param->ant_ctrl_common1;
|
cmd->antCtrlCommon1 = param->ant_ctrl_common1;
|
||||||
cmd->antCtrlCommon2 = param->ant_ctrl_common2;
|
cmd->antCtrlCommon2 = param->ant_ctrl_common2;
|
||||||
cmd->mac_id = param->pdev_id; /* Setting it to 0 for now */
|
cmd->mac_id =
|
||||||
|
wmi_handle->ops->convert_pdev_id_host_to_target(param->pdev_id);
|
||||||
|
|
||||||
/* TLV indicating array of structures to follow */
|
/* TLV indicating array of structures to follow */
|
||||||
buf_ptr += sizeof(wmi_pdev_set_ant_switch_tbl_cmd_fixed_param);
|
buf_ptr += sizeof(wmi_pdev_set_ant_switch_tbl_cmd_fixed_param);
|
||||||
@@ -10228,7 +10248,8 @@ send_set_ant_switch_tbl_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
buf_ptr += WMI_TLV_HDR_SIZE;
|
buf_ptr += WMI_TLV_HDR_SIZE;
|
||||||
ctrl_chain = (wmi_pdev_set_ant_ctrl_chain *)buf_ptr;
|
ctrl_chain = (wmi_pdev_set_ant_ctrl_chain *)buf_ptr;
|
||||||
|
|
||||||
ctrl_chain->pdev_id = param->pdev_id;
|
ctrl_chain->pdev_id =
|
||||||
|
wmi_handle->ops->convert_pdev_id_host_to_target(param->pdev_id);
|
||||||
ctrl_chain->antCtrlChain = param->antCtrlChain;
|
ctrl_chain->antCtrlChain = param->antCtrlChain;
|
||||||
|
|
||||||
if (wmi_unified_cmd_send(wmi_handle, buf, len,
|
if (wmi_unified_cmd_send(wmi_handle, buf, len,
|
||||||
@@ -10675,7 +10696,8 @@ static QDF_STATUS send_phyerr_disable_cmd_tlv(wmi_unified_t wmi_handle)
|
|||||||
WMITLV_GET_STRUCT_TLVLEN(
|
WMITLV_GET_STRUCT_TLVLEN(
|
||||||
wmi_pdev_dfs_disable_cmd_fixed_param));
|
wmi_pdev_dfs_disable_cmd_fixed_param));
|
||||||
/* Filling it with WMI_PDEV_ID_SOC for now */
|
/* Filling it with WMI_PDEV_ID_SOC for now */
|
||||||
cmd->pdev_id = WMI_PDEV_ID_SOC;
|
cmd->pdev_id = wmi_handle->ops->convert_pdev_id_host_to_target(
|
||||||
|
WMI_HOST_PDEV_ID_SOC);
|
||||||
|
|
||||||
ret = wmi_unified_cmd_send(wmi_handle, buf, sizeof(*cmd),
|
ret = wmi_unified_cmd_send(wmi_handle, buf, sizeof(*cmd),
|
||||||
WMI_PDEV_DFS_DISABLE_CMDID);
|
WMI_PDEV_DFS_DISABLE_CMDID);
|
||||||
@@ -10897,7 +10919,8 @@ send_set_quiet_mode_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
quiet_cmd->period = (param->period)*(param->intval);
|
quiet_cmd->period = (param->period)*(param->intval);
|
||||||
quiet_cmd->duration = param->duration;
|
quiet_cmd->duration = param->duration;
|
||||||
quiet_cmd->next_start = param->offset;
|
quiet_cmd->next_start = param->offset;
|
||||||
quiet_cmd->pdev_id = WMI_PDEV_ID_SOC;
|
quiet_cmd->pdev_id = wmi_handle->ops->convert_pdev_id_host_to_target(
|
||||||
|
WMI_HOST_PDEV_ID_SOC);
|
||||||
|
|
||||||
ret = wmi_unified_cmd_send(wmi_handle, buf, len,
|
ret = wmi_unified_cmd_send(wmi_handle, buf, len,
|
||||||
WMI_PDEV_SET_QUIET_MODE_CMDID);
|
WMI_PDEV_SET_QUIET_MODE_CMDID);
|
||||||
@@ -11271,7 +11294,8 @@ static QDF_STATUS send_thermal_mitigation_param_cmd_tlv(
|
|||||||
WMITLV_TAG_STRUC_wmi_therm_throt_config_request_fixed_param,
|
WMITLV_TAG_STRUC_wmi_therm_throt_config_request_fixed_param,
|
||||||
(WMITLV_GET_STRUCT_TLVLEN(wmi_therm_throt_config_request_fixed_param)));
|
(WMITLV_GET_STRUCT_TLVLEN(wmi_therm_throt_config_request_fixed_param)));
|
||||||
|
|
||||||
tt_conf->pdev_id = param->pdev_id;
|
tt_conf->pdev_id = wmi_handle->ops->convert_pdev_id_host_to_target(
|
||||||
|
param->pdev_id);
|
||||||
tt_conf->enable = param->enable;
|
tt_conf->enable = param->enable;
|
||||||
tt_conf->dc = param->dc;
|
tt_conf->dc = param->dc;
|
||||||
tt_conf->dc_per_event = param->dc_per_event;
|
tt_conf->dc_per_event = param->dc_per_event;
|
||||||
@@ -11316,7 +11340,7 @@ send_pdev_qvit_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
struct pdev_qvit_params *param)
|
struct pdev_qvit_params *param)
|
||||||
{
|
{
|
||||||
wmi_buf_t buf;
|
wmi_buf_t buf;
|
||||||
QDF_STATUS ret;
|
QDF_STATUS ret = QDF_STATUS_E_INVAL;
|
||||||
uint8_t *cmd;
|
uint8_t *cmd;
|
||||||
static uint8_t msgref = 1;
|
static uint8_t msgref = 1;
|
||||||
uint8_t segnumber = 0, seginfo, numsegments;
|
uint8_t segnumber = 0, seginfo, numsegments;
|
||||||
@@ -11415,7 +11439,7 @@ send_wmm_update_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
WMITLV_GET_STRUCT_TLVLEN
|
WMITLV_GET_STRUCT_TLVLEN
|
||||||
(wmi_pdev_set_wmm_params_cmd_fixed_param));
|
(wmi_pdev_set_wmm_params_cmd_fixed_param));
|
||||||
|
|
||||||
cmd->reserved0 = WMI_PDEV_ID_SOC;
|
cmd->reserved0 = WMI_HOST_PDEV_ID_SOC;
|
||||||
|
|
||||||
buf_ptr += sizeof(wmi_pdev_set_wmm_params_cmd_fixed_param);
|
buf_ptr += sizeof(wmi_pdev_set_wmm_params_cmd_fixed_param);
|
||||||
|
|
||||||
@@ -11822,7 +11846,8 @@ static QDF_STATUS send_set_base_macaddr_indicate_cmd_tlv(wmi_unified_t wmi_handl
|
|||||||
WMITLV_GET_STRUCT_TLVLEN
|
WMITLV_GET_STRUCT_TLVLEN
|
||||||
(wmi_pdev_set_base_macaddr_cmd_fixed_param));
|
(wmi_pdev_set_base_macaddr_cmd_fixed_param));
|
||||||
WMI_CHAR_ARRAY_TO_MAC_ADDR(custom_addr, &cmd->base_macaddr);
|
WMI_CHAR_ARRAY_TO_MAC_ADDR(custom_addr, &cmd->base_macaddr);
|
||||||
cmd->pdev_id = WMI_PDEV_ID_SOC;
|
cmd->pdev_id = wmi_handle->ops->convert_pdev_id_host_to_target(
|
||||||
|
WMI_HOST_PDEV_ID_SOC);
|
||||||
err = wmi_unified_cmd_send(wmi_handle, buf,
|
err = wmi_unified_cmd_send(wmi_handle, buf,
|
||||||
sizeof(*cmd),
|
sizeof(*cmd),
|
||||||
WMI_PDEV_SET_BASE_MACADDR_CMDID);
|
WMI_PDEV_SET_BASE_MACADDR_CMDID);
|
||||||
@@ -12136,7 +12161,8 @@ static QDF_STATUS send_pdev_set_pcl_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
WMITLV_TAG_STRUC_wmi_pdev_set_pcl_cmd_fixed_param,
|
WMITLV_TAG_STRUC_wmi_pdev_set_pcl_cmd_fixed_param,
|
||||||
WMITLV_GET_STRUCT_TLVLEN(wmi_pdev_set_pcl_cmd_fixed_param));
|
WMITLV_GET_STRUCT_TLVLEN(wmi_pdev_set_pcl_cmd_fixed_param));
|
||||||
|
|
||||||
cmd->pdev_id = WMI_PDEV_ID_SOC;
|
cmd->pdev_id = wmi_handle->ops->convert_pdev_id_host_to_target(
|
||||||
|
WMI_HOST_PDEV_ID_SOC);
|
||||||
cmd->num_chan = chan_len;
|
cmd->num_chan = chan_len;
|
||||||
WMI_LOGI("%s: Total chan (PCL) len:%d", __func__, cmd->num_chan);
|
WMI_LOGI("%s: Total chan (PCL) len:%d", __func__, cmd->num_chan);
|
||||||
|
|
||||||
@@ -12192,7 +12218,8 @@ static QDF_STATUS send_pdev_set_hw_mode_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
WMITLV_TAG_STRUC_wmi_pdev_set_hw_mode_cmd_fixed_param,
|
WMITLV_TAG_STRUC_wmi_pdev_set_hw_mode_cmd_fixed_param,
|
||||||
WMITLV_GET_STRUCT_TLVLEN(wmi_pdev_set_hw_mode_cmd_fixed_param));
|
WMITLV_GET_STRUCT_TLVLEN(wmi_pdev_set_hw_mode_cmd_fixed_param));
|
||||||
|
|
||||||
cmd->pdev_id = WMI_PDEV_ID_SOC;
|
cmd->pdev_id = wmi_handle->ops->convert_pdev_id_host_to_target(
|
||||||
|
WMI_HOST_PDEV_ID_SOC);
|
||||||
cmd->hw_mode_index = hw_mode_index;
|
cmd->hw_mode_index = hw_mode_index;
|
||||||
WMI_LOGI("%s: HW mode index:%d", __func__, cmd->hw_mode_index);
|
WMI_LOGI("%s: HW mode index:%d", __func__, cmd->hw_mode_index);
|
||||||
|
|
||||||
@@ -12238,7 +12265,8 @@ QDF_STATUS send_pdev_set_dual_mac_config_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
WMITLV_GET_STRUCT_TLVLEN(
|
WMITLV_GET_STRUCT_TLVLEN(
|
||||||
wmi_pdev_set_mac_config_cmd_fixed_param));
|
wmi_pdev_set_mac_config_cmd_fixed_param));
|
||||||
|
|
||||||
cmd->pdev_id = WMI_PDEV_ID_SOC;
|
cmd->pdev_id = wmi_handle->ops->convert_pdev_id_host_to_target(
|
||||||
|
WMI_HOST_PDEV_ID_SOC);
|
||||||
cmd->concurrent_scan_config_bits = msg->scan_config;
|
cmd->concurrent_scan_config_bits = msg->scan_config;
|
||||||
cmd->fw_mode_config_bits = msg->fw_mode_config;
|
cmd->fw_mode_config_bits = msg->fw_mode_config;
|
||||||
WMI_LOGI("%s: scan_config:%x fw_mode_config:%x",
|
WMI_LOGI("%s: scan_config:%x fw_mode_config:%x",
|
||||||
@@ -12410,7 +12438,8 @@ send_pdev_fips_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
WMITLV_GET_STRUCT_TLVLEN
|
WMITLV_GET_STRUCT_TLVLEN
|
||||||
(wmi_pdev_fips_cmd_fixed_param));
|
(wmi_pdev_fips_cmd_fixed_param));
|
||||||
|
|
||||||
cmd->pdev_id = param->pdev_id;
|
cmd->pdev_id = wmi_handle->ops->convert_pdev_id_host_to_target(
|
||||||
|
param->pdev_id);
|
||||||
if (param->key != NULL && param->data != NULL) {
|
if (param->key != NULL && param->data != NULL) {
|
||||||
cmd->key_len = param->key_len;
|
cmd->key_len = param->key_len;
|
||||||
cmd->data_len = param->data_len;
|
cmd->data_len = param->data_len;
|
||||||
@@ -14549,7 +14578,8 @@ static QDF_STATUS send_power_dbg_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
WMITLV_GET_STRUCT_TLVLEN
|
WMITLV_GET_STRUCT_TLVLEN
|
||||||
(wmi_pdev_wal_power_debug_cmd_fixed_param));
|
(wmi_pdev_wal_power_debug_cmd_fixed_param));
|
||||||
|
|
||||||
cmd->pdev_id = param->pdev_id;
|
cmd->pdev_id = wmi_handle->ops->convert_pdev_id_host_to_target(
|
||||||
|
param->pdev_id);
|
||||||
cmd->module_id = param->module_id;
|
cmd->module_id = param->module_id;
|
||||||
cmd->num_args = param->num_args;
|
cmd->num_args = param->num_args;
|
||||||
buf_ptr += sizeof(*cmd);
|
buf_ptr += sizeof(*cmd);
|
||||||
@@ -14578,14 +14608,15 @@ error:
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* copy_hw_mode_id_in_init_cmd() - Helper routine to copy hw_mode in init cmd
|
/* copy_hw_mode_id_in_init_cmd() - Helper routine to copy hw_mode in init cmd
|
||||||
|
* @wmi_handle: pointer to wmi handle
|
||||||
* @buf_ptr: pointer to current position in init command buffer
|
* @buf_ptr: pointer to current position in init command buffer
|
||||||
* @len: pointer to length. This will be updated with current lenght of cmd
|
* @len: pointer to length. This will be updated with current lenght of cmd
|
||||||
* @param: point host parameters for init command
|
* @param: point host parameters for init command
|
||||||
*
|
*
|
||||||
* Return: Updated pointer of buf_ptr.
|
* Return: Updated pointer of buf_ptr.
|
||||||
*/
|
*/
|
||||||
static inline uint8_t *copy_hw_mode_in_init_cmd(uint8_t *buf_ptr,
|
static inline uint8_t *copy_hw_mode_in_init_cmd(struct wmi_unified *wmi_handle,
|
||||||
int *len, struct wmi_init_cmd_param *param)
|
uint8_t *buf_ptr, int *len, struct wmi_init_cmd_param *param)
|
||||||
{
|
{
|
||||||
uint16_t idx;
|
uint16_t idx;
|
||||||
|
|
||||||
@@ -14616,7 +14647,8 @@ static inline uint8_t *copy_hw_mode_in_init_cmd(uint8_t *buf_ptr,
|
|||||||
WMITLV_GET_STRUCT_TLVLEN
|
WMITLV_GET_STRUCT_TLVLEN
|
||||||
(wmi_pdev_band_to_mac));
|
(wmi_pdev_band_to_mac));
|
||||||
band_to_mac[idx].pdev_id =
|
band_to_mac[idx].pdev_id =
|
||||||
param->band_to_mac[idx].pdev_id;
|
wmi_handle->ops->convert_pdev_id_host_to_target(
|
||||||
|
param->band_to_mac[idx].pdev_id);
|
||||||
band_to_mac[idx].start_freq =
|
band_to_mac[idx].start_freq =
|
||||||
param->band_to_mac[idx].start_freq;
|
param->band_to_mac[idx].start_freq;
|
||||||
band_to_mac[idx].end_freq =
|
band_to_mac[idx].end_freq =
|
||||||
@@ -14677,7 +14709,8 @@ static QDF_STATUS send_multiple_vdev_restart_req_cmd_tlv(
|
|||||||
WMITLV_TAG_STRUC_wmi_pdev_multiple_vdev_restart_request_cmd_fixed_param,
|
WMITLV_TAG_STRUC_wmi_pdev_multiple_vdev_restart_request_cmd_fixed_param,
|
||||||
WMITLV_GET_STRUCT_TLVLEN
|
WMITLV_GET_STRUCT_TLVLEN
|
||||||
(wmi_pdev_multiple_vdev_restart_request_cmd_fixed_param));
|
(wmi_pdev_multiple_vdev_restart_request_cmd_fixed_param));
|
||||||
cmd->pdev_id = param->pdev_id;
|
cmd->pdev_id = wmi_handle->ops->convert_pdev_id_host_to_target(
|
||||||
|
param->pdev_id);
|
||||||
cmd->requestor_id = param->requestor_id;
|
cmd->requestor_id = param->requestor_id;
|
||||||
cmd->disable_hw_ack = param->disable_hw_ack;
|
cmd->disable_hw_ack = param->disable_hw_ack;
|
||||||
cmd->cac_duration_ms = param->cac_duration_ms;
|
cmd->cac_duration_ms = param->cac_duration_ms;
|
||||||
@@ -14766,7 +14799,7 @@ static QDF_STATUS send_dfs_phyerr_offload_en_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
WMITLV_GET_STRUCT_TLVLEN(
|
WMITLV_GET_STRUCT_TLVLEN(
|
||||||
wmi_pdev_dfs_phyerr_offload_enable_cmd_fixed_param));
|
wmi_pdev_dfs_phyerr_offload_enable_cmd_fixed_param));
|
||||||
|
|
||||||
cmd->pdev_id = pdev_id;
|
cmd->pdev_id = wmi_handle->ops->convert_pdev_id_host_to_target(pdev_id);
|
||||||
ret = wmi_unified_cmd_send(wmi_handle, buf, len,
|
ret = wmi_unified_cmd_send(wmi_handle, buf, len,
|
||||||
WMI_PDEV_DFS_PHYERR_OFFLOAD_ENABLE_CMDID);
|
WMI_PDEV_DFS_PHYERR_OFFLOAD_ENABLE_CMDID);
|
||||||
if (QDF_IS_STATUS_ERROR(ret)) {
|
if (QDF_IS_STATUS_ERROR(ret)) {
|
||||||
@@ -14814,7 +14847,7 @@ static QDF_STATUS send_dfs_phyerr_offload_dis_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
WMITLV_GET_STRUCT_TLVLEN(
|
WMITLV_GET_STRUCT_TLVLEN(
|
||||||
wmi_pdev_dfs_phyerr_offload_disable_cmd_fixed_param));
|
wmi_pdev_dfs_phyerr_offload_disable_cmd_fixed_param));
|
||||||
|
|
||||||
cmd->pdev_id = pdev_id;
|
cmd->pdev_id = wmi_handle->ops->convert_pdev_id_host_to_target(pdev_id);
|
||||||
ret = wmi_unified_cmd_send(wmi_handle, buf, len,
|
ret = wmi_unified_cmd_send(wmi_handle, buf, len,
|
||||||
WMI_PDEV_DFS_PHYERR_OFFLOAD_DISABLE_CMDID);
|
WMI_PDEV_DFS_PHYERR_OFFLOAD_DISABLE_CMDID);
|
||||||
if (QDF_IS_STATUS_ERROR(ret)) {
|
if (QDF_IS_STATUS_ERROR(ret)) {
|
||||||
@@ -14902,7 +14935,7 @@ static QDF_STATUS init_cmd_send_tlv(wmi_unified_t wmi_handle,
|
|||||||
param->num_mem_chunks));
|
param->num_mem_chunks));
|
||||||
|
|
||||||
/* Fill hw mode id config */
|
/* Fill hw mode id config */
|
||||||
buf_ptr = copy_hw_mode_in_init_cmd(buf_ptr, &len, param);
|
buf_ptr = copy_hw_mode_in_init_cmd(wmi_handle, buf_ptr, &len, param);
|
||||||
|
|
||||||
num_whitelist = sizeof(version_whitelist) /
|
num_whitelist = sizeof(version_whitelist) /
|
||||||
sizeof(wmi_whitelist_version_info);
|
sizeof(wmi_whitelist_version_info);
|
||||||
@@ -15381,7 +15414,8 @@ static QDF_STATUS extract_mgmt_rx_params_tlv(wmi_unified_t wmi_handle,
|
|||||||
return QDF_STATUS_E_INVAL;
|
return QDF_STATUS_E_INVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
hdr->pdev_id = ev_hdr->pdev_id;
|
hdr->pdev_id = wmi_handle->ops->convert_pdev_id_target_to_host(
|
||||||
|
ev_hdr->pdev_id);
|
||||||
|
|
||||||
hdr->channel = ev_hdr->channel;
|
hdr->channel = ev_hdr->channel;
|
||||||
hdr->snr = ev_hdr->snr;
|
hdr->snr = ev_hdr->snr;
|
||||||
@@ -15669,7 +15703,8 @@ static QDF_STATUS extract_mgmt_tx_compl_param_tlv(wmi_unified_t wmi_handle,
|
|||||||
}
|
}
|
||||||
cmpl_params = param_buf->fixed_param;
|
cmpl_params = param_buf->fixed_param;
|
||||||
|
|
||||||
param->pdev_id = cmpl_params->pdev_id;
|
param->pdev_id = wmi_handle->ops->convert_pdev_id_target_to_host(
|
||||||
|
cmpl_params->pdev_id);
|
||||||
param->desc_id = cmpl_params->desc_id;
|
param->desc_id = cmpl_params->desc_id;
|
||||||
param->status = cmpl_params->status;
|
param->status = cmpl_params->status;
|
||||||
|
|
||||||
@@ -15700,7 +15735,8 @@ static QDF_STATUS extract_offchan_data_tx_compl_param_tlv(
|
|||||||
}
|
}
|
||||||
cmpl_params = param_buf->fixed_param;
|
cmpl_params = param_buf->fixed_param;
|
||||||
|
|
||||||
param->pdev_id = cmpl_params->pdev_id;
|
param->pdev_id = wmi_handle->ops->convert_pdev_id_target_to_host(
|
||||||
|
cmpl_params->pdev_id);
|
||||||
param->desc_id = cmpl_params->desc_id;
|
param->desc_id = cmpl_params->desc_id;
|
||||||
param->status = cmpl_params->status;
|
param->status = cmpl_params->status;
|
||||||
|
|
||||||
@@ -15733,7 +15769,8 @@ static QDF_STATUS extract_pdev_csa_switch_count_status_tlv(
|
|||||||
|
|
||||||
csa_status = param_buf->fixed_param;
|
csa_status = param_buf->fixed_param;
|
||||||
|
|
||||||
param->pdev_id = csa_status->pdev_id;
|
param->pdev_id = wmi_handle->ops->convert_pdev_id_target_to_host(
|
||||||
|
csa_status->pdev_id);
|
||||||
param->current_switch_count = csa_status->current_switch_count;
|
param->current_switch_count = csa_status->current_switch_count;
|
||||||
param->num_vdevs = csa_status->num_vdevs;
|
param->num_vdevs = csa_status->num_vdevs;
|
||||||
param->vdev_ids = param_buf->vdev_ids;
|
param->vdev_ids = param_buf->vdev_ids;
|
||||||
@@ -16328,7 +16365,8 @@ static QDF_STATUS extract_pdev_utf_event_tlv(wmi_unified_t wmi_handle,
|
|||||||
event->data = param_buf->data;
|
event->data = param_buf->data;
|
||||||
event->datalen = param_buf->num_data;
|
event->datalen = param_buf->num_data;
|
||||||
/* Set pdev_id=1 until FW adds support to include pdev_id */
|
/* Set pdev_id=1 until FW adds support to include pdev_id */
|
||||||
event->pdev_id = 1;
|
event->pdev_id = wmi_handle->ops->convert_pdev_id_target_to_host(
|
||||||
|
WMI_PDEV_ID_1ST);
|
||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
@@ -16580,7 +16618,8 @@ static QDF_STATUS extract_mac_phy_cap_service_ready_ext_tlv(
|
|||||||
mac_phy_caps = ¶m_buf->mac_phy_caps[phy_idx];
|
mac_phy_caps = ¶m_buf->mac_phy_caps[phy_idx];
|
||||||
|
|
||||||
param->hw_mode_id = mac_phy_caps->hw_mode_id;
|
param->hw_mode_id = mac_phy_caps->hw_mode_id;
|
||||||
param->pdev_id = mac_phy_caps->pdev_id;
|
param->pdev_id = wmi_handle->ops->convert_pdev_id_target_to_host(
|
||||||
|
mac_phy_caps->pdev_id);
|
||||||
param->phy_id = mac_phy_caps->phy_id;
|
param->phy_id = mac_phy_caps->phy_id;
|
||||||
param->supports_11b =
|
param->supports_11b =
|
||||||
WMI_SUPPORT_11B_GET(mac_phy_caps->supported_flags);
|
WMI_SUPPORT_11B_GET(mac_phy_caps->supported_flags);
|
||||||
@@ -16695,7 +16734,8 @@ static QDF_STATUS extract_dcs_interference_type_tlv(
|
|||||||
return QDF_STATUS_E_INVAL;
|
return QDF_STATUS_E_INVAL;
|
||||||
|
|
||||||
param->interference_type = param_buf->fixed_param->interference_type;
|
param->interference_type = param_buf->fixed_param->interference_type;
|
||||||
param->pdev_id = param_buf->fixed_param->pdev_id;
|
param->pdev_id = wmi_handle->ops->convert_pdev_id_target_to_host(
|
||||||
|
param_buf->fixed_param->pdev_id);
|
||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
@@ -16789,7 +16829,8 @@ extract_thermal_stats_tlv(wmi_unified_t wmi_handle,
|
|||||||
|
|
||||||
tt_stats_event = param_buf->fixed_param;
|
tt_stats_event = param_buf->fixed_param;
|
||||||
|
|
||||||
*pdev_id = tt_stats_event->pdev_id;
|
*pdev_id = wmi_handle->ops->convert_pdev_id_target_to_host(
|
||||||
|
tt_stats_event->pdev_id);
|
||||||
*temp = tt_stats_event->temp;
|
*temp = tt_stats_event->temp;
|
||||||
*level = tt_stats_event->level;
|
*level = tt_stats_event->level;
|
||||||
|
|
||||||
@@ -16916,7 +16957,8 @@ static QDF_STATUS extract_fips_event_data_tlv(wmi_unified_t wmi_handle,
|
|||||||
param->data = (uint32_t *)param_buf->data;
|
param->data = (uint32_t *)param_buf->data;
|
||||||
param->data_len = event->data_len;
|
param->data_len = event->data_len;
|
||||||
param->error_status = event->error_status;
|
param->error_status = event->error_status;
|
||||||
param->pdev_id = event->pdev_id;
|
param->pdev_id = wmi_handle->ops->convert_pdev_id_target_to_host(
|
||||||
|
event->pdev_id);
|
||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
@@ -17092,7 +17134,8 @@ static QDF_STATUS extract_channel_hopping_event_tlv(
|
|||||||
|
|
||||||
ch_hopping->noise_floor_report_iter = event->noise_floor_report_iter;
|
ch_hopping->noise_floor_report_iter = event->noise_floor_report_iter;
|
||||||
ch_hopping->noise_floor_total_iter = event->noise_floor_total_iter;
|
ch_hopping->noise_floor_total_iter = event->noise_floor_total_iter;
|
||||||
ch_hopping->pdev_id = event->pdev_id;
|
ch_hopping->pdev_id = wmi_handle->ops->convert_pdev_id_target_to_host(
|
||||||
|
event->pdev_id);
|
||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
@@ -17115,7 +17158,8 @@ static QDF_STATUS extract_pdev_tpc_ev_param_tlv(wmi_unified_t wmi_handle,
|
|||||||
param_buf = (WMI_PDEV_TPC_EVENTID_param_tlvs *)evt_buf;
|
param_buf = (WMI_PDEV_TPC_EVENTID_param_tlvs *)evt_buf;
|
||||||
event = (wmi_pdev_tpc_event_fixed_param *)param_buf->fixed_param;
|
event = (wmi_pdev_tpc_event_fixed_param *)param_buf->fixed_param;
|
||||||
|
|
||||||
param->pdev_id = event->pdev_id;
|
param->pdev_id = wmi_handle->ops->convert_pdev_id_target_to_host(
|
||||||
|
event->pdev_id);
|
||||||
qdf_mem_copy(param->tpc, param_buf->tpc, sizeof(param->tpc));
|
qdf_mem_copy(param->tpc, param_buf->tpc, sizeof(param->tpc));
|
||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
@@ -17417,7 +17461,8 @@ static QDF_STATUS extract_dfs_radar_detection_event_tlv(
|
|||||||
}
|
}
|
||||||
|
|
||||||
radar_event = param_tlv->fixed_param;
|
radar_event = param_tlv->fixed_param;
|
||||||
radar_found->pdev_id = radar_event->pdev_id;
|
radar_found->pdev_id = wmi_handle->ops->convert_pdev_id_target_to_host(
|
||||||
|
radar_event->pdev_id);
|
||||||
radar_found->detection_mode = radar_event->detection_mode;
|
radar_found->detection_mode = radar_event->detection_mode;
|
||||||
radar_found->freq_offset = radar_event->chan_freq;
|
radar_found->freq_offset = radar_event->chan_freq;
|
||||||
radar_found->chan_width = radar_event->chan_width;
|
radar_found->chan_width = radar_event->chan_width;
|
||||||
@@ -17432,6 +17477,37 @@ static QDF_STATUS extract_dfs_radar_detection_event_tlv(
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* convert_host_pdev_id_to_target_pdev_id_legacy() - Convert pdev_id from
|
||||||
|
* host to target defines. For legacy there is not conversion
|
||||||
|
* required. Just return pdev_id as it is.
|
||||||
|
* @param pdev_id: host pdev_id to be converted.
|
||||||
|
* Return: target pdev_id after conversion.
|
||||||
|
*/
|
||||||
|
static uint32_t convert_host_pdev_id_to_target_pdev_id_legacy(
|
||||||
|
uint32_t pdev_id)
|
||||||
|
{
|
||||||
|
if (pdev_id == WMI_HOST_PDEV_ID_SOC)
|
||||||
|
return WMI_PDEV_ID_SOC;
|
||||||
|
|
||||||
|
/*No conversion required*/
|
||||||
|
return pdev_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* convert_target_pdev_id_to_host_pdev_id_legacy() - Convert pdev_id from
|
||||||
|
* target to host defines. For legacy there is not conversion
|
||||||
|
* required. Just return pdev_id as it is.
|
||||||
|
* @param pdev_id: target pdev_id to be converted.
|
||||||
|
* Return: host pdev_id after conversion.
|
||||||
|
*/
|
||||||
|
static uint32_t convert_target_pdev_id_to_host_pdev_id_legacy(
|
||||||
|
uint32_t pdev_id)
|
||||||
|
{
|
||||||
|
/*No conversion required*/
|
||||||
|
return pdev_id;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* send_set_country_cmd_tlv() - WMI scan channel list function
|
* send_set_country_cmd_tlv() - WMI scan channel list function
|
||||||
* @param wmi_handle : handle to WMI.
|
* @param wmi_handle : handle to WMI.
|
||||||
@@ -17842,6 +17918,10 @@ struct wmi_ops tlv_ops = {
|
|||||||
.extract_dfs_radar_detection_event =
|
.extract_dfs_radar_detection_event =
|
||||||
extract_dfs_radar_detection_event_tlv,
|
extract_dfs_radar_detection_event_tlv,
|
||||||
#endif
|
#endif
|
||||||
|
.convert_pdev_id_host_to_target =
|
||||||
|
convert_host_pdev_id_to_target_pdev_id_legacy,
|
||||||
|
.convert_pdev_id_target_to_host =
|
||||||
|
convert_target_pdev_id_to_host_pdev_id_legacy,
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -18653,6 +18733,66 @@ static void populate_target_defines_tlv(struct wmi_unified *wmi_handle)
|
|||||||
{ }
|
{ }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* convert_host_pdev_id_to_target_pdev_id() - Convert pdev_id from
|
||||||
|
* host to target defines.
|
||||||
|
* @param pdev_id: host pdev_id to be converted.
|
||||||
|
* Return: target pdev_id after conversion.
|
||||||
|
*/
|
||||||
|
static uint32_t convert_host_pdev_id_to_target_pdev_id(uint32_t pdev_id)
|
||||||
|
{
|
||||||
|
switch (pdev_id) {
|
||||||
|
case WMI_HOST_PDEV_ID_SOC:
|
||||||
|
return WMI_PDEV_ID_SOC;
|
||||||
|
case WMI_HOST_PDEV_ID_0:
|
||||||
|
return WMI_PDEV_ID_1ST;
|
||||||
|
case WMI_HOST_PDEV_ID_1:
|
||||||
|
return WMI_PDEV_ID_2ND;
|
||||||
|
case WMI_HOST_PDEV_ID_2:
|
||||||
|
return WMI_PDEV_ID_3RD;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDF_ASSERT(0);
|
||||||
|
|
||||||
|
return WMI_PDEV_ID_SOC;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* convert_target_pdev_id_to_host_pdev_id() - Convert pdev_id from
|
||||||
|
* target to host defines.
|
||||||
|
* @param pdev_id: target pdev_id to be converted.
|
||||||
|
* Return: host pdev_id after conversion.
|
||||||
|
*/
|
||||||
|
static uint32_t convert_target_pdev_id_to_host_pdev_id(uint32_t pdev_id)
|
||||||
|
{
|
||||||
|
switch (pdev_id) {
|
||||||
|
case WMI_PDEV_ID_SOC:
|
||||||
|
return WMI_HOST_PDEV_ID_SOC;
|
||||||
|
case WMI_PDEV_ID_1ST:
|
||||||
|
return WMI_HOST_PDEV_ID_0;
|
||||||
|
case WMI_PDEV_ID_2ND:
|
||||||
|
return WMI_HOST_PDEV_ID_1;
|
||||||
|
case WMI_PDEV_ID_3RD:
|
||||||
|
return WMI_HOST_PDEV_ID_2;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDF_ASSERT(0);
|
||||||
|
|
||||||
|
return WMI_HOST_PDEV_ID_SOC;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wmi_tlv_pdev_id_conversion_enable() - Enable pdev_id conversion
|
||||||
|
*
|
||||||
|
* Return None.
|
||||||
|
*/
|
||||||
|
void wmi_tlv_pdev_id_conversion_enable(wmi_unified_t wmi_handle)
|
||||||
|
{
|
||||||
|
wmi_handle->ops->convert_pdev_id_host_to_target =
|
||||||
|
convert_host_pdev_id_to_target_pdev_id;
|
||||||
|
wmi_handle->ops->convert_pdev_id_target_to_host =
|
||||||
|
convert_target_pdev_id_to_host_pdev_id;
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* wmi_tlv_attach() - Attach TLV APIs
|
* wmi_tlv_attach() - Attach TLV APIs
|
||||||
*
|
*
|
||||||
|
Reference in New Issue
Block a user