Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1e0b4c66 authored by spuligil's avatar spuligil Committed by snandini
Browse files

fw-api: CL 11873838 - update fw common interface files

Change-Id: I856e33dfb827f48039de6677b2896db45818aa30
WMI: expand regulatory rule info
CRs-Fixed: 2262693
parent 6125a0b1
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -1112,6 +1112,8 @@ typedef enum {
    WMITLV_TAG_STRUC_wmi_qos_null_frame_tx_send_cmd_fixed_param,
    WMITLV_TAG_STRUC_wmi_qos_null_frame_tx_compl_event_fixed_param,
    WMITLV_TAG_STRUC_wmi_pdev_enable_duration_based_tx_mode_selection_cmd_fixed_param,
    WMITLV_TAG_STRUC_wmi_regulatory_rule_ext_struct,
    WMITLV_TAG_STRUC_wmi_reg_chan_list_cc_event_ext_fixed_param,
} WMITLV_TAG_ID;

/*
@@ -5592,6 +5594,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_11D_NEW_COUNTRY_EVENTID);
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_regulatory_rule_struct, reg_rule_array, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_REG_CHAN_LIST_CC_EVENTID);

/* Ext regulatory channel list of current country code */
#define WMITLV_TABLE_WMI_REG_CHAN_LIST_CC_EXT_EVENTID(id,op,buf,len) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_reg_chan_list_cc_event_ext_fixed_param, wmi_reg_chan_list_cc_event_ext_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_regulatory_rule_ext_struct, reg_rule_array, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_REG_CHAN_LIST_CC_EXT_EVENTID);

/* FIPS event */
#define WMITLV_TABLE_WMI_PDEV_FIPS_EVENTID(id,op,buf,len) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_fips_event_fixed_param, wmi_pdev_fips_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)   \
+94 −0
Original line number Diff line number Diff line
@@ -1998,6 +1998,7 @@ typedef enum {
    /** WMI events related to regulatory offload */
    WMI_REG_CHAN_LIST_CC_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_REGULATORY),
    WMI_11D_NEW_COUNTRY_EVENTID,
    WMI_REG_CHAN_LIST_CC_EXT_EVENTID,
    /** Events for TWT(Target Wake Time) of STA and AP  */
    WMI_TWT_ENABLE_COMPLETE_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_TWT),
@@ -4464,6 +4465,9 @@ typedef enum {
/* Extend 6ghz channel measure time */
#define WMI_SCAN_FLAG_EXT_6GHZ_EXTEND_MEASURE_TIME    0x00000400
/* Force unicast address in RA */
#define WMI_SCAN_FLAG_EXT_FORCE_UNICAST_RA            0x00000800
/**
 * Currently passive scan has higher priority than beacon and
 * beacon miss would happen irrespective of dwell time.
@@ -27300,6 +27304,38 @@ typedef struct {
                                  bits 31:16 reserved */
} wmi_regulatory_rule_struct;
#define WMI_REG_RULE_PSD_FLAG_GET(psd_power_info) \
    WMI_GET_BITS(psd_power_info, 0, 1)
#define WMI_REG_RULE_PSD_FLAG_SET(psd_power_info, value) \
    WMI_SET_BITS(psd_power_info, 0, 1, value)
#define WMI_REG_RULE_PSD_EIRP_GET(psd_power_info) \
    WMI_GET_BITS(psd_power_info, 16, 16)
#define WMI_REG_RULE_PSD_EIRP_SET(psd_power_info, value) \
    WMI_SET_BITS(psd_power_info, 16, 16, value)
typedef struct {
    A_UINT32  tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_regulatory_rule_ext_struct */
    A_UINT32  freq_info;       /* bits 15:0  = u16 start_freq,
                                  bits 31:16 = u16 end_freq
                                  (both in MHz units)
                                  use same MACRO as wmi_regulatory_rule_struct
                                */
    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)
                                  use same MACRO as wmi_regulatory_rule_struct
                                */
    A_UINT32  flag_info;       /* bits 15:0  = u16 flags,
                                  bits 31:16 reserved
                                  use same MACRO as wmi_regulatory_rule_struct
                                */
    A_UINT32  psd_power_info;  /* bits 0     - whether PSD power,
                                  bits 15:1  - reserved
                                  bits 31:16 - maximum PSD EIRP (dB/MHz)
                                */
} wmi_regulatory_rule_ext_struct;
typedef enum {
    WMI_REG_DFS_UNINIT_REGION = 0,
    WMI_REG_DFS_FCC_REGION    = 1,
@@ -27349,6 +27385,64 @@ typedef struct {
/* followed by wmi_regulatory_rule_struct TLV array. First 2G and then 5G */
} wmi_reg_chan_list_cc_event_fixed_param;
typedef enum {
    WMI_REG_CLIENT_REGULAR = 0,
    WMI_REG_CLIENT_SUBORDINATE = 1,
    /* 2 and 3 are reserved for future growth */
    WMI_REG_CLIENT_MAX = 4, /* can't expand, b/c used as array length below */
} wmi_reg_client_type;
typedef struct {
    A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_reg_chan_list_cc_event_ext_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;  /* uses CountryCode enum values */
    A_UINT32 domain_code; /* used EnumRd enum values */
    A_UINT32 dfs_region;  /* WMI_REG_DFS_REGION */
    A_UINT32 phybitmap;   /* WMI_REGULATORY_PHYBITMAP */
    A_UINT32 min_bw_2g;   /* BW in MHz */
    A_UINT32 max_bw_2g;   /* BW in MHz */
    A_UINT32 min_bw_5g;   /* BW in MHz */
    A_UINT32 max_bw_5g;   /* BW in MHz */
    A_UINT32 num_2g_reg_rules;
    A_UINT32 num_5g_reg_rules;
    A_UINT32 client_type;            /* populated if device can function as client */
    A_UINT32 rnr_tpe_usable;         /* If RNR TPE Octet usable for that country   */
    A_UINT32 unspecified_ap_usable;  /* If unspecified AP usable for that country  */
    A_UINT32 domain_code_6g_ap_lpi;
    A_UINT32 domain_code_6g_ap_sp;
    A_UINT32 domain_code_6g_ap_vlp;
    A_UINT32 domain_code_6g_client_lpi[WMI_REG_CLIENT_MAX];
    A_UINT32 domain_code_6g_client_sp[WMI_REG_CLIENT_MAX];
    A_UINT32 domain_code_6g_client_vlp[WMI_REG_CLIENT_MAX];
    A_UINT32 min_bw_6g_ap_sp; /* MHz */
    A_UINT32 max_bw_6g_ap_sp;
    A_UINT32 min_bw_6g_ap_lpi;
    A_UINT32 max_bw_6g_ap_lpi;
    A_UINT32 min_bw_6g_ap_vlp;
    A_UINT32 max_bw_6g_ap_vlp;
    A_UINT32 min_bw_6g_client_sp[WMI_REG_CLIENT_MAX];
    A_UINT32 max_bw_6g_client_sp[WMI_REG_CLIENT_MAX];
    A_UINT32 min_bw_6g_client_lpi[WMI_REG_CLIENT_MAX];
    A_UINT32 max_bw_6g_client_lpi[WMI_REG_CLIENT_MAX];
    A_UINT32 min_bw_6g_client_vlp[WMI_REG_CLIENT_MAX];
    A_UINT32 max_bw_6g_client_vlp[WMI_REG_CLIENT_MAX];
    A_UINT32 num_6g_reg_rules_ap_sp;
    A_UINT32 num_6g_reg_rules_ap_lpi;
    A_UINT32 num_6g_reg_rules_ap_vlp;
    A_UINT32 num_6g_reg_rules_client_sp[WMI_REG_CLIENT_MAX];
    A_UINT32 num_6g_reg_rules_client_lpi[WMI_REG_CLIENT_MAX];
    A_UINT32 num_6g_reg_rules_client_vlp[WMI_REG_CLIENT_MAX];
/*
 * This fixed_param TLV is followed by wmi_regulatory_rule_ext struct TLV array.
 * Within the reg rule ext TLV array, the 2G elements occur first,
 * then the 5G elements, then the 6G elements (AP SG, AP LPI, AP VLP,
 * client SP x4, client LPI x4, client vlp x4).
 */
} wmi_reg_chan_list_cc_event_ext_fixed_param;
typedef struct {
    A_UINT32  tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_11d_scan_start_cmd_fixed_param */
    A_UINT32  vdev_id;
+1 −1
Original line number Diff line number Diff line
@@ -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_ 906
#define __WMI_REVISION_ 907

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