summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRajesh Chauhan <rajeshc@qca.qualcomm.com>2014-02-14 16:36:09 -0800
committerAkash Patel <c_akashp@qca.qualcomm.com>2014-02-20 21:42:19 -0800
commitb1a999685802af98c7418d3cf80ce5b2fde29f9a (patch)
tree4bee48b391d3a279875a3603a85f23808a975e58
parentf218636d4b7a7306ebf0825f6588d58b40c197b4 (diff)
qcacld: CL 842584 - update fw common interface files
Update wmi header files with power save command for coex. Change-Id: Ib4fbd9c74ab07c751e68baab9334d4f9a268f769 CRs-Fixed: 616480
-rw-r--r--CORE/SERVICES/COMMON/wmi_tlv_defs.h9
-rw-r--r--CORE/SERVICES/COMMON/wmi_unified.h32
-rw-r--r--CORE/SERVICES/COMMON/wmi_version.h2
-rw-r--r--CORE/SERVICES/WMI/wmi_unified.c2
4 files changed, 43 insertions, 2 deletions
diff --git a/CORE/SERVICES/COMMON/wmi_tlv_defs.h b/CORE/SERVICES/COMMON/wmi_tlv_defs.h
index c13b2cfc1ad8..5ea671fc5491 100644
--- a/CORE/SERVICES/COMMON/wmi_tlv_defs.h
+++ b/CORE/SERVICES/COMMON/wmi_tlv_defs.h
@@ -422,6 +422,7 @@ typedef enum {
WMITLV_TAG_STRUC_wmi_nan_event_hdr,
WMITLV_TAG_STRUC_wmi_pdev_l1ss_track_event_fixed_param,
WMITLV_TAG_STRUC_wmi_diag_data_container_event_fixed_param,
+ WMITLV_TAG_STRUC_wmi_modem_power_state_cmd_param,
} WMITLV_TAG_ID;
/*
@@ -572,7 +573,8 @@ typedef enum {
OP(WMI_THERMAL_MGMT_CMDID) \
OP(WMI_ADD_PROACTIVE_ARP_RSP_PATTERN_CMDID) \
OP(WMI_DEL_PROACTIVE_ARP_RSP_PATTERN_CMDID) \
- OP(WMI_NAN_CMDID)
+ OP(WMI_NAN_CMDID) \
+ OP(WMI_MODEM_POWER_STATE_CMDID)
/*
* IMPORTANT: Please add _ALL_ WMI Events Here.
@@ -1523,6 +1525,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_DEL_PROACTIVE_ARP_RSP_PATTERN_CMDID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_NAN_CMDID);
+/* Modem power state cmd */
+#define WMITLV_TABLE_WMI_MODEM_POWER_STATE_CMDID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_modem_power_state_cmd_param, wmi_modem_power_state_cmd_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_MODEM_POWER_STATE_CMDID);
+
/************************** TLV definitions of WMI events *******************************/
/* Service Ready event */
diff --git a/CORE/SERVICES/COMMON/wmi_unified.h b/CORE/SERVICES/COMMON/wmi_unified.h
index bf7c31a81213..c5e803378a43 100644
--- a/CORE/SERVICES/COMMON/wmi_unified.h
+++ b/CORE/SERVICES/COMMON/wmi_unified.h
@@ -171,6 +171,7 @@ typedef enum {
WMI_GRP_LOCATION_SCAN,
WMI_GRP_OEM,
WMI_GRP_NAN,
+ WMI_GRP_COEX,
} WMI_GRP_ID;
#define WMI_CMD_GRP_START_ID(grp_id) (((grp_id) << 12) | 0x1)
@@ -589,6 +590,9 @@ typedef enum {
/** Nan Request */
WMI_NAN_CMDID=WMI_CMD_GRP_START_ID(WMI_GRP_NAN),
+
+ /** Modem power state command */
+ WMI_MODEM_POWER_STATE_CMDID=WMI_CMD_GRP_START_ID(WMI_GRP_COEX),
} WMI_CMD_ID;
typedef enum {
@@ -6377,6 +6381,34 @@ enum {
#define GET_PDEV_PARAM_TXPOWER_REASON(txpower_param) \
(((txpower_param) & PDEV_PARAM_TXPOWER_REASON_MASK) >> PDEV_PARAM_TXPOWER_REASON_SHIFT)
+/**
+ * This command is sent from WLAN host driver to firmware to
+ * notify the current modem power state. Host would receive a
+ * message from modem when modem is powered on. Host driver
+ * would then send this command to firmware. Firmware would then
+ * power on WCI-2 (UART) interface for LTE/MWS Coex.
+ *
+ * This command is only applicable for APQ platform which has
+ * modem on the platform. If firmware doesn't support MWS Coex,
+ * this command can be dropped by firmware.
+ *
+ * This is a requirement from modem team that WCN can't toggle
+ * UART before modem is powered on.
+ */
+typedef struct {
+ /** TLV tag and len; tag equals
+ * WMITLV_TAG_STRUC_wmi_modem_power_state_cmd_param */
+ A_UINT32 tlv_header;
+
+ /** Modem power state parameter */
+ A_UINT32 modem_power_state;
+} wmi_modem_power_state_cmd_param;
+
+enum {
+ WMI_MODEM_STATE_OFF = 0,
+ WMI_MODEM_STATE_ON
+};
+
#ifdef __cplusplus
}
#endif
diff --git a/CORE/SERVICES/COMMON/wmi_version.h b/CORE/SERVICES/COMMON/wmi_version.h
index 82da71e89ca9..12899afbe057 100644
--- a/CORE/SERVICES/COMMON/wmi_version.h
+++ b/CORE/SERVICES/COMMON/wmi_version.h
@@ -36,7 +36,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_ 35
+#define __WMI_REVISION_ 36
/** The Version Namespace should not be normally changed. Only
* host and firmware of the same WMI namespace will work
diff --git a/CORE/SERVICES/WMI/wmi_unified.c b/CORE/SERVICES/WMI/wmi_unified.c
index 28c4bae3b3d7..88784aa6ca51 100644
--- a/CORE/SERVICES/WMI/wmi_unified.c
+++ b/CORE/SERVICES/WMI/wmi_unified.c
@@ -483,6 +483,8 @@ static u_int8_t* get_wmi_cmd_string(WMI_CMD_ID wmi_command)
CASE_RETURN_STRING(WMI_OEM_REQ_CMDID);
/* NAN request cmd */
CASE_RETURN_STRING(WMI_NAN_CMDID);
+ /* Modem power state cmd */
+ CASE_RETURN_STRING(WMI_MODEM_POWER_STATE_CMDID);
}
return "Invalid WMI cmd";
}