qcacmn: Add support for action id bitmask in allowed action frames
Currently only action category is specified to be dropped/allowed by fw. Add support for action id bitmask per category. Change-Id: I208af7827532740104afbb3d0e9b8dda3a8b2d47 CRs-Fixed: 2072125
这个提交包含在:
@@ -13850,13 +13850,18 @@ static QDF_STATUS send_action_frame_patterns_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
wmi_buf_t buf;
|
wmi_buf_t buf;
|
||||||
int i;
|
int i;
|
||||||
int32_t err;
|
int32_t err;
|
||||||
|
uint32_t len = 0, *cmd_args;
|
||||||
|
uint8_t *buf_ptr;
|
||||||
|
|
||||||
buf = wmi_buf_alloc(wmi_handle, sizeof(*cmd));
|
len = (PMO_SUPPORTED_ACTION_CATE * sizeof(A_UINT32))
|
||||||
|
+ WMI_TLV_HDR_SIZE + sizeof(*cmd);
|
||||||
|
buf = wmi_buf_alloc(wmi_handle, len);
|
||||||
if (!buf) {
|
if (!buf) {
|
||||||
WMI_LOGE("Failed to allocate buffer to send action filter cmd");
|
WMI_LOGE("Failed to allocate buffer to send action filter cmd");
|
||||||
return QDF_STATUS_E_NOMEM;
|
return QDF_STATUS_E_NOMEM;
|
||||||
}
|
}
|
||||||
cmd = (WMI_WOW_SET_ACTION_WAKE_UP_CMD_fixed_param *) wmi_buf_data(buf);
|
cmd = (WMI_WOW_SET_ACTION_WAKE_UP_CMD_fixed_param *) wmi_buf_data(buf);
|
||||||
|
buf_ptr = (uint8_t *)cmd;
|
||||||
WMITLV_SET_HDR(&cmd->tlv_header,
|
WMITLV_SET_HDR(&cmd->tlv_header,
|
||||||
WMITLV_TAG_STRUC_wmi_wow_set_action_wake_up_cmd_fixed_param,
|
WMITLV_TAG_STRUC_wmi_wow_set_action_wake_up_cmd_fixed_param,
|
||||||
WMITLV_GET_STRUCT_TLVLEN(
|
WMITLV_GET_STRUCT_TLVLEN(
|
||||||
@@ -13869,8 +13874,16 @@ static QDF_STATUS send_action_frame_patterns_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
cmd->action_category_map[i] =
|
cmd->action_category_map[i] =
|
||||||
action_params->action_category_map[i];
|
action_params->action_category_map[i];
|
||||||
|
|
||||||
|
buf_ptr += sizeof(WMI_WOW_SET_ACTION_WAKE_UP_CMD_fixed_param);
|
||||||
|
WMITLV_SET_HDR(buf_ptr, WMITLV_TAG_ARRAY_UINT32,
|
||||||
|
(PMO_SUPPORTED_ACTION_CATE * sizeof(A_UINT32)));
|
||||||
|
buf_ptr += WMI_TLV_HDR_SIZE;
|
||||||
|
cmd_args = (uint32_t *) buf_ptr;
|
||||||
|
for (i = 0; i < PMO_SUPPORTED_ACTION_CATE; i++)
|
||||||
|
cmd_args[i] = action_params->action_per_category[i];
|
||||||
|
|
||||||
err = wmi_unified_cmd_send(wmi_handle, buf,
|
err = wmi_unified_cmd_send(wmi_handle, buf,
|
||||||
sizeof(*cmd), WMI_WOW_SET_ACTION_WAKE_UP_CMDID);
|
len, WMI_WOW_SET_ACTION_WAKE_UP_CMDID);
|
||||||
if (err) {
|
if (err) {
|
||||||
WMI_LOGE("Failed to send ap_ps_egap cmd");
|
WMI_LOGE("Failed to send ap_ps_egap cmd");
|
||||||
wmi_buf_free(buf);
|
wmi_buf_free(buf);
|
||||||
|
在新工单中引用
屏蔽一个用户