diff options
| author | Linux Build Service Account <lnxbuild@quicinc.com> | 2017-04-25 09:43:32 -0700 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-04-25 09:43:32 -0700 |
| commit | 8cbbedf99674ae8f4a1a2f82c656b362cd626552 (patch) | |
| tree | c0cd6952b8a32e84637776056f15fa72f5c61082 | |
| parent | a1143fedba6d3d07543b734071d22f65430bbfc5 (diff) | |
| parent | 52a34437f68a41f860e24c88d85eb694d49357cf (diff) | |
Merge "qcacld-2.0: CL 2969188 - update fw common interface files" into wlan-cld2.driver.lnx.1.0-dev
| -rw-r--r-- | CORE/SERVICES/COMMON/wmi_tlv_defs.h | 7 | ||||
| -rw-r--r-- | CORE/SERVICES/COMMON/wmi_unified.h | 61 | ||||
| -rw-r--r-- | CORE/SERVICES/COMMON/wmi_version.h | 2 | ||||
| -rw-r--r-- | CORE/SERVICES/WMI/wmi_unified.c | 1 |
4 files changed, 63 insertions, 8 deletions
diff --git a/CORE/SERVICES/COMMON/wmi_tlv_defs.h b/CORE/SERVICES/COMMON/wmi_tlv_defs.h index ee11514d6cf4..df5c0d906668 100644 --- a/CORE/SERVICES/COMMON/wmi_tlv_defs.h +++ b/CORE/SERVICES/COMMON/wmi_tlv_defs.h @@ -812,6 +812,7 @@ typedef enum { WMITLV_TAG_STRUC_wmi_tx_send_params, WMITLV_TAG_STRUC_wmi_he_rate_set, WMITLV_TAG_STRUC_wmi_congestion_stats, + WMITLV_TAG_STRUC_wmi_set_init_country_cmd_fixed_param, } WMITLV_TAG_ID; /* @@ -1140,6 +1141,7 @@ typedef enum { OP(WMI_VDEV_GET_ARP_STAT_CMDID) \ OP(WMI_VDEV_GET_TX_POWER_CMDID) \ OP(WMI_OFFCHAN_DATA_TX_SEND_CMDID) \ + OP(WMI_SET_INIT_COUNTRY_CMDID) \ /* add new CMD_LIST elements above this line */ /* @@ -3224,6 +3226,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_REQUEST_PEER_STATS_INFO_CMDID); WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_set_current_country_cmd_fixed_param, wmi_set_current_country_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_SET_CURRENT_COUNTRY_CMDID); +/* Host sets the init country code */ +#define WMITLV_TABLE_WMI_SET_INIT_COUNTRY_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_set_init_country_cmd_fixed_param, wmi_set_init_country_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_SET_INIT_COUNTRY_CMDID); + /* Start 11d scan in FW */ #define WMITLV_TABLE_WMI_11D_SCAN_START_CMDID(id, op, buf, len) \ WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_11d_scan_start_cmd_fixed_param, wmi_11d_scan_start_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) diff --git a/CORE/SERVICES/COMMON/wmi_unified.h b/CORE/SERVICES/COMMON/wmi_unified.h index 06dd21a2657e..8a95b1257b44 100644 --- a/CORE/SERVICES/COMMON/wmi_unified.h +++ b/CORE/SERVICES/COMMON/wmi_unified.h @@ -1027,6 +1027,7 @@ typedef enum { WMI_SET_CURRENT_COUNTRY_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_REGULATORY), WMI_11D_SCAN_START_CMDID, WMI_11D_SCAN_STOP_CMDID, + WMI_SET_INIT_COUNTRY_CMDID, /** * Nan Data commands @@ -18975,6 +18976,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command) WMI_RETURN_STRING(WMI_VDEV_GET_ARP_STAT_CMDID); WMI_RETURN_STRING(WMI_VDEV_GET_TX_POWER_CMDID); WMI_RETURN_STRING(WMI_OFFCHAN_DATA_TX_SEND_CMDID); + WMI_RETURN_STRING(WMI_SET_INIT_COUNTRY_CMDID); } return "Invalid WMI cmd"; @@ -18986,9 +18988,32 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command) /** Host indicating current country code to FW */ typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_set_current_country_cmd_fixed_param */ + A_UINT32 pdev_id; A_UINT32 new_alpha2; /** alpha2 characters representing the country code */ } wmi_set_current_country_cmd_fixed_param; +typedef enum { + WMI_COUNTRYCODE_ALPHA2, + WMI_COUNTRYCODE_COUNTRY_ID, + WMI_COUNTRYCODE_DOMAIN_CODE, +} WMI_COUNTRYCODE_TYPE; + +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_set_init_country_cmd_fixed_param */ + A_UINT32 pdev_id; + A_UINT32 countrycode_type; /* WMI_COUNTRYCODE_TYPE */ + union { + struct { + /* Three character for alpha2. The first two is ISO name for country the last one + present if it is indoor and out door. First char in bits 7:0 and second char in bits 15:8 ... */ + A_UINT32 alpha2:24, + unused:8; + }; + A_UINT32 country_id; /* Country ID */ + A_UINT32 domain_code; /* Domain code */ + } country_code; +} wmi_set_init_country_cmd_fixed_param; + /* Freq units in MHz */ #define WMI_REG_RULE_START_FREQ_GET(freq_info) WMI_GET_BITS(freq_info, 0, 16) #define WMI_REG_RULE_START_FREQ_SET(freq_info, value) WMI_SET_BITS(freq_info, 0, 16, value) @@ -18996,11 +19021,14 @@ typedef struct { #define WMI_REG_RULE_END_FREQ_SET(freq_info, value) WMI_SET_BITS(freq_info, 16, 16, value) /* BW in MHz */ -#define WMI_REG_RULE_MAX_BW_GET(bw_info) WMI_GET_BITS(bw_info, 0, 16) -#define WMI_REG_RULE_MAX_BW_SET(bw_info, value) WMI_SET_BITS(bw_info, 0, 16, value) +#define WMI_REG_RULE_MAX_BW_GET(bw_pwr_info) WMI_GET_BITS(bw_pwr_info, 0, 16) +#define WMI_REG_RULE_MAX_BW_SET(bw_pwr_info, value) WMI_SET_BITS(bw_pwr_info, 0, 16, value) /* regpower in dBm */ -#define WMI_REG_RULE_REG_POWER_GET(bw_info) WMI_GET_BITS(bw_info, 16, 8) -#define WMI_REG_RULE_REG_POWER_SET(bw_info, value) WMI_SET_BITS(bw_info, 16, 8, value) +#define WMI_REG_RULE_REG_POWER_GET(bw_pwr_info) WMI_GET_BITS(bw_pwr_info, 16, 8) +#define WMI_REG_RULE_REG_POWER_SET(bw_pwr_info, value) WMI_SET_BITS(bw_pwr_info, 16, 8, value) +/* antenna gain */ +#define WMI_REG_RULE_ANTENNA_GAIN_GET(bw_pwr_info) WMI_GET_BITS(bw_pwr_info, 24, 8) +#define WMI_REG_RULE_ANTENNA_GAIN_SET(bw_pwr_info, value) WMI_SET_BITS(bw_pwr_info, 24, 8, value) typedef enum { WMI_REG_FLAG_CHAN_NO_IR = 0x0001, /* passive channel */ @@ -19014,9 +19042,14 @@ typedef enum { typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_regulatory_rule_struct */ - A_UINT32 freq_info; /* u16 start_freq, u16 end_freq */ - A_UINT32 bw_info; /* u16 max_bw, u8 reg_power, u8 reserved */ - A_UINT32 power_flag_info; /* u16 flags, u16 reserved */ + A_UINT32 freq_info; /* bits 15:0 = u16 start_freq, + * bits 31:16 = u16 end_freq + * (both in MHz units) */ + A_UINT32 bw_pwr_info; /* bits 15:0 = u16 max_bw (MHz units), + bits 23:16 = u8 reg_power (dBm units), + bits 31:24 = u8 ant_gain (dB units) */ + A_UINT32 flag_info; /* bits 15:0 = u16 flags, + bits 31:16 reserved */ } wmi_regulatory_rule_struct; typedef enum { @@ -19040,9 +19073,23 @@ typedef enum { WMI_REGULATORY_PHYMODE_NO11AX = 0x0020, /* NO 11AX */ } WMI_REGULATORY_PHYBITMAP; +typedef enum { + WMI_REG_SET_CC_STATUS_PASS = 0, + WMI_REG_CURRENT_ALPHA2_NOT_FOUND = 1, + WMI_REG_INIT_ALPHA2_NOT_FOUND = 2, + WMI_REG_SET_CC_CHANGE_NOT_ALLOWED = 3, + WMI_REG_SET_CC_STATUS_NO_MEMORY = 4, + WMI_REG_SET_CC_STATUS_FAIL = 5, +} WMI_REG_SET_CC_STATUS_CODE; + typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_reg_chan_list_cc_event_fixed_param */ + A_UINT32 status_code; /* WMI_REG_SET_CC_STATUS_CODE */ + A_UINT32 phy_id; A_UINT32 alpha2; + A_UINT32 num_phy; + A_UINT32 country_id; + A_UINT32 domain_code; A_UINT32 dfs_region; /* WMI_REG_DFS_REGION */ A_UINT32 phybitmap; /* WMI_REGULATORY_PHYBITMAP */ A_UINT32 min_bw_2g; /* BW in MHz */ diff --git a/CORE/SERVICES/COMMON/wmi_version.h b/CORE/SERVICES/COMMON/wmi_version.h index e9203e3c11b5..6375e585c3e5 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_ 373 +#define __WMI_REVISION_ 374 /** 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 4b5bae5a9441..a98982f19b10 100644 --- a/CORE/SERVICES/WMI/wmi_unified.c +++ b/CORE/SERVICES/WMI/wmi_unified.c @@ -745,6 +745,7 @@ static u_int8_t* get_wmi_cmd_string(WMI_CMD_ID wmi_command) CASE_RETURN_STRING(WMI_VDEV_GET_ARP_STAT_CMDID); CASE_RETURN_STRING(WMI_VDEV_GET_TX_POWER_CMDID); CASE_RETURN_STRING(WMI_OFFCHAN_DATA_TX_SEND_CMDID); + CASE_RETURN_STRING(WMI_SET_INIT_COUNTRY_CMDID); } return "Invalid WMI cmd"; } |
