summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKrishna Kumaar Natarajan <kknatara@qca.qualcomm.com>2014-12-10 17:21:26 -0800
committerAnjaneeDevi Kapparapu <c_akappa@qti.qualcomm.com>2014-12-11 19:39:40 +0530
commit93abe6aad66c986cca04d69eb3fb121c8c2ccf76 (patch)
tree0959d0f1a63e3f9e0d0212a1b497b6131fa1d3c7
parent683e17e4325330b0754934186265cc18b9763a4e (diff)
qcacld: CL 1171100 - update fw common interface files
This change set add firmware common interface changes related to DSRC prototype implementation. Change-Id: I808a7b6ad368411ec1f14d7c51d40fd754cad86b CRs-Fixed: 769398
-rw-r--r--CORE/SERVICES/COMMON/wmi_services.h1
-rw-r--r--CORE/SERVICES/COMMON/wmi_tlv_defs.h19
-rw-r--r--CORE/SERVICES/COMMON/wmi_unified.h64
-rw-r--r--CORE/SERVICES/WMI/wmi_unified.c1
4 files changed, 82 insertions, 3 deletions
diff --git a/CORE/SERVICES/COMMON/wmi_services.h b/CORE/SERVICES/COMMON/wmi_services.h
index 1ed0096c6666..f2eb51df6aad 100644
--- a/CORE/SERVICES/COMMON/wmi_services.h
+++ b/CORE/SERVICES/COMMON/wmi_services.h
@@ -116,6 +116,7 @@ typedef enum {
WMI_SERVICE_MDNS_OFFLOAD, /* mDNS responder offload support */
WMI_SERVICE_SAP_AUTH_OFFLOAD, /* softap auth offload */
WMI_SERVICE_DUAL_BAND_SIMULTANEOUS_SUPPORT, /* Dual Band Simultaneous support */
+ WMI_SERVICE_OCB, /* OCB mode support */
WMI_MAX_SERVICE=128 /* max service */
} WMI_SERVICE;
diff --git a/CORE/SERVICES/COMMON/wmi_tlv_defs.h b/CORE/SERVICES/COMMON/wmi_tlv_defs.h
index 058ee257f24b..cdea12310af1 100644
--- a/CORE/SERVICES/COMMON/wmi_tlv_defs.h
+++ b/CORE/SERVICES/COMMON/wmi_tlv_defs.h
@@ -527,6 +527,8 @@ typedef enum {
WMITLV_TAG_STRUC_wmi_sap_ofl_del_sta_event_fixed_param,
WMITLV_TAG_STRUC_wmi_apfind_cmd_param,
WMITLV_TAG_STRUC_wmi_apfind_event_hdr,
+ WMITLV_TAG_STRUC_wmi_ocb_set_sched_cmd_fixed_param,
+ WMITLV_TAG_STRUC_wmi_ocb_set_sched_event_fixed_param,
} WMITLV_TAG_ID;
/*
@@ -726,8 +728,8 @@ typedef enum {
OP(WMI_MDNS_GET_STATS_CMDID) \
OP(WMI_SET_ANTENNA_DIVERSITY_CMDID) \
OP(WMI_SAP_OFL_ENABLE_CMDID) \
- OP(WMI_APFIND_CMDID)
-
+ OP(WMI_APFIND_CMDID) \
+ OP(WMI_OCB_SET_SCHED_CMDID)
/*
@@ -822,7 +824,8 @@ typedef enum {
OP(WMI_MDNS_STATS_EVENTID) \
OP(WMI_PDEV_RESUME_EVENTID) \
OP(WMI_SAP_OFL_ADD_STA_EVENTID) \
- OP(WMI_SAP_OFL_DEL_STA_EVENTID)
+ OP(WMI_SAP_OFL_DEL_STA_EVENTID) \
+ OP(WMI_OCB_SET_SCHED_EVENTID)
/* TLV definitions of WMI commands */
@@ -2025,6 +2028,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_SAP_OFL_ENABLE_CMDID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_APFIND_CMDID);
+/* Set OCB schedule cmd */
+#define WMITLV_TABLE_WMI_OCB_SET_SCHED_CMDID(id,op,buf,len) \
+ WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_ocb_set_sched_cmd_fixed_param, wmi_ocb_set_sched_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_OCB_SET_SCHED_CMDID);
+
/************************** TLV definitions of WMI events *******************************/
/* Service Ready event */
@@ -2507,6 +2515,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_SAP_OFL_ADD_STA_EVENTID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_sap_ofl_del_sta_event_fixed_param, wmi_sap_ofl_del_sta_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_SAP_OFL_DEL_STA_EVENTID);
+/* Set OCB schedule event */
+#define WMITLV_TABLE_WMI_OCB_SET_SCHED_EVENTID(id,op,buf,len) \
+ WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_ocb_set_sched_event_fixed_param, wmi_ocb_set_sched_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_OCB_SET_SCHED_EVENTID);
+
#ifdef __cplusplus
}
#endif
diff --git a/CORE/SERVICES/COMMON/wmi_unified.h b/CORE/SERVICES/COMMON/wmi_unified.h
index 67e639e5eddd..092f6f12eb4b 100644
--- a/CORE/SERVICES/COMMON/wmi_unified.h
+++ b/CORE/SERVICES/COMMON/wmi_unified.h
@@ -580,6 +580,8 @@ typedef enum {
WMI_TPC_CHAINMASK_CONFIG_CMDID,
/** set Antenna diversity command */
WMI_SET_ANTENNA_DIVERSITY_CMDID,
+ /* Set OCB Sched Request */
+ WMI_OCB_SET_SCHED_CMDID,
/* GPIO Configuration */
WMI_GPIO_CONFIG_CMDID=WMI_CMD_GRP_START_ID(WMI_GRP_GPIO),
@@ -918,6 +920,9 @@ typedef enum {
WMI_DIAG_EVENTID,
+ /* Set OCB Sched Response */
+ WMI_OCB_SET_SCHED_EVENTID,
+
/* GPIO Event */
WMI_GPIO_INPUT_EVENTID=WMI_EVT_GRP_START_ID(WMI_GRP_GPIO),
/** upload H_CV info WMI event
@@ -1030,6 +1035,8 @@ WMI_CHANNEL_CHANGE_CAUSE_CSA,
#define WMI_CHAN_FLAG_ALLOW_HT 11 /* HT is allowed on this channel */
#define WMI_CHAN_FLAG_ALLOW_VHT 12 /* VHT is allowed on this channel */
#define WMI_CHANNEL_CHANGE_CAUSE_CSA 13 /*Indicate reason for channel switch */
+#define WMI_CHAN_FLAG_HALF_RATE 14 /* Indicates half rate channel */
+#define WMI_CHAN_FLAG_QUARTER_RATE 15 /* Indicates quarter rate channel */
#define WMI_SET_CHANNEL_FLAG(pwmi_channel,flag) do { \
(pwmi_channel)->info |= (1 << flag); \
@@ -3277,6 +3284,8 @@ typedef struct {
**/
#define WMI_VDEV_TYPE_NAN 0x5
+#define WMI_VDEV_TYPE_OCB 0x6
+
/** values for vdev_subtype */
#define WMI_UNIFIED_VDEV_SUBTYPE_P2P_DEVICE 0x1
#define WMI_UNIFIED_VDEV_SUBTYPE_P2P_CLIENT 0x2
@@ -9221,6 +9230,61 @@ typedef struct {
*/
} wmi_apfind_event_hdr;
+/** Number of access priorities. */
+#define NUM_AC (4)
+/** Max number of channels in the schedule. */
+#define OCB_CHANNEL_MAX (5)
+
+/* NOTE: Make sure these data structures are identical to those 9235
+* defined in sirApi.h */
+
+typedef struct
+{
+ /** Arbitration Inter-Frame Spacing. Range: 2-15 */
+ A_UINT32 aifsn;
+ /** Contention Window minimum. Range: 1 - 10 */
+ A_UINT32 cwmin;
+ /** Contention Window maximum. Range: 1 - 10 */
+ A_UINT32 cwmax;
+} wmi_qos_params_t;
+
+typedef struct
+{
+ /** Channel frequency in MHz */
+ A_UINT32 chan_freq;
+ /** Channel duration in ms */
+ A_UINT32 duration;
+ /** Start guard interval in ms */
+ A_UINT32 start_guard_interval;
+ /** End guard interval in ms */
+ A_UINT32 end_guard_interval;
+ /** Transmit power in dBm, range 0 - 23 */
+ A_UINT32 tx_power;
+ /** Transmit datarate in Mbps */
+ A_UINT32 tx_rate;
+ /** QoS parameters for each AC */
+ wmi_qos_params_t qos_params[NUM_AC];
+ /** 1 to enable RX stats for this channel, 0 otherwise */
+ A_UINT32 rx_stats;
+} wmi_ocb_channel_t;
+
+typedef struct {
+ /** TLV tag and len; tag equals
+ * WMITLV_TAG_STRUC_wmi_ocb_set_sched_cmd_fixed_param */
+ A_UINT32 tlv_header;
+ /** Number of valid channels in the channels array */
+ A_UINT32 num_channels;
+ /** The array of channels */
+ wmi_ocb_channel_t channels[OCB_CHANNEL_MAX];
+ /** 1 to allow off-channel tx, 0 otherwise */
+ A_UINT32 off_channel_tx; // Not supported
+} wmi_ocb_set_sched_cmd_fixed_param;
+
+typedef struct {
+ /** Return status. 0 for success, non-zero otherwise */
+ A_UINT32 status;
+} wmi_ocb_set_sched_event_fixed_param;
+
#ifdef __cplusplus
}
#endif
diff --git a/CORE/SERVICES/WMI/wmi_unified.c b/CORE/SERVICES/WMI/wmi_unified.c
index aceb34238c2a..5e6da9d45337 100644
--- a/CORE/SERVICES/WMI/wmi_unified.c
+++ b/CORE/SERVICES/WMI/wmi_unified.c
@@ -604,6 +604,7 @@ static u_int8_t* get_wmi_cmd_string(WMI_CMD_ID wmi_command)
CASE_RETURN_STRING(WMI_SET_ANTENNA_DIVERSITY_CMDID);
CASE_RETURN_STRING(WMI_SAP_OFL_ENABLE_CMDID);
CASE_RETURN_STRING(WMI_APFIND_CMDID);
+ CASE_RETURN_STRING(WMI_OCB_SET_SCHED_CMDID);
}
return "Invalid WMI cmd";
}