summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThirumalai Pachamuthu <tpachamu@qti.qualcomm.com>2013-11-28 21:08:01 +0530
committerPrakash Dhavali <pdhavali@qca.qualcomm.com>2013-12-08 02:47:07 -0800
commit5c2a2839b1485f8efe053e09083e95ae409394ab (patch)
treefb7eab023eab56420af602a6e5a4236e9eb5afdb
parentf1d0c3b66720c8df65463396b130363dc3f27f4e (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.h12
-rw-r--r--CORE/SERVICES/WMA/wma.c54
-rw-r--r--CORE/SERVICES/WMA/wma.h13
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