diff options
| author | Thirumalai Pachamuthu <tpachamu@qti.qualcomm.com> | 2013-11-28 21:08:01 +0530 |
|---|---|---|
| committer | Prakash Dhavali <pdhavali@qca.qualcomm.com> | 2013-12-08 02:47:07 -0800 |
| commit | 5c2a2839b1485f8efe053e09083e95ae409394ab (patch) | |
| tree | fb7eab023eab56420af602a6e5a4236e9eb5afdb | |
| parent | f1d0c3b66720c8df65463396b130363dc3f27f4e (diff) | |
cld: common: common file changes for packet power save
This patch add the common file changes for the packet
power save.
Change-Id: Iab5eb492d35cead6a344cbc74c7aab6d8609d7fa
CRs-Fixed: 583038
| -rw-r--r-- | CORE/SERVICES/COMMON/wmi_unified.h | 12 | ||||
| -rw-r--r-- | CORE/SERVICES/WMA/wma.c | 54 | ||||
| -rw-r--r-- | CORE/SERVICES/WMA/wma.h | 13 |
3 files changed, 79 insertions, 0 deletions
diff --git a/CORE/SERVICES/COMMON/wmi_unified.h b/CORE/SERVICES/COMMON/wmi_unified.h index ffbcd86e3d15..1cceeb71aef3 100644 --- a/CORE/SERVICES/COMMON/wmi_unified.h +++ b/CORE/SERVICES/COMMON/wmi_unified.h @@ -2789,6 +2789,18 @@ typedef enum { /** Roaming offload */ WMI_VDEV_PARAM_ROAM_FW_OFFLOAD, + + /* set packet power save */ + WMI_VDEV_PPS_PAID_MATCH, + WMI_VDEV_PPS_GID_MATCH, + WMI_VDEV_PPS_EARLY_TIM_CLEAR, + WMI_VDEV_PPS_EARLY_DTIM_CLEAR, + WMI_VDEV_PPS_EOF_PAD_DELIM, + WMI_VDEV_PPS_MACADDR_MISMATCH, + WMI_VDEV_PPS_DELIM_CRC_FAIL, + WMI_VDEV_PPS_GID_NSTS_ZERO, + WMI_VDEV_PPS_RSSI_CHECK, + WMI_VDEV_VHT_SET_GID_MGMT, } WMI_VDEV_PARAM; enum wmi_pkt_type { diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c index 40b2bb4d2376..d49ad3e04c1f 100644 --- a/CORE/SERVICES/WMA/wma.c +++ b/CORE/SERVICES/WMA/wma.c @@ -4354,6 +4354,33 @@ static void wma_process_cli_set_cmd(tp_wma_handle wma, case WMI_VDEV_PARAM_FIXED_RATE: intr[vid].config.tx_rate = privcmd->param_value; break; + case WMI_VDEV_PPS_PAID_MATCH: + intr[vid].config.pps_params.paid_match_enable = privcmd->param_value; + break; + case WMI_VDEV_PPS_GID_MATCH: + intr[vid].config.pps_params.gid_match_enable = privcmd->param_value; + break; + case WMI_VDEV_PPS_EARLY_TIM_CLEAR: + intr[vid].config.pps_params.tim_clear = privcmd->param_value; + break; + case WMI_VDEV_PPS_EARLY_DTIM_CLEAR: + intr[vid].config.pps_params.dtim_clear = privcmd->param_value; + break; + case WMI_VDEV_PPS_EOF_PAD_DELIM: + intr[vid].config.pps_params.eof_delim = privcmd->param_value; + break; + case WMI_VDEV_PPS_MACADDR_MISMATCH: + intr[vid].config.pps_params.mac_match = privcmd->param_value; + break; + case WMI_VDEV_PPS_DELIM_CRC_FAIL: + intr[vid].config.pps_params.delim_fail = privcmd->param_value; + break; + case WMI_VDEV_PPS_GID_NSTS_ZERO: + intr[vid].config.pps_params.nsts_zero = privcmd->param_value; + break; + case WMI_VDEV_PPS_RSSI_CHECK: + intr[vid].config.pps_params.rssi_chk = privcmd->param_value; + break; default: WMA_LOGE("Invalid wda_cli_set vdev command/Not" " yet implemented 0x%x", privcmd->param_id); @@ -4465,6 +4492,33 @@ int wma_cli_get_command(void *wmapvosContext, int vdev_id, case WMI_VDEV_PARAM_FIXED_RATE: ret = intr[vdev_id].config.tx_rate; break; + case WMI_VDEV_PPS_PAID_MATCH: + ret = intr[vdev_id].config.pps_params.paid_match_enable; + break; + case WMI_VDEV_PPS_GID_MATCH: + ret = intr[vdev_id].config.pps_params.gid_match_enable; + break; + case WMI_VDEV_PPS_EARLY_TIM_CLEAR: + ret = intr[vdev_id].config.pps_params.tim_clear; + break; + case WMI_VDEV_PPS_EARLY_DTIM_CLEAR: + ret = intr[vdev_id].config.pps_params.dtim_clear; + break; + case WMI_VDEV_PPS_EOF_PAD_DELIM: + ret = intr[vdev_id].config.pps_params.eof_delim; + break; + case WMI_VDEV_PPS_MACADDR_MISMATCH: + ret = intr[vdev_id].config.pps_params.mac_match; + break; + case WMI_VDEV_PPS_DELIM_CRC_FAIL: + ret = intr[vdev_id].config.pps_params.delim_fail; + break; + case WMI_VDEV_PPS_GID_NSTS_ZERO: + ret = intr[vdev_id].config.pps_params.nsts_zero; + break; + case WMI_VDEV_PPS_RSSI_CHECK: + ret = intr[vdev_id].config.pps_params.rssi_chk; + break; default: WMA_LOGE("Invalid cli_get vdev command/Not" " yet implemented 0x%x", param_id); diff --git a/CORE/SERVICES/WMA/wma.h b/CORE/SERVICES/WMA/wma.h index 2891e44a4c29..312c389e49e1 100644 --- a/CORE/SERVICES/WMA/wma.h +++ b/CORE/SERVICES/WMA/wma.h @@ -218,6 +218,18 @@ struct beacon_tim_ie { #endif +struct pps { + v_BOOL_t paid_match_enable; + v_BOOL_t gid_match_enable; + v_BOOL_t tim_clear; + v_BOOL_t dtim_clear; + v_BOOL_t eof_delim; + v_BOOL_t mac_match; + v_BOOL_t delim_fail; + v_BOOL_t nsts_zero; + v_BOOL_t rssi_chk; +}; + typedef struct { u_int32_t ani_enable; u_int32_t ani_poll_len; @@ -243,6 +255,7 @@ typedef struct { u_int32_t tx_rate; u_int32_t ampdu; u_int32_t amsdu; + struct pps pps_params; } vdev_cli_config_t; #define WMA_WOW_PTRN_MASK_VALID 0xFF |
