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

Commit c58def79 authored by Linux Build Service Account's avatar Linux Build Service Account
Browse files

Merge 4c4cc1f8 on remote branch

Change-Id: I149b3a10482e992572a24d63930a1aafbfb932a4
parents b4c5e28d 4c4cc1f8
Loading
Loading
Loading
Loading
+287 −121

File changed.

Preview size limit exceeded, changes collapsed.

+20 −2
Original line number Diff line number Diff line
/*
 * Copyright (c) 2013-2016, 2018-2020 The Linux Foundation. All rights reserved.*
 * Copyright (c) 2013-2016, 2018-2021 The Linux Foundation. All rights reserved.*
 *
 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
 *
@@ -351,6 +351,15 @@ enum {
    REGDMN_MODE_11AXA_HE80_BIT         = 38, /* 5Ghz, HE80 */
    REGDMN_MODE_11AXA_HE160_BIT        = 39, /* 5Ghz, HE160 */
    REGDMN_MODE_11AXA_HE80_80_BIT      = 40, /* 5Ghz, HE80+80 */
    REGDMN_MODE_11BEG_EHT20_BIT        = 41, /* 2Ghz, EHT20 */
    REGDMN_MODE_11BEA_EHT20_BIT        = 42, /* 5Ghz, EHT20 */
    REGDMN_MODE_11BEG_EHT40PLUS_BIT    = 43, /* 2Ghz, EHT40+ */
    REGDMN_MODE_11BEG_EHT40MINUS_BIT   = 44, /* 2Ghz, EHT40- */
    REGDMN_MODE_11BEA_EHT40PLUS_BIT    = 45, /* 5Ghz, EHT40+ */
    REGDMN_MODE_11BEA_EHT40MINUS_BIT   = 46, /* 5Ghz, EHT40- */
    REGDMN_MODE_11BEA_EHT80_BIT        = 47, /* 5Ghz, EHT80 */
    REGDMN_MODE_11BEA_EHT160_BIT       = 48, /* 5Ghz, EHT160 */
    REGDMN_MODE_11BEA_EHT320_BIT       = 49, /* 5Ghz, EHT320 */
};

enum {
@@ -393,6 +402,15 @@ enum {
    REGDMN_MODE_U32_11AXA_HE80      = 1 << (REGDMN_MODE_11AXA_HE80_BIT - 32),
    REGDMN_MODE_U32_11AXA_HE160     = 1 << (REGDMN_MODE_11AXA_HE160_BIT - 32),
    REGDMN_MODE_U32_11AXA_HE80_80   = 1 << (REGDMN_MODE_11AXA_HE80_80_BIT - 32),
    REGDMN_MODE_U32_11BEG_EHT20      = 1 << (REGDMN_MODE_11BEG_EHT20_BIT - 32),
    REGDMN_MODE_U32_11BEA_EHT20      = 1 << (REGDMN_MODE_11BEA_EHT20_BIT - 32),
    REGDMN_MODE_U32_11BEG_EHT40PLUS  = 1 << (REGDMN_MODE_11BEG_EHT40PLUS_BIT - 32),
    REGDMN_MODE_U32_11BEG_EHT40MINUS = 1 << (REGDMN_MODE_11BEG_EHT40MINUS_BIT - 32),
    REGDMN_MODE_U32_11BEA_EHT40PLUS  = 1 << (REGDMN_MODE_11BEA_EHT40PLUS_BIT - 32),
    REGDMN_MODE_U32_11BEA_EHT40MINUS = 1 << (REGDMN_MODE_11BEA_EHT40MINUS_BIT - 32),
    REGDMN_MODE_U32_11BEA_EHT80      = 1 << (REGDMN_MODE_11BEA_EHT80_BIT - 32),
    REGDMN_MODE_U32_11BEA_EHT160     = 1 << (REGDMN_MODE_11BEA_EHT160_BIT - 32),
    REGDMN_MODE_U32_11BEA_EHT320     = 1 << (REGDMN_MODE_11BEA_EHT320_BIT - 32),
};

#define REGDMN_MODE_ALL       (0xFFFFFFFF)       /* REGDMN_MODE_ALL is defined out of the enum
@@ -536,7 +554,7 @@ typedef struct {

#define PROD_SCHED_BW_ENTRIES       (NUM_SCHED_ENTRIES * NUM_DYN_BW)

#if NUM_DYN_BW  > 4
#if NUM_DYN_BW  > 5
/* Extend rate table module first */
#error "Extend rate table module first"
#endif
+2 −0
Original line number Diff line number Diff line
@@ -529,6 +529,8 @@ typedef enum {
    WMI_SERVICE_DISABLE_UPPER_6G_EDGE_CH_SUPP = 284, /* Indicates FW support for disabling upper 6 GHz edge channel 7115 */
    WMI_SERVICE_FORCED_DTIM_SUPP = 285, /* Indicates FW supports forced DTIM configuration */
    WMI_SERVICE_DCS_AWGN_INT_SUPPORT = 286, /* Indicates FW supports AWGN Int */
    WMI_SERVICE_IGMP_OFFLOAD_SUPPORT = 287, /* FW supports igmp offload during APPS suspend */
    WMI_SERVICE_11AX_TDLS_SUPPORT = 288, /* Indicates FW supports 11ax TDLS. Host should enable 11ax on TDLS only when FW indicates the support. */


    WMI_MAX_EXT2_SERVICE
+11 −1
Original line number Diff line number Diff line
@@ -1149,6 +1149,8 @@ typedef enum {
    WMITLV_TAG_STRUC_wmi_mlo_ready_cmd_fixed_param,
    WMITLV_TAG_STRUC_wmi_mlo_teardown_fixed_param,
    WMITLV_TAG_STRUC_wmi_mlo_teardown_complete_fixed_param,
    WMITLV_TAG_STRUC_wmi_igmp_offload_fixed_param,
    WMITLV_TAG_STRUC_wmi_pdev_extd_stats,
} WMITLV_TAG_ID;

/*
@@ -1610,6 +1612,7 @@ typedef enum {
    OP(WMI_MLO_SETUP_CMDID) \
    OP(WMI_MLO_READY_CMDID) \
    OP(WMI_MLO_TEARDOWN_CMDID) \
    OP(WMI_VDEV_IGMP_OFFLOAD_CMDID) \
    /* add new CMD_LIST elements above this line */


@@ -4642,6 +4645,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_MLO_READY_CMDID);
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mlo_teardown_fixed_param, wmi_mlo_teardown_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_MLO_TEARDOWN_CMDID);

/* Mcast ipv4 address filter list cmd */
#define WMITLV_TABLE_WMI_VDEV_IGMP_OFFLOAD_CMDID(id,op,buf,len) \
    WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_igmp_offload_fixed_param, wmi_igmp_offload_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
    WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_FIXED_STRUC, WMI_IPV4_ADDR, mc_ipv4_list, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_IGMP_OFFLOAD_CMDID);


/************************** TLV definitions of WMI events *******************************/

@@ -5160,7 +5169,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_HOST_SWFDA_EVENTID);
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_congestion_stats, congestion_stats, WMITLV_SIZE_VAR) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_extd2_stats, peer_extd2_stats, WMITLV_SIZE_VAR) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pmf_bcn_protect_stats, pmf_bcn_protect_stats, WMITLV_SIZE_VAR) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vdev_extd_stats, vdev_extd_stats, WMITLV_SIZE_VAR)
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vdev_extd_stats, vdev_extd_stats, WMITLV_SIZE_VAR) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_extd_stats, pdev_extd_stats, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_UPDATE_STATS_EVENTID);

/* Update PN response Event */
+116 −2
Original line number Diff line number Diff line
@@ -535,6 +535,8 @@ typedef enum {
    WMI_VDEV_GET_BIG_DATA_P2_CMDID,
    /** set TPC PSD/non-PSD power */
    WMI_VDEV_SET_TPC_POWER_CMDID,
    /** IGMP OFFLOAD */
    WMI_VDEV_IGMP_OFFLOAD_CMDID,
    /* peer specific commands */
@@ -8240,6 +8242,7 @@ typedef enum {
    WMI_REQUEST_MIB_EXTD_STAT        = 0x04000,
    WMI_REQUEST_PMF_BCN_PROTECT_STAT = 0x08000,
    WMI_REQUEST_VDEV_EXTD_STAT       = 0x10000,
    WMI_REQUEST_PDEV_EXTD_STAT       = 0x20000,
} wmi_stats_id;
/*
@@ -9038,6 +9041,10 @@ typedef struct {
 * wmi_vdev_extd_stats wmi_vdev_extd_stats[]
 * follows the other TLVs
 */
/* If WMI_REQUEST_PDEV_EXTD_STAT is set in stats_id, then TLV
 * wmi_pdev_extd_stats wmi_pdev_extd_stats[]
 * follows the other TLVs
 */
} wmi_stats_event_fixed_param;
/* WLAN channel CCA stats bitmap  */
@@ -10051,6 +10058,30 @@ typedef struct {
#define wmi_pdev_stats wmi_pdev_stats_v1
#endif
/**
 *  pdev extension statistics
 */
typedef struct {
    A_UINT32 tlv_header;
    /* pdev id */
    A_UINT32 pdev_id;
    /** my_rx_count
     * What portion of time, as measured by the MAC HW clock was occupied
     * by receiving PPDUs addressed to one of the vdevs within this pdev.
     */
    A_UINT32 my_rx_count;
    /** rx_matched_11ax_msdu_cnt
     * number of Rx 11ax MSDUs with matching BSS color counter
     * updated at EOP (end of packet)
     */
    A_UINT32 rx_matched_11ax_msdu_cnt;
    /** rx_other_11ax_msdu_cnt
     * number of Rx 11ax MSDUs with other BSS color counter updated at EOP
     * (end of packet)
     */
    A_UINT32 rx_other_11ax_msdu_cnt;
} wmi_pdev_extd_stats;
/**
 *  VDEV statistics
 *  @todo
@@ -10444,13 +10475,16 @@ typedef struct {
/*
 * Param values to be sent for WMI_VDEV_PARAM_SGI command
 * which are used in 11ax systems
 * which are used in 11ax, 11be systems
 */
#define WMI_SGI_LEGACY         0x1 /* for HT and VHT   */
#define WMI_SGI_HE_400_NS      0x2 /* for HE 400 nsec  */
#define WMI_SGI_HE_800_NS      0x4 /* for HE 800 nsec  */
#define WMI_SGI_HE_1600_NS     0x8 /* for HE 1600 nsec */
#define WMI_SGI_HE_3200_NS    0x10 /* for HE 3200 nsec */
#define WMI_SGI_EHT_800_NS    0x20 /* for EHT 800 nsec  */
#define WMI_SGI_EHT_1600_NS   0x40 /* for EHT 1600 nsec */
#define WMI_SGI_EHT_3200_NS   0x80 /* for EHT 3200 nsec */
/*
 * Param values to be sent for WMI_VDEV_PARAM_HE_LTF command
@@ -10460,6 +10494,14 @@ typedef struct {
#define WMI_HE_LTF_1X      0x1
#define WMI_HE_LTF_2X      0x2
#define WMI_HE_LTF_4X      0x3
/*
 * Param values to be sent for WMI_VDEV_EHT_PARAM_LTF command
 * which are used in 11be systems
 */
#define WMI_EHT_LTF_DEFAULT 0x4
#define WMI_EHT_LTF_1X      0x5
#define WMI_EHT_LTF_2X      0x6
#define WMI_EHT_LTF_4X      0x7
/** values for vdev_subtype */
#define WMI_UNIFIED_VDEV_SUBTYPE_P2P_DEVICE 0x1
@@ -11319,6 +11361,7 @@ typedef enum {
    WMI_RATE_PREAMBLE_HT,
    WMI_RATE_PREAMBLE_VHT,
    WMI_RATE_PREAMBLE_HE,
    WMI_RATE_PREAMBLE_EHT,
} WMI_RATE_PREAMBLE;
/** Value to disable fixed rate setting */
@@ -11893,7 +11936,10 @@ typedef enum {
     *     BIT0   = 1 (WMI_HE_LTF_1X)
     *     BIT1   = 1 (WMI_HE_LTF_2X)
     *     BIT2   = 1 (WMI_HE_LTF_4X)
     *     BIT3-7 = Reserved bits.
     *     BIT3   = 1 (WMI_EHT_LTF_1X)
     *     BIT4   = 1 (WMI_EHT_LTF_2X)
     *     BIT5   = 1 (WMI_EHT_LTF_4X)
     *     BIT6-7 = Reserved bits.
     * bits 15:8 (SGI): When bitmask is set, then corresponding SGI value is
     *                 used for auto rate.
     *     BIT8     = 1 (400 NS)
@@ -12308,6 +12354,48 @@ typedef enum {
         *  9  | EHT UL OFDMA + MU-MIMO
         */
        WMI_VDEV_PARAM_SET_EHT_MU_MODE,                       /* 0x8005 */
        /**
         * Specify the EHT LTF setting that should be used for fixed rate
         * transmissions.
         *
         * Expects values of WMI_EHT_LTF_DEFAULT, WMI_EHT_LTF_1X,
         * WMI_EHT_LTF_2X, or WMI_EHT_LTF_4X.
         */
         WMI_VDEV_PARAM_EHT_LTF,                               /* 0x8006 */
        /**
         * Expects values of WMI_EHT_LTF_DEFAULT, WMI_EHT_LTF_1X,
         * WMI_EHT_LTF_2X, or WMI_EHT_LTF_4X.
         */
        WMI_VDEV_PARAM_UL_EHT_LTF,                             /* 0x8007 */
        /**
         * Enable or disable Dual Carrier Modulation
         * valid values: 0-Disable EHT DCM, 1-Enable EHT DCM.
         */
        WMI_VDEV_PARAM_EHT_DCM,                                /* 0x8008 */
        /**
         * Enable or disable Extended range
         * valid values: 0-Disable ER, 1-Enable ER.
         */
        WMI_VDEV_PARAM_EHT_RANGE_EXT,                          /* 0x8009 */
        /**
         * Enable or disable Non-data EHT Extended range
         *  valid values: 0-Disable ER, 1-Enable ER.
         */
        WMI_VDEV_PARAM_NON_DATA_EHT_RANGE_EXT,                 /* 0x800A */
        /*
         * 0 - fixed pattern disable,
         * 1 - Fixed pattern enable and value pointed by
         *     WMI_VDEV_PARAM_FIXED_PUNCTURE_PATTERN
         *     punctured mode for 11be systems
         */
        WMI_VDEV_PARAM_FIXED_PUNCTURE_PATTERN,                /* 0x800B */
    /*=== END VDEV_PARAM_PROTOTYPE SECTION ===*/
} WMI_VDEV_PARAM;
@@ -28471,6 +28559,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command)
        WMI_RETURN_STRING(WMI_MLO_SETUP_CMDID);
        WMI_RETURN_STRING(WMI_MLO_READY_CMDID);
        WMI_RETURN_STRING(WMI_MLO_TEARDOWN_CMDID);
        WMI_RETURN_STRING(WMI_VDEV_IGMP_OFFLOAD_CMDID);
    }
    return "Invalid WMI cmd";
@@ -28597,6 +28686,7 @@ typedef enum {
    WMI_REGULATORY_PHYMODE_NO11N    = 0x0008,  /* NO 11N */
    WMI_REGULATORY_PHYMODE_NO11AC   = 0x0010,  /* NO 11AC */
    WMI_REGULATORY_PHYMODE_NO11AX   = 0x0020,  /* NO 11AX */
    WMI_REGULATORY_PHYMODE_NO11BE   = 0x0040,  /* NO 11BE */
} WMI_REGULATORY_PHYBITMAP;
typedef enum {
@@ -29478,6 +29568,8 @@ typedef enum _WMI_ADD_TWT_STATUS_T {
    WMI_ADD_TWT_STATUS_UNKNOWN_ERROR,       /* adding TWT dialog failed with an unknown reason */
    WMI_ADD_TWT_STATUS_AP_PARAMS_NOT_IN_RANGE,  /* peer AP wake interval, duration not in range */
    WMI_ADD_TWT_STATUS_AP_IE_VALIDATION_FAILED, /* peer AP IE Validation Failed */
    WMI_ADD_TWT_STATUS_ROAM_IN_PROGRESS,    /* Roaming in progress */
    WMI_ADD_TWT_STATUS_CHAN_SW_IN_PROGRESS, /* Channel switch in progress */
} WMI_ADD_TWT_STATUS_T;
typedef struct {
@@ -29529,6 +29621,7 @@ typedef enum _WMI_DEL_TWT_STATUS_T {
    WMI_DEL_TWT_STATUS_PEER_INIT_TEARDOWN,  /* Peer Initiated Teardown */
    WMI_DEL_TWT_STATUS_ROAMING,             /* Reason Roaming Start*/
    WMI_DEL_TWT_STATUS_CONCURRENCY,         /* Teardown due to concurrency */
    WMI_DEL_TWT_STATUS_CHAN_SW_IN_PROGRESS, /* Channel switch in progress */
} WMI_DEL_TWT_STATUS_T;
typedef struct {
@@ -29557,6 +29650,7 @@ typedef enum _WMI_PAUSE_TWT_STATUS_T {
    WMI_PAUSE_TWT_STATUS_UNKNOWN_ERROR,       /* pausing TWT dialog failed with an unknown reason */
    WMI_PAUSE_TWT_STATUS_ALREADY_PAUSED,      /* The TWT dialog is already paused */
    WMI_PAUSE_TWT_STATUS_TWT_INFO_FRM_NOT_SUPPORTED, /* TWT information frame is not supported by AP */
    WMI_PAUSE_TWT_STATUS_CHAN_SW_IN_PROGRESS, /* Channel switch in progress */
} WMI_PAUSE_TWT_STATUS_T;
typedef struct {
@@ -29587,6 +29681,7 @@ typedef enum _WMI_RESUME_TWT_STATUS_T {
    WMI_RESUME_TWT_STATUS_NO_ACK,              /* peer AP/STA did not ACK the request/response frame */
    WMI_RESUME_TWT_STATUS_UNKNOWN_ERROR,       /* resuming TWT dialog failed with an unknown reason */
    WMI_RESUME_TWT_STATUS_TWT_INFO_FRM_NOT_SUPPORTED, /* TWT information frame is not supported by AP */
    WMI_RESUME_TWT_STATUS_CHAN_SW_IN_PROGRESS, /* Channel switch in progress */
} WMI_RESUME_TWT_STATUS_T;
typedef struct {
@@ -29617,6 +29712,7 @@ typedef enum _WMI_TWT_NUDGE_STATUS_T {
    WMI_NUDGE_TWT_STATUS_UNKNOWN_ERROR,       /* nudging TWT dialog failed with an unknown reason */
    WMI_NUDGE_TWT_STATUS_ALREADY_PAUSED,      /* The TWT dialog is already paused */
    WMI_NUDGE_TWT_STATUS_TWT_INFO_FRM_NOT_SUPPORTED, /* TWT information frame is not supported by AP */
    WMI_NUDGE_TWT_STATUS_CHAN_SW_IN_PROGRESS, /* Channel switch in progress */
} WMI_TWT_NUDGE_STATUS_T;
typedef struct {
@@ -33961,6 +34057,24 @@ typedef struct {
    A_UINT32 status;
} wmi_mlo_teardown_complete_fixed_param;
#define WMI_IGMP_OFFLOAD_SUPPORT_DISABLE_BITMASK    0x0
#define WMI_IGMP_V1_OFFLOAD_SUPPORT_BITMASK         0x1
#define WMI_IGMP_V2_OFFLOAD_SUPPORT_BITMASK         0x2
#define WMI_IGMP_V3_OFFLOAD_SUPPORT_BITMASK         0x4
#define WMI_IGMP_OFFLOAD_SUPPORT_ALL_VERSION        0x7
typedef struct {
    A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_igmp_offload_fixed_param */
    A_UINT32 vdev_id;                   /** VDEV identifier */
    A_UINT32 enable;                    /** IGMP offload support enable/disable */
    A_UINT32 version_support_bitmask;   /** IGMP version support v1, v2 and/or v3*/
/* Following this structure are the TLVs:
 *     WMI_IPV4_ADDR  grp_ip_address[num_mcast_ipv4_addr];
 */
} wmi_igmp_offload_fixed_param;
/* ADD NEW DEFS HERE */
Loading