qcacmn: Add wmi changes to send the T2LM command to FW

Add WMI changes to send preferred link to FW

Change-Id: I8b8d7354d979705b1a938e9792de334c4faf65b6
CRs-Fixed: 3393604
此提交包含在:
Guru Pratap Sharma
2023-01-31 03:26:42 -08:00
提交者 Madan Koyyalamudi
父節點 a0d45f3ac7
當前提交 d32fe4db3c
共有 3 個檔案被更改,包括 162 行新增10 行删除

查看文件

@@ -23,6 +23,9 @@
#include <wlan_cmn_ieee80211.h>
#include <wlan_mlo_mgr_public_structs.h>
#ifdef WMI_AP_SUPPORT
#include <wlan_cmn.h>
#endif
struct mlo_vdev_host_tid_to_link_map_resp;
struct wlan_mlo_dev_context;
@@ -30,6 +33,11 @@ struct wlan_mlo_dev_context;
/* Max T2LM TIDS count */
#define T2LM_MAX_NUM_TIDS 8
#ifdef WMI_AP_SUPPORT
/* Max no. of Preferred links */
#define MAX_PREFERRED_LINKS 4
#endif
/* Max T2LM callback handlers */
#define MAX_T2LM_HANDLERS 50
@@ -64,6 +72,45 @@ enum wlan_t2lm_direction {
WLAN_T2LM_INVALID_DIRECTION,
};
#ifdef WMI_AP_SUPPORT
/**
* enum wlan_link_band_caps - Represents the band capability of
* a link.
*
* @WLAN_LINK_BAND_INVALID: Invalid band
* @WLAN_LINK_BAND_2GHZ: 2GHz link
* @WLAN_LINK_BAND_5GHZ: 5GHz link
* @WLAN_LINK_BAND_5GHZ_LOW: 5GHz Low band link
* @WLAN_LINK_BAND_5GHZ_HIGH: 5GHz High band link
* @WLAN_LINK_BAND_6GHZ: 6GHz link
* @WLAN_LINK_BAND_6GHZ_LOW: 6GHz Low band link
* @WLAN_LINK_BAND_6GHZ_HIGH: 6GHz High band link
*/
enum wlan_link_band_caps {
WLAN_LINK_BAND_INVALID = 0,
WLAN_LINK_BAND_2GHZ = 1,
WLAN_LINK_BAND_5GHZ = 2,
WLAN_LINK_BAND_5GHZ_LOW = 3,
WLAN_LINK_BAND_5GHZ_HIGH = 4,
WLAN_LINK_BAND_6GHZ = 5,
WLAN_LINK_BAND_6GHZ_LOW = 6,
WLAN_LINK_BAND_6GHZ_HIGH = 7,
};
/**
* struct wlan_link_preference - Preferred link structure
* @num_pref_links: non-zero values indicate that preferred link order
* is present.
* @pref_order: Preferred links in order.it is in form of hardware link id.
* @timeout: timeout values for all the access categories.
*/
struct wlan_link_preference {
uint8_t num_pref_links;
uint8_t pref_order[MAX_PREFERRED_LINKS];
uint32_t timeout[WIFI_AC_MAX];
};
#endif
/**
* struct wlan_t2lm_info - TID-to-Link mapping information for the frames
* transmitted on the uplink, downlink and bidirectional.
@@ -173,10 +220,14 @@ enum wlan_t2lm_enable {
*
* @dialog_token: Save the dialog token used in T2LM request and response frame.
* @t2lm_info: Provides the TID to LINK mapping information
* @link_preference: Provides the preferred link information
*/
struct wlan_prev_t2lm_negotiated_info {
uint16_t dialog_token;
struct wlan_t2lm_info t2lm_info[WLAN_T2LM_MAX_DIRECTION];
#ifdef WMI_AP_SUPPORT
struct wlan_link_preference link_preference;
#endif
};
/**
@@ -188,6 +239,10 @@ struct wlan_prev_t2lm_negotiated_info {
* @t2lm_info: Provides the TID-to-link mapping info for UL/DL/BiDi
* @t2lm_tx_status: Status code corresponds to the transmitted T2LM frames
* @t2lm_resp_type: T2LM status corresponds to T2LM response frame.
* @link_preference: Provides the preferred link information
* @t2lm_info_present: It will show the t2lm_info present or not
* @pref_link_present: It will show the preference link is present or not
* @ml_grp_id: MLO Group id which it belongs to
*/
struct wlan_t2lm_onging_negotiation_info {
enum wlan_t2lm_category category;
@@ -195,6 +250,12 @@ struct wlan_t2lm_onging_negotiation_info {
struct wlan_t2lm_info t2lm_info[WLAN_T2LM_MAX_DIRECTION];
enum wlan_t2lm_tx_status t2lm_tx_status;
enum wlan_t2lm_resp_frm_type t2lm_resp_type;
#ifdef WMI_AP_SUPPORT
struct wlan_link_preference link_preference;
bool t2lm_info_present;
bool pref_link_present;
uint8_t ml_grp_id;
#endif
};
/**