diff --git a/fw/wmi_services.h b/fw/wmi_services.h index 7279a9619c30..670a018a3abf 100644 --- a/fw/wmi_services.h +++ b/fw/wmi_services.h @@ -725,6 +725,7 @@ typedef enum { WMI_SERVICE_NPCA_SUPPORT = 464, /* Indicates FW supports NPCA (Non-Primary Channel Access) */ WMI_SERVICE_EXT_TLV_SUPPORT = 465, /* FW supports WMI_MAX_NUM_EXT_TLVS */ WMI_SERVICE_VDEV_TRAFFIC_MONITORING = 466, /* FW supports traffic monitoring */ + WMI_SERVICE_EM_DPS_ASSISTING_ROLE_SUPPORT = 467, /* Indicates support for Energy Mgmt DPS assisting role operation */ WMI_MAX_EXT2_SERVICE diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index d05bebf83f93..6bba216cecbb 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1511,6 +1511,7 @@ typedef enum { WMITLV_TAG_STRUC_wmi_vdev_tpc_ie_power_event_fixed_param, WMITLV_TAG_STRUC_wmi_pdev_coex_stats, WMITLV_TAG_STRUC_wmi_vdev_traffic_monitoring_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_energy_mgmt_dps_assisting_role_config_cmd_fixed_param, } WMITLV_TAG_ID; /* * IMPORTANT: Please add _ALL_ WMI Commands Here. @@ -2089,6 +2090,7 @@ typedef enum { OP(WMI_VDEV_GET_TPC_IE_POWER_CMDID) \ OP(WMI_PEER_ASSOC_V2_CMDID) \ OP(WMI_VDEV_TRAFFIC_MONITORING_CMDID) \ + OP(WMI_ENERGY_MGMT_DPS_ASSISTING_ROLE_CONFIG_CMDID) \ /* add new CMD_LIST elements above this line */ @@ -5920,6 +5922,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_MULTI_VDEV_GET_AC_QUEUE_DEPTH_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_traffic_monitoring_cmd_fixed_param, wmi_vdev_traffic_monitoring_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_TRAFFIC_MONITORING_CMDID); +/* WMI command to control Dynamic Power Save - AP Assisting role config */ +#define WMITLV_TABLE_WMI_ENERGY_MGMT_DPS_ASSISTING_ROLE_CONFIG_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_energy_mgmt_dps_assisting_role_config_cmd_fixed_param, wmi_energy_mgmt_dps_assisting_role_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_ENERGY_MGMT_DPS_ASSISTING_ROLE_CONFIG_CMDID); + /************************** TLV definitions of WMI events *******************************/ diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 8d2781c8d5df..f0cd6dde0634 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -1767,6 +1767,8 @@ typedef enum { WMI_ENERGY_MGMT_PUO_CONFIG_CMDID, /** WMI cmd used to control ECO mode config */ WMI_ENERGY_MGMT_ECO_MODE_CONFIG_CMDID, + /** WMI cmd used to control DPS Assisting AP role config */ + WMI_ENERGY_MGMT_DPS_ASSISTING_ROLE_CONFIG_CMDID, } WMI_CMD_ID; typedef enum { @@ -39707,6 +39709,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command) WMI_RETURN_STRING(WMI_PEER_TID_RATE_CUSTOM_CMDID); WMI_RETURN_STRING(WMI_VDEV_GET_TPC_IE_POWER_CMDID); WMI_RETURN_STRING(WMI_VDEV_TRAFFIC_MONITORING_CMDID); + WMI_RETURN_STRING(WMI_ENERGY_MGMT_DPS_ASSISTING_ROLE_CONFIG_CMDID); } return (A_UINT8 *) "Invalid WMI cmd"; @@ -51772,6 +51775,18 @@ typedef struct { A_UINT32 traffic_monitoring_time; } wmi_vdev_traffic_monitoring_cmd_fixed_param; +typedef enum { + WMI_DPS_ASSISTING_ROLE_DISABLE, /* Disable - DPS: AP Assisting role */ + WMI_DPS_ASSISTING_ROLE_ENABLE, /* Enable - DPS: AP Assisting role */ +} wmi_dps_assisting_role_e; + +typedef struct { + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_energy_mgmt_dps_assisting_role_config_cmd_fixed_param */ + A_UINT32 tlv_header; + /** holds a wmi_dps_assisting_role_e value */ + A_UINT32 config; +} wmi_energy_mgmt_dps_assisting_role_config_cmd_fixed_param; diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 8ad871d44164..44fad6cbdaaa 100644 --- a/fw/wmi_version.h +++ b/fw/wmi_version.h @@ -37,7 +37,7 @@ #define __WMI_VER_MINOR_ 0 /** WMI revision number has to be incremented when there is a * change that may or may not break compatibility. */ -#define __WMI_REVISION_ 1651 +#define __WMI_REVISION_ 1652 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work