diff options
| author | Krishna Kumaar Natarajan <kknatara@qca.qualcomm.com> | 2014-12-10 17:21:26 -0800 |
|---|---|---|
| committer | AnjaneeDevi Kapparapu <c_akappa@qti.qualcomm.com> | 2014-12-11 19:39:40 +0530 |
| commit | 93abe6aad66c986cca04d69eb3fb121c8c2ccf76 (patch) | |
| tree | 0959d0f1a63e3f9e0d0212a1b497b6131fa1d3c7 | |
| parent | 683e17e4325330b0754934186265cc18b9763a4e (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.h | 1 | ||||
| -rw-r--r-- | CORE/SERVICES/COMMON/wmi_tlv_defs.h | 19 | ||||
| -rw-r--r-- | CORE/SERVICES/COMMON/wmi_unified.h | 64 | ||||
| -rw-r--r-- | CORE/SERVICES/WMI/wmi_unified.c | 1 |
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"; } |
