From 391645537671ddef10648c0a069c89762fa3d7ea Mon Sep 17 00:00:00 2001 From: spuligil Date: Wed, 25 Oct 2017 09:02:07 -0700 Subject: [PATCH] fw-api: CL 3632853 - update fw common interface files optionally include per-chan phy mode specs in WMI scan start cmd msg Change-Id: Ia5b5d0688837056581773af82091293bbdd22b3a CRs-Fixed: 1107600 --- fw/wmi_tlv_defs.h | 3 ++- fw/wmi_unified.h | 31 ++++++++++++++++++++++++++----- fw/wmi_version.h | 2 +- 3 files changed, 29 insertions(+), 7 deletions(-) diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 4a0c53819751..39ae7787fad7 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1599,7 +1599,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_PLMREQ_STOP_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_ssid, ssid_list, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_mac_addr, bssid_list, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ie_data, WMITLV_SIZE_VAR)\ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vendor_oui, vendor_oui, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vendor_oui, vendor_oui, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, phymode_list, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_START_SCAN_CMDID); /* Scan adaptive dwell mode configuration */ diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index ba45d8f7c3b1..62799974cf3d 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -2768,6 +2768,26 @@ typedef struct { wmi_ssid ssids[1]; } wmi_ssid_list; +/** + * WLAN_SCAN_CHAN_MODE Macros defined for A_UINT8 phymode_list[] + */ +/** enum WLAN_PHY_MODE _mode starts from 0, but the WMI message requires + * 0 to be used to represent unspecified / don't care / default values. + * Therefore, WMI phy mode = WLAN phy mode + 1. + */ +/** If the received WMI phy mode is 0 then it is ignored by the FW, + * and the FW will use any mode as long as the frequency matches. + */ +/** The number of phy_mode's (BW+mode) passed in the TLV phymode_list[] must + * be equal to num_chan. (Unless the host does not specify phymode_list values + * at all, in which case the number of phymode_list elements will be zero.) + * The indexing of the phymode_list[] array corresponds to same index of + * the chan_list[] array. + */ +#define WMI_SCAN_CHAN_SET_MODE(_c) ((_c) + 1) +#define WMI_SCAN_CHAN_GET_MODE(_c) ((_c) - 1) +#define WMI_SCAN_CHAN_MODE_IS_SET(_c) (_c) + /* prefix used by scan requestor ids on the host */ #define WMI_HOST_SCAN_REQUESTOR_ID_PREFIX 0xA000 /* prefix used by scan request ids generated on the host */ @@ -2849,11 +2869,12 @@ typedef struct { /** * TLV (tag length value) parameters follow the scan_cmd * structure. The TLV's are: - * A_UINT32 channel_list[]; - * wmi_ssid ssid_list[]; - * wmi_mac_addr bssid_list[]; - * A_UINT8 ie_data[]; - * wmi_vendor_oui vendor_oui[]; + * A_UINT32 channel_list[num_chan]; + * wmi_ssid ssid_list[num_ssids]; + * wmi_mac_addr bssid_list[num_bssid]; + * A_UINT8 ie_data[ie_len]; + * wmi_vendor_oui vendor_oui[num_vendor_oui]; + * A_UINT8 phymode_list[0 or num_chan]; // see WMI_SCAN_CHAN_MODE macros */ } wmi_start_scan_cmd_fixed_param; diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 88df9a70ec2b..f365cc4e751e 100644 --- a/fw/wmi_version.h +++ b/fw/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_ 454 +#define __WMI_REVISION_ 455 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work