qcacmn: Support for Quiet IE count change in bcn
Added support for quiet IE count change in beacon for beacon offload case. Change-Id: Ic8de5910588b58c8ffce48ea888afe8e6ed30dc9 CRs-Fixed: 2334134
This commit is contained in:

committed by
nshrivas

parent
a3be364dfb
commit
ba7946a147
@@ -65,6 +65,9 @@ QDF_STATUS wmi_unified_vdev_config_ratemask_cmd_send(void *wmi_hdl,
|
|||||||
QDF_STATUS wmi_unified_set_quiet_mode_cmd_send(void *wmi_hdl,
|
QDF_STATUS wmi_unified_set_quiet_mode_cmd_send(void *wmi_hdl,
|
||||||
struct set_quiet_mode_params *param);
|
struct set_quiet_mode_params *param);
|
||||||
|
|
||||||
|
QDF_STATUS wmi_unified_set_bcn_offload_quiet_mode_cmd_send(void *wmi_hdl,
|
||||||
|
struct set_bcn_offload_quiet_mode_params *param);
|
||||||
|
|
||||||
QDF_STATUS wmi_unified_nf_dbr_dbm_info_get_cmd_send(void *wmi_hdl,
|
QDF_STATUS wmi_unified_nf_dbr_dbm_info_get_cmd_send(void *wmi_hdl,
|
||||||
uint8_t mac_id);
|
uint8_t mac_id);
|
||||||
|
|
||||||
|
@@ -3347,6 +3347,22 @@ struct set_quiet_mode_params {
|
|||||||
uint16_t offset;
|
uint16_t offset;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* struct set_bcn_offload_quiet_mode_params - Set quiet mode params
|
||||||
|
* @vdev_id: Vdev ID
|
||||||
|
* @period: Quite period
|
||||||
|
* @duration: Quite duration
|
||||||
|
* @next_start: Next quiet start
|
||||||
|
* @flag: 0 - disable, 1 - enable and continuous, 3 - enable and single shot
|
||||||
|
*/
|
||||||
|
struct set_bcn_offload_quiet_mode_params {
|
||||||
|
uint32_t vdev_id;
|
||||||
|
uint32_t period;
|
||||||
|
uint32_t duration;
|
||||||
|
uint32_t next_start;
|
||||||
|
uint32_t flag;
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct set_beacon_filter_params - Set beacon filter params
|
* struct set_beacon_filter_params - Set beacon filter params
|
||||||
* @vdev_id: VDEV id
|
* @vdev_id: VDEV id
|
||||||
|
@@ -1151,6 +1151,9 @@ QDF_STATUS (*send_pdev_set_regdomain_cmd)(wmi_unified_t wmi_handle,
|
|||||||
QDF_STATUS (*send_set_quiet_mode_cmd)(wmi_unified_t wmi_handle,
|
QDF_STATUS (*send_set_quiet_mode_cmd)(wmi_unified_t wmi_handle,
|
||||||
struct set_quiet_mode_params *param);
|
struct set_quiet_mode_params *param);
|
||||||
|
|
||||||
|
QDF_STATUS (*send_set_bcn_offload_quiet_mode_cmd)(wmi_unified_t wmi_handle,
|
||||||
|
struct set_bcn_offload_quiet_mode_params *param);
|
||||||
|
|
||||||
QDF_STATUS (*send_set_beacon_filter_cmd)(wmi_unified_t wmi_handle,
|
QDF_STATUS (*send_set_beacon_filter_cmd)(wmi_unified_t wmi_handle,
|
||||||
struct set_beacon_filter_params *param);
|
struct set_beacon_filter_params *param);
|
||||||
|
|
||||||
|
@@ -284,6 +284,26 @@ QDF_STATUS wmi_unified_set_quiet_mode_cmd_send(void *wmi_hdl,
|
|||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wmi_unified_set_bcn_offload_quiet_mode_cmd_send - WMI set quiet mode
|
||||||
|
* function in beacon offload case
|
||||||
|
* @param wmi_handle : handle to WMI.
|
||||||
|
* @param param : pointer to hold quiet mode param in bcn offload
|
||||||
|
*
|
||||||
|
* @return QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
|
||||||
|
*/
|
||||||
|
QDF_STATUS wmi_unified_set_bcn_offload_quiet_mode_cmd_send(void *wmi_hdl,
|
||||||
|
struct set_bcn_offload_quiet_mode_params *param)
|
||||||
|
{
|
||||||
|
wmi_unified_t wmi_handle = (wmi_unified_t)wmi_hdl;
|
||||||
|
|
||||||
|
if (wmi_handle->ops->send_set_bcn_offload_quiet_mode_cmd)
|
||||||
|
return wmi_handle->ops->send_set_bcn_offload_quiet_mode_cmd(
|
||||||
|
wmi_handle, param);
|
||||||
|
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wmi_send_bcn_offload_control_cmd - send beacon ofload control cmd to fw
|
* wmi_send_bcn_offload_control_cmd - send beacon ofload control cmd to fw
|
||||||
* @wmi_hdl: wmi handle
|
* @wmi_hdl: wmi handle
|
||||||
|
@@ -794,6 +794,55 @@ send_set_quiet_mode_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* send_set_bcn_offload_quiet_mode_cmd_tlv() - send set quiet mode command to fw
|
||||||
|
* @wmi_handle: wmi handle
|
||||||
|
* @param: pointer to quiet mode params in bcn offload mode
|
||||||
|
*
|
||||||
|
* Return: 0 for success or error code
|
||||||
|
*/
|
||||||
|
static QDF_STATUS
|
||||||
|
send_set_bcn_offload_quiet_mode_cmd_tlv(wmi_unified_t wmi_handle,
|
||||||
|
struct set_bcn_offload_quiet_mode_params *param)
|
||||||
|
{
|
||||||
|
wmi_vdev_bcn_offload_quiet_config_cmd_fixed_param *quiet_cmd;
|
||||||
|
wmi_buf_t buf;
|
||||||
|
QDF_STATUS ret;
|
||||||
|
int32_t len;
|
||||||
|
|
||||||
|
len = sizeof(*quiet_cmd);
|
||||||
|
buf = wmi_buf_alloc(wmi_handle, len);
|
||||||
|
if (!buf) {
|
||||||
|
WMI_LOGE("%s: wmi_buf_alloc failed", __func__);
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
quiet_cmd = (wmi_vdev_bcn_offload_quiet_config_cmd_fixed_param *)
|
||||||
|
wmi_buf_data(buf);
|
||||||
|
WMITLV_SET_HDR(&quiet_cmd->tlv_header,
|
||||||
|
WMITLV_TAG_STRUC_wmi_vdev_bcn_offload_quiet_config_cmd_fixed_param,
|
||||||
|
WMITLV_GET_STRUCT_TLVLEN(
|
||||||
|
wmi_vdev_bcn_offload_quiet_config_cmd_fixed_param));
|
||||||
|
quiet_cmd = (wmi_vdev_bcn_offload_quiet_config_cmd_fixed_param *)
|
||||||
|
wmi_buf_data(buf);
|
||||||
|
quiet_cmd->vdev_id = param->vdev_id;
|
||||||
|
quiet_cmd->period = param->period;
|
||||||
|
quiet_cmd->duration = param->duration;
|
||||||
|
quiet_cmd->next_start = param->next_start;
|
||||||
|
quiet_cmd->flags = param->flag;
|
||||||
|
|
||||||
|
wmi_mtrace(WMI_VDEV_BCN_OFFLOAD_QUIET_CONFIG_CMDID, NO_SESSION, 0);
|
||||||
|
ret = wmi_unified_cmd_send(wmi_handle, buf, len,
|
||||||
|
WMI_VDEV_BCN_OFFLOAD_QUIET_CONFIG_CMDID);
|
||||||
|
|
||||||
|
if (ret != 0) {
|
||||||
|
WMI_LOGE("Sending set quiet cmd failed");
|
||||||
|
wmi_buf_free(buf);
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* send_bcn_offload_control_cmd_tlv - send beacon ofload control cmd to fw
|
* send_bcn_offload_control_cmd_tlv - send beacon ofload control cmd to fw
|
||||||
* @wmi_handle: wmi handle
|
* @wmi_handle: wmi handle
|
||||||
@@ -2578,6 +2627,8 @@ void wmi_ap_attach_tlv(wmi_unified_t wmi_handle)
|
|||||||
ops->send_set_ht_ie_cmd = send_set_ht_ie_cmd_tlv;
|
ops->send_set_ht_ie_cmd = send_set_ht_ie_cmd_tlv;
|
||||||
ops->send_set_vht_ie_cmd = send_set_vht_ie_cmd_tlv;
|
ops->send_set_vht_ie_cmd = send_set_vht_ie_cmd_tlv;
|
||||||
ops->send_set_quiet_mode_cmd = send_set_quiet_mode_cmd_tlv;
|
ops->send_set_quiet_mode_cmd = send_set_quiet_mode_cmd_tlv;
|
||||||
|
ops->send_set_bcn_offload_quiet_mode_cmd =
|
||||||
|
send_set_bcn_offload_quiet_mode_cmd_tlv;
|
||||||
ops->send_bcn_offload_control_cmd = send_bcn_offload_control_cmd_tlv;
|
ops->send_bcn_offload_control_cmd = send_bcn_offload_control_cmd_tlv;
|
||||||
ops->extract_tbttoffset_update_params =
|
ops->extract_tbttoffset_update_params =
|
||||||
extract_tbttoffset_update_params_tlv;
|
extract_tbttoffset_update_params_tlv;
|
||||||
|
Reference in New Issue
Block a user