Skip to content

Commit

Permalink
Merge tag '8438014d5ac3f0d1e960517d4de8b56b062963b9' into x13
Browse files Browse the repository at this point in the history
"LA.UM.7.2.r1-05900-sdm660.0"
  • Loading branch information
nibaji committed Feb 7, 2019
2 parents 175a180 + 01f1999 commit 2d4dbc4
Show file tree
Hide file tree
Showing 3 changed files with 83 additions and 8 deletions.
18 changes: 17 additions & 1 deletion drivers/staging/fw-api/fw/wmi_tlv_defs.h
Original file line number Diff line number Diff line change
Expand Up @@ -839,6 +839,8 @@ typedef enum {
WMITLV_TAG_STRUC_wmi_roam_lca_disallow_config_tlv_param,
WMITLV_TAG_STRUC_wmi_vdev_limit_offchan_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_roam_rssi_rejection_oce_config_param,
WMITLV_TAG_STRUC_wmi_roam_rejection_list_config_param = /* alias */
WMITLV_TAG_STRUC_wmi_roam_rssi_rejection_oce_config_param,
WMITLV_TAG_STRUC_wmi_unit_test_event_fixed_param,
WMITLV_TAG_STRUC_wmi_roam_fils_offload_tlv_param,
WMITLV_TAG_STRUC_wmi_pdev_update_pmk_cache_cmd_fixed_param,
Expand Down Expand Up @@ -951,6 +953,8 @@ typedef enum {
WMITLV_TAG_STRUC_wmi_tlv_arrays_len_param,
WMITLV_TAG_STRUC_wmi_peer_unmap_response_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_pdev_csc_switch_count_status_event_fixed_param,
WMITLV_TAG_STRUC_wmi_roam_bss_load_config_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_roam_blacklist_event_fixed_param,
} WMITLV_TAG_ID;

/*
Expand Down Expand Up @@ -1341,6 +1345,7 @@ typedef enum {
OP(WMI_VDEV_GET_BCN_RECEPTION_STATS_CMDID) \
OP(WMI_PEER_TX_PN_REQUEST_CMDID) \
OP(WMI_PEER_UNMAP_RESPONSE_CMDID) \
OP(WMI_ROAM_BSS_LOAD_CONFIG_CMDID) \
/* add new CMD_LIST elements above this line */


Expand Down Expand Up @@ -1556,6 +1561,7 @@ typedef enum {
OP(WMI_VDEV_BCN_RECEPTION_STATS_EVENTID) \
OP(WMI_PEER_TX_PN_RESPONSE_EVENTID) \
OP(WMI_PDEV_CSC_SWITCH_COUNT_STATUS_EVENTID) \
OP(WMI_ROAM_BLACKLIST_EVENTID) \
/* add new EVT_LIST elements above this line */


Expand Down Expand Up @@ -2967,6 +2973,16 @@ WMITLV_CREATE_PARAM_STRUC(WMI_LPI_STOP_SCAN_CMDID);

WMITLV_CREATE_PARAM_STRUC(WMI_REQUEST_ROAM_SCAN_STATS_CMDID);

/* BSS load parameters for roam trigger */
#define WMITLV_TABLE_WMI_ROAM_BSS_LOAD_CONFIG_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_bss_load_config_cmd_fixed_param, wmi_roam_bss_load_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_BSS_LOAD_CONFIG_CMDID);

#define WMITLV_TABLE_WMI_ROAM_BLACKLIST_EVENTID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_blacklist_event_fixed_param, wmi_roam_blacklist_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_blacklist_with_timeout_tlv_param, blacklist_with_timeout, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_BLACKLIST_EVENTID);

#define WMITLV_TABLE_WMI_LPI_RESULT_EVENTID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_lpi_result_event_fixed_param, wmi_lpi_result_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR)
Expand Down Expand Up @@ -3314,7 +3330,7 @@ WMITLV_CREATE_PARAM_STRUC(WMI_DCC_UPDATE_NDL_CMDID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_mac_addr, bssid_preferred_list, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, bssid_preferred_factor, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_lca_disallow_config_tlv_param, lca_disallow_param, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_rssi_rejection_oce_config_param, rssi_rejection_list, WMITLV_SIZE_VAR)
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_rejection_list_config_param, rssi_rejection_list, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_FILTER_CMDID);

/* TSF timestamp action cmd */
Expand Down
71 changes: 65 additions & 6 deletions drivers/staging/fw-api/fw/wmi_unified.h
Original file line number Diff line number Diff line change
Expand Up @@ -671,7 +671,9 @@ typedef enum {
/** Enable or Disable Fast Initial Link Setup (FILS) feature */
WMI_ENABLE_FILS_CMDID,
/** Request for roam scan stats */
WMI_REQUEST_ROAM_SCAN_STATS_CMDID,
WMI_REQUEST_ROAM_SCAN_STATS_CMDID,
/** Configure BSS load parameters for roam trigger */
WMI_ROAM_BSS_LOAD_CONFIG_CMDID,

/** offload scan specific commands */
/** set offload scan AP profile */
Expand Down Expand Up @@ -1441,7 +1443,9 @@ typedef enum {
/** roam synch frame event */
WMI_ROAM_SYNCH_FRAME_EVENTID,
/** various roam scan stats */
WMI_ROAM_SCAN_STATS_EVENTID,
WMI_ROAM_SCAN_STATS_EVENTID,
/** Blacklisted AP information event */
WMI_ROAM_BLACKLIST_EVENTID,

/** P2P disc found */
WMI_P2P_DISC_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_P2P),
Expand Down Expand Up @@ -11227,7 +11231,9 @@ typedef struct {
* BIT 1-2 : Action on non matching candidate with cache. Used WMI_ROAM_BTM_OFLD_NON_MATCHING_CND_XXX
* BIT 3-5 : Roaming handoff decisions. Use WMI_ROAM_BTM_OFLD_CNDS_MATCH_XXX
* BIT 6 : Enable/Disable solicited BTM
* BIT 7-31 : Reserved
* BIT 7 : Roam BTM candidates based on the roam score instead of BTM preferred value
* BIT 8 : BTM query preference over 11k neighbor report request
* BIT 9-31 : Reserved
*/
#define WMI_ROAM_BTM_SET_ENABLE(flags, val) WMI_SET_BITS(flags, 0, 1, val)
#define WMI_ROAM_BTM_GET_ENABLE(flags) WMI_GET_BITS(flags, 0, 1)
Expand All @@ -11237,6 +11243,10 @@ typedef struct {
#define WMI_ROAM_BTM_GET_CNDS_MATCH_CONDITION(flags) WMI_GET_BITS(flags, 3, 3)
#define WMI_ROAM_BTM_SET_SOLICITED_BTM_ENABLE(flags, val) WMI_SET_BITS(flags, 6, 1, val)
#define WMI_ROAM_BTM_GET_SOLICITED_BTM_ENABLE(flags) WMI_GET_BITS(flags, 6, 1)
#define WMI_ROAM_BTM_SET_CNDS_SELECT_BASED_ON_SCORE(flags) WMI_SET_BITS(flags, 7, 1, val)
#define WMI_ROAM_BTM_GET_CNDS_SELECT_BASED_ON_SCORE(flags) WMI_GET_BITS(flags, 7, 1)
#define WMI_ROAM_BTM_SET_BTM_QUERY_PREFERENCE_OVER_11K(flags) WMI_SET_BITS(flags, 8, 1, val)
#define WMI_ROAM_BTM_GET_BTM_QUERY_PREFERENCE_OVER_11K(flags) WMI_GET_BITS(flags, 8, 1)

/** WMI_ROAM_BTM_SET_NON_MATCHING_CNDS_ACTION definition: When BTM candidate is not matched with cache by WMI_ROAM_BTM_SET_CNDS_MATCH_CONDITION, determine what to do */
#define WMI_ROAM_BTM_NON_MATCHING_CNDS_SCAN_CONSUME 0 /** Invoke roam scan and consume within firmware. Applicable only when ROAM_SCAN_MODE is enabled. If ROAM_SCAN_MODE is disabled, firmware won't scan and forward it to host */
Expand Down Expand Up @@ -11273,6 +11283,14 @@ typedef struct {
* Default value: 300 will be set if invalid value is given
*/
A_UINT32 stick_time_seconds;
/* Disassoc time threshold in milli seconds
* This time threshold allows the target to judge whether the STA
* should can move to another AP immediately, or if the STA has time
* to calculate roaming candidates.
* If the disassoc_timer_threshold value is 0x0, the field should be
* disregarded.
*/
A_UINT32 disassoc_timer_threshold;
} wmi_btm_config_fixed_param;

#define WMI_ROAM_5G_BOOST_PENALIZE_ALGO_FIXED 0x0
Expand Down Expand Up @@ -11603,6 +11621,8 @@ typedef struct {
nss_scoring :- NSS scoring percentage information.
esp_qbss_scoring :- ESP/QBSS scoring percentage information
oce_wan_scoring : OCE WAN metrics percentage information
roam_score_delta_pcnt :- consider scanned AP as roam eligible candidate only if scanned AP score is at least roam_score_delta % better than connected AP score
roam_score_delta_mask :- roam trigger bitmap for which roam_score_delta needs to apply. The WMI_ROAM_TRIGGER_REASON_ID enum values identify which bit within the mask is used for which roam trigger cause.
*/
typedef struct {
A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_cnd_scoring_param */
Expand All @@ -11624,6 +11644,8 @@ typedef struct {
wmi_roam_cnd_nss_scoring nss_scoring;
wmi_roam_cnd_esp_qbss_scoring esp_qbss_scoring;
wmi_roam_cnd_oce_wan_scoring oce_wan_scoring;
A_UINT32 roam_score_delta_pcnt;
A_UINT32 roam_score_delta_mask;
} wmi_roam_cnd_scoring_param;

/** To match an open AP, the rs_authmode should be set to WMI_AUTH_NONE
Expand Down Expand Up @@ -11878,6 +11900,7 @@ typedef struct {
A_UINT32 handoff_delay_for_rx; /* In msec. Delay Hand-Off by this duration to receive pending Rx frames from current BSS */
A_UINT32 max_mlme_sw_retries; /* maximum number of software retries for preauth and reassoc req */
A_UINT32 no_ack_timeout; /* In msec. duration to wait before another SW retry made if no ack seen for previous frame */
A_UINT32 roam_candidate_validity_time; /* In msec. validity duration of each entry in roam cache. If the value is 0x0, this field should be disregarded. */
} wmi_roam_offload_tlv_param;


Expand Down Expand Up @@ -11938,6 +11961,27 @@ typedef struct {
A_UINT32 btk[ROAM_OFFLOAD_BTK_BYTES>>2]; /* BTK offload. As this 4 byte aligned, we don't declare it as tlv array */
} wmi_roam_ese_offload_tlv_param;

typedef struct {
/** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_blacklist_with_timeout_tlv_param */
A_UINT32 tlv_header;
/** Blaclisted AP mac address */
wmi_mac_addr bssid;
/** How much time in milli seconds to keep AP in blacklist */
A_UINT32 timeout;
} wmi_roam_blacklist_with_timeout_tlv_param;

/** WMI_ROAM_BLACKLIST_EVENT: generated whenever STA needs to move AP to blacklist for a particluar time
* Ex: AP which sends BTM request with disassoc imminent is set should be
* moved to blacklist until disassociation timer expires
*/
typedef struct {
A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_blacklist_event_fixed_param */
A_UINT32 vdev_id;
/* This TLV is followed by further TLVs:
* wmi_roam_blacklist_with_timeout_tlv_param blacklist_with_timeout[]
*/
} wmi_roam_blacklist_event_fixed_param;

/** WMI_ROAM_EVENT: roam event triggering the host roam logic.
* generated when ever a better AP is found in the recent roam scan (or)
* when beacon miss is detected (or) when a DEAUTH/DISASSOC is received
Expand Down Expand Up @@ -12147,15 +12191,16 @@ enum {
#define WMI_ROAM_LCA_DISALLOW_SOURCE_FORCED 0x100

typedef struct {
/** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_rssi_rejection_oce_config_param */
/** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_rejection_list_config_param */
A_UINT32 tlv_header;
/** BSSID of AP, who reject (re-)assoc due to low RSSI */
wmi_mac_addr bssid;
/** Disallowed AP for certain duration, in units of milliseconds */
A_UINT32 remaining_disallow_duration;
/** AP will be allowed for candidate, when AP RSSI better than expected RSSI units in dBm */
A_INT32 requested_rssi;
} wmi_roam_rssi_rejection_oce_config_param;
} wmi_roam_rejection_list_config_param;
typedef wmi_roam_rejection_list_config_param wmi_roam_rssi_rejection_oce_config_param; /* retain old struct name as an alias for the new name */

typedef struct {
A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_filter_list_fixed_param */
Expand All @@ -12174,7 +12219,7 @@ typedef struct {
* wmi_mac_addr bssid_preferred_list[];
* A_UINT32 bssid_preferred_factor[];
* wmi_roam_lca_disallow_config_tlv_param lca_disallow_param[0/1] (opt)
* wmi_roam_rssi_rejection_oce_config_param rssi_rejection_list[]
* wmi_roam_rejection_list_config_param rssi_rejection_list[]
*/
} wmi_roam_filter_fixed_param;

Expand Down Expand Up @@ -22818,6 +22863,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command)
WMI_RETURN_STRING(WMI_SET_CURRENT_COUNTRY_CMDID);
WMI_RETURN_STRING(WMI_VDEV_GET_BCN_RECEPTION_STATS_CMDID);
WMI_RETURN_STRING(WMI_PEER_TX_PN_REQUEST_CMDID);
WMI_RETURN_STRING(WMI_ROAM_BSS_LOAD_CONFIG_CMDID);
}

return "Invalid WMI cmd";
Expand Down Expand Up @@ -23823,6 +23869,7 @@ typedef enum {
WMI_ROAM_TRIGGER_REASON_FORCED,
WMI_ROAM_TRIGGER_REASON_BTM,
WMI_ROAM_TRIGGER_REASON_UNIT_TEST,
WMI_ROAM_TRIGGER_REASON_BSS_LOAD,
WMI_ROAM_TRIGGER_REASON_MAX,
} WMI_ROAM_TRIGGER_REASON_ID;

Expand Down Expand Up @@ -23850,6 +23897,18 @@ typedef struct {
A_UINT32 vdev_id;
} wmi_request_roam_scan_stats_cmd_fixed_param;

/** BSS load configuration parameters for roam trigger */
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_bss_load_cmd_fixed_param */
A_UINT32 vdev_id;
/** Minimum number of beacons to be consider for calculating average AP BSS load within time monitor_time_window */
A_UINT32 beacons_min_count;
/** Monitor time window in seconds */
A_UINT32 monitor_time_window;
/** BSS load threshold after which roam scan should trigger */
A_UINT32 bss_load_threshold;
} wmi_roam_bss_load_config_cmd_fixed_param;

typedef struct {
/*
* The timestamp is in units of ticks of a 19.2MHz clock.
Expand Down
2 changes: 1 addition & 1 deletion drivers/staging/fw-api/fw/wmi_version.h
Original file line number Diff line number Diff line change
Expand Up @@ -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_ 607
#define __WMI_REVISION_ 608

/** The Version Namespace should not be normally changed. Only
* host and firmware of the same WMI namespace will work
Expand Down

0 comments on commit 2d4dbc4

Please sign in to comment.