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

Commit da911f79 authored by spuligil's avatar spuligil Committed by Gerrit - the friendly Code Review server
Browse files

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

WMI,HTT: add ack RSSI in tx completion reports

Change-Id: I0158fcf1398593d7c618aea4d7999d53f47512f5
CRs-Fixed: 2262693
parent 9de68c39
Loading
Loading
Loading
Loading
+42 −13
Original line number Diff line number Diff line
@@ -172,9 +172,10 @@
 * 3.55 Add initiator / responder flags to RX_DELBA indication
 * 3.56 Fix HTT_RX_RING_SELECTION_CFG_PKT_TYPE_ENABLE bit-mask defs
 * 3.57 Add support for in-band data within HTT_T2H_MSG_TYPE_CFR_DUMP_COMPL_IND
 * 3.58 Add optional MSDU ack RSSI array to end of HTT_T2H TX_COMPL_IND msg
 */
#define HTT_CURRENT_VERSION_MAJOR 3
#define HTT_CURRENT_VERSION_MINOR 57
#define HTT_CURRENT_VERSION_MINOR 58

#define HTT_NUM_TX_FRAG_DESC  1024

@@ -8067,22 +8068,27 @@ PREPACK struct htt_txq_group {
 * The following diagram shows the format of the TX completion indication sent
 * from the target to the host
 *
 *          |31   27|26|25|24|23        16| 15 |14 11|10   8|7          0|
 *          |------------------------------------------------------------|
 * header:  |  rsvd |TP|A1|A0|     num    | t_i| tid |status|  msg_type  |
 *          |------------------------------------------------------------|
 *          |31 28|27|26|25|24|23        16| 15 |14 11|10   8|7          0|
 *          |-------------------------------------------------------------|
 * header:  |rsvd |A2|TP|A1|A0|     num    | t_i| tid |status|  msg_type  |
 *          |-------------------------------------------------------------|
 * payload: |            MSDU1 ID          |         MSDU0 ID             |
 *          |------------------------------------------------------------|
 *          |-------------------------------------------------------------|
 *          :            MSDU3 ID          :         MSDU2 ID             :
 *          |------------------------------------------------------------|
 *          |-------------------------------------------------------------|
 *          |          struct htt_tx_compl_ind_append_retries             |
 *          |- - - - -  - - - - - - - - - - - - - - - - - - - - - - - - -|
 *          |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -|
 *          |          struct htt_tx_compl_ind_append_tx_tstamp           |
 *          |- - - - -  - - - - - - - - - - - - - - - - - - - - - - - - -|
 *          |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -|
 *          |           MSDU1 ACK RSSI     |        MSDU0 ACK RSSI        |
 *          |-------------------------------------------------------------|
 *          :           MSDU3 ACK RSSI     :        MSDU2 ACK RSSI        :
 *          |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -|
 * Where:
 *     A0 = append (a.k.a. append0)
 *     A1 = append1
 *     TP = MSDU tx power presence
 *     A2 = append2
 *
 * The following field definitions describe the format of the TX completion
 * indication sent from the target to the host
@@ -8136,6 +8142,19 @@ PREPACK struct htt_txq_group {
 *            which MSDU ID.
 *   Value: 0 indicates MSDU tx power reports are not appended,
 *          1 indicates MSDU tx power reports are appended
 * - append2
 *   Bits 27:27
 *   Purpose: Indicate whether data ACK RSSI is appended for each MSDU in
 *            TX_COMP_IND message.  The order of the per-MSDU ACK RSSI report
 *            matches the order of the MSDU IDs.  Although the ACK RSSI is the
 *            same for all MSDUs witin a single PPDU, the RSSI is duplicated
 *            for each MSDU, for convenience.
 *            The ACK RSSI values are valid when status is COMPLETE_OK (and
 *            this append2 bit is set).
 *            The ACK RSSI values are SNR in dB, i.e. are the RSSI in units of
 *            dB above the noise floor.
 *   Value: 0 indicates MSDU ACK RSSI values are not appended,
 *          1 indicates MSDU ACK RSSI values are appended.
 * Payload fields:
 * - hmsdu_id
 *   Bits 15:0
@@ -8157,6 +8176,8 @@ PREPACK struct htt_txq_group {
#define HTT_TX_COMPL_IND_APPEND1_M     0x02000000
#define HTT_TX_COMPL_IND_TX_POWER_S    26
#define HTT_TX_COMPL_IND_TX_POWER_M    0x04000000
#define HTT_TX_COMPL_IND_APPEND2_S     27
#define HTT_TX_COMPL_IND_APPEND2_M     0x08000000

#define HTT_TX_COMPL_IND_STATUS_SET(_info, _val)                        \
    do {                                                                \
@@ -8208,6 +8229,14 @@ PREPACK struct htt_txq_group {
    } while (0)
#define HTT_TX_COMPL_IND_TX_POWER_GET(_info)                             \
    (((_info) & HTT_TX_COMPL_IND_TX_POWER_M) >> HTT_TX_COMPL_IND_TX_POWER_S)
#define HTT_TX_COMPL_IND_APPEND2_SET(_info, _val)                      \
    do {                                                               \
        HTT_CHECK_SET_VAL(HTT_TX_COMPL_IND_APPEND2, _val);             \
        ((_info) |= ((_val) << HTT_TX_COMPL_IND_APPEND2_S));           \
    } while (0)
#define HTT_TX_COMPL_IND_APPEND2_GET(_info)                            \
    (((_info) & HTT_TX_COMPL_IND_APPEND2_M) >> HTT_TX_COMPL_IND_APPEND2_S)

#define HTT_TX_COMPL_INV_TX_POWER           0xffff

#define HTT_TX_COMPL_CTXT_SZ                sizeof(A_UINT16)
+1 −0
Original line number Diff line number Diff line
@@ -267,6 +267,7 @@ typedef enum {
    WMI_SERVICE_PEER_CHWIDTH_CHANGE = 171, /* Support for host to update/re-intersect the node capability */
    WMI_SERVICE_WLAN_HPCS_PULSE=172, /* Support for High Precision Clock Synchronization feature */
    WMI_SERVICE_PER_VDEV_CHAINMASK_CONFIG_SUPPORT=173, /* Support for configuring chainmask per VDEV */
    WMI_SERVICE_TX_DATA_MGMT_ACK_RSSI=174, /* ACK RSSI indication to host for host TX data and mgmt frame */

    /******* ADD NEW SERVICES HERE *******/

+2 −1
Original line number Diff line number Diff line
@@ -3981,7 +3981,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_OFFCHAN_DATA_TX_COMPLETION_EVENTID);
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mgmt_tx_compl_bundle_event_fixed_param, wmi_mgmt_tx_compl_bundle_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, desc_ids, WMITLV_SIZE_VAR) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, status, WMITLV_SIZE_VAR) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, ppdu_id, WMITLV_SIZE_VAR)
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, ppdu_id, WMITLV_SIZE_VAR) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, ack_rssi, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_MGMT_TX_BUNDLE_COMPLETION_EVENTID);

/* VDEV Start response Event */
+24 −0
Original line number Diff line number Diff line
@@ -2845,6 +2845,15 @@ typedef struct {
    #define WMI_RSRC_CFG_FLAG_EAPOL_AC_OVERRIDE_S 16
    #define WMI_RSRC_CFG_FLAG_EAPOL_AC_OVERRIDE_M 0x30000
    /*
     * If TX_ACK_RSSI is set, then the target should populate the ack_rssi
     * field within the WMI_MGMT_TX_COMPLETION_EVENT message, the ack_rssi
     * TLV within the WMI_MGMT_TX_BUNDLE_COMPLETION_EVENT message, and the
     * "MSDU ACK RSSI" array within the HTT_T2H TX_COMPL_IND message.
     */
    #define WMI_RSRC_CFG_FLAG_TX_ACK_RSSI_S 18
    #define WMI_RSRC_CFG_FLAG_TX_ACK_RSSI_M 0x40000
    A_UINT32 flag1;
    /** @brief smart_ant_cap - Smart Antenna capabilities information
@@ -3073,6 +3082,12 @@ typedef struct {
#define WMI_RSRC_CFG_FLAG_EAPOL_AC_OVERRIDE_GET(word32) \
    WMI_RSRC_CFG_FLAG_GET((word32), EAPOL_AC_OVERRIDE)
#define WMI_RSRC_CFG_FLAG_TX_ACK_RSSI_SET(word32, value) \
    WMI_RSRC_CFG_FLAG_SET((word32), TX_ACK_RSSI, (value))
#define WMI_RSRC_CFG_FLAG_TX_ACK_RSSI_GET(word32) \
    WMI_RSRC_CFG_FLAG_GET((word32), TX_ACK_RSSI)
typedef struct {
    A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_init_cmd_fixed_param */
@@ -5547,6 +5562,13 @@ typedef struct {
     * A ppdu_id value of 0x0 is invalid, and should be ignored.
     */
    A_UINT32    ppdu_id;
    /* ack_rssi
     * TX mgmt ack RSSI report to host.
     * Only valid when status == COMPLETE_OK and the ACK_RSSI report is enabled
     * ACK RSSI is reported as SNR dB, i.e. how many dB the RSSI is above
     * the noise floor.
     */
    A_UINT32    ack_rssi;
} wmi_mgmt_tx_compl_event_fixed_param;
typedef struct {
@@ -5571,6 +5593,8 @@ typedef struct {
     * A_UINT32 desc_ids[num_reports]; <- from tx_send_cmd
     * A_UINT32 status[num_reports];   <- WMI_MGMT_TX_COMP_STATUS_TYPE
     * A_UINT32 ppdu_id[num_reports];  <- list of PPDU IDs
     * A_UINT32 ack_rssi[num_reports]; <- list of ack RSSI
     *                                    RSSI units = dB w.r.t. noise floor
     */
} wmi_mgmt_tx_compl_bundle_event_fixed_param;
+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_ 585
#define __WMI_REVISION_ 586

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