mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-07 12:25:00 -04:00
Merge tag 'LA.UM.9.14.r1-20700-LAHAINA.QSSI13.0' of https://git.codelinaro.org/clo/la/platform/vendor/qcom-opensource/wlan/fw-api into android13-5.4-lahaina
"LA.UM.9.14.r1-20700-LAHAINA.QSSI13.0" * tag 'LA.UM.9.14.r1-20700-LAHAINA.QSSI13.0' of https://git.codelinaro.org/clo/la/platform/vendor/qcom-opensource/wlan/fw-api: fw-api: CL 19622099 - update fw common interface files fw-api: CL 19606967 - update fw common interface files fw-api: CL 19556986 - update fw common interface files fw-api: CL 19533452 - update fw common interface files fw-api: CL 19477285 - update fw common interface files fw-api: CL 19472001 - update fw common interface files fw-api: CL 19468705 - update fw common interface files fw-api: CL 19457721 - update fw common interface files fw-api: CL 19438550 - update fw common interface files fw-api: CL 19435748 - update fw common interface files fw-api: CL 19429798 - update fw common interface files fw-api: CL 19427858 - update fw common interface files fw-api: Add ipq5332 target header files to fw-api project fw-api: CL 19415475 - update fw common interface files fw-api: CL 19412691 - update fw common interface files fw-api: CL 19398158 - update fw common interface files fw-api: CL 19397642 - update fw common interface files fw-api: CL 19394669 - update fw common interface files fw-api: CL 19391619 - update fw common interface files fw-api: CL 19391596 - update fw common interface files fw-api: CL 19370853 - update fw common interface files fw-api: CL 19370849 - update fw common interface files fw-api: CL 19349228 - update fw common interface files fw-api: CL 19348400 - update fw common interface files fw-api: CL 19327828 - update fw common interface files fw-api: CL 19327825 - update fw common interface files fw-api: CL 19280734 - update fw common interface files fw-api: CL 19280530 - update fw common interface files fw-api: CL 19259024 - update fw common interface files fw-api: CL 19232954 - update fw common interface files fw-api: CL 19207537 - update fw common interface files fw-api: CL 19198716 - update fw common interface files fw-api: CL 19196446 - update fw common interface files fw-api: CL 19192070 - update fw common interface files fw-api: CL 19177839 - update fw common interface files fw-api: CL 19172232 - update fw common interface files fw-api: CL 19168628 - update fw common interface files fw-api: CL 19157233 - update fw common interface files fw-api: CL 19115988 - update fw common interface files fw-api: CL 19090770 - update fw common interface files fw-api: Add wlanfw_health_mon.h for FW Health Monitor fw-api: CL 19087861 - update fw common interface files Change-Id: I4ae84bd2b35e664f8ddcc2037ed6452b8c3e3647
This commit is contained in:
commit
fd6c281955
212 changed files with 193627 additions and 61 deletions
|
|
@ -754,6 +754,12 @@ typedef enum {
|
|||
HTT_STATS_TX_PDEV_PPDU_DUR_TAG = 162, /* htt_tx_pdev_ppdu_dur_stats_tlv */
|
||||
HTT_STATS_RX_PDEV_PPDU_DUR_TAG = 163, /* htt_rx_pdev_ppdu_dur_stats_tlv */
|
||||
HTT_STATS_ODD_PDEV_MANDATORY_TAG = 164, /* htt_odd_mandatory_pdev_stats_tlv */
|
||||
HTT_STATS_PDEV_SCHED_ALGO_OFDMA_STATS_TAG = 165, /* htt_pdev_sched_algo_ofdma_stats_tlv */
|
||||
HTT_DBG_ODD_MANDATORY_MUMIMO_TAG = 166, /* htt_odd_mandatory_mumimo_pdev_stats_tlv */
|
||||
HTT_DBG_ODD_MANDATORY_MUOFDMA_TAG = 167, /* htt_odd_mandatory_muofdma_pdev_stats_tlv */
|
||||
HTT_STATS_LATENCY_PROF_CAL_STATS_TAG = 168, /* htt_latency_prof_cal_stats_tlv */
|
||||
HTT_STATS_TX_PDEV_MUEDCA_PARAMS_STATS_TAG = 169, /* htt_tx_pdev_muedca_params_stats_tlv_v */
|
||||
HTT_STATS_PDEV_BW_MGR_STATS_TAG = 170, /* htt_pdev_bw_mgr_stats_tlv */
|
||||
|
||||
|
||||
HTT_STATS_MAX_TAG,
|
||||
|
|
|
|||
|
|
@ -348,7 +348,7 @@ enum htt_dbg_ext_stats_type {
|
|||
*/
|
||||
HTT_DBG_EXT_STATS_PDEV_TX_RATE_TXBF = 31,
|
||||
|
||||
/* HTT_DBG_EXT_STATS_TXBF_OFDMA
|
||||
/** HTT_DBG_EXT_STATS_TXBF_OFDMA
|
||||
*/
|
||||
HTT_DBG_EXT_STATS_TXBF_OFDMA = 32,
|
||||
|
||||
|
|
@ -422,7 +422,7 @@ enum htt_dbg_ext_stats_type {
|
|||
*/
|
||||
HTT_DBG_EXT_RX_RING_STATS = 42,
|
||||
|
||||
/* HTT_STRM_GEN_MPDUS_STATS, HTT_STRM_GEN_MPDUS_DETAILS_STATS
|
||||
/** HTT_STRM_GEN_MPDUS_STATS, HTT_STRM_GEN_MPDUS_DETAILS_STATS
|
||||
* PARAMS:
|
||||
* - No params
|
||||
* RESP MSG: HTT_T2H STREAMING_STATS_IND (not EXT_STATS_CONF)
|
||||
|
|
@ -451,7 +451,7 @@ enum htt_dbg_ext_stats_type {
|
|||
*/
|
||||
HTT_DBG_PDEV_PUNCTURE_STATS = 46,
|
||||
|
||||
/* HTT_DBG_EXT_STATS_ML_PEERS_INFO
|
||||
/** HTT_DBG_EXT_STATS_ML_PEERS_INFO
|
||||
* PARAMS:
|
||||
* - param 0:
|
||||
* Bit 0 -> HTT_ML_PEER_DETAILS_TLV always enabled by default
|
||||
|
|
@ -463,7 +463,7 @@ enum htt_dbg_ext_stats_type {
|
|||
*/
|
||||
HTT_DBG_EXT_STATS_ML_PEERS_INFO = 47,
|
||||
|
||||
/* HTT_DBG_ODD_MANDATORY_STATS
|
||||
/** HTT_DBG_ODD_MANDATORY_STATS
|
||||
* params:
|
||||
* None
|
||||
* Response MSG:
|
||||
|
|
@ -471,6 +471,45 @@ enum htt_dbg_ext_stats_type {
|
|||
*/
|
||||
HTT_DBG_ODD_MANDATORY_STATS = 48,
|
||||
|
||||
/** HTT_DBG_PDEV_SCHED_ALGO_STATS
|
||||
* PARAMS:
|
||||
* - No Params
|
||||
* RESP MSG:
|
||||
* - htt_pdev_sched_algo_ofdma_stats_tlv
|
||||
*/
|
||||
HTT_DBG_PDEV_SCHED_ALGO_STATS = 49,
|
||||
|
||||
/** HTT_DBG_ODD_MANDATORY_MUMIMO_STATS
|
||||
* params:
|
||||
* None
|
||||
* Response MSG:
|
||||
* htt_odd_mandatory_mumimo_pdev_stats_tlv
|
||||
*/
|
||||
HTT_DBG_ODD_MANDATORY_MUMIMO_STATS = 50,
|
||||
/** HTT_DBG_ODD_MANDATORY_MUOFDMA_STATS
|
||||
* params:
|
||||
* None
|
||||
* Response MSG:
|
||||
* htt_odd_mandatory_muofdma_pdev_stats_tlv
|
||||
*/
|
||||
HTT_DBG_ODD_MANDATORY_MUOFDMA_STATS = 51,
|
||||
|
||||
/** HTT_DBG_EXT_PHY_PROF_CAL_STATS
|
||||
* params:
|
||||
* None
|
||||
* Response MSG:
|
||||
* htt_latency_prof_cal_stats_tlv
|
||||
*/
|
||||
HTT_DBG_EXT_PHY_PROF_CAL_STATS = 52,
|
||||
|
||||
/** HTT_DBG_EXT_STATS_PDEV_BW_MGR
|
||||
* PARAMS:
|
||||
* - No Params
|
||||
* RESP MSG:
|
||||
* - htt_pdev_bw_mgr_stats_t
|
||||
*/
|
||||
HTT_DBG_EXT_STATS_PDEV_BW_MGR = 53,
|
||||
|
||||
|
||||
/* keep this last */
|
||||
HTT_DBG_NUM_EXT_STATS = 256,
|
||||
|
|
@ -861,6 +900,8 @@ typedef struct {
|
|||
A_UINT32 num_dyn_mimo_ps_dlmumimo_sequences;
|
||||
/** Num of times su bf sequences are denylisted */
|
||||
A_UINT32 num_su_txbf_denylisted;
|
||||
/** pdev uptime in microseconds **/
|
||||
A_UINT32 pdev_up_time_us;
|
||||
} htt_tx_pdev_stats_cmn_tlv;
|
||||
|
||||
#define HTT_TX_PDEV_STATS_URRN_TLV_SZ(_num_elems) (sizeof(A_UINT32) * (_num_elems))
|
||||
|
|
@ -891,6 +932,20 @@ typedef struct {
|
|||
A_UINT32 phy_errs[1]; /* HTT_TX_PDEV_MAX_PHY_ERR_STATS */
|
||||
} htt_tx_pdev_stats_phy_err_tlv_v;
|
||||
|
||||
/*
|
||||
* Each array in the below struct has 16 elements, to cover the 16 possible
|
||||
* values for the CW and AIFS parameters. Each element within the array
|
||||
* stores the counter indicating how many transmissions have occurred with
|
||||
* that particular value for the MU EDCA parameter in question.
|
||||
*/
|
||||
#define HTT_STATS_MUEDCA_VALUE_MAX 16
|
||||
typedef struct {
|
||||
htt_tlv_hdr_t tlv_hdr;
|
||||
A_UINT32 aifs[HTT_NUM_AC_WMM][HTT_STATS_MUEDCA_VALUE_MAX];
|
||||
A_UINT32 cw_min[HTT_NUM_AC_WMM][HTT_STATS_MUEDCA_VALUE_MAX];
|
||||
A_UINT32 cw_max[HTT_NUM_AC_WMM][HTT_STATS_MUEDCA_VALUE_MAX];
|
||||
} htt_tx_pdev_muedca_params_stats_tlv_v;
|
||||
|
||||
#define HTT_TX_PDEV_SIFS_BURST_HIST_STATS 10
|
||||
#define HTT_TX_PDEV_STATS_SIFS_HIST_TLV_SZ(_num_elems) (sizeof(A_UINT32) * (_num_elems))
|
||||
/* NOTE: Variable length TLV, use length spec to infer array size */
|
||||
|
|
@ -1532,7 +1587,9 @@ typedef struct {
|
|||
mesh_sta : 1,
|
||||
mec : 1,
|
||||
intra_bss : 1,
|
||||
reserved : 16;
|
||||
chip_id : 2,
|
||||
ml_peer_id : 13,
|
||||
reserved : 1;
|
||||
} htt_ast_entry_tlv;
|
||||
|
||||
typedef enum {
|
||||
|
|
@ -1642,6 +1699,7 @@ typedef struct _htt_tx_peer_rate_stats_tlv {
|
|||
A_UINT32 tx_stbc_ext[HTT_TX_PEER_STATS_NUM_EXTRA_MCS_COUNTERS];
|
||||
A_UINT32 tx_gi_ext[HTT_TX_PEER_STATS_NUM_GI_COUNTERS][HTT_TX_PEER_STATS_NUM_EXTRA_MCS_COUNTERS];
|
||||
A_UINT32 reduced_tx_bw[HTT_TX_PEER_STATS_NUM_REDUCED_CHAN_TYPES][HTT_TX_PEER_STATS_NUM_BW_COUNTERS];
|
||||
A_UINT32 tx_bw_320mhz;
|
||||
} htt_tx_peer_rate_stats_tlv;
|
||||
|
||||
#define HTT_RX_PEER_STATS_NUM_MCS_COUNTERS 12 /* 0-11 */
|
||||
|
|
@ -3600,7 +3658,7 @@ typedef struct {
|
|||
|
||||
/* == TQM STATS == */
|
||||
|
||||
#define HTT_TX_TQM_MAX_GEN_MPDU_END_REASON 16
|
||||
#define HTT_TX_TQM_MAX_GEN_MPDU_END_REASON 17
|
||||
#define HTT_TX_TQM_MAX_LIST_MPDU_END_REASON 16
|
||||
#define HTT_TX_TQM_MAX_LIST_MPDU_CNT_HISTOGRAM_BINS 16
|
||||
|
||||
|
|
@ -4886,6 +4944,8 @@ typedef struct {
|
|||
htt_tlv_hdr_t tlv_hdr;
|
||||
/** Tx PPDU duration histogram **/
|
||||
A_UINT32 tx_ppdu_dur_hist[HTT_PDEV_STATS_PPDU_DUR_HIST_BINS];
|
||||
A_UINT32 tx_success_time_us;
|
||||
A_UINT32 tx_fail_time_us;
|
||||
} htt_tx_pdev_ppdu_dur_stats_tlv;
|
||||
|
||||
/* STATS_TYPE : HTT_DBG_EXT_STATS_PDEV_TX_RATE
|
||||
|
|
@ -6315,6 +6375,14 @@ typedef struct {
|
|||
A_UINT32 cv_buf_received;
|
||||
/** total times CV bufs fed back to the IPC ring */
|
||||
A_UINT32 cv_buf_fed_back;
|
||||
/* Total times CV query happened for IBF case */
|
||||
A_UINT32 cv_total_query_ibf;
|
||||
/* A valid CV has been found for IBF case */
|
||||
A_UINT32 cv_found_ibf;
|
||||
/* A valid CV has not been found for IBF case */
|
||||
A_UINT32 cv_not_found_ibf;
|
||||
/* Expired CV found during query for IBF case */
|
||||
A_UINT32 cv_expired_during_query_ibf;
|
||||
} htt_tx_sounding_stats_tlv;
|
||||
|
||||
/* STATS_TYPE : HTT_DBG_EXT_STATS_TX_SOUNDING_INFO
|
||||
|
|
@ -6753,6 +6821,7 @@ typedef enum {
|
|||
HTT_STATS_RC_MODE_DLSU = 0,
|
||||
HTT_STATS_RC_MODE_DLMUMIMO = 1,
|
||||
HTT_STATS_RC_MODE_DLOFDMA = 2,
|
||||
HTT_STATS_RC_MODE_ULMUMIMO = 3,
|
||||
} htt_stats_rc_mode;
|
||||
|
||||
typedef struct {
|
||||
|
|
@ -7697,6 +7766,73 @@ typedef struct {
|
|||
A_UINT32 num_subbands_used_cnt[HTT_PUNCTURE_STATS_MAX_SUBBAND_COUNT];
|
||||
} htt_pdev_puncture_stats_tlv;
|
||||
|
||||
enum {
|
||||
HTT_STATS_CAL_PROF_COLD_BOOT = 0,
|
||||
HTT_STATS_CAL_PROF_FULL_CHAN_SWITCH = 1,
|
||||
HTT_STATS_CAL_PROF_SCAN_CHAN_SWITCH = 2,
|
||||
HTT_STATS_CAL_PROF_DPD_SPLIT_CAL = 3,
|
||||
|
||||
HTT_STATS_MAX_PROF_CAL = 4,
|
||||
};
|
||||
|
||||
#define HTT_STATS_MAX_CAL_IDX_CNT 8
|
||||
typedef struct {
|
||||
|
||||
htt_tlv_hdr_t tlv_hdr;
|
||||
|
||||
A_UINT8 latency_prof_name[HTT_STATS_MAX_PROF_CAL][HTT_STATS_MAX_PROF_STATS_NAME_LEN];
|
||||
|
||||
/** To verify whether prof cal is enabled or not */
|
||||
A_UINT32 enable;
|
||||
|
||||
/** current pdev_id */
|
||||
A_UINT32 pdev_id;
|
||||
|
||||
/** The cnt is incremented when each time the calindex takes place */
|
||||
A_UINT32 cnt[HTT_STATS_MAX_PROF_CAL][HTT_STATS_MAX_CAL_IDX_CNT];
|
||||
|
||||
/** Minimum time taken to complete the calibration - in us */
|
||||
A_UINT32 min[HTT_STATS_MAX_PROF_CAL][HTT_STATS_MAX_CAL_IDX_CNT];
|
||||
|
||||
/** Maximum time taken to complete the calibration -in us */
|
||||
A_UINT32 max[HTT_STATS_MAX_PROF_CAL][HTT_STATS_MAX_CAL_IDX_CNT];
|
||||
|
||||
/** Time taken by the cal for its final time execution - in us */
|
||||
A_UINT32 last[HTT_STATS_MAX_PROF_CAL][HTT_STATS_MAX_CAL_IDX_CNT];
|
||||
|
||||
/** Total time taken - in us */
|
||||
A_UINT32 tot[HTT_STATS_MAX_PROF_CAL][HTT_STATS_MAX_CAL_IDX_CNT];
|
||||
|
||||
/** hist_intvl - by default will be set to 2000 us */
|
||||
A_UINT32 hist_intvl[HTT_STATS_MAX_PROF_CAL][HTT_STATS_MAX_CAL_IDX_CNT];
|
||||
|
||||
/**
|
||||
* If last is less than hist_intvl, then hist[0]++,
|
||||
* If last is less than hist_intvl << 1, then hist[1]++,
|
||||
* otherwise hist[2]++.
|
||||
*/
|
||||
A_UINT32 hist[HTT_STATS_MAX_PROF_CAL][HTT_STATS_MAX_CAL_IDX_CNT][HTT_INTERRUPTS_LATENCY_PROFILE_MAX_HIST];
|
||||
|
||||
/** Pf_last will log the current no of page faults */
|
||||
A_UINT32 pf_last[HTT_STATS_MAX_PROF_CAL][HTT_STATS_MAX_CAL_IDX_CNT];
|
||||
|
||||
/** Sum of all page faults happened */
|
||||
A_UINT32 pf_tot[HTT_STATS_MAX_PROF_CAL][HTT_STATS_MAX_CAL_IDX_CNT];
|
||||
|
||||
/** If pf_last > pf_max then pf_max = pf_last */
|
||||
A_UINT32 pf_max[HTT_STATS_MAX_PROF_CAL][HTT_STATS_MAX_CAL_IDX_CNT];
|
||||
|
||||
/**
|
||||
* For each cal profile, only certain no of cal indices were invoked,
|
||||
* this member will store what all the indices got invoked per each
|
||||
* cal profile
|
||||
*/
|
||||
A_UINT32 enabledCalIdx[HTT_STATS_MAX_PROF_CAL][HTT_STATS_MAX_CAL_IDX_CNT];
|
||||
|
||||
/** No of indices invoked per each cal profile */
|
||||
A_UINT32 CalCnt[HTT_STATS_MAX_PROF_CAL];
|
||||
} htt_latency_prof_cal_stats_tlv;
|
||||
|
||||
#define HTT_ML_PEER_EXT_DETAILS_PEER_ASSOC_IPC_RECVD_M 0x0000003F
|
||||
#define HTT_ML_PEER_EXT_DETAILS_PEER_ASSOC_IPC_RECVD_S 0
|
||||
#define HTT_ML_PEER_EXT_DETAILS_SCHED_PEER_DELETE_RECVD_M 0x00000FC0
|
||||
|
|
@ -8250,5 +8386,233 @@ typedef struct {
|
|||
A_UINT32 rts_success;
|
||||
} htt_odd_mandatory_pdev_stats_tlv;
|
||||
|
||||
typedef struct _htt_odd_mandatory_mumimo_pdev_stats_tlv {
|
||||
htt_tlv_hdr_t tlv_hdr;
|
||||
A_UINT32 ac_mu_mimo_tx_bw[HTT_TX_PDEV_STATS_NUM_BW_COUNTERS];
|
||||
A_UINT32 ax_mu_mimo_tx_bw[HTT_TX_PDEV_STATS_NUM_BW_COUNTERS];
|
||||
A_UINT32 ac_mu_mimo_tx_nss[HTT_TX_PDEV_STATS_NUM_SPATIAL_STREAMS];
|
||||
A_UINT32 ax_mu_mimo_tx_nss[HTT_TX_PDEV_STATS_NUM_SPATIAL_STREAMS];
|
||||
A_UINT32 ac_mu_mimo_tx_mcs[HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS];
|
||||
A_UINT32 ax_mu_mimo_tx_mcs[HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS];
|
||||
A_UINT32 ul_mumimo_rx_mcs[HTT_RX_PDEV_STATS_NUM_MCS_COUNTERS];
|
||||
A_UINT32 ul_mumimo_rx_nss[HTT_RX_PDEV_STATS_ULMUMIMO_NUM_SPATIAL_STREAMS];
|
||||
A_UINT32 ul_mumimo_rx_bw[HTT_RX_PDEV_STATS_NUM_BW_COUNTERS];
|
||||
A_UINT32 rx_ulmumimo_mpdu_fail[HTT_RX_PDEV_MAX_OFDMA_NUM_USER];
|
||||
A_UINT32 rx_ulmumimo_mpdu_ok[HTT_RX_PDEV_MAX_OFDMA_NUM_USER];
|
||||
A_UINT32 rx_ulmumimo_data_ppdu[HTT_RX_PDEV_MAX_OFDMA_NUM_USER];
|
||||
} htt_odd_mandatory_mumimo_pdev_stats_tlv;
|
||||
|
||||
typedef struct _htt_odd_mandatory_muofdma_pdev_stats_tlv {
|
||||
htt_tlv_hdr_t tlv_hdr;
|
||||
A_UINT32 mu_ofdma_seq_posted;
|
||||
A_UINT32 ul_mu_ofdma_seq_posted;
|
||||
A_UINT32 ofdma_tx_mcs[HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS + HTT_TX_PDEV_STATS_NUM_EXTRA_MCS_COUNTERS + HTT_TX_PDEV_STATS_NUM_EXTRA2_MCS_COUNTERS];
|
||||
A_UINT32 ofdma_tx_nss[HTT_TX_PDEV_STATS_NUM_SPATIAL_STREAMS];
|
||||
A_UINT32 ofdma_tx_bw[HTT_TX_PDEV_STATS_NUM_BW_COUNTERS];
|
||||
A_UINT32 ofdma_tx_ldpc;
|
||||
A_UINT32 ul_ofdma_rx_ldpc;
|
||||
A_UINT32 ul_ofdma_rx_mcs[HTT_RX_PDEV_STATS_NUM_MCS_COUNTERS + HTT_RX_PDEV_STATS_NUM_EXTRA_MCS_COUNTERS + HTT_RX_PDEV_STATS_NUM_EXTRA2_MCS_COUNTERS];
|
||||
A_UINT32 ul_ofdma_rx_nss[HTT_RX_PDEV_STATS_NUM_SPATIAL_STREAMS];
|
||||
A_UINT32 ul_ofdma_rx_bw[HTT_TX_PDEV_STATS_NUM_BW_COUNTERS];
|
||||
A_UINT32 rx_ulofdma_data_ppdu[HTT_RX_PDEV_MAX_OFDMA_NUM_USER];
|
||||
A_UINT32 rx_ulofdma_mpdu_ok[HTT_RX_PDEV_MAX_OFDMA_NUM_USER];
|
||||
A_UINT32 rx_ulofdma_mpdu_fail[HTT_RX_PDEV_MAX_OFDMA_NUM_USER];
|
||||
A_UINT32 ax_mu_brp_sch_status[HTT_TX_PDEV_STATS_NUM_TX_ERR_STATUS];
|
||||
A_UINT32 be_mu_brp_sch_status[HTT_TX_PDEV_STATS_NUM_TX_ERR_STATUS];
|
||||
A_UINT32 ofdma_tx_ru_size[HTT_TX_PDEV_STATS_NUM_AX_RU_SIZE_COUNTERS];
|
||||
} htt_odd_mandatory_muofdma_pdev_stats_tlv;
|
||||
|
||||
|
||||
#define HTT_PDEV_SCHED_ALGO_OFDMA_STATS_MAC_ID_M 0x000000ff
|
||||
#define HTT_PDEV_SCHED_ALGO_OFDMA_STATS_MAC_ID_S 0
|
||||
|
||||
#define HTT_PDEV_SCHED_ALGO_OFDMA_STATS_MAC_ID_GET(_var) \
|
||||
(((_var) & HTT_PDEV_SCHED_ALGO_OFDMA_STATS_MAC_ID_M) >> \
|
||||
HTT_PDEV_SCHED_ALGO_OFDMA_STATS_MAC_ID_S)
|
||||
|
||||
#define HTT_PDEV_SCHED_ALGO_OFDMA_STATS_MAC_ID_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_PDEV_SCHED_ALGO_OFDMA_STATS_MAC_ID, _val); \
|
||||
((_var) |= ((_val) << HTT_PDEV_SCHED_ALGO_OFDMA_STATS_MAC_ID_S)); \
|
||||
} while (0)
|
||||
|
||||
typedef struct {
|
||||
htt_tlv_hdr_t tlv_hdr;
|
||||
/**
|
||||
* BIT [ 7 : 0] :- mac_id
|
||||
* BIT [31 : 8] :- reserved
|
||||
*/
|
||||
union {
|
||||
struct {
|
||||
A_UINT32 mac_id: 8,
|
||||
reserved: 24;
|
||||
};
|
||||
A_UINT32 mac_id__word;
|
||||
};
|
||||
|
||||
/** Num of instances where rate based DL OFDMA status = ENABLED */
|
||||
A_UINT32 rate_based_dlofdma_enabled_count[HTT_NUM_AC_WMM];
|
||||
/** Num of instances where rate based DL OFDMA status = DISABLED */
|
||||
A_UINT32 rate_based_dlofdma_disabled_count[HTT_NUM_AC_WMM];
|
||||
/** Num of instances where rate based DL OFDMA status = PROBING */
|
||||
A_UINT32 rate_based_dlofdma_probing_count[HTT_NUM_AC_WMM];
|
||||
/** Num of instances where rate based DL OFDMA status = MONITORING */
|
||||
A_UINT32 rate_based_dlofdma_monitoring_count[HTT_NUM_AC_WMM];
|
||||
/** Num of instances where avg. channel access latency based DL OFDMA status = ENABLED */
|
||||
A_UINT32 chan_acc_lat_based_dlofdma_enabled_count[HTT_NUM_AC_WMM];
|
||||
/** Num of instances where avg. channel access latency based DL OFDMA status = DISABLED */
|
||||
A_UINT32 chan_acc_lat_based_dlofdma_disabled_count[HTT_NUM_AC_WMM];
|
||||
/** Num of instances where avg. channel access latency based DL OFDMA status = MONITORING */
|
||||
A_UINT32 chan_acc_lat_based_dlofdma_monitoring_count[HTT_NUM_AC_WMM];
|
||||
/** Num of instances where dl ofdma is disabled due to ru allocation failure */
|
||||
A_UINT32 downgrade_to_dl_su_ru_alloc_fail[HTT_NUM_AC_WMM];
|
||||
/** Num of instances where dl ofdma is disabled because we have only one user in candidate list */
|
||||
A_UINT32 candidate_list_single_user_disable_ofdma[HTT_NUM_AC_WMM];
|
||||
/** Num of instances where ul is chosen over dl based on qos weight not specific to OFDMA */
|
||||
A_UINT32 dl_cand_list_dropped_high_ul_qos_weight[HTT_NUM_AC_WMM];
|
||||
/** Num of instances where dl ofdma is disabled due to pipelining */
|
||||
A_UINT32 ax_dlofdma_disabled_due_to_pipelining[HTT_NUM_AC_WMM];
|
||||
/** Num of instances where dl ofdma is disabled as the tid is su only eligible */
|
||||
A_UINT32 dlofdma_disabled_su_only_eligible[HTT_NUM_AC_WMM];
|
||||
/** Num of instances where dl ofdma is disabled because there are no mpdus tried consecutively */
|
||||
A_UINT32 dlofdma_disabled_consec_no_mpdus_tried[HTT_NUM_AC_WMM];
|
||||
/** Num of instances where dl ofdma is disabled because there are consecutive mpdu failure */
|
||||
A_UINT32 dlofdma_disabled_consec_no_mpdus_success[HTT_NUM_AC_WMM];
|
||||
} htt_pdev_sched_algo_ofdma_stats_tlv;
|
||||
|
||||
/*======= Bandwidth Manager stats ====================*/
|
||||
|
||||
#define HTT_BW_MGR_STATS_MAC_ID_M 0x000000ff
|
||||
#define HTT_BW_MGR_STATS_MAC_ID_S 0
|
||||
|
||||
#define HTT_BW_MGR_STATS_PRI20_IDX_M 0x0000ff00
|
||||
#define HTT_BW_MGR_STATS_PRI20_IDX_S 8
|
||||
|
||||
#define HTT_BW_MGR_STATS_PRI20_FREQ_M 0xffff0000
|
||||
#define HTT_BW_MGR_STATS_PRI20_FREQ_S 16
|
||||
|
||||
#define HTT_BW_MGR_STATS_CENTER_FREQ1_M 0x0000ffff
|
||||
#define HTT_BW_MGR_STATS_CENTER_FREQ1_S 0
|
||||
|
||||
#define HTT_BW_MGR_STATS_CENTER_FREQ2_M 0xffff0000
|
||||
#define HTT_BW_MGR_STATS_CENTER_FREQ2_S 16
|
||||
|
||||
#define HTT_BW_MGR_STATS_CHAN_PHY_MODE_M 0x000000ff
|
||||
#define HTT_BW_MGR_STATS_CHAN_PHY_MODE_S 0
|
||||
|
||||
#define HTT_BW_MGR_STATS_STATIC_PATTERN_M 0x00ffff00
|
||||
#define HTT_BW_MGR_STATS_STATIC_PATTERN_S 8
|
||||
|
||||
#define HTT_BW_MGR_STATS_MAC_ID_GET(_var) \
|
||||
(((_var) & HTT_BW_MGR_STATS_MAC_ID_M) >> \
|
||||
HTT_BW_MGR_STATS_MAC_ID_S)
|
||||
|
||||
#define HTT_BW_MGR_STATS_MAC_ID_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_BW_MGR_STATS_MAC_ID, _val); \
|
||||
((_var) |= ((_val) << HTT_BW_MGR_STATS_MAC_ID_S)); \
|
||||
} while (0)
|
||||
|
||||
|
||||
#define HTT_BW_MGR_STATS_PRI20_IDX_GET(_var) \
|
||||
(((_var) & HTT_BW_MGR_STATS_PRI20_IDX_M) >> \
|
||||
HTT_BW_MGR_STATS_PRI20_IDX_S)
|
||||
|
||||
#define HTT_BW_MGR_STATS_PRI20_IDX_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_BW_MGR_STATS_PRI20_IDX, _val); \
|
||||
((_var) |= ((_val) << HTT_BW_MGR_STATS_PRI20_IDX_S)); \
|
||||
} while (0)
|
||||
|
||||
|
||||
#define HTT_BW_MGR_STATS_PRI20_FREQ_GET(_var) \
|
||||
(((_var) & HTT_BW_MGR_STATS_PRI20_FREQ_M) >> \
|
||||
HTT_BW_MGR_STATS_PRI20_FREQ_S)
|
||||
|
||||
#define HTT_BW_MGR_STATS_PRI20_FREQ_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_BW_MGR_STATS_PRI20_FREQ, _val); \
|
||||
((_var) |= ((_val) << HTT_BW_MGR_STATS_PRI20_FREQ_S)); \
|
||||
} while (0)
|
||||
|
||||
|
||||
#define HTT_BW_MGR_STATS_CENTER_FREQ1_GET(_var) \
|
||||
(((_var) & HTT_BW_MGR_STATS_CENTER_FREQ1_M) >> \
|
||||
HTT_BW_MGR_STATS_CENTER_FREQ1_S)
|
||||
|
||||
#define HTT_BW_MGR_STATS_CENTER_FREQ1_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_BW_MGR_STATS_CENTER_FREQ1, _val); \
|
||||
((_var) |= ((_val) << HTT_BW_MGR_STATS_CENTER_FREQ1_S)); \
|
||||
} while (0)
|
||||
|
||||
|
||||
#define HTT_BW_MGR_STATS_CENTER_FREQ2_GET(_var) \
|
||||
(((_var) & HTT_BW_MGR_STATS_CENTER_FREQ2_M) >> \
|
||||
HTT_BW_MGR_STATS_CENTER_FREQ2_S)
|
||||
|
||||
#define HTT_BW_MGR_STATS_CENTER_FREQ2_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_BW_MGR_STATS_CENTER_FREQ2, _val); \
|
||||
((_var) |= ((_val) << HTT_BW_MGR_STATS_CENTER_FREQ2_S)); \
|
||||
} while (0)
|
||||
|
||||
|
||||
#define HTT_BW_MGR_STATS_CHAN_PHY_MODE_GET(_var) \
|
||||
(((_var) & HTT_BW_MGR_STATS_CHAN_PHY_MODE_M) >> \
|
||||
HTT_BW_MGR_STATS_CHAN_PHY_MODE_S)
|
||||
|
||||
#define HTT_BW_MGR_STATS_CHAN_PHY_MODE_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_BW_MGR_STATS_CHAN_PHY_MODE, _val); \
|
||||
((_var) |= ((_val) << HTT_BW_MGR_STATS_CHAN_PHY_MODE_S)); \
|
||||
} while (0)
|
||||
|
||||
|
||||
#define HTT_BW_MGR_STATS_STATIC_PATTERN_GET(_var) \
|
||||
(((_var) & HTT_BW_MGR_STATS_STATIC_PATTERN_M) >> \
|
||||
HTT_BW_MGR_STATS_STATIC_PATTERN_S)
|
||||
|
||||
#define HTT_BW_MGR_STATS_STATIC_PATTERN_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_BW_MGR_STATS_STATIC_PATTERN, _val); \
|
||||
((_var) |= ((_val) << HTT_BW_MGR_STATS_STATIC_PATTERN_S)); \
|
||||
} while (0)
|
||||
|
||||
|
||||
typedef struct {
|
||||
htt_tlv_hdr_t tlv_hdr;
|
||||
|
||||
/* BIT [ 7 : 0] :- mac_id
|
||||
* BIT [ 15 : 8] :- pri20_index
|
||||
* BIT [ 31 : 16] :- pri20_freq in Mhz
|
||||
*/
|
||||
A_UINT32 mac_id__pri20_idx__freq;
|
||||
|
||||
/* BIT [ 15 : 0] :- centre_freq1
|
||||
* BIT [ 31 : 16] :- centre_freq2
|
||||
*/
|
||||
A_UINT32 centre_freq1__freq2;
|
||||
|
||||
/* BIT [ 7 : 0] :- channel_phy_mode
|
||||
* BIT [ 23 : 8] :- static_pattern
|
||||
*/
|
||||
A_UINT32 phy_mode__static_pattern;
|
||||
|
||||
} htt_pdev_bw_mgr_stats_tlv;
|
||||
|
||||
|
||||
/* STATS_TYPE : HTT_DBG_EXT_STATS_PDEV_BW_MGR
|
||||
* TLV_TAGS:
|
||||
* - HTT_STATS_PDEV_BW_MGR_STATS_TAG
|
||||
*/
|
||||
/* NOTE:
|
||||
* This structure is for documentation, and cannot be safely used directly.
|
||||
* Instead, use the constituent TLV structures to fill/parse.
|
||||
*/
|
||||
typedef struct {
|
||||
htt_pdev_bw_mgr_stats_tlv bw_mgr_tlv;
|
||||
} htt_pdev_bw_mgr_stats_t;
|
||||
|
||||
|
||||
#endif /* __HTT_STATS_H__ */
|
||||
|
|
|
|||
|
|
@ -138,6 +138,8 @@ typedef enum {
|
|||
|
||||
WLAN_MODULE_T2LM, /* 0x64 */
|
||||
WLAN_MODULE_HEALTH_MON, /* 0x65 */
|
||||
WLAN_MODULE_XGAP, /* 0x66 */
|
||||
|
||||
|
||||
WLAN_MODULE_ID_MAX,
|
||||
WLAN_MODULE_ID_INVALID = WLAN_MODULE_ID_MAX,
|
||||
|
|
|
|||
251
drivers/staging/fw-api/fw/wlanfw_health_mon.h
Normal file
251
drivers/staging/fw-api/fw/wlanfw_health_mon.h
Normal file
|
|
@ -0,0 +1,251 @@
|
|||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifndef __WLANFW_HEALTH_MON_H__
|
||||
#define __WLANFW_HEALTH_MON_H__
|
||||
|
||||
#include <a_types.h> /* A_UINT32 */
|
||||
|
||||
/* WLAN Health monitor data structure shared by host and FW */
|
||||
|
||||
/*
|
||||
* Version 1 of the upload metric structs (i.e. wlanfw_health_mon_metric_upload_t)
|
||||
* provides a fixed allocation of 8 bytes of scratch space after each metric,
|
||||
* to optionally hold metric-specific data, e.g. from intermediate calculations when computing the score_pct.
|
||||
*/
|
||||
#define WLANFW_HEALTH_MON_EXTRA_WORDS32 2
|
||||
|
||||
/* word0:
|
||||
* Extract bitfields from the A_UINT32 "word" containing them.
|
||||
* The target produces the data in little-endian order.
|
||||
* If the host uses big-endian order, it needs to account for the endianness
|
||||
* difference when reading the data.
|
||||
* Definition of bitfields within 32-bit word:
|
||||
* bits 7:0 = module ID (M7...M0)
|
||||
* bits 14:8 = module local ID (m6...m0)
|
||||
* bits 31:15 = instance ID (I16...I0)
|
||||
* bits
|
||||
* |31 15|14 8|7 0|
|
||||
* +-------------------------------+-----------------+-------------------+
|
||||
* | instance ID | metric local ID | module ID |
|
||||
* |I16 ... I0|m6 ... m0|M7 ... M0|
|
||||
*
|
||||
* Layout in memory:
|
||||
* bits
|
||||
* |7 |6 0|
|
||||
* +---+--------------------------+
|
||||
* byte 0 |M7 M6 M5 M4 M3 M2 M1 M0|
|
||||
* +---+--------------------------+
|
||||
* byte 1 |I0 |m6 m5 m4 m3 m2 m1 m0|
|
||||
* +---+--------------------------+
|
||||
* byte 2 |I8 I7 I6 I5 I4 I3 I2 I1|
|
||||
* +------------------------------+
|
||||
* byte 3 |I16 I15 I14 I13 I12 I11 I10 I9|
|
||||
*/
|
||||
#ifdef LITTLE_ENDIAN
|
||||
/* The little-endian version of the macro to extract the module id and metric id */
|
||||
#define WLANFW_HEALTH_MON_MODULE_ID_GET(word32) \
|
||||
(((word32) & 0x000000ff) >> 0)
|
||||
#define WLANFW_HEALTH_MON_METRIC_LOCAL_ID_GET(word32) \
|
||||
(((word32) & 0x00007f00) >> 8)
|
||||
#define WLANFW_HEALTH_MON_INSTANCE_ID_GET(word32) \
|
||||
(((word32) & 0xffff8000) >> 15)
|
||||
#else
|
||||
/*
|
||||
* When read into a big-endian 32-bit word:
|
||||
* bits
|
||||
* |31 24|23|22 16|15 8|7 0|
|
||||
* +--------------+--+--------------+------------------+-----------------+
|
||||
* |M7 M0|I0|m6 m0|I8 I1|I16 I9|
|
||||
*
|
||||
*/
|
||||
/*
|
||||
* big-endian macro def to extract module ID = M7:M0 = byte3
|
||||
*/
|
||||
#define WLANFW_HEALTH_MON_MODULE_ID_GET(word32) \
|
||||
(((word32) >> 24) && 0xff)
|
||||
/*
|
||||
* big-endian macro def to extract metric local ID = m6:m0 = byte2 & 0x7f
|
||||
*/
|
||||
#define WLANFW_HEALTH_MON_METRIC_LOCAL_ID_GET(word32) \
|
||||
(((word32) >> 16) && 0x7f)
|
||||
/*
|
||||
* big-endian macro def to extract instance ID = I16:I0 =
|
||||
* (I16:I9 << 9) | (I8:I1 << 1) | I0
|
||||
* (byte0 << 9) | (byte1 << 1) | (byte2 >> 7)
|
||||
*/
|
||||
#define WLANFW_HEALTH_MON_INSTANCE_ID_GET(word32) \
|
||||
(((((word32) >> 0) & 0xff) << 9) | /* I16:I9 */ \
|
||||
((((word32) >> 8) & 0xff) << 1) | /* I8:I1 */ \
|
||||
((((word32) >> 23) & 0x01) << 0)) /* I0 */
|
||||
#endif
|
||||
|
||||
/* word1:
|
||||
* Extract bitfields from the A_UINT32 "word" containing them.
|
||||
* The target produces the data in little-endian order.
|
||||
* If the host uses big-endian order, it needs to account for the endianness
|
||||
* difference when reading the data.
|
||||
* Definition of bitfields within 32-bit word:
|
||||
* bits 7:0 = score_pct (S7...S0)
|
||||
* bits 15:8 = alarm_threshold (A7...A0)
|
||||
* bit 16 = old_alarm_state (P)
|
||||
* bits 20:17 = num_extra_bytes (N3..N0)
|
||||
* bit 21 = valid_data_flag (V)
|
||||
* bits 31:22 = reserved (R9...R0)
|
||||
* bits
|
||||
* |31 22|21|20 17|16|15 8|7 0|
|
||||
* +------------------+--+---------+--+-----------------+----------------+
|
||||
* | reserved |V |num bytes|P | alarm threshold | score_pct |
|
||||
* |R9 R0|V |N3 N0|P |A7 A0|S7 S0|
|
||||
*
|
||||
* Layout in memory:
|
||||
* bits
|
||||
* |7 6| 5 |4 2|1 0|
|
||||
* +-------+---+---------------+---+
|
||||
* byte 0 |S7 S6 S5 S4 S3 S2 S1 S0 |
|
||||
* +-------------------------------+
|
||||
* byte 1 |A7 A6 A5 A4 A3 A2 A1 A0 |
|
||||
* +-------+---+---------------+---+
|
||||
* byte 2 |R1 R0 | V |N3 N2 N1 N0 | P |
|
||||
* +-------------------------------+
|
||||
* byte 3 |R9 R8 R7 R6 R5 R4 R3 R2 |
|
||||
* +-------------------------------+
|
||||
*/
|
||||
#ifdef LITTLE_ENDIAN
|
||||
#define WLANFW_HEALTH_MON_SCORE_PCT_GET(word32) \
|
||||
(((word32) & 0x000000ff) >> 0)
|
||||
#define WLANFW_HEALTH_MON_SCORE_ALARM_THRESHOLD_GET(word32) \
|
||||
(((word32) & 0x0000ff00) >> 8)
|
||||
#define WLANFW_HEALTH_MON_SCORE_OLD_ALARM_STATE_GET(word32) \
|
||||
(((word32) & 0x00010000) >> 16)
|
||||
#define WLANFW_HEALTH_MON_SCORE_NUM_EXTRA_BYTES_GET(word32) \
|
||||
(((word32) & 0x001e0000) >> 17)
|
||||
#define WLANFW_HEALTH_MON_SCORE_VALID_DATA_FLAG_GET(word32) \
|
||||
(((word32) & 0x00200000) >> 21)
|
||||
#else
|
||||
/*
|
||||
* When read into a big-endian 32-bit word:
|
||||
* bits
|
||||
* |31 24|23 16|15 14|13|12 9|8 |7 0|
|
||||
* +----------------+--------------+-------------------+-----------------+
|
||||
* |S7 S0|A7 A0|R1 R0|V |N3 N0|P |R9 R2|
|
||||
*/
|
||||
/*
|
||||
* big-endian macro def to extract score_pct = S7:S0 = byte3
|
||||
*/
|
||||
#define WLANFW_HEALTH_MON_SCORE_PCT_GET(word32) \
|
||||
(((word32) >> 24) && 0xff)
|
||||
/*
|
||||
* big-endian macro def to extract alarm_threshold = A7:A0 = byte2
|
||||
*/
|
||||
#define WLANFW_HEALTH_MON_SCORE_ALARM_THRESHOLD_GET(word32) \
|
||||
(((word32) >> 16) && 0xff)
|
||||
/*
|
||||
* big-endian macro def to extract old_alarm_state = P = byte1 & 0x1
|
||||
*/
|
||||
#define WLANFW_HEALTH_MON_SCORE_OLD_ALARM_STATE_GET(word32) \
|
||||
(((word32) >> 8) && 0x01)
|
||||
/*
|
||||
* big-endian macro def to extract num_extra_bytes = N3:N0 = (byte1>>1) & 0xf
|
||||
*/
|
||||
#define WLANFW_HEALTH_MON_SCORE_NUM_EXTRA_BYTES_GET(word32) \
|
||||
(((word32) >> 9) && 0x0f)
|
||||
/*
|
||||
* big-endian macro def to extract valid_data_flag = V = (byte1 >> 5) & 0x1
|
||||
*/
|
||||
#define WLANFW_HEALTH_MON_SCORE_VALID_DATA_FLAG_GET(word32) \
|
||||
(((word32) >> 13) && 0x01)
|
||||
#endif
|
||||
|
||||
|
||||
typedef struct _wlanfw_health_mon_metric_upload {
|
||||
union {
|
||||
A_UINT32 metric_id; /* Metric ID
|
||||
* Unique ID assigned to every metric registered
|
||||
*/
|
||||
struct {
|
||||
A_UINT32 module_id:8, /* module_id:
|
||||
* Unique ID assigned to the FW module that owns the metric.
|
||||
* Refer to WLAN_MODULE_ID enum.
|
||||
*/
|
||||
metric_local_id:7, /* metric_local_id:
|
||||
* Unique ID (within the module) assigned to this type of metric by the module that owns the metric.
|
||||
*/
|
||||
instance_id:17; /* instance_id:
|
||||
* The ID of the owner of this particular instance of the metric.
|
||||
* E.g. for a per-pdev metric, this is the pdev_id, for a per-vdev metric this is the vdev_id, etc.
|
||||
*/
|
||||
};
|
||||
};
|
||||
|
||||
union {
|
||||
A_UINT32 word1;
|
||||
|
||||
struct {
|
||||
A_UINT32 score_pct:8, /* range: 0 (bad) - 100 (perfect) */
|
||||
alarm_threshold:8, /* alarm_threshold:
|
||||
* If the metric's score falls below this threshold, the characteristic measured by the metric is a concern.
|
||||
* If the score is above this threshold the characteristic in question is behaving normally.
|
||||
* Any metrics that are purely for measurement (i.e. not for fault detection) should have alarm_threshold = 0.
|
||||
*/
|
||||
old_alarm_state:1, /* old_alarm_state:
|
||||
* This flag indicates whether a score_pct below the alarm_threshold is new (old_alarm_state = 0) or ongoing (old_alarm_state = 1).
|
||||
*/
|
||||
num_extra_bytes:4, /* num_extra_words32:
|
||||
* How many valid extra 4-byte words of metric-specific context follow this struct.
|
||||
*/
|
||||
valid_data_flag:1, /* valid_data_flag:
|
||||
* Indication of whether this metric is in-use and containing valid data, or unallocated and invalid.
|
||||
* Since the target may upload all metric objects, both those that are in use and those that are available but unused, the host must check this flag to see whether the metric object contains valid data.
|
||||
*/
|
||||
reserved:10;
|
||||
};
|
||||
};
|
||||
|
||||
/* Extra scratch space for metric specific context data, e.g. the raw data used to compute the score_pct. */
|
||||
A_UINT32 extra_data[WLANFW_HEALTH_MON_EXTRA_WORDS32];
|
||||
} wlanfw_health_mon_metric_upload_t;
|
||||
|
||||
typedef enum {
|
||||
WLANFW_HEALTH_MON_UPLOAD_FMT_INVALID = 0,
|
||||
|
||||
/* V1: metrics use the wlanfw_health_mon_metric_upload_t format */
|
||||
WLANFW_HEALTH_MON_UPLOAD_FMT_V1 = 1,
|
||||
} wlanfw_health_mon_upload_fmt;
|
||||
|
||||
typedef struct _wlanfw_health_mon_upload_ring {
|
||||
wlanfw_health_mon_upload_fmt version_number; /* version_number:
|
||||
* Specifies the format of the uploaded records.
|
||||
* 0 - unused
|
||||
* 1 - the upload records use the wlanfw_health_mon_metric_upload_t format.
|
||||
* (WLANFW_HEALTH_MON_UPLOAD_FMT_V1)
|
||||
* All other values are reserved.
|
||||
*/
|
||||
/* specifies how large each element within the upload ring is */
|
||||
A_UINT32 ring_element_bytes;
|
||||
/* specifies how many spaces the ring contains */
|
||||
A_UINT32 num_ring_elements;
|
||||
/* specifies which ring element was last written by the target */
|
||||
A_UINT32 write_index;
|
||||
} wlanfw_health_mon_upload_ring_t;
|
||||
|
||||
typedef struct _wlanfw_health_mon_upload_ring_elem_t {
|
||||
A_UINT32 timestamp;
|
||||
/* how much of the head portion of the ring element contains valid data */
|
||||
A_UINT32 num_valid_bytes;
|
||||
} wlanfw_health_mon_upload_ring_elem_t;
|
||||
|
||||
|
||||
#endif /* __WLANFW_HEALTH_MON_H__*/
|
||||
|
|
@ -594,6 +594,13 @@ typedef enum {
|
|||
WMI_SERVICE_COAP_OFFLOAD_SUPPORT = 341, /* FW supports CoAP (the Constrained Application Protocol) offload */
|
||||
WMI_SERVICE_TDLS_WIDEBAND_SUPPORT = 342, /* FW supports Wideband TDLS */
|
||||
WMI_SERVICE_FEATURE_SET_EVENT_SUPPORT = 343, /* FW supports sending of supported feature set event during init time */
|
||||
WMI_SERVICE_HALPHY_CTRL_PATH_STATS = 344, /* HALPHY STATS through control path */
|
||||
WMI_SERVICE_PEER_CHWIDTH_PUNCTURE_BITMAP_SUPPORT = 345, /* FW supports puncture bitmap change with channel width switch */
|
||||
WMI_SERVICE_BANG_RADAR_320_SUPPORT = 346, /* Host to send frequency offset for bang radar in extended field for 320M support */
|
||||
WMI_SERVICE_XGAP_SUPPORT = 347, /* FW support for XGAP */
|
||||
WMI_SERVICE_OBSS_PER_PACKET_SR_SUPPORT = 348, /* Spatial Reuse support for per PPDU setting */
|
||||
WMI_SERVICE_MULTIPLE_VDEV_RESTART_BITMAP_SUPPORT = 349, /* Extended Multiple VDEV Restart with Bitmap Support */
|
||||
|
||||
|
||||
WMI_MAX_EXT2_SERVICE
|
||||
|
||||
|
|
@ -627,15 +634,15 @@ typedef enum {
|
|||
*/
|
||||
#define WMI_SERVICE_ENABLE(pwmi_svc_bmap,svc_id) \
|
||||
( (pwmi_svc_bmap)[(svc_id)/(sizeof(A_UINT32))] |= \
|
||||
(1 << ((svc_id)%(sizeof(A_UINT32)))) )
|
||||
((A_UINT32) 1 << ((svc_id)%(sizeof(A_UINT32)))) )
|
||||
|
||||
#define WMI_SERVICE_DISABLE(pwmi_svc_bmap,svc_id) \
|
||||
( (pwmi_svc_bmap)[(svc_id)/(sizeof(A_UINT32))] &= \
|
||||
( ~(1 << ((svc_id)%(sizeof(A_UINT32)))) ) )
|
||||
( ~((A_UINT32) 1 << ((svc_id)%(sizeof(A_UINT32)))) ) )
|
||||
|
||||
#define WMI_SERVICE_IS_ENABLED(pwmi_svc_bmap,svc_id) \
|
||||
( ((pwmi_svc_bmap)[(svc_id)/(sizeof(A_UINT32))] & \
|
||||
(1 << ((svc_id)%(sizeof(A_UINT32)))) ) != 0)
|
||||
((A_UINT32) 1 << ((svc_id)%(sizeof(A_UINT32)))) ) != 0)
|
||||
|
||||
|
||||
#define WMI_SERVICE_EXT_ENABLE(pwmi_svc_bmap, pwmi_svc_ext_bmap, svc_id) \
|
||||
|
|
@ -645,7 +652,7 @@ typedef enum {
|
|||
} else { \
|
||||
int word = ((svc_id) - WMI_MAX_SERVICE) / 32; \
|
||||
int bit = (svc_id) & 0x1f; /* svc_id mod 32 */ \
|
||||
(pwmi_svc_ext_bmap)[word] |= (1 << bit); \
|
||||
(pwmi_svc_ext_bmap)[word] |= ((A_UINT32) 1 << bit); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
|
|
@ -656,7 +663,7 @@ typedef enum {
|
|||
} else { \
|
||||
int word = ((svc_id) - WMI_MAX_SERVICE) / 32; \
|
||||
int bit = (svc_id) & 0x1f; /* svc_id mod 32 */ \
|
||||
(pwmi_svc_ext_bmap)[word] &= ~(1 << bit); \
|
||||
(pwmi_svc_ext_bmap)[word] &= ~((A_UINT32) 1 << bit); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
|
|
@ -680,7 +687,7 @@ typedef enum {
|
|||
} else { \
|
||||
int word = ((svc_id) - WMI_MAX_EXT_SERVICE) / 32; \
|
||||
int bit = (svc_id) & 0x1f; /* svc_id mod 32 */ \
|
||||
(pwmi_svc_ext2_bmap)[word] |= (1 << bit); \
|
||||
(pwmi_svc_ext2_bmap)[word] |= ((A_UINT32) 1 << bit); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
|
|
@ -694,7 +701,7 @@ typedef enum {
|
|||
} else { \
|
||||
int word = ((svc_id) - WMI_MAX_EXT_SERVICE) / 32; \
|
||||
int bit = (svc_id) & 0x1f; /* svc_id mod 32 */ \
|
||||
(pwmi_svc_ext2_bmap)[word] &= ~(1 << bit); \
|
||||
(pwmi_svc_ext2_bmap)[word] &= ~((A_UINT32) 1 << bit); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
|
|
|
|||
|
|
@ -1293,6 +1293,12 @@ typedef enum {
|
|||
WMITLV_TAG_STRUC_wmi_ipa_link_stats,
|
||||
WMITLV_TAG_STRUC_wmi_ipa_per_mac_stats,
|
||||
WMITLV_TAG_STRUC_wmi_pdev_featureset_cmd_fixed_param,
|
||||
WMITLV_TAG_STRUC_wmi_regulatory_fcc_rule_struct,
|
||||
WMITLV_TAG_STRUC_wmi_vdev_param_enable_sr_prohibit_fixed_param,
|
||||
WMITLV_TAG_STRUC_wmi_pdev_sched_tidq_susp_info_event_fixed_param,
|
||||
WMITLV_TAG_STRUC_wmi_xgap_enable_cmd_fixed_param,
|
||||
WMITLV_TAG_STRUC_wmi_xgap_enable_complete_event_fixed_param,
|
||||
WMITLV_TAG_STRUC_wmi_pdev_mesh_rx_filter_enable_fixed_param,
|
||||
} WMITLV_TAG_ID;
|
||||
|
||||
/*
|
||||
|
|
@ -1798,6 +1804,10 @@ typedef enum {
|
|||
OP(WMI_WOW_COAP_GET_BUF_INFO_CMDID) \
|
||||
OP(WMI_COEX_DBAM_CMDID) \
|
||||
OP(WMI_PDEV_FEATURESET_CMDID) \
|
||||
OP(WMI_ROAM_MLO_CONFIG_CMDID) \
|
||||
OP(WMI_VDEV_PARAM_ENABLE_SR_PROHIBIT_CMDID) \
|
||||
OP(WMI_XGAP_ENABLE_CMDID) \
|
||||
OP(WMI_PDEV_MESH_RX_FILTER_ENABLE_CMDID) \
|
||||
/* add new CMD_LIST elements above this line */
|
||||
|
||||
|
||||
|
|
@ -2090,6 +2100,8 @@ typedef enum {
|
|||
OP(WMI_COEX_DBAM_COMPLETE_EVENTID) \
|
||||
OP(WMI_HEALTH_MON_INIT_DONE_EVENTID) \
|
||||
OP(WMI_IPA_LINK_STATS_EVENTID) \
|
||||
OP(WMI_PDEV_SCHED_TIDQ_SUSP_INFO_EVENTID) \
|
||||
OP(WMI_XGAP_ENABLE_COMPLETE_EVENTID) \
|
||||
/* add new EVT_LIST elements above this line */
|
||||
|
||||
|
||||
|
|
@ -2591,7 +2603,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_SET_RATE_REPORT_CONDITION_CMDID);
|
|||
/* Add Beacon filter Cmd */
|
||||
#define WMITLV_TABLE_WMI_ADD_BCN_FILTER_CMDID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_add_bcn_filter_cmd_fixed_param, wmi_add_bcn_filter_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
|
||||
WMITLV_FXAR(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, ie_map, WMITLV_SIZE_FIX, BCN_FLT_MAX_ELEMS_IE_LIST)
|
||||
WMITLV_FXAR(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, ie_map, WMITLV_SIZE_FIX, BCN_FLT_MAX_ELEMS_IE_LIST) \
|
||||
WMITLV_FXAR(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, ext_ie_map, WMITLV_SIZE_FIX, BCN_FLT_MAX_ELEMS_IE_LIST)
|
||||
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_ADD_BCN_FILTER_CMDID);
|
||||
|
||||
|
|
@ -4493,6 +4506,10 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_ADD_MAC_ADDR_TO_RX_FILTER_CMDID);
|
|||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_hw_data_filter_cmd_fixed_param, wmi_hw_data_filter_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_HW_DATA_FILTER_CMDID);
|
||||
|
||||
#define WMITLV_TABLE_WMI_PDEV_MESH_RX_FILTER_ENABLE_CMDID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_mesh_rx_filter_enable_fixed_param, wmi_pdev_mesh_rx_filter_enable_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_MESH_RX_FILTER_ENABLE_CMDID);
|
||||
|
||||
/* Multiple vdev restart request cmd */
|
||||
#define WMITLV_TABLE_WMI_PDEV_MULTIPLE_VDEV_RESTART_REQUEST_CMDID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_multiple_vdev_restart_request_cmd_fixed_param, wmi_pdev_multiple_vdev_restart_request_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
|
||||
|
|
@ -5133,6 +5150,16 @@ WMITLV_CREATE_PARAM_STRUC(WMI_WOW_COAP_GET_BUF_INFO_CMDID);
|
|||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_coex_dbam_cmd_fixed_param, wmi_coex_dbam_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_COEX_DBAM_CMDID);
|
||||
|
||||
/* VDEV SR prohibit cmd */
|
||||
#define WMITLV_TABLE_WMI_VDEV_PARAM_ENABLE_SR_PROHIBIT_CMDID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_param_enable_sr_prohibit_fixed_param, wmi_vdev_param_enable_sr_prohibit_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_PARAM_ENABLE_SR_PROHIBIT_CMDID);
|
||||
|
||||
/* xGAP enable cmd */
|
||||
#define WMITLV_TABLE_WMI_XGAP_ENABLE_CMDID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_xgap_enable_cmd_fixed_param, wmi_xgap_enable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_XGAP_ENABLE_CMDID);
|
||||
|
||||
|
||||
|
||||
/************************** TLV definitions of WMI events *******************************/
|
||||
|
|
@ -6270,14 +6297,16 @@ WMITLV_CREATE_PARAM_STRUC(WMI_11D_NEW_COUNTRY_EVENTID);
|
|||
/* Regulatory channel list of current country code */
|
||||
#define WMITLV_TABLE_WMI_REG_CHAN_LIST_CC_EVENTID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_reg_chan_list_cc_event_fixed_param, wmi_reg_chan_list_cc_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_regulatory_rule_struct, reg_rule_array, WMITLV_SIZE_VAR)
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_regulatory_rule_struct, reg_rule_array, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_regulatory_fcc_rule_struct, reg_fcc_rule, 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_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_regulatory_chan_priority_struct, reg_chan_priority, WMITLV_SIZE_VAR)
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_regulatory_chan_priority_struct, reg_chan_priority, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_regulatory_fcc_rule_struct, reg_fcc_rule, WMITLV_SIZE_VAR)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_REG_CHAN_LIST_CC_EXT_EVENTID);
|
||||
|
||||
/* WMI AFC info event */
|
||||
|
|
@ -6542,7 +6571,9 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_ENCRYPT_DECRYPT_DATA_RESP_EVENTID);
|
|||
|
||||
#define WMITLV_TABLE_WMI_PEER_STATS_INFO_EVENTID(id, op, buf, len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_stats_info_event_fixed_param, wmi_peer_stats_info_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_stats_info, peer_stats_info, WMITLV_SIZE_VAR)
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_stats_info, peer_stats_info, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, tx_rate_counts, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, rx_rate_counts, WMITLV_SIZE_VAR)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_PEER_STATS_INFO_EVENTID);
|
||||
|
||||
/* Update Control Path stats event */
|
||||
|
|
@ -6751,6 +6782,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_COLD_BOOT_CAL_DATA_EVENTID);
|
|||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_rap_info_event_fixed_param, wmi_pdev_rap_info_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_RAP_INFO_EVENTID);
|
||||
|
||||
/* sched tiqd suspended info event */
|
||||
#define WMITLV_TABLE_WMI_PDEV_SCHED_TIDQ_SUSP_INFO_EVENTID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_sched_tidq_susp_info_event_fixed_param, wmi_pdev_sched_tidq_susp_info_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SCHED_TIDQ_SUSP_INFO_EVENTID);
|
||||
|
||||
/* Offload TX mgmt frames */
|
||||
#define WMITLV_TABLE_WMI_VDEV_MGMT_OFFLOAD_EVENTID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mgmt_hdr, wmi_mgmt_hdr, fixed_param, WMITLV_SIZE_FIX) \
|
||||
|
|
@ -6961,6 +6997,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_COEX_DBAM_COMPLETE_EVENTID);
|
|||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_health_mon_init_done_fixed_param, wmi_health_mon_init_done_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_HEALTH_MON_INIT_DONE_EVENTID);
|
||||
|
||||
/* xGAP enable cmd complete event */
|
||||
#define WMITLV_TABLE_WMI_XGAP_ENABLE_COMPLETE_EVENTID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_xgap_enable_complete_event_fixed_param, wmi_xgap_enable_complete_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_XGAP_ENABLE_COMPLETE_EVENTID);
|
||||
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
|
|
|||
|
|
@ -116,11 +116,11 @@ extern "C" {
|
|||
} while (0)
|
||||
|
||||
#define WMI_GET_BITS(_val,_index,_num_bits) \
|
||||
(((_val) >> (_index)) & ((1 << (_num_bits)) - 1))
|
||||
(((_val) >> (_index)) & (((A_UINT32) 1 << (_num_bits)) - 1))
|
||||
|
||||
#define WMI_SET_BITS(_var,_index,_num_bits,_val) do { \
|
||||
(_var) &= ~(((1 << (_num_bits)) - 1) << (_index)); \
|
||||
(_var) |= (((_val) & ((1 << (_num_bits)) - 1)) << (_index)); \
|
||||
#define WMI_SET_BITS(_var,_index,_num_bits,_val) do { \
|
||||
(_var) &= ~((((A_UINT32) 1 << (_num_bits)) - 1) << (_index)); \
|
||||
(_var) |= (((_val) & (((A_UINT32) 1 << (_num_bits)) - 1)) << (_index)); \
|
||||
} while (0)
|
||||
|
||||
#define WMI_APPEND_TWO_SET_BITS(var, lsb_index, lsb_num_bits, msb_index, msb_num_bits, val) \
|
||||
|
|
@ -180,7 +180,7 @@ static INLINE A_UINT32 wmi_packed_arr_get_bits(A_UINT32 *arr,
|
|||
A_UINT32 index_in_uint = (entry_index - num_entries_in_prev_uints);
|
||||
A_UINT32 start_bit_in_uint = (index_in_uint * bits_per_entry);
|
||||
return (arr[uint_index] >> start_bit_in_uint) &
|
||||
((1 << bits_per_entry) - 1);
|
||||
(((A_UINT32) 1 << bits_per_entry) - 1);
|
||||
}
|
||||
|
||||
static INLINE void wmi_packed_arr_set_bits(A_UINT32 *arr, A_UINT32 entry_index,
|
||||
|
|
@ -192,9 +192,10 @@ static INLINE void wmi_packed_arr_set_bits(A_UINT32 *arr, A_UINT32 entry_index,
|
|||
A_UINT32 index_in_uint = (entry_index - num_entries_in_prev_uints);
|
||||
A_UINT32 start_bit_in_uint = (index_in_uint * bits_per_entry);
|
||||
|
||||
arr[uint_index] &= ~(((1 << bits_per_entry) - 1) << start_bit_in_uint);
|
||||
arr[uint_index] &=
|
||||
~((((A_UINT32) 1 << bits_per_entry) - 1) << start_bit_in_uint);
|
||||
arr[uint_index] |=
|
||||
((val & ((1 << bits_per_entry) - 1)) << start_bit_in_uint);
|
||||
((val & (((A_UINT32) 1 << bits_per_entry) - 1)) << start_bit_in_uint);
|
||||
}
|
||||
|
||||
/** 2 word representation of MAC addr */
|
||||
|
|
@ -218,10 +219,10 @@ typedef struct _wmi_mac_addr {
|
|||
/** macro to convert MAC address from char array to WMI word format */
|
||||
#define WMI_CHAR_ARRAY_TO_MAC_ADDR(c_macaddr,pwmi_mac_addr) do { \
|
||||
(pwmi_mac_addr)->mac_addr31to0 = \
|
||||
(((c_macaddr)[0] << 0) | \
|
||||
((c_macaddr)[1] << 8) | \
|
||||
((c_macaddr)[2] << 16) | \
|
||||
((c_macaddr)[3] << 24)); \
|
||||
(((A_UINT32)(c_macaddr)[0] << 0) | \
|
||||
((A_UINT32)(c_macaddr)[1] << 8) | \
|
||||
((A_UINT32)(c_macaddr)[2] << 16) | \
|
||||
((A_UINT32)(c_macaddr)[3] << 24)); \
|
||||
(pwmi_mac_addr)->mac_addr47to32 = ((c_macaddr)[4] | ((c_macaddr)[5] << 8));\
|
||||
} while (0)
|
||||
|
||||
|
|
@ -510,6 +511,8 @@ typedef enum {
|
|||
WMI_PDEV_FIPS_EXTEND_CMDID,
|
||||
WMI_PDEV_FIPS_MODE_SET_CMDID,
|
||||
WMI_PDEV_FEATURESET_CMDID,
|
||||
/** tag as Filter Pass category and the filters set for FP mode */
|
||||
WMI_PDEV_MESH_RX_FILTER_ENABLE_CMDID,
|
||||
|
||||
/* VDEV (virtual device) specific commands */
|
||||
/** vdev create */
|
||||
|
|
@ -614,6 +617,9 @@ typedef enum {
|
|||
|
||||
WMI_VDEV_PN_MGMT_RX_FILTER_CMDID,
|
||||
|
||||
/** Enable SR prohibit feature for TIDs of vdev */
|
||||
WMI_VDEV_PARAM_ENABLE_SR_PROHIBIT_CMDID,
|
||||
|
||||
/* peer specific commands */
|
||||
|
||||
/** create a peer */
|
||||
|
|
@ -1208,6 +1214,9 @@ typedef enum {
|
|||
/* WMI cmd used to allocate HW scratch registers */
|
||||
WMI_PMM_SCRATCH_REG_ALLOCATION_CMDID,
|
||||
|
||||
/* WMI cmd used to start/stop XGAP (XPAN Green AP) */
|
||||
WMI_XGAP_ENABLE_CMDID,
|
||||
|
||||
/* Offload 11k related requests */
|
||||
WMI_11K_OFFLOAD_REPORT_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_11K_OFFLOAD),
|
||||
/* invoke neighbor report from FW */
|
||||
|
|
@ -1683,6 +1692,9 @@ typedef enum {
|
|||
*/
|
||||
WMI_PDEV_RSSI_DBM_CONVERSION_PARAMS_INFO_EVENTID,
|
||||
|
||||
/* Event to indicate Schedule tid queue suspended info */
|
||||
WMI_PDEV_SCHED_TIDQ_SUSP_INFO_EVENTID,
|
||||
|
||||
|
||||
/* VDEV specific events */
|
||||
/** VDEV started event in response to VDEV_START request */
|
||||
|
|
@ -2149,6 +2161,9 @@ typedef enum {
|
|||
/* WMI event to indicate Helath Monitor Infra init done */
|
||||
WMI_HEALTH_MON_INIT_DONE_EVENTID,
|
||||
|
||||
/* WMI XGAP enable command response event ID */
|
||||
WMI_XGAP_ENABLE_COMPLETE_EVENTID,
|
||||
|
||||
|
||||
/* GPIO Event */
|
||||
WMI_GPIO_INPUT_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_GPIO),
|
||||
|
|
@ -2384,11 +2399,11 @@ typedef enum {
|
|||
#define WMI_CHAN_FLAG_ALLOW_EHT 21 /* EHT (11be) is allowed on this channel */
|
||||
|
||||
#define WMI_SET_CHANNEL_FLAG(pwmi_channel,flag) do { \
|
||||
(pwmi_channel)->info |= (1 << flag); \
|
||||
(pwmi_channel)->info |= ((A_UINT32) 1 << flag); \
|
||||
} while (0)
|
||||
|
||||
#define WMI_GET_CHANNEL_FLAG(pwmi_channel,flag) \
|
||||
(((pwmi_channel)->info & (1 << flag)) >> flag)
|
||||
(((pwmi_channel)->info & ((A_UINT32) 1 << flag)) >> flag)
|
||||
|
||||
#define WMI_SET_CHANNEL_MIN_POWER(pwmi_channel,val) do { \
|
||||
(pwmi_channel)->reg_info_1 &= 0xffffff00; \
|
||||
|
|
@ -2773,11 +2788,11 @@ enum {
|
|||
#define WMI_DBS_CONC_SCAN_CFG_ASYNC_DBS_SCAN_BITPOS (28)
|
||||
#define WMI_DBS_CONC_SCAN_CFG_SYNC_DBS_SCAN_BITPOS (27)
|
||||
|
||||
#define WMI_DBS_CONC_SCAN_CFG_DBS_SCAN_MASK (0x1 << WMI_DBS_CONC_SCAN_CFG_DBS_SCAN_BITPOS)
|
||||
#define WMI_DBS_CONC_SCAN_CFG_AGILE_SCAN_MASK (0x1 << WMI_DBS_CONC_SCAN_CFG_AGILE_SCAN_BITPOS)
|
||||
#define WMI_DBS_CONC_SCAN_CFG_AGILE_DFS_SCAN_MASK (0x1 << WMI_DBS_CONC_SCAN_CFG_AGILE_DFS_SCAN_BITPOS)
|
||||
#define WMI_DBS_CONC_SCAN_CFG_ASYC_DBS_SCAN_MASK (0x1 << WMI_DBS_CONC_SCAN_CFG_ASYNC_DBS_SCAN_BITPOS)
|
||||
#define WMI_DBS_CONC_SCAN_CFG_SYNC_DBS_SCAN_MASK (0x1 << WMI_DBS_CONC_SCAN_CFG_SYNC_DBS_SCAN_BITPOS)
|
||||
#define WMI_DBS_CONC_SCAN_CFG_DBS_SCAN_MASK ((A_UINT32) 0x1 << WMI_DBS_CONC_SCAN_CFG_DBS_SCAN_BITPOS)
|
||||
#define WMI_DBS_CONC_SCAN_CFG_AGILE_SCAN_MASK ((A_UINT32) 0x1 << WMI_DBS_CONC_SCAN_CFG_AGILE_SCAN_BITPOS)
|
||||
#define WMI_DBS_CONC_SCAN_CFG_AGILE_DFS_SCAN_MASK ((A_UINT32) 0x1 << WMI_DBS_CONC_SCAN_CFG_AGILE_DFS_SCAN_BITPOS)
|
||||
#define WMI_DBS_CONC_SCAN_CFG_ASYC_DBS_SCAN_MASK ((A_UINT32) 0x1 << WMI_DBS_CONC_SCAN_CFG_ASYNC_DBS_SCAN_BITPOS)
|
||||
#define WMI_DBS_CONC_SCAN_CFG_SYNC_DBS_SCAN_MASK ((A_UINT32) 0x1 << WMI_DBS_CONC_SCAN_CFG_SYNC_DBS_SCAN_BITPOS)
|
||||
|
||||
#define WMI_DBS_CONC_SCAN_CFG_DBS_SCAN_SET(scan_cfg, value) \
|
||||
WMI_SET_BITS(scan_cfg, WMI_DBS_CONC_SCAN_CFG_DBS_SCAN_BITPOS, 1, value)
|
||||
|
|
@ -2808,12 +2823,12 @@ enum {
|
|||
#define WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_P2P_BITPOS (27)
|
||||
#define WMI_DBS_FW_MODE_CFG_ASYNC_SBS_BITPOS (26)
|
||||
|
||||
#define WMI_DBS_FW_MODE_CFG_DBS_MASK (0x1 << WMI_DBS_FW_MODE_CFG_DBS_BITPOS)
|
||||
#define WMI_DBS_FW_MODE_CFG_AGILE_DFS_MASK (0x1 << WMI_DBS_FW_MODE_CFG_AGILE_DFS_BITPOS)
|
||||
#define WMI_DBS_FW_MODE_CFG_DBS_FOR_CXN_DFS_MASK (0x1 << WMI_DBS_FW_MODE_CFG_DBS_FOR_CXN_BITPOS)
|
||||
#define WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_STA_MASK (0x1 << WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_STA_BITPOS)
|
||||
#define WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_P2P_MASK (0x1 << WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_P2P_BITPOS)
|
||||
#define WMI_DBS_FW_MODE_CFG_ASYNC_SBS_MASK (0x1 << WMI_DBS_FW_MODE_CFG_ASYNC_SBS_BITPOS)
|
||||
#define WMI_DBS_FW_MODE_CFG_DBS_MASK ((A_UINT32) 0x1 << WMI_DBS_FW_MODE_CFG_DBS_BITPOS)
|
||||
#define WMI_DBS_FW_MODE_CFG_AGILE_DFS_MASK ((A_UINT32) 0x1 << WMI_DBS_FW_MODE_CFG_AGILE_DFS_BITPOS)
|
||||
#define WMI_DBS_FW_MODE_CFG_DBS_FOR_CXN_DFS_MASK ((A_UINT32) 0x1 << WMI_DBS_FW_MODE_CFG_DBS_FOR_CXN_BITPOS)
|
||||
#define WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_STA_MASK ((A_UINT32) 0x1 << WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_STA_BITPOS)
|
||||
#define WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_P2P_MASK ((A_UINT32) 0x1 << WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_P2P_BITPOS)
|
||||
#define WMI_DBS_FW_MODE_CFG_ASYNC_SBS_MASK ((A_UINT32) 0x1 << WMI_DBS_FW_MODE_CFG_ASYNC_SBS_BITPOS)
|
||||
|
||||
#define WMI_DBS_FW_MODE_CFG_DBS_SET(fw_mode, value) \
|
||||
WMI_SET_BITS(fw_mode, WMI_DBS_FW_MODE_CFG_DBS_BITPOS, 1, value)
|
||||
|
|
@ -4274,8 +4289,21 @@ typedef struct {
|
|||
* 0 -> disable SAWF based scheduling
|
||||
* 1 -> enable SAWF based scheduling
|
||||
* Refer to WMI_RSRC_CFG_FLAGS2_SAWF_CONFIG_ENABLE_GET/SET macros.
|
||||
* Bit 14 - notify_frame_support
|
||||
* Flag to enable notify_frame_support from host.
|
||||
* 0 -> disable notify_frame_support feature
|
||||
* 1 -> enable_notify_frame_support feature
|
||||
* Refer to WMI_RSRC_CFG_FLAGS2_NOTIFY_FRAME_CONFIG_ENABLE_GET/SET
|
||||
* macros.
|
||||
* Bit 15 - disable_wds_mec_intrabss
|
||||
* Flag to disable wds learning, MEC, intrabss offload.
|
||||
* By default, it is enabled.
|
||||
* 0 -> enable wds_mec_intrabss offload
|
||||
* 1 -> disable wds_mec_intrabss offload
|
||||
* Refer to WMI_RSRC_CFG_FLAGS2_DISABLE_WDS_MEC_INTRABSS_OFFLOAD_GET /
|
||||
* SET macros.
|
||||
*
|
||||
* Bits 31:14 - Reserved
|
||||
* Bits 31:16 - Reserved
|
||||
*/
|
||||
A_UINT32 flags2;
|
||||
/** @brief host_service_flags - can be used by Host to indicate
|
||||
|
|
@ -4366,7 +4394,15 @@ typedef struct {
|
|||
* Refer to the below definitions of the
|
||||
* WMI_RSRC_CFG_HOST_SERVICE_FLAG_REO_QREF_FEATURE_SUPPORT_GET
|
||||
* and _SET macros.
|
||||
* Bits 31:13 - Reserved
|
||||
* Bit 13
|
||||
* This bit will be set when host host wants to enable/disable
|
||||
* bang radar 320M support feature
|
||||
* when set to 1 - Enable the bang radar 320M support
|
||||
* when set to 0 - Disable the bang radar 320M support
|
||||
* Refer to the below definitions of the
|
||||
* WMI_RSRC_CFG_HOST_SERVICE_FLAG_BANG_RADAR_320M_SUPPORT_GET
|
||||
* and _SET macros.
|
||||
* Bits 31:14 - Reserved
|
||||
*/
|
||||
A_UINT32 host_service_flags;
|
||||
|
||||
|
|
@ -4706,6 +4742,11 @@ typedef struct {
|
|||
#define WMI_RSRC_CFG_FLAGS2_NOTIFY_FRAME_CONFIG_ENABLE_SET(flags2, value) \
|
||||
WMI_SET_BITS(flags2, 14, 1, value)
|
||||
|
||||
#define WMI_RSRC_CFG_FLAGS2_DISABLE_WDS_MEC_INTRABSS_OFFLOAD_GET(flags2) \
|
||||
WMI_GET_BITS(flags2, 15, 1)
|
||||
#define WMI_RSRC_CFG_FLAGS2_DISABLE_WDS_MEC_INTRABSS_OFFLOAD_SET(flags2, value) \
|
||||
WMI_SET_BITS(flags2, 15, 1, value)
|
||||
|
||||
|
||||
#define WMI_RSRC_CFG_HOST_SERVICE_FLAG_NAN_IFACE_SUPPORT_GET(host_service_flags) \
|
||||
WMI_GET_BITS(host_service_flags, 0, 1)
|
||||
|
|
@ -4772,6 +4813,12 @@ typedef struct {
|
|||
#define WMI_RSRC_CFG_HOST_SERVICE_FLAG_REO_QREF_FEATURE_SUPPORT_SET(host_service_flags, val) \
|
||||
WMI_SET_BITS(host_service_flags, 12, 1, val)
|
||||
|
||||
#define WMI_RSRC_CFG_HOST_SERVICE_FLAG_BANG_RADAR_320M_SUPPORT_GET(host_service_flags) \
|
||||
WMI_GET_BITS(host_service_flags, 13, 1)
|
||||
#define WMI_RSRC_CFG_HOST_SERVICE_FLAG_BANG_RADAR_320M_SUPPORT_SET(host_service_flags, val) \
|
||||
WMI_SET_BITS(host_service_flags, 13, 1, val)
|
||||
|
||||
|
||||
#define WMI_RSRC_CFG_CARRIER_CFG_CHARTER_ENABLE_GET(carrier_config) \
|
||||
WMI_GET_BITS(carrier_config, 0, 1)
|
||||
#define WMI_RSRC_CFG_CARRIER_CFG_CHARTER_ENABLE_SET(carrier_config, val) \
|
||||
|
|
@ -4825,6 +4872,7 @@ typedef enum {
|
|||
} WMI_WIFI_STANDARD;
|
||||
|
||||
typedef enum {
|
||||
WMI_HOST_NONE = 0, /* No concurrency mode supported */
|
||||
WMI_HOST_DBS = 1, /* When 2.4G + 5G & 2.4G + 6G if 6G is supported */
|
||||
WMI_HOST_DBS_SBS = 2, /* When 2.4G + 5G, 2.4G + 6G, 5G + 6G & 5G + 5G is supported */
|
||||
} WMI_BAND_CONCURRENCY;
|
||||
|
|
@ -4846,6 +4894,12 @@ typedef enum {
|
|||
WMI_VENDOR1_REQ2_VERSION_3_20 = 2,
|
||||
} WMI_VENDOR1_REQ2_VERSION;
|
||||
|
||||
typedef enum {
|
||||
WMI_HOST_BAND_CAP_2GHZ = 0x01,
|
||||
WMI_HOST_BAND_CAP_5GHZ = 0x02,
|
||||
WMI_HOST_BAND_CAP_6GHZ = 0x04,
|
||||
} WMI_HOST_BAND_CAP;
|
||||
|
||||
/* HW features supported info */
|
||||
/* enum WMI_WIFI_STANDARD are possible values for WiFi standard bitfield */
|
||||
#define WMI_GET_WIFI_STANDARD(var, feature_bitmap) \
|
||||
|
|
@ -5109,6 +5163,12 @@ typedef enum {
|
|||
#define WMI_SET_NUM_ANTENNAS(feature_bitmap, val) \
|
||||
WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 102, 4, val)
|
||||
|
||||
/* enum WMI_HOST_BAND_CAP are possible values for below bitfield */
|
||||
#define WMI_GET_HOST_BAND_CAP(var, feature_bitmap) \
|
||||
WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 106, 6)
|
||||
#define WMI_SET_HOST_BAND_CAP(feature_bitmap, val) \
|
||||
WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 106, 6, val)
|
||||
|
||||
/*
|
||||
* Specify how many A_UINT32 words are needed to hold the feature bitmap flags.
|
||||
* This value may change over time.
|
||||
|
|
@ -8765,6 +8825,13 @@ typedef enum {
|
|||
*/
|
||||
WMI_PDEV_PARAM_SA_PARALLEL_MODE_GPIO_DRIVE_CFG,
|
||||
|
||||
/*
|
||||
* Param to disable LPI antenna optimizations
|
||||
* In 6G LPI mode, additional antenna optimizations are done to
|
||||
* improve range. Param is provided to disable the added
|
||||
* optimizations.
|
||||
*/
|
||||
WMI_PDEV_PARAM_DISABLE_LPI_ANT_OPTIMIZATION,
|
||||
} WMI_PDEV_PARAM;
|
||||
|
||||
#define WMI_PDEV_ONLY_BSR_TRIG_IS_ENABLED(trig_type) WMI_GET_BITS(trig_type, 0, 1)
|
||||
|
|
@ -8954,6 +9021,15 @@ typedef enum {
|
|||
WMI_TPC_STATS_EVENT_SEND_REG_RATE_CTL = 0x00000007, /* REG | RATE | CTL */
|
||||
} WMI_PDEV_TPC_STATS_PARAMS;
|
||||
|
||||
typedef enum {
|
||||
WMI_HALPHY_TPC_STATS_SUPPORT_160 = 0,
|
||||
WMI_HALPHY_TPC_STATS_SUPPORT_320,
|
||||
WMI_HALPHY_TPC_STATS_SUPPORT_AX,
|
||||
WMI_HALPHY_TPC_STATS_SUPPORT_AX_EXTRA_MCS,
|
||||
WMI_HALPHY_TPC_STATS_SUPPORT_BE,
|
||||
WMI_HALPHY_TPC_STATS_SUPPORT_BE_PUNC,
|
||||
} WMI_HALPHY_TPC_STATS_SUPPORT_BITF; /* support bit fields */
|
||||
|
||||
typedef struct {
|
||||
A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_get_tpc_stats_cmd_fixed_param */
|
||||
/** pdev_id for identifying the MAC
|
||||
|
|
@ -8996,6 +9072,12 @@ typedef struct {
|
|||
A_UINT32 numTxChain; /* The total number of active chains */
|
||||
A_UINT32 ctl; /* See CONFORMANCE_TEST_LIMITS enumeration */
|
||||
A_UINT32 flags; /* See WMI_TPC_CONFIG_EVENT_FLAG */
|
||||
|
||||
/* support_bits:
|
||||
* Tells info about BE, HE, HE_EXTRA_MCS, 160, 320, 11BE PUNC.
|
||||
* Refer to enum WMI_HALPHY_TPC_STATS_SUPPORT_BITF.
|
||||
*/
|
||||
A_UINT32 support_bits;
|
||||
} wmi_tpc_configs;
|
||||
|
||||
typedef struct {
|
||||
|
|
@ -11288,6 +11370,28 @@ typedef struct {
|
|||
* values).
|
||||
*/
|
||||
A_INT32 peer_rssi_per_chain[WMI_MAX_CHAINS];
|
||||
/* show how many elements in the tx_rate_counts array belong to this peer */
|
||||
A_UINT32 num_tx_rate_counts;
|
||||
/* show how many elements in the rx_rate_counts array belong to this peer */
|
||||
A_UINT32 num_rx_rate_counts;
|
||||
/* This TLV array is followed by other TLVs:
|
||||
* A_UINT32 tx_rate_counts[sum(num_tx_rate_counts)];
|
||||
* The above num_tx_rate_counts field shows which elements
|
||||
* within the tx_rate_counts array belong to a given peer.
|
||||
* Elements tx_rate_counts[0] to tx_rate_counts[N0-1] belong to
|
||||
* peer 0, where N0 = peer_stats_info[0].num_tx_rate_counts.
|
||||
* Elements tx_rate_counts[N0] to tx_rate_counts[N0+N1-1] belong to
|
||||
* peer 1, where N1 = peer_stats_info[1].num_tx_rate_counts.
|
||||
* etc.
|
||||
* A_UINT32 rx_rate_counts[sum(num_rx_rate_counts)];
|
||||
* The above num_rx_rate_counts field shows which elements
|
||||
* within the rx_rate_counts array belong to a given peer.
|
||||
* Elements rx_rate_counts[0] to rx_rate_counts[N0-1] belong to
|
||||
* peer 0, where N0 = peer_stats_info[0].num_rx_rate_counts.
|
||||
* Elements rx_rate_counts[N0] to rx_rate_counts[N0+N1-1] belong to
|
||||
* peer 1, where N1 = peer_stats_info[1].num_rx_rate_counts.
|
||||
* etc.
|
||||
*/
|
||||
} wmi_peer_stats_info;
|
||||
|
||||
typedef struct {
|
||||
|
|
@ -12053,6 +12157,9 @@ typedef struct {
|
|||
* particular event out of Multiple Events that are send to host
|
||||
*/
|
||||
A_UINT32 event_count;
|
||||
|
||||
/** Pdev id requested */
|
||||
A_UINT32 pdev_id;
|
||||
} wmi_halphy_ctrl_path_stats_event_fixed_param;
|
||||
|
||||
typedef struct {
|
||||
|
|
@ -14601,6 +14708,15 @@ typedef enum {
|
|||
/* Final bmiss time for WOW mode in sec */
|
||||
WMI_VDEV_PARAM_FINAL_BMISS_TIME_WOW_SEC, /* 0xB8 */
|
||||
|
||||
/*
|
||||
* Param to disable LPI antenna optimizations at Vdev level.
|
||||
* In 6G LPI mode, additional antenna optimizations are done to
|
||||
* improve range. Param is provided to disable the added
|
||||
* optimizations.
|
||||
*/
|
||||
WMI_VDEV_PARAM_DISABLE_LPI_ANT_OPTIMIZATION, /* 0xB9 */
|
||||
|
||||
|
||||
|
||||
/*=== ADD NEW VDEV PARAM TYPES ABOVE THIS LINE ===
|
||||
* The below vdev param types are used for prototyping, and are
|
||||
|
|
@ -15029,6 +15145,8 @@ typedef struct {
|
|||
A_INT32 max_allowed_tx_power;
|
||||
/** unique id to identify mac's TSF register */
|
||||
A_UINT32 mac_tsf_id;
|
||||
/** ignore mac_tsf_id unless mac_tsf_id_valid is set */
|
||||
A_UINT32 mac_tsf_id_valid;
|
||||
} wmi_vdev_start_response_event_fixed_param;
|
||||
|
||||
typedef struct {
|
||||
|
|
@ -16426,8 +16544,12 @@ typedef struct {
|
|||
* by the target).
|
||||
*/
|
||||
#define WMI_PEER_PARAM_FIXED_RATE 0xF
|
||||
/** Whitelist peer TIDs */
|
||||
#define WMI_PEER_SET_MU_WHITELIST 0x10
|
||||
|
||||
/** Allowlist peer TIDs */
|
||||
#define WMI_PEER_SET_MU_ALLOWLIST 0x10
|
||||
/* retain definition of deprecated prior name, for backwards compatibility */
|
||||
#define WMI_PEER_SET_MU_WHITELIST WMI_PEER_SET_MU_ALLOWLIST
|
||||
|
||||
/** Set peer max tx rate (MCS) in adaptive rate ctrl */
|
||||
#define WMI_PEER_SET_MAX_TX_RATE 0x11
|
||||
/** Set peer minimal tx rate (MCS) in adaptive rate ctrl */
|
||||
|
|
@ -16556,6 +16678,26 @@ typedef struct {
|
|||
#define WMI_PEER_MIMO_PS_STATIC 0x1
|
||||
#define WMI_PEER_MIMO_PS_DYNAMIC 0x2
|
||||
|
||||
/*
|
||||
* Each bit indicates one 20 MHz subchannel is punctured or not.
|
||||
* A bit in the bitmap is set to 1 to indicate that the corresponding 20 MHz
|
||||
* subchannel is not punctured and is set to 0 to indicate that it is punctured.
|
||||
*/
|
||||
#define WMI_PEER_PUNCTURE_20MHZ_BITMAP 0x26
|
||||
|
||||
#define WMI_PEER_CHWIDTH_PUNCTURE_BITMAP_GET_CHWIDTH(value32) WMI_GET_BITS(value32, 0x0, 8)
|
||||
#define WMI_PEER_CHWIDTH_PUNCTURE_BITMAP_GET_PUNCTURE_BMAP(value32) WMI_GET_BITS(value32, 0x8, 16)
|
||||
/* peer channel bandwidth and puncture_bitmap
|
||||
* BIT 0-7 - Peer channel width
|
||||
* This bitfield holds a wmi_channel_width enum value.
|
||||
* BIT 8-23 - Peer Puncture bitmap where each bit indicates whether
|
||||
* a 20 MHz BW is punctured.
|
||||
* The variable should be read from left, LSb (bit 8) will
|
||||
* represent the lowest-frequency 20 MHz portion.
|
||||
* Bit value: 0 - 20 MHz channel is punctured, 1 - not punctured
|
||||
*/
|
||||
#define WMI_PEER_CHWIDTH_PUNCTURE_20MHZ_BITMAP 0x27
|
||||
|
||||
typedef struct {
|
||||
A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_set_param_cmd_fixed_param */
|
||||
/** unique id identifying the VDEV, generated by the caller */
|
||||
|
|
@ -16884,6 +17026,26 @@ typedef struct {
|
|||
A_UINT32 tid_to_link_map_info;
|
||||
} wmi_peer_assoc_tid_to_link_map;
|
||||
|
||||
#define WMI_PDEV_MESH_RX_FILTER_GET(enable) WMI_GET_BITS(enable,0,1)
|
||||
#define WMI_PDEV_MESH_RX_FILTER_SET(enable,value) WMI_SET_BITS(enable,0,1,value)
|
||||
|
||||
typedef struct {
|
||||
/** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_mesh_rx_filter_enable_fixed_param **/
|
||||
A_UINT32 tlv_header;
|
||||
|
||||
A_UINT32 pdev_id;
|
||||
union {
|
||||
struct {
|
||||
A_UINT32 enable: 1, /** denotes enable/disable mesh rx filter, refer to WMI_PDEV_MESH_RX_FILTER_GET/SET macros */
|
||||
reserved: 31;
|
||||
};
|
||||
A_UINT32 enable_word32;
|
||||
};
|
||||
|
||||
/** Mac_Add for the RX filter **/
|
||||
wmi_mac_addr link_macaddr;
|
||||
} wmi_pdev_mesh_rx_filter_enable_fixed_param;
|
||||
|
||||
typedef struct {
|
||||
A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_assoc_complete_cmd_fixed_param */
|
||||
/** peer MAC address */
|
||||
|
|
@ -19408,6 +19570,7 @@ typedef enum event_type_e {
|
|||
WOW_ROAM_STATS_EVENT, /* 32 + 12 */
|
||||
WOW_RTT_11AZ_EVENT, /* 32 + 13 */
|
||||
WOW_P2P_NOA_EVENT, /* 32 + 14 */
|
||||
WOW_XGAP_EVENT, /* 32 + 15 */
|
||||
} WOW_WAKE_EVENT_TYPE;
|
||||
|
||||
typedef enum wake_reason_e {
|
||||
|
|
@ -19493,6 +19656,8 @@ typedef enum wake_reason_e {
|
|||
WOW_REASON_DELAYED_WAKEUP_DATA_STORE_LIST_FULL,
|
||||
/* Sched PM FW initiated termination event */
|
||||
WOW_REASON_SCHED_PM_TERMINATED,
|
||||
/* XGAP entry/exit response */
|
||||
WOW_REASON_XGAP,
|
||||
|
||||
/* add new WOW_REASON_ defs before this line */
|
||||
WOW_REASON_MAX,
|
||||
|
|
@ -19534,6 +19699,8 @@ enum {
|
|||
* setDtimInSuspendMode
|
||||
*/
|
||||
WMI_WOW_FLAG_FORCED_DTIM_ON_SYS_SUSPEND = 0x00000080,
|
||||
/* Flag to force DPD lock. */
|
||||
WMI_WOW_FLAG_FORCED_DPD_LOCK = 0x00000100,
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
|
|
@ -24755,6 +24922,8 @@ typedef struct {
|
|||
A_INT32 max_allowed_tx_power;
|
||||
/** unique id to identify mac's TSF register */
|
||||
A_UINT32 mac_tsf_id;
|
||||
/** ignore mac_tsf_id unless mac_tsf_id_valid is set */
|
||||
A_UINT32 mac_tsf_id_valid;
|
||||
/**
|
||||
* TLV (tag length value) parameters follows roam_synch_event
|
||||
* The TLV's are:
|
||||
|
|
@ -27164,13 +27333,30 @@ typedef struct {
|
|||
* This field should be ignored unless the tsf_id_valid flag is set.
|
||||
*/
|
||||
A_UINT32 tsf_id;
|
||||
/*
|
||||
* The mac_id and tsf_id fields should be ignored unless the
|
||||
* tsf_id_valid flag is set.
|
||||
*/
|
||||
A_UINT32 tsf_id_valid;
|
||||
/*
|
||||
* mac_id: MAC identifier
|
||||
* This field should be ignored unless the mac_id_valid flag is set.
|
||||
* This field should be ignored unless the tsf_id_valid flag is set.
|
||||
*/
|
||||
A_UINT32 mac_id;
|
||||
A_UINT32 mac_id_valid;
|
||||
/*
|
||||
* The original mac_id_valid field that was originally used to specify
|
||||
* whether the mac_id field is valid has been repurposed to instead
|
||||
* specify whether this message is a TSF report or a UL delay report.
|
||||
*/
|
||||
union {
|
||||
A_UINT32 mac_id_valid; /* original name */
|
||||
/* ul_delay_or_tsf_report:
|
||||
* New name for the field, reflecting its new purpose.
|
||||
* ul_delay_or_tsf_report = 1 -> UL delay
|
||||
* ul_delay_or_tsf_report = 0 -> TSF report
|
||||
*/
|
||||
A_UINT32 ul_delay_or_tsf_report;
|
||||
};
|
||||
/* low 32 bits of wlan global tsf */
|
||||
A_UINT32 wlan_global_tsf_low;
|
||||
/* high 32 bits of wlan global tsf */
|
||||
|
|
@ -28652,7 +28838,8 @@ typedef enum {
|
|||
* A_UINT32 TASPeakModeIndicator[8] (32 Bytes)
|
||||
* A_UINT32 TAS_FCC_ICNIRP_Indicator[8] (32 Bytes)
|
||||
* A_UINT32 PowerLimitIndicator[8] (32 Bytes)
|
||||
* A_INT32 TASLogReducedLimit (4 Bytes)
|
||||
* A_UINT8 reserveMarginDb (1 Bytes)
|
||||
* A_UINT8 reserved[3] (3 Bytes)
|
||||
*/
|
||||
|
||||
BIOS_PARAM_TAS_DATA_TYPE,
|
||||
|
|
@ -28733,6 +28920,128 @@ typedef enum {
|
|||
* A_INT8 ICNIRP 6Ghz MIMO (Chain0 + Chain1) Power Limit Value(unit: 0.25dBm) (UNII-8) (Ch117~Ch149)
|
||||
*/
|
||||
|
||||
BIOS_PARAM_TYPE_BANDEDGE_CTL_POWER,
|
||||
/*
|
||||
* BIOS_PARAM_TYPE_BANDEDGE_CTL_POWER Structure has 100 bytes as below, CTL limit power unit is 0.25 dBm.
|
||||
* If Enable flag is 0, FW will not use power limit value of bios.
|
||||
*
|
||||
* A_UINT8 version
|
||||
* A_UINT8 enableFlag (always 1)
|
||||
* A_UINT8 reserved[2] for 4 byte alignment,
|
||||
|
||||
* ====================2G CTL POWER LIMIT ======================
|
||||
* A_INT8 2G 20M Channel Center Freq 2412 CTL Limit Power SU
|
||||
* A_INT8 2G 20M Channel Center Freq 2412 CTL Limit Power OFDMA
|
||||
* A_INT8 2G 20M Channel Center Freq 2417 CTL Limit Power SU
|
||||
* A_INT8 2G 20M Channel Center Freq 2417 CTL Limit Power OFDMA
|
||||
* A_INT8 2G 20M Channel Center Freq 2462 CTL Limit Power SU
|
||||
* A_INT8 2G 20M Channel Center Freq 2462 CTL Limit Power OFDMA
|
||||
* A_INT8 2G 20M Channel Center Freq 2467 CTL Limit Power SU
|
||||
* A_INT8 2G 20M Channel Center Freq 2467 CTL Limit Power OFDMA
|
||||
* A_INT8 2G 20M Channel Center Freq 2472 CTL Limit Power SU
|
||||
* A_INT8 2G 20M Channel Center Freq 2472 CTL Limit Power OFDMA
|
||||
|
||||
* A_INT8 2G 40M Channel Center Freq 2422 CTL Limit Power SU
|
||||
* A_INT8 2G 40M Channel Center Freq 2422 CTL Limit Power OFDMA
|
||||
* A_INT8 2G 40M Channel Center Freq 2427 CTL Limit Power SU
|
||||
* A_INT8 2G 40M Channel Center Freq 2427 CTL Limit Power OFDMA
|
||||
* A_INT8 2G 40M Channel Center Freq 2452 CTL Limit Power SU
|
||||
* A_INT8 2G 40M Channel Center Freq 2452 CTL Limit Power OFDMA
|
||||
* A_INT8 2G 40M Channel Center Freq 2457 CTL Limit Power SU
|
||||
* A_INT8 2G 40M Channel Center Freq 2457 CTL Limit Power OFDMA
|
||||
* A_INT8 2G 40M Channel Center Freq 2462 CTL Limit Power SU
|
||||
* A_INT8 2G 40M Channel Center Freq 2462 CTL Limit Power OFDMA
|
||||
|
||||
* ====================5G CTL POWER LIMIT ======================
|
||||
* A_INT8 5G 20M Channel Center Freq 5180 CTL Limit Power SU
|
||||
* A_INT8 5G 20M Channel Center Freq 5180 CTL Limit Power OFDMA
|
||||
* A_INT8 5G 20M Channel Center Freq 5320 CTL Limit Power SU
|
||||
* A_INT8 5G 20M Channel Center Freq 5320 CTL Limit Power OFDMA
|
||||
* A_INT8 5G 20M Channel Center Freq 5500 CTL Limit Power SU
|
||||
* A_INT8 5G 20M Channel Center Freq 5500 CTL Limit Power OFDMA
|
||||
* A_INT8 5G 20M Channel Center Freq 5700 CTL Limit Power SU
|
||||
* A_INT8 5G 20M Channel Center Freq 5700 CTL Limit Power OFDMA
|
||||
* A_INT8 5G 20M Channel Center Freq 5745 CTL Limit Power SU
|
||||
* A_INT8 5G 20M Channel Center Freq 5745 CTL Limit Power OFDMA
|
||||
* A_INT8 5G 20M Channel Center Freq 5825 CTL Limit Power SU
|
||||
* A_INT8 5G 20M Channel Center Freq 5825 CTL Limit Power OFDMA
|
||||
* A_INT8 5G 20M Channel Center Freq 5845 CTL Limit Power SU
|
||||
* A_INT8 5G 20M Channel Center Freq 5845 CTL Limit Power OFDMA
|
||||
* A_INT8 5G 20M Channel Center Freq 5885 CTL Limit Power SU
|
||||
* A_INT8 5G 20M Channel Center Freq 5885 CTL Limit Power OFDMA
|
||||
|
||||
* A_INT8 5G 40M Channel Center Freq 5190 CTL Limit Power SU
|
||||
* A_INT8 5G 40M Channel Center Freq 5190 CTL Limit Power OFDMA
|
||||
* A_INT8 5G 40M Channel Center Freq 5310 CTL Limit Power SU
|
||||
* A_INT8 5G 40M Channel Center Freq 5310 CTL Limit Power OFDMA
|
||||
* A_INT8 5G 40M Channel Center Freq 5510 CTL Limit Power SU
|
||||
* A_INT8 5G 40M Channel Center Freq 5510 CTL Limit Power OFDMA
|
||||
* A_INT8 5G 40M Channel Center Freq 5670 CTL Limit Power SU
|
||||
* A_INT8 5G 40M Channel Center Freq 5670 CTL Limit Power OFDMA
|
||||
* A_INT8 5G 40M Channel Center Freq 5755 CTL Limit Power SU
|
||||
* A_INT8 5G 40M Channel Center Freq 5755 CTL Limit Power OFDMA
|
||||
* A_INT8 5G 40M Channel Center Freq 5795 CTL Limit Power SU
|
||||
* A_INT8 5G 40M Channel Center Freq 5795 CTL Limit Power OFDMA
|
||||
* A_INT8 5G 40M Channel Center Freq 5835 CTL Limit Power SU
|
||||
* A_INT8 5G 40M Channel Center Freq 5835 CTL Limit Power OFDMA
|
||||
* A_INT8 5G 40M Channel Center Freq 5875 CTL Limit Power SU
|
||||
* A_INT8 5G 40M Channel Center Freq 5875 CTL Limit Power OFDMA
|
||||
|
||||
* A_INT8 5G 80M Channel Center Freq 5210 CTL Limit Power SU
|
||||
* A_INT8 5G 80M Channel Center Freq 5210 CTL Limit Power OFDMA
|
||||
* A_INT8 5G 80M Channel Center Freq 5290 CTL Limit Power SU
|
||||
* A_INT8 5G 80M Channel Center Freq 5290 CTL Limit Power OFDMA
|
||||
* A_INT8 5G 80M Channel Center Freq 5530 CTL Limit Power SU
|
||||
* A_INT8 5G 80M Channel Center Freq 5530 CTL Limit Power OFDMA
|
||||
* A_INT8 5G 80M Channel Center Freq 5610 CTL Limit Power SU
|
||||
* A_INT8 5G 80M Channel Center Freq 5610 CTL Limit Power OFDMA
|
||||
* A_INT8 5G 80M Channel Center Freq 5775 CTL Limit Power SU
|
||||
* A_INT8 5G 80M Channel Center Freq 5775 CTL Limit Power OFDMA
|
||||
* A_INT8 5G 80M Channel Center Freq 5855 CTL Limit Power SU
|
||||
* A_INT8 5G 80M Channel Center Freq 5855 CTL Limit Power OFDMA
|
||||
|
||||
* A_INT8 5G 160M Channel Center Freq 5250 CTL Limit Power SU
|
||||
* A_INT8 5G 160M Channel Center Freq 5250 CTL Limit Power OFDMA
|
||||
* A_INT8 5G 160M Channel Center Freq 5570 CTL Limit Power SU
|
||||
* A_INT8 5G 160M Channel Center Freq 5570 CTL Limit Power OFDMA
|
||||
* A_INT8 5G 160M Channel Center Freq 5815 CTL Limit Power SU
|
||||
* A_INT8 5G 160M Channel Center Freq 5815 CTL Limit Power OFDMA
|
||||
|
||||
* A_INT8 5G 320M Channel Center Freq 5650 CTL Limit Power SU (5650 Punctured 1111_1111_1111_0000)
|
||||
* A_INT8 5G 320M Channel Center Freq 5650 CTL Limit Power OFDMA (5650 Punctured 1111_1111_1111_0000)
|
||||
|
||||
* ====================6G CTL POWER LIMIT ======================
|
||||
* A_INT8 6G 20M Channel Center Freq 5935 CTL Limit Power SU
|
||||
* A_INT8 6G 20M Channel Center Freq 5935 CTL Limit Power OFDMA
|
||||
* A_INT8 6G 20M Channel Center Freq 5955 CTL Limit Power SU
|
||||
* A_INT8 6G 20M Channel Center Freq 5955 CTL Limit Power OFDMA
|
||||
* A_INT8 6G 20M Channel Center Freq 6415 CTL Limit Power SU
|
||||
* A_INT8 6G 20M Channel Center Freq 6415 CTL Limit Power OFDMA
|
||||
* A_INT8 6G 20M Channel Center Freq 7115 CTL Limit Power SU
|
||||
* A_INT8 6G 20M Channel Center Freq 7115 CTL Limit Power OFDMA
|
||||
|
||||
* A_INT8 6G 40M Channel Center Freq 5965 CTL Limit Power SU
|
||||
* A_INT8 6G 40M Channel Center Freq 5965 CTL Limit Power OFDMA
|
||||
* A_INT8 6G 40M Channel Center Freq 6405 CTL Limit Power SU
|
||||
* A_INT8 6G 40M Channel Center Freq 6405 CTL Limit Power OFDMA
|
||||
|
||||
* A_INT8 6G 80M Channel Center Freq 5985 CTL Limit Power SU
|
||||
* A_INT8 6G 80M Channel Center Freq 5985 CTL Limit Power OFDMA
|
||||
* A_INT8 6G 80M Channel Center Freq 6385 CTL Limit Power SU
|
||||
* A_INT8 6G 80M Channel Center Freq 6385 CTL Limit Power OFDMA
|
||||
|
||||
* A_INT8 6G 160M Channel Center Freq 6025 CTL Limit Power SU
|
||||
* A_INT8 6G 160M Channel Center Freq 6025 CTL Limit Power OFDMA
|
||||
* A_INT8 6G 160M Channel Center Freq 6345 CTL Limit Power SU
|
||||
* A_INT8 6G 160M Channel Center Freq 6345 CTL Limit Power OFDMA
|
||||
|
||||
* A_INT8 6G 320M Channel Center Freq 6105 CTL Limit Power SU
|
||||
* A_INT8 6G 320M Channel Center Freq 6105 CTL Limit Power OFDMA
|
||||
* A_INT8 6G 320M Channel Center Freq 6265 CTL Limit Power SU
|
||||
* A_INT8 6G 320M Channel Center Freq 6265 CTL Limit Power OFDMA
|
||||
*/
|
||||
|
||||
|
||||
BIOS_PARAM_TYPE_MAX,
|
||||
} bios_param_type_e;
|
||||
|
||||
|
|
@ -29444,6 +29753,21 @@ typedef struct {
|
|||
A_UINT32 vdev_id;
|
||||
} wmi_vdev_get_bcn_recv_stats_cmd_fixed_param;
|
||||
|
||||
typedef struct {
|
||||
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_xgap_enable_cmd_fixed_param */
|
||||
A_UINT32 beacon_interval; /* in TU */
|
||||
A_UINT32 sap_lp_flag; /* bit 0 : set/unset for enter/exit XGAP */
|
||||
A_UINT32 dialog_token;
|
||||
A_UINT32 duration; /* in us : sap LP enter/exit duration, 0 for permanent exit */
|
||||
} wmi_xgap_enable_cmd_fixed_param;
|
||||
|
||||
typedef struct {
|
||||
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_xgap_enable_complete_event_fixed_param */
|
||||
A_UINT32 dialog_token;
|
||||
A_UINT32 next_tsf_low32;
|
||||
A_UINT32 next_tsf_high32;
|
||||
} wmi_xgap_enable_complete_event_fixed_param;
|
||||
|
||||
/*
|
||||
* wmi mws-coex command IDs
|
||||
*/
|
||||
|
|
@ -32308,6 +32632,9 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command)
|
|||
WMI_RETURN_STRING(WMI_WOW_COAP_GET_BUF_INFO_CMDID);
|
||||
WMI_RETURN_STRING(WMI_COEX_DBAM_CMDID);
|
||||
WMI_RETURN_STRING(WMI_PDEV_FEATURESET_CMDID);
|
||||
WMI_RETURN_STRING(WMI_VDEV_PARAM_ENABLE_SR_PROHIBIT_CMDID);
|
||||
WMI_RETURN_STRING(WMI_XGAP_ENABLE_CMDID);
|
||||
WMI_RETURN_STRING(WMI_PDEV_MESH_RX_FILTER_ENABLE_CMDID);
|
||||
}
|
||||
|
||||
return (A_UINT8 *) "Invalid WMI cmd";
|
||||
|
|
@ -32594,6 +32921,21 @@ typedef struct {
|
|||
*/
|
||||
} wmi_regulatory_chan_priority_struct;
|
||||
|
||||
#define WMI_REG_FCC_RULE_CHAN_FREQ_GET(freq_info) WMI_GET_BITS(freq_info, 0, 16)
|
||||
#define WMI_REG_FCC_RULE_CHAN_FREQ_SET(freq_info, value) WMI_SET_BITS(freq_info, 0, 16, value)
|
||||
#define WMI_REG_FCC_RULE_FCC_TX_POWER_GET(freq_info) WMI_GET_BITS(freq_info, 16, 8)
|
||||
#define WMI_REG_FCC_RULE_FCC_TX_POWER_SET(freq_info, value) WMI_SET_BITS(freq_info, 16, 8, value)
|
||||
|
||||
typedef struct {
|
||||
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_regulatory_fcc_rule_struct */
|
||||
A_UINT32 freq_info;
|
||||
/* freq_info:
|
||||
* bits 15:0 = u16 channel frequency (in MHz units)
|
||||
* bits 23:16 = u8 FCC_Tx_power (dBm units)
|
||||
* bits 31:24 = u8 reserved for future
|
||||
*/
|
||||
} wmi_regulatory_fcc_rule_struct;
|
||||
|
||||
typedef enum {
|
||||
WMI_REG_DFS_UNINIT_REGION = 0,
|
||||
WMI_REG_DFS_FCC_REGION = 1,
|
||||
|
|
@ -32641,7 +32983,10 @@ typedef struct {
|
|||
A_UINT32 max_bw_5g; /* BW in MHz */
|
||||
A_UINT32 num_2g_reg_rules;
|
||||
A_UINT32 num_5g_reg_rules;
|
||||
/* followed by wmi_regulatory_rule_struct TLV array. First 2G and then 5G */
|
||||
/*
|
||||
* followed by wmi_regulatory_rule_struct TLV array. First 2G and then 5G
|
||||
* - wmi_regulatory_fcc_rule_struct reg_fcc_rule[]
|
||||
*/
|
||||
} wmi_reg_chan_list_cc_event_fixed_param;
|
||||
|
||||
typedef enum {
|
||||
|
|
@ -32702,6 +33047,7 @@ typedef struct {
|
|||
* then the 5G elements, then the 6G elements (AP SG, AP LPI, AP VLP,
|
||||
* client SP x4, client LPI x4, client vlp x4).
|
||||
* - wmi_regulatory_chan_priority_struct reg_chan_priority[]
|
||||
* - wmi_regulatory_fcc_rule_struct reg_fcc_rule[]
|
||||
*/
|
||||
} wmi_reg_chan_list_cc_event_ext_fixed_param;
|
||||
|
||||
|
|
@ -33070,6 +33416,31 @@ typedef struct {
|
|||
#define WMI_MULTIPLE_VDEV_RESTART_FLAG_GET_PHYMODE(phymode) WMI_GET_BITS(phymode, 0, 6)
|
||||
#define WMI_MULTIPLE_VDEV_RESTART_FLAG_SET_PHYMODE(phymode, val) WMI_SET_BITS(phymode, 0, 6, val)
|
||||
|
||||
/** Indicates that VDEV ID is in bit-map format
|
||||
* If this flag is set, FW will determine the vdev IDs from the positions
|
||||
* of the bits that are set, and use these vdev IDs for vdev restart.
|
||||
*
|
||||
* This flag should not be set from host unless FW has set the service bit
|
||||
* WMI_SERVICE_MULTIPLE_VDEV_RESTART_BITMAP_SUPPORT to indicate it supports
|
||||
* this interpretation of the vdev IDs as a bitmap.
|
||||
*
|
||||
* If this flag is set then below is the way it will be parsed
|
||||
* vdev_ids[0] = 53 (0011 0101) -> indicates vdev 0,2,4,5 is set
|
||||
* vdev_ids[1] = 53 (0000 0101) -> indicates vdev 32,34 is set
|
||||
* similar to this the value can be extended in feature for more vdev's
|
||||
*
|
||||
* If flag is not se then default parsing will be as below
|
||||
* vdev_ids[0] = 0
|
||||
* vdev_ids[1] = 2
|
||||
* vdev_ids[2] = 4
|
||||
* .
|
||||
* .
|
||||
* vdev_ids[5] = 34
|
||||
*/
|
||||
#define WMI_MULTIPLE_VDEV_RESTART_FLAG_BITMAP_SUPPORT(flag) WMI_GET_BITS(flag, 2, 1)
|
||||
#define WMI_MULTIPLE_VDEV_RESTART_FLAG_SET_BITMAP_SUPPORT(flag,val) WMI_SET_BITS(flag, 2, 1, val)
|
||||
|
||||
|
||||
/* This command is used whenever host wants to restart multiple
|
||||
* VDEVs using single command and the VDEV that are restarted will
|
||||
* need to have same properties they had before restart except for the
|
||||
|
|
@ -33100,7 +33471,22 @@ typedef struct {
|
|||
A_UINT32 puncture_20mhz_bitmap; /* each bit indicates one 20 MHz BW punctured */
|
||||
|
||||
/* The TLVs follows this structure:
|
||||
* A_UINT32 vdev_ids[]; <--- Array of VDEV ids.
|
||||
* A_UINT32 vdev_ids[]; <--- Array of vdev IDs, or bitmap of vdev IDs
|
||||
* In flags if WMI_MULTIPLE_VDEV_RESTART_FLAG_BITMAP_SUPPORT is set
|
||||
* FW will interpret the vdev_ids values as a bitmap, and will use the
|
||||
* position of all the bits set within the bitmap to determine the
|
||||
* vdev IDs to use for vdev restart.
|
||||
* If this flag is set then below is the way it will be parsed
|
||||
* vdev_ids[0] = 53 (0011 0101) -> indicates vdev 0,2,4,5 is set
|
||||
* vdev_ids[1] = 53 (0000 0101) -> indicates vdev 32,34 is set
|
||||
* The array can be extended in feature for more vdevs.
|
||||
* If this flag is not se then default parsing will be as below
|
||||
* vdev_ids[0] = 0
|
||||
* vdev_ids[1] = 2
|
||||
* vdev_ids[2] = 4
|
||||
* .
|
||||
* .
|
||||
* vdev_ids[5] = 34
|
||||
* wmi_channel chan; <------ WMI channel
|
||||
* A_UINT32 phymode_list[]; <-- Array of Phymode list, with
|
||||
* each phymode value stored in bits 5:0 of the A_UINT32.
|
||||
|
|
@ -33964,6 +34350,7 @@ typedef struct {
|
|||
A_UINT32 dialog_id; /* TWT dialog ID */
|
||||
A_UINT32 suspend_duration_ms; /* this long time after TWT paused the 1st SP will start (millisecond) */
|
||||
A_UINT32 next_twt_size; /* Next TWT subfield Size, refer to IEEE 802.11ax section "9.4.1.60 TWT Information field" */
|
||||
A_INT32 sp_start_offset; /* Next TWT service period will be offset by this time (microsecond) */
|
||||
} wmi_twt_nudge_dialog_cmd_fixed_param;
|
||||
|
||||
/* status code of nudging TWT dialog */
|
||||
|
|
@ -34610,6 +34997,11 @@ typedef struct {
|
|||
A_UINT32 vdev_id;
|
||||
/* AP BSSID for which host needs to start pre-authentication */
|
||||
wmi_mac_addr candidate_ap_bssid;
|
||||
/*
|
||||
* Transmit address for which host needs to start pre-authentication
|
||||
* in MLO case. In non MLO cases, transmit_addr will be filled with 0x0.
|
||||
*/
|
||||
wmi_mac_addr transmit_addr;
|
||||
} wmi_roam_preauth_start_event_fixed_param;
|
||||
|
||||
typedef struct {
|
||||
|
|
@ -35268,19 +35660,53 @@ typedef struct {
|
|||
|
||||
/** the definition of different ROAM parameters */
|
||||
typedef enum {
|
||||
/* roam param to configure below roam events
|
||||
* Bit : 0 disabled - do not send WMI_ROAM_NOTIF_SCAN_END in WMI_ROAM_EVENTID
|
||||
* Bit : 0 enabled - send WMI_ROAM_NOTIF_SCAN_END in WMI_ROAM_EVENTID
|
||||
* Bit : 1 disabled - do not send 1) WMI_ROAM_STATS_EVENTID 2) WMI_ROAM_NOTIF_SCAN_START and WMI_ROAM_NOTIF_SCAN_END notifs in WMI_ROAM_EVENTID in suspend mode
|
||||
* Bit : 1 enabled - send 1) WMI_ROAM_STATS_EVENTID 2) WMI_ROAM_NOTIF_SCAN_START and WMI_ROAM_NOTIF_SCAN_END notifs in WMI_ROAM_EVENTID in suspend mode
|
||||
* Bit : 2-31 - reserved
|
||||
/*
|
||||
* roam param to configure below roam events
|
||||
* Bit : 0 disabled - do not send WMI_ROAM_NOTIF_SCAN_END in WMI_ROAM_EVENTID
|
||||
* Bit : 0 enabled - send WMI_ROAM_NOTIF_SCAN_END in WMI_ROAM_EVENTID
|
||||
* Bit : 1 disabled - do not send 1) WMI_ROAM_STATS_EVENTID 2) WMI_ROAM_NOTIF_SCAN_START and WMI_ROAM_NOTIF_SCAN_END notifs in WMI_ROAM_EVENTID in suspend mode
|
||||
* Bit : 1 enabled - send 1) WMI_ROAM_STATS_EVENTID 2) WMI_ROAM_NOTIF_SCAN_START and WMI_ROAM_NOTIF_SCAN_END notifs in WMI_ROAM_EVENTID in suspend mode
|
||||
* Bit : 2-31 - reserved
|
||||
*/
|
||||
WMI_ROAM_PARAM_ROAM_EVENTS_CONFIG = 0x1,
|
||||
WMI_ROAM_PARAM_ROAM_EVENTS_CONFIG = 1,
|
||||
|
||||
/*
|
||||
* Bit : 0 if unset, POOR_LINKSPEED
|
||||
* Bit : 0 if set, GOOD_LINKSPEED
|
||||
*/
|
||||
WMI_ROAM_PARAM_LINKSPEED_STATE = 0x2,
|
||||
WMI_ROAM_PARAM_LINKSPEED_STATE = 2,
|
||||
|
||||
/*
|
||||
* roam param to configure roam scan params for DFS jitter reduction
|
||||
* Bit : 0 enabled - DFS channel jitter reduction is enabled.
|
||||
* Bit : 0 disabled - DFS channel jitter reduction is disabled.
|
||||
*
|
||||
* Bit : 1-7 - To indicate the passive-to-active conversion timeout
|
||||
* with range 40 to 70 in ms, default value is 50ms.
|
||||
* If an invalid (out of range) value is provided, the
|
||||
* default value will be used.
|
||||
* Bit : 8-13 - To indicate the DFS RSSI threshold for current AP
|
||||
* with range 0 to 58, default value is 0 dB
|
||||
* (DFS rssi threshold = -70 dBm + 0 dB = -70 dBm).
|
||||
* The specified value (in dB) is added to the -70 dBm
|
||||
* baseline value to get the RSSI threshold in dBm.
|
||||
* If an invalid (out of range) value is provided, the
|
||||
* default value will be used.
|
||||
* Bit : 14-19 - To indicate the DFS RSSI threshold for candidate AP
|
||||
* with range 0 to 58, default value is 0 dB
|
||||
* (DFS rssi threshold = -70 - 0 = -70 dBm).
|
||||
* The specified value (in dB) is added to the -70 dBm
|
||||
* baseline value to get the RSSI threshold in dBm.
|
||||
* If an invalid (out of range) value is provided, the
|
||||
* default value will be used.
|
||||
* Bit : 20 disabled - To indicate DFS roam scan policy is AGILE
|
||||
* Bit : 20 enabled - To indicate DFS roam scan policy is Legacy
|
||||
*
|
||||
* Bit : 21-31 are reserved
|
||||
*/
|
||||
WMI_ROAM_PARAM_ROAM_SCAN_DFS_CONFIG_BITMAP = 3,
|
||||
|
||||
|
||||
/*=== END ROAM_PARAM_PROTOTYPE SECTION ===*/
|
||||
} WMI_ROAM_PARAM;
|
||||
|
||||
|
|
@ -35795,11 +36221,26 @@ typedef struct {
|
|||
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUCT_wmi_chan_width_peer_list */
|
||||
wmi_mac_addr peer_macaddr;
|
||||
A_UINT32 chan_width; /* wmi_channel_width */
|
||||
A_UINT32 puncture_20mhz_bitmap; /* per peer wmi puncture_bitmap,
|
||||
* each bit indicates one 20 MHz BW
|
||||
* punctured.
|
||||
* This variable should be read from left,
|
||||
* LSb will point to the lowest-frequency
|
||||
* 20 MHz frequency slice.
|
||||
* bit value:
|
||||
* 0 - 20 MHz BW is punctured
|
||||
* 1 - not punctured
|
||||
*/
|
||||
} wmi_chan_width_peer_list;
|
||||
|
||||
#define WMI_PEER_CHAN_WIDTH_SWITCH_SET_VALID_VDEV_ID(comp) WMI_SET_BITS(comp, 31,1, 1)
|
||||
#define WMI_PEER_CHAN_WIDTH_SWITCH_GET_VALID_VDEV_ID(comp) WMI_GET_BITS(comp, 31, 1)
|
||||
|
||||
#define WMI_PEER_CHAN_WIDTH_SWITCH_SET_VALID_PUNCTURE_BITMAP(comp) WMI_SET_BITS(comp, 30, 1, 1)
|
||||
#define WMI_PEER_CHAN_WIDTH_SWITCH_GET_VALID_PUNCTURE_BITMAP(comp) WMI_GET_BITS(comp, 30, 1)
|
||||
|
||||
/* bits 29:8 currently unused */
|
||||
|
||||
#define WMI_PEER_CHAN_WIDTH_SWITCH_SET_VDEV_ID(comp, value) WMI_SET_BITS(comp, 0, 8, value)
|
||||
#define WMI_PEER_CHAN_WIDTH_SWITCH_GET_VDEV_ID(comp) WMI_GET_BITS(comp, 0, 8)
|
||||
|
||||
|
|
@ -35808,7 +36249,8 @@ typedef struct {
|
|||
A_UINT32 num_peers;
|
||||
/* vdev_var:
|
||||
* The MSb (bit 31) indicates that the vdev_id is valid.
|
||||
* The LSB is used to infer the actual vdev_id.
|
||||
* Bit 30 indicates that the puncture bitmap is valid.
|
||||
* The LSB (bits 0-7) is used to infer the actual vdev_id.
|
||||
* The other bits can be used for future enhancements.
|
||||
*/
|
||||
A_UINT32 vdev_var;
|
||||
|
|
@ -37400,6 +37842,13 @@ typedef struct {
|
|||
wmi_mac_addr bssid; /** bssid of the rogue ap */
|
||||
} wmi_pdev_rap_info_event_fixed_param;
|
||||
|
||||
typedef struct {
|
||||
A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_sched_tidq_susp_info_event_fixed_param */
|
||||
A_UINT32 pdev_id; /** pdev id */
|
||||
A_UINT32 tid_num; /** tid_num that is suspended */
|
||||
A_UINT32 suspended_time_ms; /** time for which tid has been suspended in ms */
|
||||
} wmi_pdev_sched_tidq_susp_info_event_fixed_param;
|
||||
|
||||
/*
|
||||
* WMI API for Firmware to indicate iface combinations which Firmware
|
||||
* support to Host
|
||||
|
|
@ -37842,7 +38291,7 @@ typedef struct {
|
|||
#define WMI_CFR_GROUP_DATA_SUBTYPE_VALID_BIT_POS 8
|
||||
|
||||
/* The bits in this mask mapped to WMI_PEER_CFR_CAPTURE_BW enum */
|
||||
#define WMI_CFR_GROUP_BW_MASK_NUM_BITS 5
|
||||
#define WMI_CFR_GROUP_BW_MASK_NUM_BITS 6
|
||||
#define WMI_CFR_GROUP_BW_BIT_POS 0
|
||||
|
||||
/* The bits in this mask correspond to the values as below
|
||||
|
|
@ -39062,6 +39511,7 @@ typedef struct {
|
|||
|
||||
typedef enum wmi_mlo_tear_down_reason_code_type {
|
||||
WMI_MLO_TEARDOWN_SSR_REASON,
|
||||
WMI_MLO_TEARDOWN_HOST_INITIATED_REASON,
|
||||
} WMI_MLO_TEARDOWN_REASON_TYPE;
|
||||
|
||||
typedef struct {
|
||||
|
|
@ -39608,6 +40058,13 @@ typedef struct
|
|||
A_UINT32 cwmax;
|
||||
} wmi_qos_params_t;
|
||||
|
||||
typedef struct {
|
||||
A_UINT32 tlv_header;
|
||||
A_UINT32 vdev_id;
|
||||
A_UINT32 tidmap; /* Bitmap specifying the TIDs for which prohibit would be set/unset */
|
||||
A_UINT32 prohibit_enable; /* 0 for Disable, 1 for Enable */
|
||||
} wmi_vdev_param_enable_sr_prohibit_fixed_param;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
/** Channel frequency in MHz */
|
||||
|
|
|
|||
|
|
@ -37,7 +37,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_ 1188
|
||||
#define __WMI_REVISION_ 1214
|
||||
|
||||
/** The Version Namespace should not be normally changed. Only
|
||||
* host and firmware of the same WMI namespace will work
|
||||
|
|
|
|||
106
drivers/staging/fw-api/hw/qca5332/HALcomdef.h
Normal file
106
drivers/staging/fw-api/hw/qca5332/HALcomdef.h
Normal file
|
|
@ -0,0 +1,106 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifndef HAL_COMDEF_H
|
||||
#define HAL_COMDEF_H
|
||||
|
||||
/*
|
||||
* Assembly wrapper
|
||||
*/
|
||||
#ifndef _ARM_ASM_
|
||||
|
||||
/*
|
||||
* C++ wrapper
|
||||
*/
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include "com_dtypes.h"
|
||||
|
||||
/* -----------------------------------------------------------------------
|
||||
** Types
|
||||
** ----------------------------------------------------------------------- */
|
||||
|
||||
/*
|
||||
* Standard integer types.
|
||||
*
|
||||
* bool32 - boolean, 32 bit (TRUE or FALSE)
|
||||
*/
|
||||
#ifndef _BOOL32_DEFINED
|
||||
typedef unsigned long int bool32;
|
||||
#define _BOOL32_DEFINED
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Macro to allow forcing an enum to 32 bits. The argument should be
|
||||
* an identifier in the namespace of the enumeration in question, i.e.
|
||||
* for the clk HAL we might use HAL_ENUM_32BITS(CLK_xxx).
|
||||
*/
|
||||
#define HAL_ENUM_32BITS(x) HAL_##x##_FORCE32BITS = 0x7FFFFFFF
|
||||
|
||||
/*===========================================================================
|
||||
|
||||
FUNCTION inp, outp, inpw, outpw, inpdw, outpdw
|
||||
|
||||
DESCRIPTION
|
||||
IN/OUT port macros for byte and word ports, typically inlined by compilers
|
||||
which support these routines
|
||||
|
||||
PARAMETERS
|
||||
inp( xx_addr )
|
||||
inpw( xx_addr )
|
||||
inpdw( xx_addr )
|
||||
outp( xx_addr, xx_byte_val )
|
||||
outpw( xx_addr, xx_word_val )
|
||||
outpdw( xx_addr, xx_dword_val )
|
||||
xx_addr - Address of port to read or write (may be memory mapped)
|
||||
xx_byte_val - 8 bit value to write
|
||||
xx_word_val - 16 bit value to write
|
||||
xx_dword_val - 32 bit value to write
|
||||
|
||||
DEPENDENCIES
|
||||
None
|
||||
|
||||
RETURN VALUE
|
||||
inp/inpw/inpdw: the byte, word or dword read from the given address
|
||||
outp/outpw/outpdw: the byte, word or dword written to the given address
|
||||
|
||||
SIDE EFFECTS
|
||||
None.
|
||||
|
||||
===========================================================================*/
|
||||
|
||||
/* ARM based targets use memory mapped i/o, so the inp/outp calls are
|
||||
** macroized to access memory directly
|
||||
*/
|
||||
|
||||
#define inp(port) (*((volatile byte *) (port)))
|
||||
#define inpw(port) (*((volatile word *) (port)))
|
||||
#define inpdw(port) (*((volatile dword *)(port)))
|
||||
|
||||
#define outp(port, val) (*((volatile byte *) (port)) = ((byte) (val)))
|
||||
#define outpw(port, val) (*((volatile word *) (port)) = ((word) (val)))
|
||||
#define outpdw(port, val) (*((volatile dword *) (port)) = ((dword) (val)))
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* !_ARM_ASM_ */
|
||||
|
||||
#endif /* HAL_COMDEF_H */
|
||||
|
||||
482
drivers/staging/fw-api/hw/qca5332/HALhwio.h
Normal file
482
drivers/staging/fw-api/hw/qca5332/HALhwio.h
Normal file
|
|
@ -0,0 +1,482 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifndef HAL_HWIO_H
|
||||
#define HAL_HWIO_H
|
||||
|
||||
/*=========================================================================
|
||||
Include Files
|
||||
==========================================================================*/
|
||||
|
||||
|
||||
/*
|
||||
* Common types.
|
||||
*/
|
||||
#include "HALcomdef.h"
|
||||
|
||||
|
||||
|
||||
/* -----------------------------------------------------------------------
|
||||
** Macros
|
||||
** ----------------------------------------------------------------------- */
|
||||
|
||||
/**
|
||||
@addtogroup macros
|
||||
@{
|
||||
*/
|
||||
|
||||
/**
|
||||
* Map a base name to the pointer to access the base.
|
||||
*
|
||||
* This macro maps a base name to the pointer to access the base.
|
||||
* This is generally just used internally.
|
||||
*
|
||||
*/
|
||||
#define HWIO_BASE_PTR(base) base##_BASE_PTR
|
||||
|
||||
|
||||
/**
|
||||
* Declare a HWIO base pointer.
|
||||
*
|
||||
* This macro will declare a HWIO base pointer data structure. The pointer
|
||||
* will always be declared as a weak symbol so multiple declarations will
|
||||
* resolve correctly to the same data at link-time.
|
||||
*/
|
||||
#ifdef __ARMCC_VERSION
|
||||
#define DECLARE_HWIO_BASE_PTR(base) __weak uint8 *HWIO_BASE_PTR(base)
|
||||
#else
|
||||
#define DECLARE_HWIO_BASE_PTR(base) uint8 *HWIO_BASE_PTR(base)
|
||||
#endif
|
||||
|
||||
/**
|
||||
@}
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_WHAL_MM
|
||||
#define SEQ_WCSS_WCMN_OFFSET SEQ_WCSS_TOP_CMN_OFFSET
|
||||
#define SEQ_WCSS_PMM_OFFSET SEQ_WCSS_PMM_TOP_OFFSET
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
@addtogroup hwio_macros
|
||||
@{
|
||||
*/
|
||||
|
||||
/**
|
||||
* @name Address Macros
|
||||
*
|
||||
* Macros for getting register addresses.
|
||||
* These macros are used for retrieving the address of a register.
|
||||
* HWIO_ADDR* will return the directly accessible address (virtual or physical based
|
||||
* on environment), HWIO_PHYS* will always return the physical address.
|
||||
* The offset from the base region can be retrieved using HWIO_OFFS*.
|
||||
* The "X" extension is used for explicit addressing where the base address of
|
||||
* the module in question is provided as an argument to the macro.
|
||||
*
|
||||
* @{
|
||||
*/
|
||||
#define HWIO_ADDR(hwiosym) __msmhwio_addr(hwiosym)
|
||||
#define HWIO_ADDRI(hwiosym, index) __msmhwio_addri(hwiosym, index)
|
||||
#define HWIO_ADDRI2(hwiosym, index1, index2) __msmhwio_addri2(hwiosym, index1, index2)
|
||||
#define HWIO_ADDRI3(hwiosym, index1, index2, index3) __msmhwio_addri3(hwiosym, index1, index2, index3)
|
||||
|
||||
#define HWIO_ADDRX(base, hwiosym) __msmhwio_addrx(base, hwiosym)
|
||||
#define HWIO_ADDRXI(base, hwiosym, index) __msmhwio_addrxi(base, hwiosym, index)
|
||||
#define HWIO_ADDRXI2(base, hwiosym, index1, index2) __msmhwio_addrxi2(base, hwiosym, index1, index2)
|
||||
#define HWIO_ADDRXI3(base, hwiosym, index1, index2, index3) __msmhwio_addrxi3(base, hwiosym, index1, index2, index3)
|
||||
|
||||
#define HWIO_PHYS(hwiosym) __msmhwio_phys(hwiosym)
|
||||
#define HWIO_PHYSI(hwiosym, index) __msmhwio_physi(hwiosym, index)
|
||||
#define HWIO_PHYSI2(hwiosym, index1, index2) __msmhwio_physi2(hwiosym, index1, index2)
|
||||
#define HWIO_PHYSI3(hwiosym, index1, index2, index3) __msmhwio_physi3(hwiosym, index1, index2, index3)
|
||||
|
||||
#define HWIO_PHYSX(base, hwiosym) __msmhwio_physx(base, hwiosym)
|
||||
#define HWIO_PHYSXI(base, hwiosym, index) __msmhwio_physxi(base, hwiosym, index)
|
||||
#define HWIO_PHYSXI2(base, hwiosym, index1, index2) __msmhwio_physxi2(base, hwiosym, index1, index2)
|
||||
#define HWIO_PHYSXI3(base, hwiosym, index1, index2, index3) __msmhwio_physxi3(base, hwiosym, index1, index2, index3)
|
||||
|
||||
#define HWIO_OFFS(hwiosym) __msmhwio_offs(hwiosym)
|
||||
#define HWIO_OFFSI(hwiosym, index) __msmhwio_offsi(hwiosym, index)
|
||||
#define HWIO_OFFSI2(hwiosym, index1, index2) __msmhwio_offsi2(hwiosym, index1, index2)
|
||||
#define HWIO_OFFSI3(hwiosym, index1, index2, index3) __msmhwio_offsi3(hwiosym, index1, index2, index3)
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* @name Input Macros
|
||||
*
|
||||
* These macros are used for reading from a named hardware register. Register
|
||||
* arrays ("indexed") use the macros with the "I" suffix. The "M" suffix
|
||||
* indicates that the input will be masked with the supplied mask. The HWIO_INF*
|
||||
* macros take a field name and will do the appropriate masking and shifting
|
||||
* to return just the value of that field.
|
||||
* The "X" extension is used for explicit addressing where the base address of
|
||||
* the module in question is provided as an argument to the macro.
|
||||
*
|
||||
* Generally you want to use either HWIO_IN or HWIO_INF (with required indexing).
|
||||
*
|
||||
* @{
|
||||
*/
|
||||
#define HWIO_IN(hwiosym) __msmhwio_in(hwiosym)
|
||||
#define HWIO_INI(hwiosym, index) __msmhwio_ini(hwiosym, index)
|
||||
#define HWIO_INI2(hwiosym, index1, index2) __msmhwio_ini2(hwiosym, index1, index2)
|
||||
#define HWIO_INI3(hwiosym, index1, index2, index3) __msmhwio_ini3(hwiosym, index1, index2, index3)
|
||||
|
||||
#define HWIO_INM(hwiosym, mask) __msmhwio_inm(hwiosym, mask)
|
||||
#define HWIO_INMI(hwiosym, index, mask) __msmhwio_inmi(hwiosym, index, mask)
|
||||
#define HWIO_INMI2(hwiosym, index1, index2, mask) __msmhwio_inmi2(hwiosym, index1, index2, mask)
|
||||
#define HWIO_INMI3(hwiosym, index1, index2, index3, mask) __msmhwio_inmi3(hwiosym, index1, index2, index3, mask)
|
||||
|
||||
#define HWIO_INF(io, field) (HWIO_INM(io, HWIO_FMSK(io, field)) >> HWIO_SHFT(io, field))
|
||||
#define HWIO_INFI(io, index, field) (HWIO_INMI(io, index, HWIO_FMSK(io, field)) >> HWIO_SHFT(io, field))
|
||||
#define HWIO_INFI2(io, index1, index2, field) (HWIO_INMI2(io, index1, index2, HWIO_FMSK(io, field)) >> HWIO_SHFT(io, field))
|
||||
#define HWIO_INFI3(io, index1, index2, index3, field) (HWIO_INMI3(io, index1, index2, index3, HWIO_FMSK(io, field)) >> HWIO_SHFT(io, field))
|
||||
|
||||
#define HWIO_INX(base, hwiosym) __msmhwio_inx(base, hwiosym)
|
||||
#define HWIO_INXI(base, hwiosym, index) __msmhwio_inxi(base, hwiosym, index)
|
||||
#define HWIO_INXI2(base, hwiosym, index1, index2) __msmhwio_inxi2(base, hwiosym, index1, index2)
|
||||
#define HWIO_INXI3(base, hwiosym, index1, index2, index3) __msmhwio_inxi3(base, hwiosym, index1, index2, index3)
|
||||
|
||||
#define HWIO_INXM(base, hwiosym, mask) __msmhwio_inxm(base, hwiosym, mask)
|
||||
#define HWIO_INXMI(base, hwiosym, index, mask) __msmhwio_inxmi(base, hwiosym, index, mask)
|
||||
#define HWIO_INXMI2(base, hwiosym, index1, index2, mask) __msmhwio_inxmi2(base, hwiosym, index1, index2, mask)
|
||||
#define HWIO_INXMI3(base, hwiosym, index1, index2, index3, mask) __msmhwio_inxmi3(base, hwiosym, index1, index2, index3, mask)
|
||||
|
||||
#define HWIO_INXF(base, io, field) (HWIO_INXM(base, io, HWIO_FMSK(io, field)) >> HWIO_SHFT(io, field))
|
||||
#define HWIO_INXFI(base, io, index, field) (HWIO_INXMI(base, io, index, HWIO_FMSK(io, field)) >> HWIO_SHFT(io, field))
|
||||
#define HWIO_INXFI2(base, io, index1, index2, field) (HWIO_INXMI2(base, io, index1, index2, HWIO_FMSK(io, field)) >> HWIO_SHFT(io, field))
|
||||
#define HWIO_INXFI3(base, io, index1, index2, index3, field) (HWIO_INXMI3(base, io, index1, index2, index3, HWIO_FMSK(io, field)) >> HWIO_SHFT(io, field))
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* @name Output Macros
|
||||
*
|
||||
* These macros are used for writing to a named hardware register. Register
|
||||
* arrays ("indexed") use the macros with the "I" suffix. The "M" suffix
|
||||
* indicates that the output will be masked with the supplied mask (meaning these
|
||||
* macros do a read first, mask in the supplied data, then write it back).
|
||||
* The "X" extension is used for explicit addressing where the base address of
|
||||
* the module in question is provided as an argument to the macro.
|
||||
* The HWIO_OUTF* macros take a field name and will do the appropriate masking
|
||||
* and shifting to output just the value of that field.
|
||||
* HWIO_OUTV* registers take a named value instead of a numeric value and
|
||||
* do the same masking/shifting as HWIO_OUTF.
|
||||
*
|
||||
* Generally you want to use either HWIO_OUT or HWIO_OUTF (with required indexing).
|
||||
*
|
||||
* @{
|
||||
*/
|
||||
#define HWIO_OUT(hwiosym, val) __msmhwio_out(hwiosym, val)
|
||||
#define HWIO_OUTI(hwiosym, index, val) __msmhwio_outi(hwiosym, index, val)
|
||||
#define HWIO_OUTI2(hwiosym, index1, index2, val) __msmhwio_outi2(hwiosym, index1, index2, val)
|
||||
#define HWIO_OUTI3(hwiosym, index1, index2, index3, val) __msmhwio_outi3(hwiosym, index1, index2, index3, val)
|
||||
|
||||
#define HWIO_OUTM(hwiosym, mask, val) __msmhwio_outm(hwiosym, mask, val)
|
||||
#define HWIO_OUTMI(hwiosym, index, mask, val) __msmhwio_outmi(hwiosym, index, mask, val)
|
||||
#define HWIO_OUTMI2(hwiosym, index1, index2, mask, val) __msmhwio_outmi2(hwiosym, index1, index2, mask, val)
|
||||
#define HWIO_OUTMI3(hwiosym, index1, index2, index3, mask, val) __msmhwio_outmi3(hwiosym, index1, index2, index3, mask, val)
|
||||
|
||||
#define HWIO_OUTF(io, field, val) HWIO_OUTM(io, HWIO_FMSK(io, field), (uint32)(val) << HWIO_SHFT(io, field))
|
||||
#define HWIO_OUTFI(io, index, field, val) HWIO_OUTMI(io, index, HWIO_FMSK(io, field), (uint32)(val) << HWIO_SHFT(io, field))
|
||||
#define HWIO_OUTFI2(io, index1, index2, field, val) HWIO_OUTMI2(io, index1, index2, HWIO_FMSK(io, field), (uint32)(val) << HWIO_SHFT(io, field))
|
||||
#define HWIO_OUTFI3(io, index1, index2, index3, field, val) HWIO_OUTMI3(io, index1, index2, index3, HWIO_FMSK(io, field), (uint32)(val) << HWIO_SHFT(io, field))
|
||||
|
||||
#define HWIO_OUTV(io, field, val) HWIO_OUTM(io, HWIO_FMSK(io, field), (uint32)(HWIO_VAL(io, field, val)) << HWIO_SHFT(io, field))
|
||||
#define HWIO_OUTVI(io, index, field, val) HWIO_OUTMI(io, index, HWIO_FMSK(io, field), (uint32)(HWIO_VAL(io, field, val)) << HWIO_SHFT(io, field))
|
||||
#define HWIO_OUTVI2(io, index1, index2, field, val) HWIO_OUTMI2(io, index1, index2, HWIO_FMSK(io, field), (uint32)(HWIO_VAL(io, field, val)) << HWIO_SHFT(io, field))
|
||||
#define HWIO_OUTVI3(io, index1, index2, index3, field, val) HWIO_OUTMI3(io, index1, index2, index3, HWIO_FMSK(io, field), (uint32)(HWIO_VAL(io, field, val)) << HWIO_SHFT(io, field))
|
||||
|
||||
#define HWIO_OUTX(base, hwiosym, val) __msmhwio_outx(base, hwiosym, val)
|
||||
#define HWIO_OUTXI(base, hwiosym, index, val) __msmhwio_outxi(base, hwiosym, index, val)
|
||||
#define HWIO_OUTXI2(base, hwiosym, index1, index2, val) __msmhwio_outxi2(base, hwiosym, index1, index2, val)
|
||||
#define HWIO_OUTXI3(base, hwiosym, index1, index2, index3, val) __msmhwio_outxi3(base, hwiosym, index1, index2, index3, val)
|
||||
|
||||
#define HWIO_OUTXM(base, hwiosym, mask, val) __msmhwio_outxm(base, hwiosym, mask, val)
|
||||
#define HWIO_OUTXM2(base, hwiosym, mask1, mask2, val1, val2) __msmhwio_outxm2(base, hwiosym, mask1, mask2, val1, val2)
|
||||
#define HWIO_OUTXM3(base, hwiosym, mask1, mask2, mask3, val1, val2, val3) __msmhwio_outxm3(base, hwiosym, mask1, mask2, mask3, val1, val2, val3)
|
||||
#define HWIO_OUTXM4(base, hwiosym, mask1, mask2, mask3, mask4, val1, val2, val3, val4) __msmhwio_outxm4(base, hwiosym, mask1, mask2, mask3, mask4, val1, val2, val3, val4)
|
||||
#define HWIO_OUTXMI(base, hwiosym, index, mask, val) __msmhwio_outxmi(base, hwiosym, index, mask, val)
|
||||
#define HWIO_OUTXMI2(base, hwiosym, index1, index2, mask, val) __msmhwio_outxmi2(base, hwiosym, index1, index2, mask, val)
|
||||
#define HWIO_OUTXMI3(base, hwiosym, index1, index2, index3, mask, val) __msmhwio_outxmi3(base, hwiosym, index1, index2, index3, mask, val)
|
||||
|
||||
#define HWIO_OUTXF(base, io, field, val) HWIO_OUTXM(base, io, HWIO_FMSK(io, field), (uint32)(val) << HWIO_SHFT(io, field))
|
||||
#define HWIO_OUTX2F(base, io, field1, field2, val1, val2) HWIO_OUTXM2(base, io, HWIO_FMSK(io, field1), HWIO_FMSK(io, field2), (uint32)(val1) << HWIO_SHFT(io, field1), (uint32)(val2) << HWIO_SHFT(io, field2))
|
||||
#define HWIO_OUTX3F(base, io, field1, field2, field3, val1, val2, val3) HWIO_OUTXM3(base, io, HWIO_FMSK(io, field1), HWIO_FMSK(io, field2), HWIO_FMSK(io, field3),(uint32)(val1) << HWIO_SHFT(io, field1), (uint32)(val2) << HWIO_SHFT(io, field2), (uint32)(val3) << HWIO_SHFT(io, field3) )
|
||||
#define HWIO_OUTX4F(base, io, field1, field2, field3, field4, val1, val2, val3, val4) HWIO_OUTXM4(base, io, HWIO_FMSK(io, field1), HWIO_FMSK(io, field2), HWIO_FMSK(io, field3), HWIO_FMSK(io, field4), (uint32)(val1) << HWIO_SHFT(io, field1) , (uint32)(val2) << HWIO_SHFT(io, field2), (uint32)(val3) << HWIO_SHFT(io, field3), (uint32)(val4) << HWIO_SHFT(io, field4) )
|
||||
|
||||
#define HWIO_OUTXFI(base, io, index, field, val) HWIO_OUTXMI(base, io, index, HWIO_FMSK(io, field), (uint32)(val) << HWIO_SHFT(io, field))
|
||||
#define HWIO_OUTXFI2(base, io, index1, index2, field, val) HWIO_OUTXMI2(base, io, index1, index2, HWIO_FMSK(io, field), (uint32)(val) << HWIO_SHFT(io, field))
|
||||
#define HWIO_OUTXFI3(base, io, index1, index2, index3, field, val) HWIO_OUTXMI3(base, io, index1, index2, index3, HWIO_FMSK(io, field), (uint32)(val) << HWIO_SHFT(io, field))
|
||||
|
||||
#define HWIO_OUTXV(base, io, field, val) HWIO_OUTXM(base, io, HWIO_FMSK(io, field), (uint32)(HWIO_VAL(io, field, val)) << HWIO_SHFT(io, field))
|
||||
#define HWIO_OUTXVI(base, io, index, field, val) HWIO_OUTXMI(base, io, index, HWIO_FMSK(io, field), (uint32)(HWIO_VAL(io, field, val)) << HWIO_SHFT(io, field))
|
||||
#define HWIO_OUTXVI2(base, io, index1, index2, field, val) HWIO_OUTXMI2(base, io, index1, index2, HWIO_FMSK(io, field), (uint32)(HWIO_VAL(io, field, val)) << HWIO_SHFT(io, field))
|
||||
#define HWIO_OUTXVI3(base, io, index1, index2, index3, field, val) HWIO_OUTXMI3(base, io, index1, index2, index3, HWIO_FMSK(io, field), (uint32)(HWIO_VAL(io, field, val)) << HWIO_SHFT(io, field))
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* @name Shift and Mask Macros
|
||||
*
|
||||
* Macros for getting shift and mask values for fields and registers.
|
||||
* HWIO_RMSK: The mask value for accessing an entire register. For example:
|
||||
* @code
|
||||
* HWIO_RMSK(REG) -> 0xFFFFFFFF
|
||||
* @endcode
|
||||
* HWIO_RSHFT: The right-shift value for an entire register (rarely necessary).\n
|
||||
* HWIO_SHFT: The right-shift value for accessing a field in a register. For example:
|
||||
* @code
|
||||
* HWIO_SHFT(REG, FLD) -> 8
|
||||
* @endcode
|
||||
* HWIO_FMSK: The mask value for accessing a field in a register. For example:
|
||||
* @code
|
||||
* HWIO_FMSK(REG, FLD) -> 0xFF00
|
||||
* @endcode
|
||||
* HWIO_VAL: The value for a field in a register. For example:
|
||||
* @code
|
||||
* HWIO_VAL(REG, FLD, ON) -> 0x1
|
||||
* @endcode
|
||||
* HWIO_FVAL: This macro takes a numerical value and will shift and mask it into
|
||||
* the given field position. For example:
|
||||
* @code
|
||||
* HWIO_FVAL(REG, FLD, 0x1) -> 0x100
|
||||
* @endcode
|
||||
* HWIO_FVALV: This macro takes a logical (named) value and will shift and mask it
|
||||
* into the given field position. For example:
|
||||
* @code
|
||||
* HWIO_FVALV(REG, FLD, ON) -> 0x100
|
||||
* @endcode
|
||||
*
|
||||
* @{
|
||||
*/
|
||||
#define HWIO_RMSK(hwiosym) __msmhwio_rmsk(hwiosym)
|
||||
#define HWIO_RMSKI(hwiosym, index) __msmhwio_rmski(hwiosym, index)
|
||||
#define HWIO_RSHFT(hwiosym) __msmhwio_rshft(hwiosym)
|
||||
#define HWIO_SHFT(hwio_regsym, hwio_fldsym) __msmhwio_shft(hwio_regsym, hwio_fldsym)
|
||||
#define HWIO_FMSK(hwio_regsym, hwio_fldsym) __msmhwio_fmsk(hwio_regsym, hwio_fldsym)
|
||||
#define HWIO_VAL(io, field, val) __msmhwio_val(io, field, val)
|
||||
#define HWIO_FVAL(io, field, val) (((uint32)(val) << HWIO_SHFT(io, field)) & HWIO_FMSK(io, field))
|
||||
#define HWIO_FVALV(io, field, val) (((uint32)(HWIO_VAL(io, field, val)) << HWIO_SHFT(io, field)) & HWIO_FMSK(io, field))
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* @name Shadow Register Macros
|
||||
*
|
||||
* These macros are used for directly reading the value stored in a
|
||||
* shadow register.
|
||||
* Shadow registers are defined for write-only registers. Generally these
|
||||
* macros should not be necessary as HWIO_OUTM* macros will automatically use
|
||||
* the shadow values internally.
|
||||
*
|
||||
* @{
|
||||
*/
|
||||
#define HWIO_SHDW(hwiosym) __msmhwio_shdw(hwiosym)
|
||||
#define HWIO_SHDWI(hwiosym, index) __msmhwio_shdwi(hwiosym, index)
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
@}
|
||||
*/ /* end_group */
|
||||
|
||||
|
||||
/** @cond */
|
||||
|
||||
/*
|
||||
* Map to final symbols. This remapping is done to allow register
|
||||
* redefinitions. If we just define HWIO_IN(xreg) as HWIO_##xreg##_IN
|
||||
* then remappings like "#define xreg xregnew" do not work as expected.
|
||||
*/
|
||||
#define __msmhwio_in(hwiosym) HWIO_##hwiosym##_IN
|
||||
#define __msmhwio_ini(hwiosym, index) HWIO_##hwiosym##_INI(index)
|
||||
#define __msmhwio_ini2(hwiosym, index1, index2) HWIO_##hwiosym##_INI2(index1, index2)
|
||||
#define __msmhwio_ini3(hwiosym, index1, index2, index3) HWIO_##hwiosym##_INI3(index1, index2, index3)
|
||||
#define __msmhwio_inm(hwiosym, mask) HWIO_##hwiosym##_INM(mask)
|
||||
#define __msmhwio_inmi(hwiosym, index, mask) HWIO_##hwiosym##_INMI(index, mask)
|
||||
#define __msmhwio_inmi2(hwiosym, index1, index2, mask) HWIO_##hwiosym##_INMI2(index1, index2, mask)
|
||||
#define __msmhwio_inmi3(hwiosym, index1, index2, index3, mask) HWIO_##hwiosym##_INMI3(index1, index2, index3, mask)
|
||||
#define __msmhwio_out(hwiosym, val) HWIO_##hwiosym##_OUT(val)
|
||||
#define __msmhwio_outi(hwiosym, index, val) HWIO_##hwiosym##_OUTI(index,val)
|
||||
#define __msmhwio_outi2(hwiosym, index1, index2, val) HWIO_##hwiosym##_OUTI2(index1, index2, val)
|
||||
#define __msmhwio_outi3(hwiosym, index1, index2, index3, val) HWIO_##hwiosym##_OUTI2(index1, index2, index3, val)
|
||||
#define __msmhwio_outm(hwiosym, mask, val) HWIO_##hwiosym##_OUTM(mask, val)
|
||||
#define __msmhwio_outmi(hwiosym, index, mask, val) HWIO_##hwiosym##_OUTMI(index, mask, val)
|
||||
#define __msmhwio_outmi2(hwiosym, idx1, idx2, mask, val) HWIO_##hwiosym##_OUTMI2(idx1, idx2, mask, val)
|
||||
#define __msmhwio_outmi3(hwiosym, idx1, idx2, idx3, mask, val) HWIO_##hwiosym##_OUTMI3(idx1, idx2, idx3, mask, val)
|
||||
#define __msmhwio_addr(hwiosym) HWIO_##hwiosym##_ADDR
|
||||
#define __msmhwio_addri(hwiosym, index) HWIO_##hwiosym##_ADDR(index)
|
||||
#define __msmhwio_addri2(hwiosym, idx1, idx2) HWIO_##hwiosym##_ADDR(idx1, idx2)
|
||||
#define __msmhwio_addri3(hwiosym, idx1, idx2, idx3) HWIO_##hwiosym##_ADDR(idx1, idx2, idx3)
|
||||
#define __msmhwio_phys(hwiosym) HWIO_##hwiosym##_PHYS
|
||||
#define __msmhwio_physi(hwiosym, index) HWIO_##hwiosym##_PHYS(index)
|
||||
#define __msmhwio_physi2(hwiosym, idx1, idx2) HWIO_##hwiosym##_PHYS(idx1, idx2)
|
||||
#define __msmhwio_physi3(hwiosym, idx1, idx2, idx3) HWIO_##hwiosym##_PHYS(idx1, idx2, idx3)
|
||||
#define __msmhwio_offs(hwiosym) HWIO_##hwiosym##_OFFS
|
||||
#define __msmhwio_offsi(hwiosym, index) HWIO_##hwiosym##_OFFS(index)
|
||||
#define __msmhwio_offsi2(hwiosym, idx1, idx2) HWIO_##hwiosym##_OFFS(idx1, idx2)
|
||||
#define __msmhwio_offsi3(hwiosym, idx1, idx2, idx3) HWIO_##hwiosym##_OFFS(idx1, idx2, idx3)
|
||||
#define __msmhwio_rmsk(hwiosym) HWIO_##hwiosym##_RMSK
|
||||
#define __msmhwio_rmski(hwiosym, index) HWIO_##hwiosym##_RMSK(index)
|
||||
#define __msmhwio_fmsk(hwiosym, hwiofldsym) HWIO_##hwiosym##_##hwiofldsym##_BMSK
|
||||
#define __msmhwio_rshft(hwiosym) HWIO_##hwiosym##_SHFT
|
||||
#define __msmhwio_shft(hwiosym, hwiofldsym) HWIO_##hwiosym##_##hwiofldsym##_SHFT
|
||||
#define __msmhwio_shdw(hwiosym) HWIO_##hwiosym##_shadow
|
||||
#define __msmhwio_shdwi(hwiosym, index) HWIO_##hwiosym##_SHDW(index)
|
||||
#define __msmhwio_val(hwiosym, hwiofld, hwioval) HWIO_##hwiosym##_##hwiofld##_##hwioval##_FVAL
|
||||
|
||||
#define __msmhwio_inx(base, hwiosym) HWIO_##hwiosym##_IN(base)
|
||||
#define __msmhwio_inxi(base, hwiosym, index) HWIO_##hwiosym##_INI(base, index)
|
||||
#define __msmhwio_inxi2(base, hwiosym, index1, index2) HWIO_##hwiosym##_INI2(base, index1, index2)
|
||||
#define __msmhwio_inxi3(base, hwiosym, index1, index2, index3) HWIO_##hwiosym##_INI3(base, index1, index2, index3)
|
||||
#define __msmhwio_inxm(base, hwiosym, mask) HWIO_##hwiosym##_INM(base, mask)
|
||||
#define __msmhwio_inxmi(base, hwiosym, index, mask) HWIO_##hwiosym##_INMI(base, index, mask)
|
||||
#define __msmhwio_inxmi2(base, hwiosym, index1, index2, mask) HWIO_##hwiosym##_INMI2(base, index1, index2, mask)
|
||||
#define __msmhwio_inxmi3(base, hwiosym, index1, index2, index3, mask) HWIO_##hwiosym##_INMI3(base, index1, index2, index3, mask)
|
||||
#define __msmhwio_outx(base, hwiosym, val) HWIO_##hwiosym##_OUT(base, val)
|
||||
#define __msmhwio_outxi(base, hwiosym, index, val) HWIO_##hwiosym##_OUTI(base, index,val)
|
||||
#define __msmhwio_outxi2(base, hwiosym, index1, index2, val) HWIO_##hwiosym##_OUTI2(base, index1, index2, val)
|
||||
#define __msmhwio_outxi3(base, hwiosym, index1, index2, index3, val) HWIO_##hwiosym##_OUTI2(base, index1, index2, index3, val)
|
||||
#define __msmhwio_outxm(base, hwiosym, mask, val) HWIO_##hwiosym##_OUTM(base, mask, val)
|
||||
#define __msmhwio_outxm2(base, hwiosym, mask1, mask2, val1, val2) { \
|
||||
HWIO_##hwiosym##_OUTM(base, mask1, val1); \
|
||||
HWIO_##hwiosym##_OUTM(base, mask2, val2); \
|
||||
}
|
||||
#define __msmhwio_outxm3(base, hwiosym, mask1, mask2, mask3, val1, val2, val3) { \
|
||||
HWIO_##hwiosym##_OUTM(base, mask1, val1); \
|
||||
HWIO_##hwiosym##_OUTM(base, mask2, val2); \
|
||||
HWIO_##hwiosym##_OUTM(base, mask3, val3); \
|
||||
}
|
||||
#define __msmhwio_outxm4(base, hwiosym, mask1, mask2, mask3, mask4, val1, val2, val3, val4) { \
|
||||
HWIO_##hwiosym##_OUTM(base, mask1, val1); \
|
||||
HWIO_##hwiosym##_OUTM(base, mask2, val2); \
|
||||
HWIO_##hwiosym##_OUTM(base, mask3, val3); \
|
||||
HWIO_##hwiosym##_OUTM(base, mask4, val4); \
|
||||
}
|
||||
|
||||
|
||||
#define __msmhwio_outxmi(base, hwiosym, index, mask, val) HWIO_##hwiosym##_OUTMI(base, index, mask, val)
|
||||
#define __msmhwio_outxmi2(base, hwiosym, idx1, idx2, mask, val) HWIO_##hwiosym##_OUTMI2(base, idx1, idx2, mask, val)
|
||||
#define __msmhwio_outxmi3(base, hwiosym, idx1, idx2, idx3, mask, val) HWIO_##hwiosym##_OUTMI3(base, idx1, idx2, idx3, mask, val)
|
||||
#define __msmhwio_addrx(base, hwiosym) HWIO_##hwiosym##_ADDR(base)
|
||||
#define __msmhwio_addrxi(base, hwiosym, index) HWIO_##hwiosym##_ADDR(base, index)
|
||||
#define __msmhwio_addrxi2(base, hwiosym, idx1, idx2) HWIO_##hwiosym##_ADDR(base, idx1, idx2)
|
||||
#define __msmhwio_addrxi3(base, hwiosym, idx1, idx2, idx3) HWIO_##hwiosym##_ADDR(base, idx1, idx2, idx3)
|
||||
#define __msmhwio_physx(base, hwiosym) HWIO_##hwiosym##_PHYS(base)
|
||||
#define __msmhwio_physxi(base, hwiosym, index) HWIO_##hwiosym##_PHYS(base, index)
|
||||
#define __msmhwio_physxi2(base, hwiosym, idx1, idx2) HWIO_##hwiosym##_PHYS(base, idx1, idx2)
|
||||
#define __msmhwio_physxi3(base, hwiosym, idx1, idx2, idx3) HWIO_##hwiosym##_PHYS(base, idx1, idx2, idx3)
|
||||
|
||||
|
||||
/*
|
||||
* HWIO_INTLOCK
|
||||
*
|
||||
* Macro used by autogenerated code for mutual exclusion around
|
||||
* read-mask-write operations. This is not supported in HAL
|
||||
* code but can be overridden by non-HAL code.
|
||||
*/
|
||||
#define HWIO_INTLOCK()
|
||||
#define HWIO_INTFREE()
|
||||
|
||||
|
||||
/*
|
||||
* Input/output port macros for memory mapped IO.
|
||||
*/
|
||||
#define __inp(port) (*((volatile uint8 *) (port)))
|
||||
#define __inpw(port) (*((volatile uint16 *) (port)))
|
||||
#define __inpdw(port) (*((volatile uint32 *) (port)))
|
||||
#define __outp(port, val) (*((volatile uint8 *) (port)) = ((uint8) (val)))
|
||||
#define __outpw(port, val) (*((volatile uint16 *) (port)) = ((uint16) (val)))
|
||||
#define __outpdw(port, val) (*((volatile uint32 *) (port)) = ((uint32) (val)))
|
||||
|
||||
|
||||
#ifdef HAL_HWIO_EXTERNAL
|
||||
|
||||
/*
|
||||
* Replace macros with externally supplied functions.
|
||||
*/
|
||||
#undef __inp
|
||||
#undef __inpw
|
||||
#undef __inpdw
|
||||
#undef __outp
|
||||
#undef __outpw
|
||||
#undef __outpdw
|
||||
|
||||
#define __inp(port) __inp_extern((uint32) (port))
|
||||
#define __inpw(port) __inpw_extern((uint32) (port))
|
||||
#define __inpdw(port) __inpdw_extern((uint32) (port))
|
||||
#define __outp(port, val) __outp_extern((uint32) (port), val)
|
||||
#define __outpw(port, val) __outpw_extern((uint32) (port), val)
|
||||
#define __outpdw(port, val) __outpdw_extern((uint32) (port), val)
|
||||
|
||||
extern uint8 __inp_extern ( uint32 nAddr );
|
||||
extern uint16 __inpw_extern ( uint32 nAddr );
|
||||
extern uint32 __inpdw_extern ( uint32 nAddr );
|
||||
extern void __outp_extern ( uint32 nAddr, uint8 nData );
|
||||
extern void __outpw_extern ( uint32 nAddr, uint16 nData );
|
||||
extern void __outpdw_extern ( uint32 nAddr, uint32 nData );
|
||||
|
||||
#endif /* HAL_HWIO_EXTERNAL */
|
||||
|
||||
|
||||
/*
|
||||
* Base 8-bit byte accessing macros.
|
||||
*/
|
||||
#define in_byte(addr) (__inp(addr))
|
||||
#define in_byte_masked(addr, mask) (__inp(addr) & (mask))
|
||||
#define out_byte(addr, val) __outp(addr,val)
|
||||
#define out_byte_masked(io, mask, val, shadow) \
|
||||
HWIO_INTLOCK(); \
|
||||
out_byte( io, shadow); \
|
||||
shadow = (shadow & (uint16)(~(mask))) | ((uint16)((val) & (mask))); \
|
||||
HWIO_INTFREE()
|
||||
#define out_byte_masked_ns(io, mask, val, current_reg_content) \
|
||||
out_byte( io, ((current_reg_content & (uint16)(~(mask))) | \
|
||||
((uint16)((val) & (mask)))) )
|
||||
|
||||
|
||||
/*
|
||||
* Base 16-bit word accessing macros.
|
||||
*/
|
||||
#define in_word(addr) (__inpw(addr))
|
||||
#define in_word_masked(addr, mask) (__inpw(addr) & (mask))
|
||||
#define out_word(addr, val) __outpw(addr,val)
|
||||
#define out_word_masked(io, mask, val, shadow) \
|
||||
HWIO_INTLOCK( ); \
|
||||
shadow = (shadow & (uint16)(~(mask))) | ((uint16)((val) & (mask))); \
|
||||
out_word( io, shadow); \
|
||||
HWIO_INTFREE( )
|
||||
#define out_word_masked_ns(io, mask, val, current_reg_content) \
|
||||
out_word( io, ((current_reg_content & (uint16)(~(mask))) | \
|
||||
((uint16)((val) & (mask)))) )
|
||||
|
||||
|
||||
/*
|
||||
* Base 32-bit double-word accessing macros.
|
||||
*/
|
||||
#define in_dword(addr) (__inpdw(addr))
|
||||
#define in_dword_masked(addr, mask) (__inpdw(addr) & (mask))
|
||||
#define out_dword(addr, val) __outpdw(addr,val)
|
||||
#define out_dword_masked(io, mask, val, shadow) \
|
||||
HWIO_INTLOCK(); \
|
||||
shadow = (shadow & (uint32)(~(mask))) | ((uint32)((val) & (mask))); \
|
||||
out_dword( io, shadow); \
|
||||
HWIO_INTFREE()
|
||||
#define out_dword_masked_ns(io, mask, val, current_reg_content) \
|
||||
out_dword( io, ((current_reg_content & (uint32)(~(mask))) | \
|
||||
((uint32)((val) & (mask)))) )
|
||||
|
||||
/** @endcond */
|
||||
|
||||
#endif /* HAL_HWIO_H */
|
||||
|
||||
174
drivers/staging/fw-api/hw/qca5332/ack_report.h
Normal file
174
drivers/staging/fw-api/hw/qca5332/ack_report.h
Normal file
|
|
@ -0,0 +1,174 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _ACK_REPORT_H_
|
||||
#define _ACK_REPORT_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#define NUM_OF_DWORDS_ACK_REPORT 1
|
||||
|
||||
|
||||
struct ack_report {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
uint32_t selfgen_response_reason : 4, // [3:0]
|
||||
ax_trigger_type : 4, // [7:4]
|
||||
sr_ppdu : 1, // [8:8]
|
||||
reserved : 7, // [15:9]
|
||||
frame_control : 16; // [31:16]
|
||||
#else
|
||||
uint32_t frame_control : 16, // [31:16]
|
||||
reserved : 7, // [15:9]
|
||||
sr_ppdu : 1, // [8:8]
|
||||
ax_trigger_type : 4, // [7:4]
|
||||
selfgen_response_reason : 4; // [3:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description SELFGEN_RESPONSE_REASON
|
||||
|
||||
Field that indicates why the received frame needs a response
|
||||
in SIFS time. The possible responses are listed in order.
|
||||
|
||||
|
||||
<enum 0 CTS_frame>
|
||||
<enum 1 ACK_frame>
|
||||
<enum 2 BA_frame >
|
||||
<enum 3 Qboost_trigger> Qboost trigger received
|
||||
<enum 4 PSPOLL_trigger> PSPOLL trigger received
|
||||
<enum 5 UAPSD_trigger > Unscheduled APSD trigger received
|
||||
|
||||
<enum 6 CBF_frame> the CBF frame needs to be send as
|
||||
a result of NDP or BRPOLL
|
||||
<enum 7 ax_su_trigger> 11ax trigger received for this
|
||||
device
|
||||
<enum 8 ax_wildcard_trigger> 11ax wildcardtrigger has
|
||||
been received
|
||||
<enum 9 ax_unassoc_wildcard_trigger> 11ax wildcard trigger
|
||||
for unassociated STAs has been received
|
||||
<enum 12 eht_su_trigger> EHT R1 trigger received for
|
||||
this device
|
||||
|
||||
<enum 10 MU_UL_response_to_response>
|
||||
|
||||
<enum 11 Ranging_NDP_LMR_frames> Ranging NDP + LMR need
|
||||
to be sent in response to ranging NDPA + NDP
|
||||
|
||||
<legal 0-12>
|
||||
*/
|
||||
|
||||
#define ACK_REPORT_SELFGEN_RESPONSE_REASON_OFFSET 0x00000000
|
||||
#define ACK_REPORT_SELFGEN_RESPONSE_REASON_LSB 0
|
||||
#define ACK_REPORT_SELFGEN_RESPONSE_REASON_MSB 3
|
||||
#define ACK_REPORT_SELFGEN_RESPONSE_REASON_MASK 0x0000000f
|
||||
|
||||
|
||||
/* Description AX_TRIGGER_TYPE
|
||||
|
||||
Field Only valid when selfgen_response_reason is an 11ax
|
||||
related trigger
|
||||
|
||||
The 11AX trigger type/ trigger number:
|
||||
It identifies which trigger was received.
|
||||
<enum 0 ax_trigger_basic>
|
||||
<enum 1 ax_trigger_brpoll>
|
||||
<enum 2 ax_trigger_mu_bar>
|
||||
<enum 3 ax_trigger_mu_rts>
|
||||
<enum 4 ax_trigger_buffer_size>
|
||||
<enum 5 ax_trigger_gcr_mu_bar>
|
||||
<enum 6 ax_trigger_BQRP>
|
||||
<enum 7 ax_trigger_NDP_fb_report_poll>
|
||||
<enum 8 ax_tb_ranging_trigger>
|
||||
<enum 9 ax_trigger_reserved_9>
|
||||
<enum 10 ax_trigger_reserved_10>
|
||||
<enum 11 ax_trigger_reserved_11>
|
||||
<enum 12 ax_trigger_reserved_12>
|
||||
<enum 13 ax_trigger_reserved_13>
|
||||
<enum 14 ax_trigger_reserved_14>
|
||||
<enum 15 ax_trigger_reserved_15>
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define ACK_REPORT_AX_TRIGGER_TYPE_OFFSET 0x00000000
|
||||
#define ACK_REPORT_AX_TRIGGER_TYPE_LSB 4
|
||||
#define ACK_REPORT_AX_TRIGGER_TYPE_MSB 7
|
||||
#define ACK_REPORT_AX_TRIGGER_TYPE_MASK 0x000000f0
|
||||
|
||||
|
||||
/* Description SR_PPDU
|
||||
|
||||
Field only valid with SRP Responder support (not PoR in
|
||||
Moselle/Maple/Spruce)
|
||||
|
||||
Indicates if the received frame was sent using SRP as indicated
|
||||
by the 'SR PPDU' bit in the 'CAS Control' in the 'HE A-Control'
|
||||
in one of the MPDUs received
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define ACK_REPORT_SR_PPDU_OFFSET 0x00000000
|
||||
#define ACK_REPORT_SR_PPDU_LSB 8
|
||||
#define ACK_REPORT_SR_PPDU_MSB 8
|
||||
#define ACK_REPORT_SR_PPDU_MASK 0x00000100
|
||||
|
||||
|
||||
/* Description RESERVED
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define ACK_REPORT_RESERVED_OFFSET 0x00000000
|
||||
#define ACK_REPORT_RESERVED_LSB 9
|
||||
#define ACK_REPORT_RESERVED_MSB 15
|
||||
#define ACK_REPORT_RESERVED_MASK 0x0000fe00
|
||||
|
||||
|
||||
/* Description FRAME_CONTROL
|
||||
|
||||
Field not valid when selfgen_response_reason is MU_UL_response_to_response
|
||||
|
||||
|
||||
For SU receptions:
|
||||
frame control field of the received frame
|
||||
|
||||
In 11ah Mode of Operation, for non-NDP frames the BW information
|
||||
is extracted from Frame Control fields [11:8].
|
||||
|
||||
Decode is as follows
|
||||
|
||||
Bits[11] - Dynamic/Static
|
||||
Bits[10:8] - Channel BW
|
||||
*/
|
||||
|
||||
#define ACK_REPORT_FRAME_CONTROL_OFFSET 0x00000000
|
||||
#define ACK_REPORT_FRAME_CONTROL_LSB 16
|
||||
#define ACK_REPORT_FRAME_CONTROL_MSB 31
|
||||
#define ACK_REPORT_FRAME_CONTROL_MASK 0xffff0000
|
||||
|
||||
|
||||
|
||||
#endif // ACK_REPORT
|
||||
184
drivers/staging/fw-api/hw/qca5332/buffer_addr_info.h
Normal file
184
drivers/staging/fw-api/hw/qca5332/buffer_addr_info.h
Normal file
|
|
@ -0,0 +1,184 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _BUFFER_ADDR_INFO_H_
|
||||
#define _BUFFER_ADDR_INFO_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#define NUM_OF_DWORDS_BUFFER_ADDR_INFO 2
|
||||
|
||||
|
||||
struct buffer_addr_info {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
uint32_t buffer_addr_31_0 : 32; // [31:0]
|
||||
uint32_t buffer_addr_39_32 : 8, // [7:0]
|
||||
return_buffer_manager : 4, // [11:8]
|
||||
sw_buffer_cookie : 20; // [31:12]
|
||||
#else
|
||||
uint32_t buffer_addr_31_0 : 32; // [31:0]
|
||||
uint32_t sw_buffer_cookie : 20, // [31:12]
|
||||
return_buffer_manager : 4, // [11:8]
|
||||
buffer_addr_39_32 : 8; // [7:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description BUFFER_ADDR_31_0
|
||||
|
||||
Address (lower 32 bits) of the MSDU buffer OR MSDU_EXTENSION
|
||||
descriptor OR Link Descriptor
|
||||
|
||||
In case of 'NULL' pointer, this field is set to 0
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define BUFFER_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000000
|
||||
#define BUFFER_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
|
||||
#define BUFFER_ADDR_INFO_BUFFER_ADDR_31_0_MSB 31
|
||||
#define BUFFER_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
|
||||
|
||||
|
||||
/* Description BUFFER_ADDR_39_32
|
||||
|
||||
Address (upper 8 bits) of the MSDU buffer OR MSDU_EXTENSION
|
||||
descriptor OR Link Descriptor
|
||||
|
||||
In case of 'NULL' pointer, this field is set to 0
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define BUFFER_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x00000004
|
||||
#define BUFFER_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
|
||||
#define BUFFER_ADDR_INFO_BUFFER_ADDR_39_32_MSB 7
|
||||
#define BUFFER_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
|
||||
|
||||
|
||||
/* Description RETURN_BUFFER_MANAGER
|
||||
|
||||
Consumer: WBM
|
||||
Producer: SW/FW
|
||||
|
||||
In case of 'NULL' pointer, this field is set to 0
|
||||
|
||||
Indicates to which buffer manager the buffer OR MSDU_EXTENSION
|
||||
descriptor OR link descriptor that is being pointed to
|
||||
shall be returned after the frame has been processed. It
|
||||
is used by WBM for routing purposes.
|
||||
|
||||
<enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
|
||||
to the WMB buffer idle list
|
||||
<enum 1 WBM_CHIP0_IDLE_DESC_LIST> This buffer shall be returned
|
||||
to the WBM idle link descriptor idle list, where the chip
|
||||
0 WBM is chosen in case of a multi-chip config
|
||||
<enum 2 WBM_CHIP1_IDLE_DESC_LIST> This buffer shall be returned
|
||||
to the chip 1 WBM idle link descriptor idle list
|
||||
<enum 3 WBM_CHIP2_IDLE_DESC_LIST> This buffer shall be returned
|
||||
to the chip 2 WBM idle link descriptor idle list
|
||||
<enum 12 WBM_CHIP3_IDLE_DESC_LIST> This buffer shall be
|
||||
returned to chip 3 WBM idle link descriptor idle list
|
||||
<enum 4 FW_BM> This buffer shall be returned to the FW
|
||||
<enum 5 SW0_BM> This buffer shall be returned to the SW,
|
||||
ring 0
|
||||
<enum 6 SW1_BM> This buffer shall be returned to the SW,
|
||||
ring 1
|
||||
<enum 7 SW2_BM> This buffer shall be returned to the SW,
|
||||
ring 2
|
||||
<enum 8 SW3_BM> This buffer shall be returned to the SW,
|
||||
ring 3
|
||||
<enum 9 SW4_BM> This buffer shall be returned to the SW,
|
||||
ring 4
|
||||
<enum 10 SW5_BM> This buffer shall be returned to the SW,
|
||||
ring 5
|
||||
<enum 11 SW6_BM> This buffer shall be returned to the SW,
|
||||
ring 6
|
||||
|
||||
<legal 0-12>
|
||||
*/
|
||||
|
||||
#define BUFFER_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x00000004
|
||||
#define BUFFER_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
|
||||
#define BUFFER_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB 11
|
||||
#define BUFFER_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000f00
|
||||
|
||||
|
||||
/* Description SW_BUFFER_COOKIE
|
||||
|
||||
Cookie field exclusively used by SW.
|
||||
|
||||
In case of 'NULL' pointer, this field is set to 0
|
||||
|
||||
HW ignores the contents, accept that it passes the programmed
|
||||
value on to other descriptors together with the physical
|
||||
address
|
||||
|
||||
Field can be used by SW to for example associate the buffers
|
||||
physical address with the virtual address
|
||||
The bit definitions as used by SW are within SW HLD specification
|
||||
|
||||
|
||||
NOTE1:
|
||||
The three most significant bits can have a special meaning
|
||||
in case this struct is embedded in a TX_MPDU_DETAILS STRUCT,
|
||||
and field transmit_bw_restriction is set
|
||||
|
||||
In case of NON punctured transmission:
|
||||
Sw_buffer_cookie[19:17] = 3'b000: 20 MHz TX only
|
||||
Sw_buffer_cookie[19:17] = 3'b001: 40 MHz TX only
|
||||
Sw_buffer_cookie[19:17] = 3'b010: 80 MHz TX only
|
||||
Sw_buffer_cookie[19:17] = 3'b011: 160 MHz TX only
|
||||
Sw_buffer_cookie[19:17] = 3'b101: 240 MHz TX only
|
||||
Sw_buffer_cookie[19:17] = 3'b100: 320 MHz TX only
|
||||
Sw_buffer_cookie[19:18] = 2'b11: reserved
|
||||
|
||||
In case of punctured transmission:
|
||||
Sw_buffer_cookie[19:16] = 4'b0000: pattern 0 only
|
||||
Sw_buffer_cookie[19:16] = 4'b0001: pattern 1 only
|
||||
Sw_buffer_cookie[19:16] = 4'b0010: pattern 2 only
|
||||
Sw_buffer_cookie[19:16] = 4'b0011: pattern 3 only
|
||||
Sw_buffer_cookie[19:16] = 4'b0100: pattern 4 only
|
||||
Sw_buffer_cookie[19:16] = 4'b0101: pattern 5 only
|
||||
Sw_buffer_cookie[19:16] = 4'b0110: pattern 6 only
|
||||
Sw_buffer_cookie[19:16] = 4'b0111: pattern 7 only
|
||||
Sw_buffer_cookie[19:16] = 4'b1000: pattern 8 only
|
||||
Sw_buffer_cookie[19:16] = 4'b1001: pattern 9 only
|
||||
Sw_buffer_cookie[19:16] = 4'b1010: pattern 10 only
|
||||
Sw_buffer_cookie[19:16] = 4'b1011: pattern 11 only
|
||||
Sw_buffer_cookie[19:18] = 2'b11: reserved
|
||||
|
||||
Note: a punctured transmission is indicated by the presence
|
||||
of TLV TX_PUNCTURE_SETUP embedded in the scheduler TLV
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define BUFFER_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x00000004
|
||||
#define BUFFER_ADDR_INFO_SW_BUFFER_COOKIE_LSB 12
|
||||
#define BUFFER_ADDR_INFO_SW_BUFFER_COOKIE_MSB 31
|
||||
#define BUFFER_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff000
|
||||
|
||||
|
||||
|
||||
#endif // BUFFER_ADDR_INFO
|
||||
289
drivers/staging/fw-api/hw/qca5332/ce_src_desc.h
Normal file
289
drivers/staging/fw-api/hw/qca5332/ce_src_desc.h
Normal file
|
|
@ -0,0 +1,289 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _CE_SRC_DESC_H_
|
||||
#define _CE_SRC_DESC_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#define NUM_OF_DWORDS_CE_SRC_DESC 4
|
||||
|
||||
|
||||
struct ce_src_desc {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
uint32_t src_buffer_low : 32; // [31:0]
|
||||
uint32_t src_buffer_high : 8, // [7:0]
|
||||
toeplitz_en : 1, // [8:8]
|
||||
src_swap : 1, // [9:9]
|
||||
dest_swap : 1, // [10:10]
|
||||
gather : 1, // [11:11]
|
||||
ce_res_0 : 1, // [12:12]
|
||||
barrier_read : 1, // [13:13]
|
||||
ce_res_1 : 2, // [15:14]
|
||||
length : 16; // [31:16]
|
||||
uint32_t fw_metadata : 16, // [15:0]
|
||||
ce_res_2 : 16; // [31:16]
|
||||
uint32_t ce_res_3 : 20, // [19:0]
|
||||
ring_id : 8, // [27:20]
|
||||
looping_count : 4; // [31:28]
|
||||
#else
|
||||
uint32_t src_buffer_low : 32; // [31:0]
|
||||
uint32_t length : 16, // [31:16]
|
||||
ce_res_1 : 2, // [15:14]
|
||||
barrier_read : 1, // [13:13]
|
||||
ce_res_0 : 1, // [12:12]
|
||||
gather : 1, // [11:11]
|
||||
dest_swap : 1, // [10:10]
|
||||
src_swap : 1, // [9:9]
|
||||
toeplitz_en : 1, // [8:8]
|
||||
src_buffer_high : 8; // [7:0]
|
||||
uint32_t ce_res_2 : 16, // [31:16]
|
||||
fw_metadata : 16; // [15:0]
|
||||
uint32_t looping_count : 4, // [31:28]
|
||||
ring_id : 8, // [27:20]
|
||||
ce_res_3 : 20; // [19:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description SRC_BUFFER_LOW
|
||||
|
||||
LSB 32 bits of the 40 Bit Pointer to the source buffer
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define CE_SRC_DESC_SRC_BUFFER_LOW_OFFSET 0x00000000
|
||||
#define CE_SRC_DESC_SRC_BUFFER_LOW_LSB 0
|
||||
#define CE_SRC_DESC_SRC_BUFFER_LOW_MSB 31
|
||||
#define CE_SRC_DESC_SRC_BUFFER_LOW_MASK 0xffffffff
|
||||
|
||||
|
||||
/* Description SRC_BUFFER_HIGH
|
||||
|
||||
Bits [6:0] for 40 Bit Pointer to the source buffer
|
||||
Bit [7] can be programmed with VC bit.
|
||||
Note: CE Descriptor has 40-bit address. Only 37 bits are
|
||||
routed as address to NoC. Remaining bits are user bits.
|
||||
Bit [7] of SRC_BUFFER_HIGH can be used for VC configuration.
|
||||
0 indicate VC0 and 1 indicate VC1.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define CE_SRC_DESC_SRC_BUFFER_HIGH_OFFSET 0x00000004
|
||||
#define CE_SRC_DESC_SRC_BUFFER_HIGH_LSB 0
|
||||
#define CE_SRC_DESC_SRC_BUFFER_HIGH_MSB 7
|
||||
#define CE_SRC_DESC_SRC_BUFFER_HIGH_MASK 0x000000ff
|
||||
|
||||
|
||||
/* Description TOEPLITZ_EN
|
||||
|
||||
Enable generation of 32-bit Toeplitz-LFSR hash for the data
|
||||
transfer
|
||||
In case of gather field in first source ring entry of the
|
||||
gather copy cycle in taken into account.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define CE_SRC_DESC_TOEPLITZ_EN_OFFSET 0x00000004
|
||||
#define CE_SRC_DESC_TOEPLITZ_EN_LSB 8
|
||||
#define CE_SRC_DESC_TOEPLITZ_EN_MSB 8
|
||||
#define CE_SRC_DESC_TOEPLITZ_EN_MASK 0x00000100
|
||||
|
||||
|
||||
/* Description SRC_SWAP
|
||||
|
||||
Treats source memory organization as big-endian. For each
|
||||
dword read (4 bytes), the byte 0 is swapped with byte 3
|
||||
and byte 1 is swapped with byte 2.
|
||||
In case of gather field in first source ring entry of the
|
||||
gather copy cycle in taken into account.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define CE_SRC_DESC_SRC_SWAP_OFFSET 0x00000004
|
||||
#define CE_SRC_DESC_SRC_SWAP_LSB 9
|
||||
#define CE_SRC_DESC_SRC_SWAP_MSB 9
|
||||
#define CE_SRC_DESC_SRC_SWAP_MASK 0x00000200
|
||||
|
||||
|
||||
/* Description DEST_SWAP
|
||||
|
||||
Treats destination memory organization as big-endian. For
|
||||
each dword write (4 bytes), the byte 0 is swapped with
|
||||
byte 3 and byte 1 is swapped with byte 2.
|
||||
In case of gather field in first source ring entry of the
|
||||
gather copy cycle in taken into account.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define CE_SRC_DESC_DEST_SWAP_OFFSET 0x00000004
|
||||
#define CE_SRC_DESC_DEST_SWAP_LSB 10
|
||||
#define CE_SRC_DESC_DEST_SWAP_MSB 10
|
||||
#define CE_SRC_DESC_DEST_SWAP_MASK 0x00000400
|
||||
|
||||
|
||||
/* Description GATHER
|
||||
|
||||
Enables gather of multiple copy engine source descriptors
|
||||
to one destination.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define CE_SRC_DESC_GATHER_OFFSET 0x00000004
|
||||
#define CE_SRC_DESC_GATHER_LSB 11
|
||||
#define CE_SRC_DESC_GATHER_MSB 11
|
||||
#define CE_SRC_DESC_GATHER_MASK 0x00000800
|
||||
|
||||
|
||||
/* Description CE_RES_0
|
||||
|
||||
Reserved
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define CE_SRC_DESC_CE_RES_0_OFFSET 0x00000004
|
||||
#define CE_SRC_DESC_CE_RES_0_LSB 12
|
||||
#define CE_SRC_DESC_CE_RES_0_MSB 12
|
||||
#define CE_SRC_DESC_CE_RES_0_MASK 0x00001000
|
||||
|
||||
|
||||
/* Description BARRIER_READ
|
||||
|
||||
Barrier Read enable
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define CE_SRC_DESC_BARRIER_READ_OFFSET 0x00000004
|
||||
#define CE_SRC_DESC_BARRIER_READ_LSB 13
|
||||
#define CE_SRC_DESC_BARRIER_READ_MSB 13
|
||||
#define CE_SRC_DESC_BARRIER_READ_MASK 0x00002000
|
||||
|
||||
|
||||
/* Description CE_RES_1
|
||||
|
||||
Reserved
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define CE_SRC_DESC_CE_RES_1_OFFSET 0x00000004
|
||||
#define CE_SRC_DESC_CE_RES_1_LSB 14
|
||||
#define CE_SRC_DESC_CE_RES_1_MSB 15
|
||||
#define CE_SRC_DESC_CE_RES_1_MASK 0x0000c000
|
||||
|
||||
|
||||
/* Description LENGTH
|
||||
|
||||
Length of the buffer in units of octets of the current descriptor
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define CE_SRC_DESC_LENGTH_OFFSET 0x00000004
|
||||
#define CE_SRC_DESC_LENGTH_LSB 16
|
||||
#define CE_SRC_DESC_LENGTH_MSB 31
|
||||
#define CE_SRC_DESC_LENGTH_MASK 0xffff0000
|
||||
|
||||
|
||||
/* Description FW_METADATA
|
||||
|
||||
Meta data used by FW
|
||||
In case of gather field in first source ring entry of the
|
||||
gather copy cycle in taken into account.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define CE_SRC_DESC_FW_METADATA_OFFSET 0x00000008
|
||||
#define CE_SRC_DESC_FW_METADATA_LSB 0
|
||||
#define CE_SRC_DESC_FW_METADATA_MSB 15
|
||||
#define CE_SRC_DESC_FW_METADATA_MASK 0x0000ffff
|
||||
|
||||
|
||||
/* Description CE_RES_2
|
||||
|
||||
Reserved
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define CE_SRC_DESC_CE_RES_2_OFFSET 0x00000008
|
||||
#define CE_SRC_DESC_CE_RES_2_LSB 16
|
||||
#define CE_SRC_DESC_CE_RES_2_MSB 31
|
||||
#define CE_SRC_DESC_CE_RES_2_MASK 0xffff0000
|
||||
|
||||
|
||||
/* Description CE_RES_3
|
||||
|
||||
Reserved
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define CE_SRC_DESC_CE_RES_3_OFFSET 0x0000000c
|
||||
#define CE_SRC_DESC_CE_RES_3_LSB 0
|
||||
#define CE_SRC_DESC_CE_RES_3_MSB 19
|
||||
#define CE_SRC_DESC_CE_RES_3_MASK 0x000fffff
|
||||
|
||||
|
||||
/* Description RING_ID
|
||||
|
||||
The buffer pointer ring ID.
|
||||
0 refers to the IDLE ring
|
||||
1 - N refers to other rings
|
||||
|
||||
Helps with debugging when dumping ring contents.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define CE_SRC_DESC_RING_ID_OFFSET 0x0000000c
|
||||
#define CE_SRC_DESC_RING_ID_LSB 20
|
||||
#define CE_SRC_DESC_RING_ID_MSB 27
|
||||
#define CE_SRC_DESC_RING_ID_MASK 0x0ff00000
|
||||
|
||||
|
||||
/* Description LOOPING_COUNT
|
||||
|
||||
A count value that indicates the number of times the producer
|
||||
of entries into the Ring has looped around the ring.
|
||||
At initialization time, this value is set to 0. On the first
|
||||
loop, this value is set to 1. After the max value is reached
|
||||
allowed by the number of bits for this field, the count
|
||||
value continues with 0 again.
|
||||
In case SW is the consumer of the ring entries, it can use
|
||||
this field to figure out up to where the producer of entries
|
||||
has created new entries. This eliminates the need to check
|
||||
where the "head pointer' of the ring is located once the
|
||||
SW starts processing an interrupt indicating that new entries
|
||||
have been put into this ring...
|
||||
Also note that SW if it wants only needs to look at the
|
||||
LSB bit of this count value.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define CE_SRC_DESC_LOOPING_COUNT_OFFSET 0x0000000c
|
||||
#define CE_SRC_DESC_LOOPING_COUNT_LSB 28
|
||||
#define CE_SRC_DESC_LOOPING_COUNT_MSB 31
|
||||
#define CE_SRC_DESC_LOOPING_COUNT_MASK 0xf0000000
|
||||
|
||||
|
||||
|
||||
#endif // CE_SRC_DESC
|
||||
260
drivers/staging/fw-api/hw/qca5332/ce_stat_desc.h
Normal file
260
drivers/staging/fw-api/hw/qca5332/ce_stat_desc.h
Normal file
|
|
@ -0,0 +1,260 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _CE_STAT_DESC_H_
|
||||
#define _CE_STAT_DESC_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#define NUM_OF_DWORDS_CE_STAT_DESC 4
|
||||
|
||||
|
||||
struct ce_stat_desc {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
uint32_t ce_res_5 : 8, // [7:0]
|
||||
toeplitz_en : 1, // [8:8]
|
||||
src_swap : 1, // [9:9]
|
||||
dest_swap : 1, // [10:10]
|
||||
gather : 1, // [11:11]
|
||||
barrier_read : 1, // [12:12]
|
||||
ce_res_6 : 3, // [15:13]
|
||||
length : 16; // [31:16]
|
||||
uint32_t toeplitz_hash_0 : 32; // [31:0]
|
||||
uint32_t toeplitz_hash_1 : 32; // [31:0]
|
||||
uint32_t fw_metadata : 16, // [15:0]
|
||||
ce_res_7 : 4, // [19:16]
|
||||
ring_id : 8, // [27:20]
|
||||
looping_count : 4; // [31:28]
|
||||
#else
|
||||
uint32_t length : 16, // [31:16]
|
||||
ce_res_6 : 3, // [15:13]
|
||||
barrier_read : 1, // [12:12]
|
||||
gather : 1, // [11:11]
|
||||
dest_swap : 1, // [10:10]
|
||||
src_swap : 1, // [9:9]
|
||||
toeplitz_en : 1, // [8:8]
|
||||
ce_res_5 : 8; // [7:0]
|
||||
uint32_t toeplitz_hash_0 : 32; // [31:0]
|
||||
uint32_t toeplitz_hash_1 : 32; // [31:0]
|
||||
uint32_t looping_count : 4, // [31:28]
|
||||
ring_id : 8, // [27:20]
|
||||
ce_res_7 : 4, // [19:16]
|
||||
fw_metadata : 16; // [15:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description CE_RES_5
|
||||
|
||||
Reserved
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define CE_STAT_DESC_CE_RES_5_OFFSET 0x00000000
|
||||
#define CE_STAT_DESC_CE_RES_5_LSB 0
|
||||
#define CE_STAT_DESC_CE_RES_5_MSB 7
|
||||
#define CE_STAT_DESC_CE_RES_5_MASK 0x000000ff
|
||||
|
||||
|
||||
/* Description TOEPLITZ_EN
|
||||
|
||||
32-bit Toeplitz-LFSR hash for the data transfer, Enabled
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define CE_STAT_DESC_TOEPLITZ_EN_OFFSET 0x00000000
|
||||
#define CE_STAT_DESC_TOEPLITZ_EN_LSB 8
|
||||
#define CE_STAT_DESC_TOEPLITZ_EN_MSB 8
|
||||
#define CE_STAT_DESC_TOEPLITZ_EN_MASK 0x00000100
|
||||
|
||||
|
||||
/* Description SRC_SWAP
|
||||
|
||||
Source memory buffer swapped
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define CE_STAT_DESC_SRC_SWAP_OFFSET 0x00000000
|
||||
#define CE_STAT_DESC_SRC_SWAP_LSB 9
|
||||
#define CE_STAT_DESC_SRC_SWAP_MSB 9
|
||||
#define CE_STAT_DESC_SRC_SWAP_MASK 0x00000200
|
||||
|
||||
|
||||
/* Description DEST_SWAP
|
||||
|
||||
Destination memory buffer swapped
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define CE_STAT_DESC_DEST_SWAP_OFFSET 0x00000000
|
||||
#define CE_STAT_DESC_DEST_SWAP_LSB 10
|
||||
#define CE_STAT_DESC_DEST_SWAP_MSB 10
|
||||
#define CE_STAT_DESC_DEST_SWAP_MASK 0x00000400
|
||||
|
||||
|
||||
/* Description GATHER
|
||||
|
||||
Gather of multiple copy engine source descriptors to one
|
||||
destination enabled
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define CE_STAT_DESC_GATHER_OFFSET 0x00000000
|
||||
#define CE_STAT_DESC_GATHER_LSB 11
|
||||
#define CE_STAT_DESC_GATHER_MSB 11
|
||||
#define CE_STAT_DESC_GATHER_MASK 0x00000800
|
||||
|
||||
|
||||
/* Description BARRIER_READ
|
||||
|
||||
Barrier read enabled
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define CE_STAT_DESC_BARRIER_READ_OFFSET 0x00000000
|
||||
#define CE_STAT_DESC_BARRIER_READ_LSB 12
|
||||
#define CE_STAT_DESC_BARRIER_READ_MSB 12
|
||||
#define CE_STAT_DESC_BARRIER_READ_MASK 0x00001000
|
||||
|
||||
|
||||
/* Description CE_RES_6
|
||||
|
||||
Reserved
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define CE_STAT_DESC_CE_RES_6_OFFSET 0x00000000
|
||||
#define CE_STAT_DESC_CE_RES_6_LSB 13
|
||||
#define CE_STAT_DESC_CE_RES_6_MSB 15
|
||||
#define CE_STAT_DESC_CE_RES_6_MASK 0x0000e000
|
||||
|
||||
|
||||
/* Description LENGTH
|
||||
|
||||
Sum of all the Lengths of the source descriptor in the gather
|
||||
chain
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define CE_STAT_DESC_LENGTH_OFFSET 0x00000000
|
||||
#define CE_STAT_DESC_LENGTH_LSB 16
|
||||
#define CE_STAT_DESC_LENGTH_MSB 31
|
||||
#define CE_STAT_DESC_LENGTH_MASK 0xffff0000
|
||||
|
||||
|
||||
/* Description TOEPLITZ_HASH_0
|
||||
|
||||
32 LS bits of 64 bit Toeplitz LFSR hash result
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define CE_STAT_DESC_TOEPLITZ_HASH_0_OFFSET 0x00000004
|
||||
#define CE_STAT_DESC_TOEPLITZ_HASH_0_LSB 0
|
||||
#define CE_STAT_DESC_TOEPLITZ_HASH_0_MSB 31
|
||||
#define CE_STAT_DESC_TOEPLITZ_HASH_0_MASK 0xffffffff
|
||||
|
||||
|
||||
/* Description TOEPLITZ_HASH_1
|
||||
|
||||
32 MS bits of 64 bit Toeplitz LFSR hash result
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define CE_STAT_DESC_TOEPLITZ_HASH_1_OFFSET 0x00000008
|
||||
#define CE_STAT_DESC_TOEPLITZ_HASH_1_LSB 0
|
||||
#define CE_STAT_DESC_TOEPLITZ_HASH_1_MSB 31
|
||||
#define CE_STAT_DESC_TOEPLITZ_HASH_1_MASK 0xffffffff
|
||||
|
||||
|
||||
/* Description FW_METADATA
|
||||
|
||||
Meta data used by FW
|
||||
In case of gather field in first source ring entry of the
|
||||
gather copy cycle in taken into account.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define CE_STAT_DESC_FW_METADATA_OFFSET 0x0000000c
|
||||
#define CE_STAT_DESC_FW_METADATA_LSB 0
|
||||
#define CE_STAT_DESC_FW_METADATA_MSB 15
|
||||
#define CE_STAT_DESC_FW_METADATA_MASK 0x0000ffff
|
||||
|
||||
|
||||
/* Description CE_RES_7
|
||||
|
||||
Reserved
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define CE_STAT_DESC_CE_RES_7_OFFSET 0x0000000c
|
||||
#define CE_STAT_DESC_CE_RES_7_LSB 16
|
||||
#define CE_STAT_DESC_CE_RES_7_MSB 19
|
||||
#define CE_STAT_DESC_CE_RES_7_MASK 0x000f0000
|
||||
|
||||
|
||||
/* Description RING_ID
|
||||
|
||||
The buffer pointer ring ID.
|
||||
0 refers to the IDLE ring
|
||||
1 - N refers to other rings
|
||||
|
||||
Helps with debugging when dumping ring contents.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define CE_STAT_DESC_RING_ID_OFFSET 0x0000000c
|
||||
#define CE_STAT_DESC_RING_ID_LSB 20
|
||||
#define CE_STAT_DESC_RING_ID_MSB 27
|
||||
#define CE_STAT_DESC_RING_ID_MASK 0x0ff00000
|
||||
|
||||
|
||||
/* Description LOOPING_COUNT
|
||||
|
||||
A count value that indicates the number of times the producer
|
||||
of entries into the Ring has looped around the ring.
|
||||
At initialization time, this value is set to 0. On the first
|
||||
loop, this value is set to 1. After the max value is reached
|
||||
allowed by the number of bits for this field, the count
|
||||
value continues with 0 again.
|
||||
In case SW is the consumer of the ring entries, it can use
|
||||
this field to figure out up to where the producer of entries
|
||||
has created new entries. This eliminates the need to check
|
||||
where the "head pointer' of the ring is located once the
|
||||
SW starts processing an interrupt indicating that new entries
|
||||
have been put into this ring...
|
||||
Also note that SW if it wants only needs to look at the
|
||||
LSB bit of this count value.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define CE_STAT_DESC_LOOPING_COUNT_OFFSET 0x0000000c
|
||||
#define CE_STAT_DESC_LOOPING_COUNT_LSB 28
|
||||
#define CE_STAT_DESC_LOOPING_COUNT_MSB 31
|
||||
#define CE_STAT_DESC_LOOPING_COUNT_MASK 0xf0000000
|
||||
|
||||
|
||||
|
||||
#endif // CE_STAT_DESC
|
||||
383
drivers/staging/fw-api/hw/qca5332/coex_rx_status.h
Normal file
383
drivers/staging/fw-api/hw/qca5332/coex_rx_status.h
Normal file
|
|
@ -0,0 +1,383 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _COEX_RX_STATUS_H_
|
||||
#define _COEX_RX_STATUS_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#define NUM_OF_DWORDS_COEX_RX_STATUS 2
|
||||
|
||||
#define NUM_OF_QWORDS_COEX_RX_STATUS 1
|
||||
|
||||
|
||||
struct coex_rx_status {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
uint32_t rx_mac_frame_status : 2, // [1:0]
|
||||
rx_with_tx_response : 1, // [2:2]
|
||||
rx_rate : 5, // [7:3]
|
||||
rx_bw : 3, // [10:8]
|
||||
single_mpdu : 1, // [11:11]
|
||||
filter_status : 1, // [12:12]
|
||||
ampdu : 1, // [13:13]
|
||||
directed : 1, // [14:14]
|
||||
reserved_0 : 1, // [15:15]
|
||||
rx_nss : 3, // [18:16]
|
||||
rx_rssi : 8, // [26:19]
|
||||
rx_type : 3, // [29:27]
|
||||
retry_bit_setting : 1, // [30:30]
|
||||
more_data_bit_setting : 1; // [31:31]
|
||||
uint32_t remain_rx_packet_time : 16, // [15:0]
|
||||
rx_remaining_fes_time : 16; // [31:16]
|
||||
#else
|
||||
uint32_t more_data_bit_setting : 1, // [31:31]
|
||||
retry_bit_setting : 1, // [30:30]
|
||||
rx_type : 3, // [29:27]
|
||||
rx_rssi : 8, // [26:19]
|
||||
rx_nss : 3, // [18:16]
|
||||
reserved_0 : 1, // [15:15]
|
||||
directed : 1, // [14:14]
|
||||
ampdu : 1, // [13:13]
|
||||
filter_status : 1, // [12:12]
|
||||
single_mpdu : 1, // [11:11]
|
||||
rx_bw : 3, // [10:8]
|
||||
rx_rate : 5, // [7:3]
|
||||
rx_with_tx_response : 1, // [2:2]
|
||||
rx_mac_frame_status : 2; // [1:0]
|
||||
uint32_t rx_remaining_fes_time : 16, // [31:16]
|
||||
remain_rx_packet_time : 16; // [15:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description RX_MAC_FRAME_STATUS
|
||||
|
||||
RXPCU send this bit as 1 when it receives the begin of a
|
||||
frame from PHY, and it passes the address filter. RXPCUsend
|
||||
this bit as 0 when the frame ends. (on/off bit)
|
||||
<enum 0 ppdu_start> start of PPDU reception.
|
||||
For SU: Generated the first time the MPDU header passes
|
||||
the address filter and is destined to this STA.
|
||||
For MU: Generated the first time the MPDU header from any
|
||||
user passes the address filter and is destined to this
|
||||
STA.
|
||||
<enum 1 first_mpdu_FCS_pass> message only sent in case
|
||||
of A-MPDU reception.
|
||||
For SU: first time the FCS of an MPDU passes (and frame
|
||||
is destined to this device)
|
||||
For MU: first time the FCS of any MPDU passes (and frame
|
||||
is destined to this device)
|
||||
|
||||
<enum 2 ppdu_end> receive of PPDU frame reception has
|
||||
finished
|
||||
<enum 3 ppdu_end_due_to_phy_nap> receive of PPDU frame reception
|
||||
has finished as it has been aborted due to PHY NAP generation
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define COEX_RX_STATUS_RX_MAC_FRAME_STATUS_OFFSET 0x0000000000000000
|
||||
#define COEX_RX_STATUS_RX_MAC_FRAME_STATUS_LSB 0
|
||||
#define COEX_RX_STATUS_RX_MAC_FRAME_STATUS_MSB 1
|
||||
#define COEX_RX_STATUS_RX_MAC_FRAME_STATUS_MASK 0x0000000000000003
|
||||
|
||||
|
||||
/* Description RX_WITH_TX_RESPONSE
|
||||
|
||||
Field only valid when rx_mac_frame_status is first_mpdu_FCS_pass
|
||||
or ppdu_end.
|
||||
|
||||
For SU: RXPCU set this bit to indicate it is expecting the
|
||||
TX to send a response after the receive.
|
||||
For MU: RXPCU set this bit to indicate it is expecting that
|
||||
at least for one of the users a response after the reception
|
||||
needs to be generated.
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define COEX_RX_STATUS_RX_WITH_TX_RESPONSE_OFFSET 0x0000000000000000
|
||||
#define COEX_RX_STATUS_RX_WITH_TX_RESPONSE_LSB 2
|
||||
#define COEX_RX_STATUS_RX_WITH_TX_RESPONSE_MSB 2
|
||||
#define COEX_RX_STATUS_RX_WITH_TX_RESPONSE_MASK 0x0000000000000004
|
||||
|
||||
|
||||
/* Description RX_RATE
|
||||
|
||||
For SU: RXPCU send the current receive rate at the beginning
|
||||
of receive when rate is available from PHY.
|
||||
For MU: RXPCU to use the current receive rate from the first
|
||||
USER that triggers this TLV to be generated.
|
||||
|
||||
Field is always valid
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define COEX_RX_STATUS_RX_RATE_OFFSET 0x0000000000000000
|
||||
#define COEX_RX_STATUS_RX_RATE_LSB 3
|
||||
#define COEX_RX_STATUS_RX_RATE_MSB 7
|
||||
#define COEX_RX_STATUS_RX_RATE_MASK 0x00000000000000f8
|
||||
|
||||
|
||||
/* Description RX_BW
|
||||
|
||||
Actual RX bandwidth. Not SU or MU dependent.
|
||||
RXPCU send the current receive rate at the beginning of
|
||||
receive. This information is from PHY.
|
||||
Field is always valid
|
||||
|
||||
<enum 0 20_mhz>20 Mhz BW
|
||||
<enum 1 40_mhz>40 Mhz BW
|
||||
<enum 2 80_mhz>80 Mhz BW
|
||||
<enum 3 160_mhz>160 Mhz BW
|
||||
<enum 4 320_mhz>320 Mhz BW
|
||||
<enum 5 240_mhz>240 Mhz BW
|
||||
*/
|
||||
|
||||
#define COEX_RX_STATUS_RX_BW_OFFSET 0x0000000000000000
|
||||
#define COEX_RX_STATUS_RX_BW_LSB 8
|
||||
#define COEX_RX_STATUS_RX_BW_MSB 10
|
||||
#define COEX_RX_STATUS_RX_BW_MASK 0x0000000000000700
|
||||
|
||||
|
||||
/* Description SINGLE_MPDU
|
||||
|
||||
For SU: Once set the Received frame is a single MPDU. This
|
||||
can be a non-AMPDU reception or A-MPDU reception but with
|
||||
an EOF bit set (VHT single AMPDU).
|
||||
For MU: RXPCU to base this on the first USER that triggers
|
||||
this TLV to be generated.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define COEX_RX_STATUS_SINGLE_MPDU_OFFSET 0x0000000000000000
|
||||
#define COEX_RX_STATUS_SINGLE_MPDU_LSB 11
|
||||
#define COEX_RX_STATUS_SINGLE_MPDU_MSB 11
|
||||
#define COEX_RX_STATUS_SINGLE_MPDU_MASK 0x0000000000000800
|
||||
|
||||
|
||||
/* Description FILTER_STATUS
|
||||
|
||||
1: LMAC is interested in receiving the full packet and forward
|
||||
it to downstream modules. 0: LMAC is not interested in
|
||||
receiving the packet.
|
||||
|
||||
In HastingsPrime based on the register bit 'COEX_RX_STATUS_NOFILTERIN,'
|
||||
Rx PCU will send this TLV for filtered-out packets as well,
|
||||
with appropriate info in the fields filter_status, AMPDU
|
||||
and Directed. Otherwise, and in other chips, this TLV is
|
||||
sent only for packets filtered in, with these fields set
|
||||
to zero.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define COEX_RX_STATUS_FILTER_STATUS_OFFSET 0x0000000000000000
|
||||
#define COEX_RX_STATUS_FILTER_STATUS_LSB 12
|
||||
#define COEX_RX_STATUS_FILTER_STATUS_MSB 12
|
||||
#define COEX_RX_STATUS_FILTER_STATUS_MASK 0x0000000000001000
|
||||
|
||||
|
||||
/* Description AMPDU
|
||||
|
||||
1: Indicates received frame is an AMPDU0: indicates received
|
||||
frames in not an AMPDU
|
||||
|
||||
In HastingsPrime based on the register bit 'COEX_RX_STATUS_NOFILTERIN,'
|
||||
Rx PCU will send this TLV for filtered-out packets as well,
|
||||
with appropriate info in the fields filter_status, AMPDU
|
||||
and Directed. Otherwise, and in other chips, this TLV is
|
||||
sent only for packets filtered in, with these fields set
|
||||
to zero.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define COEX_RX_STATUS_AMPDU_OFFSET 0x0000000000000000
|
||||
#define COEX_RX_STATUS_AMPDU_LSB 13
|
||||
#define COEX_RX_STATUS_AMPDU_MSB 13
|
||||
#define COEX_RX_STATUS_AMPDU_MASK 0x0000000000002000
|
||||
|
||||
|
||||
/* Description DIRECTED
|
||||
|
||||
1: indicates AD1 matches our Receiver address0: indicates
|
||||
AD1 does not match our Receiver address
|
||||
|
||||
In HastingsPrime based on the register bit 'COEX_RX_STATUS_NOFILTERIN,'
|
||||
Rx PCU will send this TLV for filtered-out packets as well,
|
||||
with appropriate info in the fields filter_status, AMPDU
|
||||
and Directed. Otherwise, and in other chips, this TLV is
|
||||
sent only for packets filtered in, with these fields set
|
||||
to zero.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define COEX_RX_STATUS_DIRECTED_OFFSET 0x0000000000000000
|
||||
#define COEX_RX_STATUS_DIRECTED_LSB 14
|
||||
#define COEX_RX_STATUS_DIRECTED_MSB 14
|
||||
#define COEX_RX_STATUS_DIRECTED_MASK 0x0000000000004000
|
||||
|
||||
|
||||
/* Description RESERVED_0
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define COEX_RX_STATUS_RESERVED_0_OFFSET 0x0000000000000000
|
||||
#define COEX_RX_STATUS_RESERVED_0_LSB 15
|
||||
#define COEX_RX_STATUS_RESERVED_0_MSB 15
|
||||
#define COEX_RX_STATUS_RESERVED_0_MASK 0x0000000000008000
|
||||
|
||||
|
||||
/* Description RX_NSS
|
||||
|
||||
For SU: Number of spatial streams in the reception. Field
|
||||
is always valid
|
||||
For MU: RXPCU to base this on the first USER that triggers
|
||||
this TLV to be generated.
|
||||
|
||||
<enum 0 1_spatial_stream>Single spatial stream
|
||||
<enum 1 2_spatial_streams>2 spatial streams
|
||||
<enum 2 3_spatial_streams>3 spatial streams
|
||||
<enum 3 4_spatial_streams>4 spatial streams
|
||||
<enum 4 5_spatial_streams>5 spatial streams
|
||||
<enum 5 6_spatial_streams>6 spatial streams
|
||||
<enum 6 7_spatial_streams>7 spatial streams
|
||||
<enum 7 8_spatial_streams>8 spatial streams
|
||||
*/
|
||||
|
||||
#define COEX_RX_STATUS_RX_NSS_OFFSET 0x0000000000000000
|
||||
#define COEX_RX_STATUS_RX_NSS_LSB 16
|
||||
#define COEX_RX_STATUS_RX_NSS_MSB 18
|
||||
#define COEX_RX_STATUS_RX_NSS_MASK 0x0000000000070000
|
||||
|
||||
|
||||
/* Description RX_RSSI
|
||||
|
||||
RXPCU send the current receive RSSI (from the PHYRX_RSSI_LEGACY
|
||||
TLV) at the beginning of reception. This is information
|
||||
is from PHY and is not SU or MU dependent.
|
||||
Field is always valid
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define COEX_RX_STATUS_RX_RSSI_OFFSET 0x0000000000000000
|
||||
#define COEX_RX_STATUS_RX_RSSI_LSB 19
|
||||
#define COEX_RX_STATUS_RX_RSSI_MSB 26
|
||||
#define COEX_RX_STATUS_RX_RSSI_MASK 0x0000000007f80000
|
||||
|
||||
|
||||
/* Description RX_TYPE
|
||||
|
||||
For SU: RXPCU send the current receive packet type. Field
|
||||
is always valid.This info is from MAC.
|
||||
For MU: RXPCU to base this on the first USER that triggers
|
||||
this TLV to be generated.
|
||||
|
||||
<enum 0 data >
|
||||
<enum 1 management>
|
||||
<enum 2 beacon>
|
||||
<enum 3 control> For reception of RTS frame
|
||||
<enum 4 control_response> For reception of CTS, ACK
|
||||
or BA frames
|
||||
<enum 5 others>
|
||||
<legal 0-5>
|
||||
*/
|
||||
|
||||
#define COEX_RX_STATUS_RX_TYPE_OFFSET 0x0000000000000000
|
||||
#define COEX_RX_STATUS_RX_TYPE_LSB 27
|
||||
#define COEX_RX_STATUS_RX_TYPE_MSB 29
|
||||
#define COEX_RX_STATUS_RX_TYPE_MASK 0x0000000038000000
|
||||
|
||||
|
||||
/* Description RETRY_BIT_SETTING
|
||||
|
||||
For SU: Value of the retry bit in the frame control field
|
||||
of the first MPDU MAC header that passes the RxPCU frame
|
||||
filter
|
||||
For MU: RXPCU to base this on the first USER that triggers
|
||||
this TLV to be generated.
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define COEX_RX_STATUS_RETRY_BIT_SETTING_OFFSET 0x0000000000000000
|
||||
#define COEX_RX_STATUS_RETRY_BIT_SETTING_LSB 30
|
||||
#define COEX_RX_STATUS_RETRY_BIT_SETTING_MSB 30
|
||||
#define COEX_RX_STATUS_RETRY_BIT_SETTING_MASK 0x0000000040000000
|
||||
|
||||
|
||||
/* Description MORE_DATA_BIT_SETTING
|
||||
|
||||
For SU: Value of the more data bit in the frame control
|
||||
field of the first MPDU MAC header that passes the RxPCU
|
||||
frame filter
|
||||
For MU: RXPCU to base this on the first USER that triggers
|
||||
this TLV to be generated.
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define COEX_RX_STATUS_MORE_DATA_BIT_SETTING_OFFSET 0x0000000000000000
|
||||
#define COEX_RX_STATUS_MORE_DATA_BIT_SETTING_LSB 31
|
||||
#define COEX_RX_STATUS_MORE_DATA_BIT_SETTING_MSB 31
|
||||
#define COEX_RX_STATUS_MORE_DATA_BIT_SETTING_MASK 0x0000000080000000
|
||||
|
||||
|
||||
/* Description REMAIN_RX_PACKET_TIME
|
||||
|
||||
HWSCH sends current remaining rx PPDU frame time. This time
|
||||
covers the entire rx_frame. This information is not in
|
||||
the L-SIG and we expect to get it from PHY at the start
|
||||
of the reception.
|
||||
This is not SU or MU dependent.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define COEX_RX_STATUS_REMAIN_RX_PACKET_TIME_OFFSET 0x0000000000000000
|
||||
#define COEX_RX_STATUS_REMAIN_RX_PACKET_TIME_LSB 32
|
||||
#define COEX_RX_STATUS_REMAIN_RX_PACKET_TIME_MSB 47
|
||||
#define COEX_RX_STATUS_REMAIN_RX_PACKET_TIME_MASK 0x0000ffff00000000
|
||||
|
||||
|
||||
/* Description RX_REMAINING_FES_TIME
|
||||
|
||||
RXPCU sends the remaining time FES time the moment a frame
|
||||
with proper FCS is received. The time indicated is the
|
||||
remaining rx packet time with the duration field value added.
|
||||
As long as no frame with valid FCS is received, this field
|
||||
should be set equal to 'remain_rx_packet_time'
|
||||
This is not SU or MU dependent.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define COEX_RX_STATUS_RX_REMAINING_FES_TIME_OFFSET 0x0000000000000000
|
||||
#define COEX_RX_STATUS_RX_REMAINING_FES_TIME_LSB 48
|
||||
#define COEX_RX_STATUS_RX_REMAINING_FES_TIME_MSB 63
|
||||
#define COEX_RX_STATUS_RX_REMAINING_FES_TIME_MASK 0xffff000000000000
|
||||
|
||||
|
||||
|
||||
#endif // COEX_RX_STATUS
|
||||
490
drivers/staging/fw-api/hw/qca5332/coex_tx_req.h
Normal file
490
drivers/staging/fw-api/hw/qca5332/coex_tx_req.h
Normal file
|
|
@ -0,0 +1,490 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _COEX_TX_REQ_H_
|
||||
#define _COEX_TX_REQ_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#define NUM_OF_DWORDS_COEX_TX_REQ 4
|
||||
|
||||
#define NUM_OF_QWORDS_COEX_TX_REQ 2
|
||||
|
||||
|
||||
struct coex_tx_req {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
uint32_t tx_pwr : 8, // [7:0]
|
||||
min_tx_pwr : 8, // [15:8]
|
||||
nss : 3, // [18:16]
|
||||
tx_chain_mask : 8, // [26:19]
|
||||
bw : 3, // [29:27]
|
||||
reserved_0 : 2; // [31:30]
|
||||
uint32_t alt_tx_pwr : 8, // [7:0]
|
||||
alt_min_tx_pwr : 8, // [15:8]
|
||||
alt_nss : 3, // [18:16]
|
||||
alt_tx_chain_mask : 8, // [26:19]
|
||||
alt_bw : 3, // [29:27]
|
||||
reserved_1 : 2; // [31:30]
|
||||
uint32_t tx_pwr_1 : 8, // [7:0]
|
||||
alt_tx_pwr_1 : 8, // [15:8]
|
||||
wlan_request_duration : 16; // [31:16]
|
||||
uint32_t wlan_pkt_type : 4, // [3:0]
|
||||
coex_tx_reason : 2, // [5:4]
|
||||
response_frame_type : 5, // [10:6]
|
||||
wlan_low_priority_slicing_allowed : 1, // [11:11]
|
||||
wlan_high_priority_slicing_allowed : 1, // [12:12]
|
||||
sch_tx_burst_ongoing : 1, // [13:13]
|
||||
coex_tx_priority : 4, // [17:14]
|
||||
reserved_3a : 14; // [31:18]
|
||||
#else
|
||||
uint32_t reserved_0 : 2, // [31:30]
|
||||
bw : 3, // [29:27]
|
||||
tx_chain_mask : 8, // [26:19]
|
||||
nss : 3, // [18:16]
|
||||
min_tx_pwr : 8, // [15:8]
|
||||
tx_pwr : 8; // [7:0]
|
||||
uint32_t reserved_1 : 2, // [31:30]
|
||||
alt_bw : 3, // [29:27]
|
||||
alt_tx_chain_mask : 8, // [26:19]
|
||||
alt_nss : 3, // [18:16]
|
||||
alt_min_tx_pwr : 8, // [15:8]
|
||||
alt_tx_pwr : 8; // [7:0]
|
||||
uint32_t wlan_request_duration : 16, // [31:16]
|
||||
alt_tx_pwr_1 : 8, // [15:8]
|
||||
tx_pwr_1 : 8; // [7:0]
|
||||
uint32_t reserved_3a : 14, // [31:18]
|
||||
coex_tx_priority : 4, // [17:14]
|
||||
sch_tx_burst_ongoing : 1, // [13:13]
|
||||
wlan_high_priority_slicing_allowed : 1, // [12:12]
|
||||
wlan_low_priority_slicing_allowed : 1, // [11:11]
|
||||
response_frame_type : 5, // [10:6]
|
||||
coex_tx_reason : 2, // [5:4]
|
||||
wlan_pkt_type : 4; // [3:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description TX_PWR
|
||||
|
||||
Default (desired) transmit parameter
|
||||
|
||||
Transmit Power in s6.2 format.
|
||||
In units of 0.25 dBm
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define COEX_TX_REQ_TX_PWR_OFFSET 0x0000000000000000
|
||||
#define COEX_TX_REQ_TX_PWR_LSB 0
|
||||
#define COEX_TX_REQ_TX_PWR_MSB 7
|
||||
#define COEX_TX_REQ_TX_PWR_MASK 0x00000000000000ff
|
||||
|
||||
|
||||
/* Description MIN_TX_PWR
|
||||
|
||||
Default (desired) transmit parameter
|
||||
|
||||
|
||||
Minimum allowed Transmit Power in s6.2 format.
|
||||
In units of 0.25 dBm
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define COEX_TX_REQ_MIN_TX_PWR_OFFSET 0x0000000000000000
|
||||
#define COEX_TX_REQ_MIN_TX_PWR_LSB 8
|
||||
#define COEX_TX_REQ_MIN_TX_PWR_MSB 15
|
||||
#define COEX_TX_REQ_MIN_TX_PWR_MASK 0x000000000000ff00
|
||||
|
||||
|
||||
/* Description NSS
|
||||
|
||||
Default (desired) transmit parameter
|
||||
|
||||
Number of spatial streams.
|
||||
|
||||
<enum 0 1_spatial_stream>Single spatial stream
|
||||
<enum 1 2_spatial_streams>2 spatial streams
|
||||
<enum 2 3_spatial_streams>3 spatial streams
|
||||
<enum 3 4_spatial_streams>4 spatial streams
|
||||
<enum 4 5_spatial_streams>5 spatial streams
|
||||
<enum 5 6_spatial_streams>6 spatial streams
|
||||
<enum 6 7_spatial_streams>7 spatial streams
|
||||
<enum 7 8_spatial_streams>8 spatial streams
|
||||
*/
|
||||
|
||||
#define COEX_TX_REQ_NSS_OFFSET 0x0000000000000000
|
||||
#define COEX_TX_REQ_NSS_LSB 16
|
||||
#define COEX_TX_REQ_NSS_MSB 18
|
||||
#define COEX_TX_REQ_NSS_MASK 0x0000000000070000
|
||||
|
||||
|
||||
/* Description TX_CHAIN_MASK
|
||||
|
||||
Default (desired) transmit parameter
|
||||
|
||||
|
||||
Chain mask to support up to 8 antennas.
|
||||
<legal 1-255>
|
||||
*/
|
||||
|
||||
#define COEX_TX_REQ_TX_CHAIN_MASK_OFFSET 0x0000000000000000
|
||||
#define COEX_TX_REQ_TX_CHAIN_MASK_LSB 19
|
||||
#define COEX_TX_REQ_TX_CHAIN_MASK_MSB 26
|
||||
#define COEX_TX_REQ_TX_CHAIN_MASK_MASK 0x0000000007f80000
|
||||
|
||||
|
||||
/* Description BW
|
||||
|
||||
Default (desired) transmit parameter
|
||||
|
||||
The BW of the upcoming transmission.
|
||||
|
||||
<enum 0 20_mhz>20 Mhz BW
|
||||
<enum 1 40_mhz>40 Mhz BW
|
||||
<enum 2 80_mhz>80 Mhz BW
|
||||
<enum 3 160_mhz>160 Mhz BW
|
||||
<enum 4 320_mhz>320 Mhz BW
|
||||
<enum 5 240_mhz>240 Mhz BW
|
||||
*/
|
||||
|
||||
#define COEX_TX_REQ_BW_OFFSET 0x0000000000000000
|
||||
#define COEX_TX_REQ_BW_LSB 27
|
||||
#define COEX_TX_REQ_BW_MSB 29
|
||||
#define COEX_TX_REQ_BW_MASK 0x0000000038000000
|
||||
|
||||
|
||||
/* Description RESERVED_0
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define COEX_TX_REQ_RESERVED_0_OFFSET 0x0000000000000000
|
||||
#define COEX_TX_REQ_RESERVED_0_LSB 30
|
||||
#define COEX_TX_REQ_RESERVED_0_MSB 31
|
||||
#define COEX_TX_REQ_RESERVED_0_MASK 0x00000000c0000000
|
||||
|
||||
|
||||
/* Description ALT_TX_PWR
|
||||
|
||||
Coex related AlternativeTransmit parameter
|
||||
|
||||
Transmit Power in s6.2 format.
|
||||
In units of 0.25 dBm
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define COEX_TX_REQ_ALT_TX_PWR_OFFSET 0x0000000000000000
|
||||
#define COEX_TX_REQ_ALT_TX_PWR_LSB 32
|
||||
#define COEX_TX_REQ_ALT_TX_PWR_MSB 39
|
||||
#define COEX_TX_REQ_ALT_TX_PWR_MASK 0x000000ff00000000
|
||||
|
||||
|
||||
/* Description ALT_MIN_TX_PWR
|
||||
|
||||
Coex related Alternative Transmit parameter
|
||||
|
||||
Minimum allowed Transmit Power in s6.2 format.
|
||||
In units of 0.25 dBm
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define COEX_TX_REQ_ALT_MIN_TX_PWR_OFFSET 0x0000000000000000
|
||||
#define COEX_TX_REQ_ALT_MIN_TX_PWR_LSB 40
|
||||
#define COEX_TX_REQ_ALT_MIN_TX_PWR_MSB 47
|
||||
#define COEX_TX_REQ_ALT_MIN_TX_PWR_MASK 0x0000ff0000000000
|
||||
|
||||
|
||||
/* Description ALT_NSS
|
||||
|
||||
Coex related Alternative Transmit parameter
|
||||
|
||||
Number of spatial streams.
|
||||
|
||||
<enum 0 1_spatial_stream>Single spatial stream
|
||||
<enum 1 2_spatial_streams>2 spatial streams
|
||||
<enum 2 3_spatial_streams>3 spatial streams
|
||||
<enum 3 4_spatial_streams>4 spatial streams
|
||||
<enum 4 5_spatial_streams>5 spatial streams
|
||||
<enum 5 6_spatial_streams>6 spatial streams
|
||||
<enum 6 7_spatial_streams>7 spatial streams
|
||||
<enum 7 8_spatial_streams>8 spatial streams
|
||||
*/
|
||||
|
||||
#define COEX_TX_REQ_ALT_NSS_OFFSET 0x0000000000000000
|
||||
#define COEX_TX_REQ_ALT_NSS_LSB 48
|
||||
#define COEX_TX_REQ_ALT_NSS_MSB 50
|
||||
#define COEX_TX_REQ_ALT_NSS_MASK 0x0007000000000000
|
||||
|
||||
|
||||
/* Description ALT_TX_CHAIN_MASK
|
||||
|
||||
Coex related Alternative Transmit parameter
|
||||
|
||||
Chain mask to support up to 8 antennas.
|
||||
|
||||
<legal 1-255>
|
||||
*/
|
||||
|
||||
#define COEX_TX_REQ_ALT_TX_CHAIN_MASK_OFFSET 0x0000000000000000
|
||||
#define COEX_TX_REQ_ALT_TX_CHAIN_MASK_LSB 51
|
||||
#define COEX_TX_REQ_ALT_TX_CHAIN_MASK_MSB 58
|
||||
#define COEX_TX_REQ_ALT_TX_CHAIN_MASK_MASK 0x07f8000000000000
|
||||
|
||||
|
||||
/* Description ALT_BW
|
||||
|
||||
Coex related Alternative Transmit parameter.
|
||||
|
||||
The BW of the upcoming transmission.
|
||||
|
||||
<enum 0 20_mhz>20 Mhz BW
|
||||
<enum 1 40_mhz>40 Mhz BW
|
||||
<enum 2 80_mhz>80 Mhz BW
|
||||
<enum 3 160_mhz>160 Mhz BW
|
||||
<enum 4 320_mhz>320 Mhz BW
|
||||
<enum 5 240_mhz>240 Mhz BW
|
||||
*/
|
||||
|
||||
#define COEX_TX_REQ_ALT_BW_OFFSET 0x0000000000000000
|
||||
#define COEX_TX_REQ_ALT_BW_LSB 59
|
||||
#define COEX_TX_REQ_ALT_BW_MSB 61
|
||||
#define COEX_TX_REQ_ALT_BW_MASK 0x3800000000000000
|
||||
|
||||
|
||||
/* Description RESERVED_1
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define COEX_TX_REQ_RESERVED_1_OFFSET 0x0000000000000000
|
||||
#define COEX_TX_REQ_RESERVED_1_LSB 62
|
||||
#define COEX_TX_REQ_RESERVED_1_MSB 63
|
||||
#define COEX_TX_REQ_RESERVED_1_MASK 0xc000000000000000
|
||||
|
||||
|
||||
/* Description TX_PWR_1
|
||||
|
||||
Default (desired) transmit parameter for the second chain
|
||||
|
||||
|
||||
Transmit Power in s6.2 format.
|
||||
In units of 0.25 dBm
|
||||
|
||||
Note that there is no Min value for this
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define COEX_TX_REQ_TX_PWR_1_OFFSET 0x0000000000000008
|
||||
#define COEX_TX_REQ_TX_PWR_1_LSB 0
|
||||
#define COEX_TX_REQ_TX_PWR_1_MSB 7
|
||||
#define COEX_TX_REQ_TX_PWR_1_MASK 0x00000000000000ff
|
||||
|
||||
|
||||
/* Description ALT_TX_PWR_1
|
||||
|
||||
Alternate (desired) transmit parameter for the second chain
|
||||
|
||||
|
||||
Transmit Power in s6.2 format.
|
||||
In units of 0.25 dBm
|
||||
|
||||
Note that there is no Min value for this
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define COEX_TX_REQ_ALT_TX_PWR_1_OFFSET 0x0000000000000008
|
||||
#define COEX_TX_REQ_ALT_TX_PWR_1_LSB 8
|
||||
#define COEX_TX_REQ_ALT_TX_PWR_1_MSB 15
|
||||
#define COEX_TX_REQ_ALT_TX_PWR_1_MASK 0x000000000000ff00
|
||||
|
||||
|
||||
/* Description WLAN_REQUEST_DURATION
|
||||
|
||||
The amount of time PDG might use for the upcoming transmission
|
||||
and corresponding reception if there is one...
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define COEX_TX_REQ_WLAN_REQUEST_DURATION_OFFSET 0x0000000000000008
|
||||
#define COEX_TX_REQ_WLAN_REQUEST_DURATION_LSB 16
|
||||
#define COEX_TX_REQ_WLAN_REQUEST_DURATION_MSB 31
|
||||
#define COEX_TX_REQ_WLAN_REQUEST_DURATION_MASK 0x00000000ffff0000
|
||||
|
||||
|
||||
/* Description WLAN_PKT_TYPE
|
||||
|
||||
Packet type:
|
||||
<enum 0 dot11a>802.11a PPDU type
|
||||
<enum 1 dot11b>802.11b PPDU type
|
||||
<enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
|
||||
<enum 3 dot11ac>802.11ac PPDU type
|
||||
<enum 4 dot11ax>802.11ax PPDU type
|
||||
<enum 5 dot11ba>802.11ba (WUR) PPDU type
|
||||
<enum 6 dot11be>802.11be PPDU type
|
||||
<enum 7 dot11az>802.11az (ranging) PPDU type
|
||||
<enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported
|
||||
& aborted)
|
||||
*/
|
||||
|
||||
#define COEX_TX_REQ_WLAN_PKT_TYPE_OFFSET 0x0000000000000008
|
||||
#define COEX_TX_REQ_WLAN_PKT_TYPE_LSB 32
|
||||
#define COEX_TX_REQ_WLAN_PKT_TYPE_MSB 35
|
||||
#define COEX_TX_REQ_WLAN_PKT_TYPE_MASK 0x0000000f00000000
|
||||
|
||||
|
||||
/* Description COEX_TX_REASON
|
||||
|
||||
<enum 0 cxc_fes_protection_frame> RTS, CTS2Self or
|
||||
11h protection type transmission preceding the regular PPDU
|
||||
portion of the coming FES.
|
||||
<enum 1 cxc_fes_after_protection > Regular PPDU transmission
|
||||
that follows the transmission of medium protection frames:.
|
||||
|
||||
<enum 2 cxc_fes_only> Regular PPDU transmission without
|
||||
preceding medium protection frame exchanges.
|
||||
|
||||
<enum 3 cxc_response_frame>
|
||||
HW generated response frame.
|
||||
Details of the response frame type provided in field: Response_frame_type
|
||||
|
||||
|
||||
<legal 0-3>
|
||||
*/
|
||||
|
||||
#define COEX_TX_REQ_COEX_TX_REASON_OFFSET 0x0000000000000008
|
||||
#define COEX_TX_REQ_COEX_TX_REASON_LSB 36
|
||||
#define COEX_TX_REQ_COEX_TX_REASON_MSB 37
|
||||
#define COEX_TX_REQ_COEX_TX_REASON_MASK 0x0000003000000000
|
||||
|
||||
|
||||
/* Description RESPONSE_FRAME_TYPE
|
||||
|
||||
Coex related field
|
||||
<enum 0 Resp_Non_11ah_ACK >
|
||||
<enum 1 Resp_Non_11ah_BA >
|
||||
<enum 2 Resp_Non_11ah_CTS >
|
||||
<enum 3 Resp_AH_NDP_CTS>
|
||||
<enum 4 Resp_AH_NDP_ACK>
|
||||
<enum 5 Resp_AH_NDP_BA>
|
||||
<enum 6 Resp_AH_NDP_MOD_ACK>
|
||||
<enum 7 Resp_AH_Normal_ACK>
|
||||
<enum 8 Resp_AH_Normal_BA>
|
||||
<enum 9 Resp_RTT_ACK>
|
||||
<enum 10 Resp_CBF_RESPONSE>
|
||||
<enum 11 Resp_MBA>
|
||||
<enum 12 Resp_Ranging_NDP>
|
||||
<enum 13 Resp_LMR_RESPONSE>
|
||||
<enum 14 Resp_TRIGGER_RESPONSE_BASIC>
|
||||
<enum 15 Resp_TRIGGER_RESPONSE_BUF_SIZE>
|
||||
<enum 16 Resp_TRIGGER_RESPONSE_BRPOLL>
|
||||
<enum 17 Resp_TRIGGER_RESPONSE_CTS>
|
||||
<enum 18 Resp_TRIGGER_RESPONSE_OTHER>
|
||||
|
||||
<legal 0-18>
|
||||
*/
|
||||
|
||||
#define COEX_TX_REQ_RESPONSE_FRAME_TYPE_OFFSET 0x0000000000000008
|
||||
#define COEX_TX_REQ_RESPONSE_FRAME_TYPE_LSB 38
|
||||
#define COEX_TX_REQ_RESPONSE_FRAME_TYPE_MSB 42
|
||||
#define COEX_TX_REQ_RESPONSE_FRAME_TYPE_MASK 0x000007c000000000
|
||||
|
||||
|
||||
/* Description WLAN_LOW_PRIORITY_SLICING_ALLOWED
|
||||
|
||||
When set, COEX is allowed to invoke 'tx slicing' algorithms
|
||||
when WLAN tx is low priority when compared to BT activity,
|
||||
to get to more optimal throughput. Value 0 will disable
|
||||
this feature
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define COEX_TX_REQ_WLAN_LOW_PRIORITY_SLICING_ALLOWED_OFFSET 0x0000000000000008
|
||||
#define COEX_TX_REQ_WLAN_LOW_PRIORITY_SLICING_ALLOWED_LSB 43
|
||||
#define COEX_TX_REQ_WLAN_LOW_PRIORITY_SLICING_ALLOWED_MSB 43
|
||||
#define COEX_TX_REQ_WLAN_LOW_PRIORITY_SLICING_ALLOWED_MASK 0x0000080000000000
|
||||
|
||||
|
||||
/* Description WLAN_HIGH_PRIORITY_SLICING_ALLOWED
|
||||
|
||||
When set, COEX is allowed to invoke 'tx slicing' algorithms
|
||||
when WLAN tx is high priority when compared to BT activity,
|
||||
to get to more optimal throughput. Value 0 will disable
|
||||
this feature.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define COEX_TX_REQ_WLAN_HIGH_PRIORITY_SLICING_ALLOWED_OFFSET 0x0000000000000008
|
||||
#define COEX_TX_REQ_WLAN_HIGH_PRIORITY_SLICING_ALLOWED_LSB 44
|
||||
#define COEX_TX_REQ_WLAN_HIGH_PRIORITY_SLICING_ALLOWED_MSB 44
|
||||
#define COEX_TX_REQ_WLAN_HIGH_PRIORITY_SLICING_ALLOWED_MASK 0x0000100000000000
|
||||
|
||||
|
||||
/* Description SCH_TX_BURST_ONGOING
|
||||
|
||||
0: No action
|
||||
1: The next scheduling command needs to start at SIFS time
|
||||
after finishing the frame transmissions in this command.
|
||||
This allows for SIFS based bursting
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define COEX_TX_REQ_SCH_TX_BURST_ONGOING_OFFSET 0x0000000000000008
|
||||
#define COEX_TX_REQ_SCH_TX_BURST_ONGOING_LSB 45
|
||||
#define COEX_TX_REQ_SCH_TX_BURST_ONGOING_MSB 45
|
||||
#define COEX_TX_REQ_SCH_TX_BURST_ONGOING_MASK 0x0000200000000000
|
||||
|
||||
|
||||
/* Description COEX_TX_PRIORITY
|
||||
|
||||
Transmit priority. Used for Coex weight table look up in
|
||||
case of regular FES transmission. This value is typically
|
||||
programmed in relationship to the backoff engine. In case
|
||||
of self_gen tx, the value comes from a programmable register
|
||||
in the TXPCU. For BA and ACK packets, this is related to
|
||||
AC of the incoming frame. .
|
||||
|
||||
For a request type of "fes", the field is copied over from
|
||||
the scheduling command TLV.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define COEX_TX_REQ_COEX_TX_PRIORITY_OFFSET 0x0000000000000008
|
||||
#define COEX_TX_REQ_COEX_TX_PRIORITY_LSB 46
|
||||
#define COEX_TX_REQ_COEX_TX_PRIORITY_MSB 49
|
||||
#define COEX_TX_REQ_COEX_TX_PRIORITY_MASK 0x0003c00000000000
|
||||
|
||||
|
||||
/* Description RESERVED_3A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define COEX_TX_REQ_RESERVED_3A_OFFSET 0x0000000000000008
|
||||
#define COEX_TX_REQ_RESERVED_3A_LSB 50
|
||||
#define COEX_TX_REQ_RESERVED_3A_MSB 63
|
||||
#define COEX_TX_REQ_RESERVED_3A_MASK 0xfffc000000000000
|
||||
|
||||
|
||||
|
||||
#endif // COEX_TX_REQ
|
||||
349
drivers/staging/fw-api/hw/qca5332/coex_tx_status.h
Normal file
349
drivers/staging/fw-api/hw/qca5332/coex_tx_status.h
Normal file
|
|
@ -0,0 +1,349 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _COEX_TX_STATUS_H_
|
||||
#define _COEX_TX_STATUS_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#define NUM_OF_DWORDS_COEX_TX_STATUS 4
|
||||
|
||||
#define NUM_OF_QWORDS_COEX_TX_STATUS 2
|
||||
|
||||
|
||||
struct coex_tx_status {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
uint32_t reserved_0a : 7, // [6:0]
|
||||
tx_bw : 3, // [9:7]
|
||||
tx_status_reason : 3, // [12:10]
|
||||
tx_wait_ack : 1, // [13:13]
|
||||
fes_tx_is_gen_frame : 1, // [14:14]
|
||||
sch_tx_burst_ongoing : 1, // [15:15]
|
||||
current_tx_duration : 16; // [31:16]
|
||||
uint32_t next_rx_active_time : 16, // [15:0]
|
||||
remaining_fes_time : 16; // [31:16]
|
||||
uint32_t tx_antenna_mask : 8, // [7:0]
|
||||
shared_ant_tx_pwr : 8, // [15:8]
|
||||
other_ant_tx_pwr : 8, // [23:16]
|
||||
reserved_2 : 8; // [31:24]
|
||||
uint32_t tlv64_padding : 32; // [31:0]
|
||||
#else
|
||||
uint32_t current_tx_duration : 16, // [31:16]
|
||||
sch_tx_burst_ongoing : 1, // [15:15]
|
||||
fes_tx_is_gen_frame : 1, // [14:14]
|
||||
tx_wait_ack : 1, // [13:13]
|
||||
tx_status_reason : 3, // [12:10]
|
||||
tx_bw : 3, // [9:7]
|
||||
reserved_0a : 7; // [6:0]
|
||||
uint32_t remaining_fes_time : 16, // [31:16]
|
||||
next_rx_active_time : 16; // [15:0]
|
||||
uint32_t reserved_2 : 8, // [31:24]
|
||||
other_ant_tx_pwr : 8, // [23:16]
|
||||
shared_ant_tx_pwr : 8, // [15:8]
|
||||
tx_antenna_mask : 8; // [7:0]
|
||||
uint32_t tlv64_padding : 32; // [31:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description RESERVED_0A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define COEX_TX_STATUS_RESERVED_0A_OFFSET 0x0000000000000000
|
||||
#define COEX_TX_STATUS_RESERVED_0A_LSB 0
|
||||
#define COEX_TX_STATUS_RESERVED_0A_MSB 6
|
||||
#define COEX_TX_STATUS_RESERVED_0A_MASK 0x000000000000007f
|
||||
|
||||
|
||||
/* Description TX_BW
|
||||
|
||||
The BW of the upcoming transmission.
|
||||
Note: Coex might have changed this from the original request.
|
||||
See coex related fields below
|
||||
|
||||
<enum 0 20_mhz>20 Mhz BW
|
||||
<enum 1 40_mhz>40 Mhz BW
|
||||
<enum 2 80_mhz>80 Mhz BW
|
||||
<enum 3 160_mhz>160 Mhz BW
|
||||
<enum 4 320_mhz>320 Mhz BW
|
||||
<enum 5 240_mhz>240 Mhz BW
|
||||
*/
|
||||
|
||||
#define COEX_TX_STATUS_TX_BW_OFFSET 0x0000000000000000
|
||||
#define COEX_TX_STATUS_TX_BW_LSB 7
|
||||
#define COEX_TX_STATUS_TX_BW_MSB 9
|
||||
#define COEX_TX_STATUS_TX_BW_MASK 0x0000000000000380
|
||||
|
||||
|
||||
/* Description TX_STATUS_REASON
|
||||
|
||||
<enum 0 FES_tx_start> TXPCU sends this status at the
|
||||
start of SCH initiated transmission (when the commands
|
||||
are given to the PHY). This includes the transmission of
|
||||
RTS and CTS
|
||||
Note that based on field 'Fes_tx_is_gen_frame' COEX can
|
||||
derive if this is a protection frame or regular PPDU.
|
||||
|
||||
<enum 1 FES_tx_end> TXPCU sends this status at the end
|
||||
of SCH initiated transmission (when PHY TX has confirmed
|
||||
the transmit over the medium has finished)
|
||||
|
||||
<enum 2 FES_end> TXPCU sends this status at the end
|
||||
of of the entire frame exchange sequence. This includes
|
||||
reception (or lack of..) of the ACK/BA/CTS frame
|
||||
TXPCU sends this FES after it has sent the TX_FES_STATUS
|
||||
TLV(s). This also sent in case of 11ax basic trigger response
|
||||
transmissions, when an ACK/BA is expected, and that got
|
||||
received.
|
||||
<enum 3 Response_tx_start> TXPCU sends this status at
|
||||
the start of Self gen initiated response transmission (when
|
||||
the commands are given to the PHY)
|
||||
<enum 4 Response_tx_end> TXPCU sends this status at
|
||||
the end of Self gen initiated response transmission (when
|
||||
PHY TX has confirmed the transmit over the medium has finished)
|
||||
|
||||
|
||||
<enum 5 No_tx_ongoing> TXPCU sends this TLV when forced
|
||||
by SW to do so. It is used to be able to get TXPCU and
|
||||
coex synchronized again in case of some error handling scenarios
|
||||
|
||||
|
||||
<legal 0-5>
|
||||
*/
|
||||
|
||||
#define COEX_TX_STATUS_TX_STATUS_REASON_OFFSET 0x0000000000000000
|
||||
#define COEX_TX_STATUS_TX_STATUS_REASON_LSB 10
|
||||
#define COEX_TX_STATUS_TX_STATUS_REASON_MSB 12
|
||||
#define COEX_TX_STATUS_TX_STATUS_REASON_MASK 0x0000000000001c00
|
||||
|
||||
|
||||
/* Description TX_WAIT_ACK
|
||||
|
||||
Field can only be set for the 'FES_tx_end' scenario.
|
||||
TXPCU sets this bit to 1 when it is waiting for an ACK/BA
|
||||
or CTS Response.
|
||||
*/
|
||||
|
||||
#define COEX_TX_STATUS_TX_WAIT_ACK_OFFSET 0x0000000000000000
|
||||
#define COEX_TX_STATUS_TX_WAIT_ACK_LSB 13
|
||||
#define COEX_TX_STATUS_TX_WAIT_ACK_MSB 13
|
||||
#define COEX_TX_STATUS_TX_WAIT_ACK_MASK 0x0000000000002000
|
||||
|
||||
|
||||
/* Description FES_TX_IS_GEN_FRAME
|
||||
|
||||
Field only valid in case tx_status_reason indicates FES_tx_start
|
||||
or FES_tx_end.
|
||||
|
||||
Field is set to 1 if the frame transmitted is a self generated
|
||||
frame like RTS, CTS 2 self or NDP
|
||||
*/
|
||||
|
||||
#define COEX_TX_STATUS_FES_TX_IS_GEN_FRAME_OFFSET 0x0000000000000000
|
||||
#define COEX_TX_STATUS_FES_TX_IS_GEN_FRAME_LSB 14
|
||||
#define COEX_TX_STATUS_FES_TX_IS_GEN_FRAME_MSB 14
|
||||
#define COEX_TX_STATUS_FES_TX_IS_GEN_FRAME_MASK 0x0000000000004000
|
||||
|
||||
|
||||
/* Description SCH_TX_BURST_ONGOING
|
||||
|
||||
The proposed change by HWSCH requires TXPCU to reflect
|
||||
TX_FES_SETUP.sch_tx_burst_ongoing field intoCOEX_TX_STATUS.sch_tx_burst_ongoing
|
||||
field, when tx_status_reason is FES_end.
|
||||
SCH will overwrite this bit (that is set it to 1), when
|
||||
TXPCU set the tx_status_reason to FES_end, and SCH determines
|
||||
that this FES is followed by other SIFS bursting based
|
||||
Scheduler commands.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define COEX_TX_STATUS_SCH_TX_BURST_ONGOING_OFFSET 0x0000000000000000
|
||||
#define COEX_TX_STATUS_SCH_TX_BURST_ONGOING_LSB 15
|
||||
#define COEX_TX_STATUS_SCH_TX_BURST_ONGOING_MSB 15
|
||||
#define COEX_TX_STATUS_SCH_TX_BURST_ONGOING_MASK 0x0000000000008000
|
||||
|
||||
|
||||
/* Description CURRENT_TX_DURATION
|
||||
|
||||
In case of FES related transmission:
|
||||
TXPCU sends current transmission time at the beginning of
|
||||
transmission. This time covers the entire (PPDU) tx_frame.
|
||||
This field is only valid when 'tx_status_reason' is equal
|
||||
to FES_tx_start or Response_tx_start. In other scenarios
|
||||
it is set to 0
|
||||
In us units <legal all>
|
||||
*/
|
||||
|
||||
#define COEX_TX_STATUS_CURRENT_TX_DURATION_OFFSET 0x0000000000000000
|
||||
#define COEX_TX_STATUS_CURRENT_TX_DURATION_LSB 16
|
||||
#define COEX_TX_STATUS_CURRENT_TX_DURATION_MSB 31
|
||||
#define COEX_TX_STATUS_CURRENT_TX_DURATION_MASK 0x00000000ffff0000
|
||||
|
||||
|
||||
/* Description NEXT_RX_ACTIVE_TIME
|
||||
|
||||
In case of FES transmission:
|
||||
The expected receive duration for ACK/CTS/BA frame after
|
||||
current transmission has finished. This field should be
|
||||
set at both the start and end of the transmission. When
|
||||
no frame reception is expected, this field is 0
|
||||
|
||||
In case of Response transmission or Trigger Response transmission:
|
||||
|
||||
The expected receive duration for upcoming reception. This
|
||||
field has the same value as the transmitted duration field.
|
||||
|
||||
|
||||
Note that for this scenario, there might be an other TX
|
||||
generated during this specified time. It is not known to
|
||||
this device what the transmitter is planning to do in the
|
||||
remainder of the TXOP. In other words, this value represents
|
||||
the best guess, but might not be fully accurate.
|
||||
|
||||
In us units
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define COEX_TX_STATUS_NEXT_RX_ACTIVE_TIME_OFFSET 0x0000000000000000
|
||||
#define COEX_TX_STATUS_NEXT_RX_ACTIVE_TIME_LSB 32
|
||||
#define COEX_TX_STATUS_NEXT_RX_ACTIVE_TIME_MSB 47
|
||||
#define COEX_TX_STATUS_NEXT_RX_ACTIVE_TIME_MASK 0x0000ffff00000000
|
||||
|
||||
|
||||
/* Description REMAINING_FES_TIME
|
||||
|
||||
In case of FES transmission:
|
||||
TXPCU sends the remaining FES time it expects to occupy
|
||||
the media.
|
||||
At the 'FES_tx_start', this value is the current_tx_duration
|
||||
+ value of inserted duration field.
|
||||
At the 'FES_tx_end', this value is equal to the duration
|
||||
field in the just transmitted frame.
|
||||
At the 'FES_end', this value is the remaining FES duration
|
||||
value. Note that this value should only be non zero in
|
||||
case of SIFS burting type of transmissions.
|
||||
In case of a FES failure, like reponse frame not received,
|
||||
this field is set to 0
|
||||
|
||||
In case of Self Gen response transmission (includes Trigger
|
||||
response):
|
||||
At the 'Response_tx_start', this field has the same value
|
||||
as the Current_tx_duration + inserted duration field
|
||||
At the 'Response_tx_end', this field has the same value
|
||||
as the inserted duration field
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define COEX_TX_STATUS_REMAINING_FES_TIME_OFFSET 0x0000000000000000
|
||||
#define COEX_TX_STATUS_REMAINING_FES_TIME_LSB 48
|
||||
#define COEX_TX_STATUS_REMAINING_FES_TIME_MSB 63
|
||||
#define COEX_TX_STATUS_REMAINING_FES_TIME_MASK 0xffff000000000000
|
||||
|
||||
|
||||
/* Description TX_ANTENNA_MASK
|
||||
|
||||
The actual used antennas for this transmission
|
||||
|
||||
For debug purpose only. PDG should not have modified the
|
||||
value given by the Coex.
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define COEX_TX_STATUS_TX_ANTENNA_MASK_OFFSET 0x0000000000000008
|
||||
#define COEX_TX_STATUS_TX_ANTENNA_MASK_LSB 0
|
||||
#define COEX_TX_STATUS_TX_ANTENNA_MASK_MSB 7
|
||||
#define COEX_TX_STATUS_TX_ANTENNA_MASK_MASK 0x00000000000000ff
|
||||
|
||||
|
||||
/* Description SHARED_ANT_TX_PWR
|
||||
|
||||
Actual tx power on the shared antenna
|
||||
TXPCU sends at the beginning of transmission when tx_frame
|
||||
is on.
|
||||
|
||||
For debug purpose only. PDG should not have modified the
|
||||
value given by the Coex.
|
||||
|
||||
Transmit Power in s6.2 format.
|
||||
In units of 0.25 dBm
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define COEX_TX_STATUS_SHARED_ANT_TX_PWR_OFFSET 0x0000000000000008
|
||||
#define COEX_TX_STATUS_SHARED_ANT_TX_PWR_LSB 8
|
||||
#define COEX_TX_STATUS_SHARED_ANT_TX_PWR_MSB 15
|
||||
#define COEX_TX_STATUS_SHARED_ANT_TX_PWR_MASK 0x000000000000ff00
|
||||
|
||||
|
||||
/* Description OTHER_ANT_TX_PWR
|
||||
|
||||
Actual tx power on the 'unshared' antenna(s)
|
||||
TXPCU sends at the beginning of transmission when tx_frame
|
||||
is on.
|
||||
|
||||
For debug purpose only. PDG should not have modified the
|
||||
value given by the Coex.
|
||||
|
||||
Transmit Power in s6.2 format.
|
||||
In units of 0.25 dBm
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define COEX_TX_STATUS_OTHER_ANT_TX_PWR_OFFSET 0x0000000000000008
|
||||
#define COEX_TX_STATUS_OTHER_ANT_TX_PWR_LSB 16
|
||||
#define COEX_TX_STATUS_OTHER_ANT_TX_PWR_MSB 23
|
||||
#define COEX_TX_STATUS_OTHER_ANT_TX_PWR_MASK 0x0000000000ff0000
|
||||
|
||||
|
||||
/* Description RESERVED_2
|
||||
|
||||
Generator should set to 0, consumer shall ignore <legal
|
||||
0>
|
||||
*/
|
||||
|
||||
#define COEX_TX_STATUS_RESERVED_2_OFFSET 0x0000000000000008
|
||||
#define COEX_TX_STATUS_RESERVED_2_LSB 24
|
||||
#define COEX_TX_STATUS_RESERVED_2_MSB 31
|
||||
#define COEX_TX_STATUS_RESERVED_2_MASK 0x00000000ff000000
|
||||
|
||||
|
||||
/* Description TLV64_PADDING
|
||||
|
||||
Automatic DWORD padding inserted while converting TLV32
|
||||
to TLV64 for 64 bit ARCH
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define COEX_TX_STATUS_TLV64_PADDING_OFFSET 0x0000000000000008
|
||||
#define COEX_TX_STATUS_TLV64_PADDING_LSB 32
|
||||
#define COEX_TX_STATUS_TLV64_PADDING_MSB 63
|
||||
#define COEX_TX_STATUS_TLV64_PADDING_MASK 0xffffffff00000000
|
||||
|
||||
|
||||
|
||||
#endif // COEX_TX_STATUS
|
||||
241
drivers/staging/fw-api/hw/qca5332/com_dtypes.h
Normal file
241
drivers/staging/fw-api/hw/qca5332/com_dtypes.h
Normal file
|
|
@ -0,0 +1,241 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifndef COM_DTYPES_H
|
||||
#define COM_DTYPES_H
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* For NT apps we want to use the Win32 definitions and/or those
|
||||
supplied by the Win32 compiler for things like NULL, MAX, MIN
|
||||
abs, labs, etc.
|
||||
*/
|
||||
#ifdef T_WINNT
|
||||
#ifndef WIN32
|
||||
#define WIN32
|
||||
#endif
|
||||
#include <stdlib.h>
|
||||
#endif
|
||||
|
||||
/* ------------------------------------------------------------------------
|
||||
** Constants
|
||||
** ------------------------------------------------------------------------ */
|
||||
|
||||
#ifdef TRUE
|
||||
#undef TRUE
|
||||
#endif
|
||||
|
||||
#ifdef FALSE
|
||||
#undef FALSE
|
||||
#endif
|
||||
|
||||
/** @addtogroup utils_services
|
||||
@{ */
|
||||
|
||||
/** @name Macros for Common Data Types
|
||||
@{ */
|
||||
#define TRUE 1 /**< Boolean TRUE value. */
|
||||
#define FALSE 0 /**< Boolean FALSE value. */
|
||||
|
||||
#define ON 1 /**< ON value. */
|
||||
#define OFF 0 /**< OFF value. */
|
||||
|
||||
#ifndef NULL
|
||||
#define NULL 0 /**< NULL value. */
|
||||
#endif
|
||||
/** @} */ /* end_name_group Macros for Common Data Types */
|
||||
|
||||
/* -----------------------------------------------------------------------
|
||||
** Standard Types
|
||||
** ----------------------------------------------------------------------- */
|
||||
|
||||
/** @} */ /* end_addtogroup utils_services */
|
||||
|
||||
/* The following definitions are the same across platforms. This first
|
||||
group are the sanctioned types.
|
||||
*/
|
||||
#ifndef _ARM_ASM_
|
||||
#ifndef _BOOLEAN_DEFINED
|
||||
|
||||
/** @addtogroup utils_services
|
||||
@{ */
|
||||
/** Boolean value type.
|
||||
*/
|
||||
typedef unsigned char boolean;
|
||||
#define _BOOLEAN_DEFINED
|
||||
#endif
|
||||
|
||||
/** @cond
|
||||
*/
|
||||
#if defined(DALSTDDEF_H) /* guards against a known re-definer */
|
||||
#define _BOOLEAN_DEFINED
|
||||
#define _UINT32_DEFINED
|
||||
#define _UINT16_DEFINED
|
||||
#define _UINT8_DEFINED
|
||||
#define _INT32_DEFINED
|
||||
#define _INT16_DEFINED
|
||||
#define _INT8_DEFINED
|
||||
#define _UINT64_DEFINED
|
||||
#define _INT64_DEFINED
|
||||
#define _BYTE_DEFINED
|
||||
#endif /* #if !defined(DALSTDDEF_H) */
|
||||
/** @endcond */
|
||||
|
||||
#ifndef _UINT32_DEFINED
|
||||
/** Unsigned 32-bit value.
|
||||
*/
|
||||
typedef unsigned int uint32;
|
||||
#define _UINT32_DEFINED
|
||||
#endif
|
||||
|
||||
#ifndef _UINT16_DEFINED
|
||||
/** Unsigned 16-bit value.
|
||||
*/
|
||||
typedef unsigned short uint16;
|
||||
#define _UINT16_DEFINED
|
||||
#endif
|
||||
|
||||
#ifndef _UINT8_DEFINED
|
||||
/** Unsigned 8-bit value.
|
||||
*/
|
||||
typedef unsigned char uint8;
|
||||
#define _UINT8_DEFINED
|
||||
#endif
|
||||
|
||||
#ifndef _INT32_DEFINED
|
||||
/** Signed 32-bit value.
|
||||
*/
|
||||
typedef signed int int32;
|
||||
#define _INT32_DEFINED
|
||||
#endif
|
||||
|
||||
#ifndef _INT16_DEFINED
|
||||
/** Signed 16-bit value.
|
||||
*/
|
||||
typedef signed short int16;
|
||||
#define _INT16_DEFINED
|
||||
#endif
|
||||
|
||||
#ifndef _INT8_DEFINED
|
||||
/** Signed 8-bit value.
|
||||
*/
|
||||
typedef signed char int8;
|
||||
#define _INT8_DEFINED
|
||||
#endif
|
||||
|
||||
/** @cond
|
||||
*/
|
||||
/* This group are the deprecated types. Their use should be
|
||||
** discontinued and new code should use the types above
|
||||
*/
|
||||
#ifndef _BYTE_DEFINED
|
||||
/** DEPRECATED: Unsigned 8 bit value type.
|
||||
*/
|
||||
typedef unsigned char byte;
|
||||
#define _BYTE_DEFINED
|
||||
#endif
|
||||
|
||||
/** DEPRECATED: Unsinged 16 bit value type.
|
||||
*/
|
||||
typedef unsigned short word;
|
||||
/** DEPRECATED: Unsigned 32 bit value type.
|
||||
*/
|
||||
typedef unsigned long dword;
|
||||
|
||||
/** DEPRECATED: Unsigned 8 bit value type.
|
||||
*/
|
||||
typedef unsigned char uint1;
|
||||
/** DEPRECATED: Unsigned 16 bit value type.
|
||||
*/
|
||||
typedef unsigned short uint2;
|
||||
/** DEPRECATED: Unsigned 32 bit value type.
|
||||
*/
|
||||
typedef unsigned long uint4;
|
||||
|
||||
/** DEPRECATED: Signed 8 bit value type.
|
||||
*/
|
||||
typedef signed char int1;
|
||||
/** DEPRECATED: Signed 16 bit value type.
|
||||
*/
|
||||
typedef signed short int2;
|
||||
/** DEPRECATED: Signed 32 bit value type.
|
||||
*/
|
||||
typedef long int int4;
|
||||
|
||||
/** DEPRECATED: Signed 32 bit value.
|
||||
*/
|
||||
typedef signed long sint31;
|
||||
/** DEPRECATED: Signed 16 bit value.
|
||||
*/
|
||||
typedef signed short sint15;
|
||||
/** DEPRECATED: Signed 8 bit value.
|
||||
*/
|
||||
typedef signed char sint7;
|
||||
|
||||
typedef uint16 UWord16 ;
|
||||
typedef uint32 UWord32 ;
|
||||
typedef int32 Word32 ;
|
||||
typedef int16 Word16 ;
|
||||
typedef uint8 UWord8 ;
|
||||
typedef int8 Word8 ;
|
||||
typedef int32 Vect32 ;
|
||||
/** @endcond */
|
||||
|
||||
#if (! defined T_WINNT) && (! defined __GNUC__)
|
||||
/* Non WinNT Targets */
|
||||
#ifndef _INT64_DEFINED
|
||||
/** Signed 64-bit value.
|
||||
*/
|
||||
typedef long long int64;
|
||||
#define _INT64_DEFINED
|
||||
#endif
|
||||
#ifndef _UINT64_DEFINED
|
||||
/** Unsigned 64-bit value.
|
||||
*/
|
||||
typedef unsigned long long uint64;
|
||||
#define _UINT64_DEFINED
|
||||
#endif
|
||||
#else /* T_WINNT || TARGET_OS_SOLARIS || __GNUC__ */
|
||||
/* WINNT or SOLARIS based targets */
|
||||
#if (defined __GNUC__)
|
||||
#ifndef _INT64_DEFINED
|
||||
typedef long long int64;
|
||||
#define _INT64_DEFINED
|
||||
#endif
|
||||
#ifndef _UINT64_DEFINED
|
||||
typedef unsigned long long uint64;
|
||||
#define _UINT64_DEFINED
|
||||
#endif
|
||||
#else
|
||||
typedef __int64 int64; /* Signed 64-bit value */
|
||||
#ifndef _UINT64_DEFINED
|
||||
typedef unsigned __int64 uint64; /* Unsigned 64-bit value */
|
||||
#define _UINT64_DEFINED
|
||||
#endif
|
||||
#endif
|
||||
#endif /* T_WINNT */
|
||||
|
||||
#endif /* _ARM_ASM_ */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/** @} */ /* end_addtogroup utils_services */
|
||||
#endif /* COM_DTYPES_H */
|
||||
228
drivers/staging/fw-api/hw/qca5332/eht_sig_usr_mu_mimo_info.h
Normal file
228
drivers/staging/fw-api/hw/qca5332/eht_sig_usr_mu_mimo_info.h
Normal file
|
|
@ -0,0 +1,228 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _EHT_SIG_USR_MU_MIMO_INFO_H_
|
||||
#define _EHT_SIG_USR_MU_MIMO_INFO_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#define NUM_OF_DWORDS_EHT_SIG_USR_MU_MIMO_INFO 2
|
||||
|
||||
|
||||
struct eht_sig_usr_mu_mimo_info {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
uint32_t sta_id : 11, // [10:0]
|
||||
sta_mcs : 4, // [14:11]
|
||||
sta_coding : 1, // [15:15]
|
||||
sta_spatial_config : 6, // [21:16]
|
||||
reserved_0a : 1, // [22:22]
|
||||
rx_integrity_check_passed : 1, // [23:23]
|
||||
subband80_cc_mask : 8; // [31:24]
|
||||
uint32_t user_order_subband80_0 : 8, // [7:0]
|
||||
user_order_subband80_1 : 8, // [15:8]
|
||||
user_order_subband80_2 : 8, // [23:16]
|
||||
user_order_subband80_3 : 8; // [31:24]
|
||||
#else
|
||||
uint32_t subband80_cc_mask : 8, // [31:24]
|
||||
rx_integrity_check_passed : 1, // [23:23]
|
||||
reserved_0a : 1, // [22:22]
|
||||
sta_spatial_config : 6, // [21:16]
|
||||
sta_coding : 1, // [15:15]
|
||||
sta_mcs : 4, // [14:11]
|
||||
sta_id : 11; // [10:0]
|
||||
uint32_t user_order_subband80_3 : 8, // [31:24]
|
||||
user_order_subband80_2 : 8, // [23:16]
|
||||
user_order_subband80_1 : 8, // [15:8]
|
||||
user_order_subband80_0 : 8; // [7:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description STA_ID
|
||||
|
||||
Identifies the STA that is addressed. Details of STA ID
|
||||
are TBD
|
||||
*/
|
||||
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_STA_ID_OFFSET 0x00000000
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_STA_ID_LSB 0
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_STA_ID_MSB 10
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_STA_ID_MASK 0x000007ff
|
||||
|
||||
|
||||
/* Description STA_MCS
|
||||
|
||||
Indicates the data MCS
|
||||
0 - 13: MCS 0 - 13
|
||||
14: validate
|
||||
15: MCS 0 with DCM
|
||||
<legal 0-13, 15>
|
||||
*/
|
||||
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_STA_MCS_OFFSET 0x00000000
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_STA_MCS_LSB 11
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_STA_MCS_MSB 14
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_STA_MCS_MASK 0x00007800
|
||||
|
||||
|
||||
/* Description STA_CODING
|
||||
|
||||
Distinguishes between BCC/LDPC
|
||||
|
||||
0: BCC
|
||||
1: LDPC
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_STA_CODING_OFFSET 0x00000000
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_STA_CODING_LSB 15
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_STA_CODING_MSB 15
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_STA_CODING_MASK 0x00008000
|
||||
|
||||
|
||||
/* Description STA_SPATIAL_CONFIG
|
||||
|
||||
Number of assigned spatial streams and their corresponding
|
||||
index.
|
||||
Total number of spatial streams assigned for the MU-MIMO
|
||||
allocation is also signaled.
|
||||
*/
|
||||
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_STA_SPATIAL_CONFIG_OFFSET 0x00000000
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_STA_SPATIAL_CONFIG_LSB 16
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_STA_SPATIAL_CONFIG_MSB 21
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_STA_SPATIAL_CONFIG_MASK 0x003f0000
|
||||
|
||||
|
||||
/* Description RESERVED_0A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_RESERVED_0A_OFFSET 0x00000000
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_RESERVED_0A_LSB 22
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_RESERVED_0A_MSB 22
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_RESERVED_0A_MASK 0x00400000
|
||||
|
||||
|
||||
/* Description RX_INTEGRITY_CHECK_PASSED
|
||||
|
||||
TX side: Set to 0
|
||||
RX side: Set to 1 if PHY determines the CRC check of the
|
||||
codeblock containing this EHT-SIG user info has passed,
|
||||
else set to 0
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x00000000
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_RX_INTEGRITY_CHECK_PASSED_LSB 23
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_RX_INTEGRITY_CHECK_PASSED_MSB 23
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_RX_INTEGRITY_CHECK_PASSED_MASK 0x00800000
|
||||
|
||||
|
||||
/* Description SUBBAND80_CC_MASK
|
||||
|
||||
RX side: Set to 0
|
||||
TX side: Indicates what content channels of what 80 MHz
|
||||
subbands this User field can go to
|
||||
Bit 0: lowest 80 MHz content channel 0
|
||||
Bit 1: lowest 80 MHz content channel 1
|
||||
Bit 2: 2nd lowest 80 MHz content channel 0
|
||||
...
|
||||
Bit 7: highest 80 MHz content channel 1
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_SUBBAND80_CC_MASK_OFFSET 0x00000000
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_SUBBAND80_CC_MASK_LSB 24
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_SUBBAND80_CC_MASK_MSB 31
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_SUBBAND80_CC_MASK_MASK 0xff000000
|
||||
|
||||
|
||||
/* Description USER_ORDER_SUBBAND80_0
|
||||
|
||||
RX side: Set to 0
|
||||
TX side: Ordering index of the User field within the lowest
|
||||
80 MHz
|
||||
Gaps between the ordering indices of User fields indicate
|
||||
that the microcode shall generate "unallocated RU" User
|
||||
fields (STAID=2046) to fill the gaps.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_0_OFFSET 0x00000004
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_0_LSB 0
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_0_MSB 7
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_0_MASK 0x000000ff
|
||||
|
||||
|
||||
/* Description USER_ORDER_SUBBAND80_1
|
||||
|
||||
RX side: Set to 0
|
||||
TX side: Ordering index of the User field within the 2nd
|
||||
lowest 80 MHz
|
||||
See 'user_order_subband80_0.'
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_1_OFFSET 0x00000004
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_1_LSB 8
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_1_MSB 15
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_1_MASK 0x0000ff00
|
||||
|
||||
|
||||
/* Description USER_ORDER_SUBBAND80_2
|
||||
|
||||
RX side: Set to 0
|
||||
TX side: Ordering index of the User field within the 2nd
|
||||
highest 80 MHz
|
||||
See 'user_order_subband80_0.'
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_2_OFFSET 0x00000004
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_2_LSB 16
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_2_MSB 23
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_2_MASK 0x00ff0000
|
||||
|
||||
|
||||
/* Description USER_ORDER_SUBBAND80_3
|
||||
|
||||
RX side: Set to 0
|
||||
TX side: Ordering index of the User field within the highest
|
||||
80 MHz
|
||||
See 'user_order_subband80_0.'
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_3_OFFSET 0x00000004
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_3_LSB 24
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_3_MSB 31
|
||||
#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_3_MASK 0xff000000
|
||||
|
||||
|
||||
|
||||
#endif // EHT_SIG_USR_MU_MIMO_INFO
|
||||
259
drivers/staging/fw-api/hw/qca5332/eht_sig_usr_ofdma_info.h
Normal file
259
drivers/staging/fw-api/hw/qca5332/eht_sig_usr_ofdma_info.h
Normal file
|
|
@ -0,0 +1,259 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _EHT_SIG_USR_OFDMA_INFO_H_
|
||||
#define _EHT_SIG_USR_OFDMA_INFO_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#define NUM_OF_DWORDS_EHT_SIG_USR_OFDMA_INFO 2
|
||||
|
||||
|
||||
struct eht_sig_usr_ofdma_info {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
uint32_t sta_id : 11, // [10:0]
|
||||
sta_mcs : 4, // [14:11]
|
||||
validate_0a : 1, // [15:15]
|
||||
nss : 4, // [19:16]
|
||||
txbf : 1, // [20:20]
|
||||
sta_coding : 1, // [21:21]
|
||||
reserved_0b : 1, // [22:22]
|
||||
rx_integrity_check_passed : 1, // [23:23]
|
||||
subband80_cc_mask : 8; // [31:24]
|
||||
uint32_t user_order_subband80_0 : 8, // [7:0]
|
||||
user_order_subband80_1 : 8, // [15:8]
|
||||
user_order_subband80_2 : 8, // [23:16]
|
||||
user_order_subband80_3 : 8; // [31:24]
|
||||
#else
|
||||
uint32_t subband80_cc_mask : 8, // [31:24]
|
||||
rx_integrity_check_passed : 1, // [23:23]
|
||||
reserved_0b : 1, // [22:22]
|
||||
sta_coding : 1, // [21:21]
|
||||
txbf : 1, // [20:20]
|
||||
nss : 4, // [19:16]
|
||||
validate_0a : 1, // [15:15]
|
||||
sta_mcs : 4, // [14:11]
|
||||
sta_id : 11; // [10:0]
|
||||
uint32_t user_order_subband80_3 : 8, // [31:24]
|
||||
user_order_subband80_2 : 8, // [23:16]
|
||||
user_order_subband80_1 : 8, // [15:8]
|
||||
user_order_subband80_0 : 8; // [7:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description STA_ID
|
||||
|
||||
Identifies the STA that is addressed. Details of STA ID
|
||||
are TBD
|
||||
*/
|
||||
|
||||
#define EHT_SIG_USR_OFDMA_INFO_STA_ID_OFFSET 0x00000000
|
||||
#define EHT_SIG_USR_OFDMA_INFO_STA_ID_LSB 0
|
||||
#define EHT_SIG_USR_OFDMA_INFO_STA_ID_MSB 10
|
||||
#define EHT_SIG_USR_OFDMA_INFO_STA_ID_MASK 0x000007ff
|
||||
|
||||
|
||||
/* Description STA_MCS
|
||||
|
||||
Indicates the data MCS
|
||||
0 - 13: MCS 0 - 13
|
||||
14: validate
|
||||
15: MCS 0 with DCM
|
||||
<legal 0-13, 15>
|
||||
*/
|
||||
|
||||
#define EHT_SIG_USR_OFDMA_INFO_STA_MCS_OFFSET 0x00000000
|
||||
#define EHT_SIG_USR_OFDMA_INFO_STA_MCS_LSB 11
|
||||
#define EHT_SIG_USR_OFDMA_INFO_STA_MCS_MSB 14
|
||||
#define EHT_SIG_USR_OFDMA_INFO_STA_MCS_MASK 0x00007800
|
||||
|
||||
|
||||
/* Description VALIDATE_0A
|
||||
|
||||
Note: spec indicates this shall be set to 1
|
||||
<legal 1>
|
||||
*/
|
||||
|
||||
#define EHT_SIG_USR_OFDMA_INFO_VALIDATE_0A_OFFSET 0x00000000
|
||||
#define EHT_SIG_USR_OFDMA_INFO_VALIDATE_0A_LSB 15
|
||||
#define EHT_SIG_USR_OFDMA_INFO_VALIDATE_0A_MSB 15
|
||||
#define EHT_SIG_USR_OFDMA_INFO_VALIDATE_0A_MASK 0x00008000
|
||||
|
||||
|
||||
/* Description NSS
|
||||
|
||||
Number of spatial streams for this user
|
||||
|
||||
The actual number of streams is 1 larger than indicated
|
||||
in this field.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define EHT_SIG_USR_OFDMA_INFO_NSS_OFFSET 0x00000000
|
||||
#define EHT_SIG_USR_OFDMA_INFO_NSS_LSB 16
|
||||
#define EHT_SIG_USR_OFDMA_INFO_NSS_MSB 19
|
||||
#define EHT_SIG_USR_OFDMA_INFO_NSS_MASK 0x000f0000
|
||||
|
||||
|
||||
/* Description TXBF
|
||||
|
||||
Indicates whether beamforming is applied
|
||||
0: No beamforming
|
||||
1: beamforming
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define EHT_SIG_USR_OFDMA_INFO_TXBF_OFFSET 0x00000000
|
||||
#define EHT_SIG_USR_OFDMA_INFO_TXBF_LSB 20
|
||||
#define EHT_SIG_USR_OFDMA_INFO_TXBF_MSB 20
|
||||
#define EHT_SIG_USR_OFDMA_INFO_TXBF_MASK 0x00100000
|
||||
|
||||
|
||||
/* Description STA_CODING
|
||||
|
||||
Distinguishes between BCC/LDPC
|
||||
|
||||
0: BCC
|
||||
1: LDPC
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define EHT_SIG_USR_OFDMA_INFO_STA_CODING_OFFSET 0x00000000
|
||||
#define EHT_SIG_USR_OFDMA_INFO_STA_CODING_LSB 21
|
||||
#define EHT_SIG_USR_OFDMA_INFO_STA_CODING_MSB 21
|
||||
#define EHT_SIG_USR_OFDMA_INFO_STA_CODING_MASK 0x00200000
|
||||
|
||||
|
||||
/* Description RESERVED_0B
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define EHT_SIG_USR_OFDMA_INFO_RESERVED_0B_OFFSET 0x00000000
|
||||
#define EHT_SIG_USR_OFDMA_INFO_RESERVED_0B_LSB 22
|
||||
#define EHT_SIG_USR_OFDMA_INFO_RESERVED_0B_MSB 22
|
||||
#define EHT_SIG_USR_OFDMA_INFO_RESERVED_0B_MASK 0x00400000
|
||||
|
||||
|
||||
/* Description RX_INTEGRITY_CHECK_PASSED
|
||||
|
||||
TX side: Set to 0
|
||||
RX side: Set to 1 if PHY determines the CRC check of the
|
||||
codeblock containing this EHT-SIG user info has passed,
|
||||
else set to 0
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define EHT_SIG_USR_OFDMA_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x00000000
|
||||
#define EHT_SIG_USR_OFDMA_INFO_RX_INTEGRITY_CHECK_PASSED_LSB 23
|
||||
#define EHT_SIG_USR_OFDMA_INFO_RX_INTEGRITY_CHECK_PASSED_MSB 23
|
||||
#define EHT_SIG_USR_OFDMA_INFO_RX_INTEGRITY_CHECK_PASSED_MASK 0x00800000
|
||||
|
||||
|
||||
/* Description SUBBAND80_CC_MASK
|
||||
|
||||
RX side: Set to 0
|
||||
TX side: Indicates what content channels of what 80 MHz
|
||||
subbands this User field can go to
|
||||
Bit 0: lowest 80 MHz content channel 0
|
||||
Bit 1: lowest 80 MHz content channel 1
|
||||
Bit 2: 2nd lowest 80 MHz content channel 0
|
||||
...
|
||||
Bit 7: highest 80 MHz content channel 1
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define EHT_SIG_USR_OFDMA_INFO_SUBBAND80_CC_MASK_OFFSET 0x00000000
|
||||
#define EHT_SIG_USR_OFDMA_INFO_SUBBAND80_CC_MASK_LSB 24
|
||||
#define EHT_SIG_USR_OFDMA_INFO_SUBBAND80_CC_MASK_MSB 31
|
||||
#define EHT_SIG_USR_OFDMA_INFO_SUBBAND80_CC_MASK_MASK 0xff000000
|
||||
|
||||
|
||||
/* Description USER_ORDER_SUBBAND80_0
|
||||
|
||||
RX side: Set to 0
|
||||
TX side: Ordering index of the User field within the lowest
|
||||
80 MHz
|
||||
Gaps between the ordering indices of User fields indicate
|
||||
that the microcode shall generate "unallocated RU" User
|
||||
fields (STAID=2046) to fill the gaps.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_0_OFFSET 0x00000004
|
||||
#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_0_LSB 0
|
||||
#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_0_MSB 7
|
||||
#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_0_MASK 0x000000ff
|
||||
|
||||
|
||||
/* Description USER_ORDER_SUBBAND80_1
|
||||
|
||||
RX side: Set to 0
|
||||
TX side: Ordering index of the User field within the 2nd
|
||||
lowest 80 MHz
|
||||
See 'user_order_subband80_0.'
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_1_OFFSET 0x00000004
|
||||
#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_1_LSB 8
|
||||
#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_1_MSB 15
|
||||
#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_1_MASK 0x0000ff00
|
||||
|
||||
|
||||
/* Description USER_ORDER_SUBBAND80_2
|
||||
|
||||
RX side: Set to 0
|
||||
TX side: Ordering index of the User field within the 2nd
|
||||
highest 80 MHz
|
||||
See 'user_order_subband80_0.'
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_2_OFFSET 0x00000004
|
||||
#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_2_LSB 16
|
||||
#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_2_MSB 23
|
||||
#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_2_MASK 0x00ff0000
|
||||
|
||||
|
||||
/* Description USER_ORDER_SUBBAND80_3
|
||||
|
||||
RX side: Set to 0
|
||||
TX side: Ordering index of the User field within the highest
|
||||
80 MHz
|
||||
See 'user_order_subband80_0.'
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_3_OFFSET 0x00000004
|
||||
#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_3_LSB 24
|
||||
#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_3_MSB 31
|
||||
#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_3_MASK 0xff000000
|
||||
|
||||
|
||||
|
||||
#endif // EHT_SIG_USR_OFDMA_INFO
|
||||
168
drivers/staging/fw-api/hw/qca5332/eht_sig_usr_su_info.h
Normal file
168
drivers/staging/fw-api/hw/qca5332/eht_sig_usr_su_info.h
Normal file
|
|
@ -0,0 +1,168 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _EHT_SIG_USR_SU_INFO_H_
|
||||
#define _EHT_SIG_USR_SU_INFO_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#define NUM_OF_DWORDS_EHT_SIG_USR_SU_INFO 1
|
||||
|
||||
|
||||
struct eht_sig_usr_su_info {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
uint32_t sta_id : 11, // [10:0]
|
||||
sta_mcs : 4, // [14:11]
|
||||
validate_0a : 1, // [15:15]
|
||||
nss : 4, // [19:16]
|
||||
txbf : 1, // [20:20]
|
||||
sta_coding : 1, // [21:21]
|
||||
reserved_0b : 9, // [30:22]
|
||||
rx_integrity_check_passed : 1; // [31:31]
|
||||
#else
|
||||
uint32_t rx_integrity_check_passed : 1, // [31:31]
|
||||
reserved_0b : 9, // [30:22]
|
||||
sta_coding : 1, // [21:21]
|
||||
txbf : 1, // [20:20]
|
||||
nss : 4, // [19:16]
|
||||
validate_0a : 1, // [15:15]
|
||||
sta_mcs : 4, // [14:11]
|
||||
sta_id : 11; // [10:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description STA_ID
|
||||
|
||||
Identifies the STA that is addressed. Details of STA ID
|
||||
are TBD
|
||||
*/
|
||||
|
||||
#define EHT_SIG_USR_SU_INFO_STA_ID_OFFSET 0x00000000
|
||||
#define EHT_SIG_USR_SU_INFO_STA_ID_LSB 0
|
||||
#define EHT_SIG_USR_SU_INFO_STA_ID_MSB 10
|
||||
#define EHT_SIG_USR_SU_INFO_STA_ID_MASK 0x000007ff
|
||||
|
||||
|
||||
/* Description STA_MCS
|
||||
|
||||
Indicates the data MCS
|
||||
0 - 13: MCS 0 - 13
|
||||
14: MCS 0 with DCM and 2x duplicate
|
||||
15: MCS 0 with DCM
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define EHT_SIG_USR_SU_INFO_STA_MCS_OFFSET 0x00000000
|
||||
#define EHT_SIG_USR_SU_INFO_STA_MCS_LSB 11
|
||||
#define EHT_SIG_USR_SU_INFO_STA_MCS_MSB 14
|
||||
#define EHT_SIG_USR_SU_INFO_STA_MCS_MASK 0x00007800
|
||||
|
||||
|
||||
/* Description VALIDATE_0A
|
||||
|
||||
Note: spec indicates this shall be set to 1
|
||||
<legal 1>
|
||||
*/
|
||||
|
||||
#define EHT_SIG_USR_SU_INFO_VALIDATE_0A_OFFSET 0x00000000
|
||||
#define EHT_SIG_USR_SU_INFO_VALIDATE_0A_LSB 15
|
||||
#define EHT_SIG_USR_SU_INFO_VALIDATE_0A_MSB 15
|
||||
#define EHT_SIG_USR_SU_INFO_VALIDATE_0A_MASK 0x00008000
|
||||
|
||||
|
||||
/* Description NSS
|
||||
|
||||
Number of spatial streams for this user
|
||||
|
||||
The actual number of streams is 1 larger than indicated
|
||||
in this field.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define EHT_SIG_USR_SU_INFO_NSS_OFFSET 0x00000000
|
||||
#define EHT_SIG_USR_SU_INFO_NSS_LSB 16
|
||||
#define EHT_SIG_USR_SU_INFO_NSS_MSB 19
|
||||
#define EHT_SIG_USR_SU_INFO_NSS_MASK 0x000f0000
|
||||
|
||||
|
||||
/* Description TXBF
|
||||
|
||||
Indicates whether beamforming is applied
|
||||
0: No beamforming
|
||||
1: beamforming
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define EHT_SIG_USR_SU_INFO_TXBF_OFFSET 0x00000000
|
||||
#define EHT_SIG_USR_SU_INFO_TXBF_LSB 20
|
||||
#define EHT_SIG_USR_SU_INFO_TXBF_MSB 20
|
||||
#define EHT_SIG_USR_SU_INFO_TXBF_MASK 0x00100000
|
||||
|
||||
|
||||
/* Description STA_CODING
|
||||
|
||||
Distinguishes between BCC/LDPC
|
||||
|
||||
0: BCC
|
||||
1: LDPC
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define EHT_SIG_USR_SU_INFO_STA_CODING_OFFSET 0x00000000
|
||||
#define EHT_SIG_USR_SU_INFO_STA_CODING_LSB 21
|
||||
#define EHT_SIG_USR_SU_INFO_STA_CODING_MSB 21
|
||||
#define EHT_SIG_USR_SU_INFO_STA_CODING_MASK 0x00200000
|
||||
|
||||
|
||||
/* Description RESERVED_0B
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define EHT_SIG_USR_SU_INFO_RESERVED_0B_OFFSET 0x00000000
|
||||
#define EHT_SIG_USR_SU_INFO_RESERVED_0B_LSB 22
|
||||
#define EHT_SIG_USR_SU_INFO_RESERVED_0B_MSB 30
|
||||
#define EHT_SIG_USR_SU_INFO_RESERVED_0B_MASK 0x7fc00000
|
||||
|
||||
|
||||
/* Description RX_INTEGRITY_CHECK_PASSED
|
||||
|
||||
TX side: Set to 0
|
||||
RX side: Set to 1 if PHY determines the CRC check of the
|
||||
codeblock containing this EHT-SIG user info has passed,
|
||||
else set to 0
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define EHT_SIG_USR_SU_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x00000000
|
||||
#define EHT_SIG_USR_SU_INFO_RX_INTEGRITY_CHECK_PASSED_LSB 31
|
||||
#define EHT_SIG_USR_SU_INFO_RX_INTEGRITY_CHECK_PASSED_MSB 31
|
||||
#define EHT_SIG_USR_SU_INFO_RX_INTEGRITY_CHECK_PASSED_MASK 0x80000000
|
||||
|
||||
|
||||
|
||||
#endif // EHT_SIG_USR_SU_INFO
|
||||
716
drivers/staging/fw-api/hw/qca5332/expected_response.h
Normal file
716
drivers/staging/fw-api/hw/qca5332/expected_response.h
Normal file
|
|
@ -0,0 +1,716 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _EXPECTED_RESPONSE_H_
|
||||
#define _EXPECTED_RESPONSE_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#define NUM_OF_DWORDS_EXPECTED_RESPONSE 6
|
||||
|
||||
#define NUM_OF_QWORDS_EXPECTED_RESPONSE 3
|
||||
|
||||
|
||||
struct expected_response {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
uint32_t tx_ad2_31_0 : 32; // [31:0]
|
||||
uint32_t tx_ad2_47_32 : 16, // [15:0]
|
||||
expected_response_type : 5, // [20:16]
|
||||
response_to_response : 3, // [23:21]
|
||||
su_ba_user_number : 1, // [24:24]
|
||||
response_info_part2_required : 1, // [25:25]
|
||||
transmitted_bssid_check_en : 1, // [26:26]
|
||||
reserved_1 : 5; // [31:27]
|
||||
uint32_t ndp_sta_partial_aid_2_8_0 : 11, // [10:0]
|
||||
reserved_2 : 10, // [20:11]
|
||||
ndp_sta_partial_aid1_8_0 : 11; // [31:21]
|
||||
uint32_t ast_index : 16, // [15:0]
|
||||
capture_ack_ba_sounding : 1, // [16:16]
|
||||
capture_sounding_1str_20mhz : 1, // [17:17]
|
||||
capture_sounding_1str_40mhz : 1, // [18:18]
|
||||
capture_sounding_1str_80mhz : 1, // [19:19]
|
||||
capture_sounding_1str_160mhz : 1, // [20:20]
|
||||
capture_sounding_1str_240mhz : 1, // [21:21]
|
||||
capture_sounding_1str_320mhz : 1, // [22:22]
|
||||
reserved_3a : 9; // [31:23]
|
||||
uint32_t fcs : 9, // [8:0]
|
||||
reserved_4a : 1, // [9:9]
|
||||
crc : 4, // [13:10]
|
||||
scrambler_seed : 7, // [20:14]
|
||||
reserved_4b : 11; // [31:21]
|
||||
uint32_t tlv64_padding : 32; // [31:0]
|
||||
#else
|
||||
uint32_t tx_ad2_31_0 : 32; // [31:0]
|
||||
uint32_t reserved_1 : 5, // [31:27]
|
||||
transmitted_bssid_check_en : 1, // [26:26]
|
||||
response_info_part2_required : 1, // [25:25]
|
||||
su_ba_user_number : 1, // [24:24]
|
||||
response_to_response : 3, // [23:21]
|
||||
expected_response_type : 5, // [20:16]
|
||||
tx_ad2_47_32 : 16; // [15:0]
|
||||
uint32_t ndp_sta_partial_aid1_8_0 : 11, // [31:21]
|
||||
reserved_2 : 10, // [20:11]
|
||||
ndp_sta_partial_aid_2_8_0 : 11; // [10:0]
|
||||
uint32_t reserved_3a : 9, // [31:23]
|
||||
capture_sounding_1str_320mhz : 1, // [22:22]
|
||||
capture_sounding_1str_240mhz : 1, // [21:21]
|
||||
capture_sounding_1str_160mhz : 1, // [20:20]
|
||||
capture_sounding_1str_80mhz : 1, // [19:19]
|
||||
capture_sounding_1str_40mhz : 1, // [18:18]
|
||||
capture_sounding_1str_20mhz : 1, // [17:17]
|
||||
capture_ack_ba_sounding : 1, // [16:16]
|
||||
ast_index : 16; // [15:0]
|
||||
uint32_t reserved_4b : 11, // [31:21]
|
||||
scrambler_seed : 7, // [20:14]
|
||||
crc : 4, // [13:10]
|
||||
reserved_4a : 1, // [9:9]
|
||||
fcs : 9; // [8:0]
|
||||
uint32_t tlv64_padding : 32; // [31:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description TX_AD2_31_0
|
||||
|
||||
Lower 32 bits of the transmitter address (AD2) of the last
|
||||
packet which was transmitted, which is used by RXPCU in
|
||||
Proxy STA mode.
|
||||
*/
|
||||
|
||||
#define EXPECTED_RESPONSE_TX_AD2_31_0_OFFSET 0x0000000000000000
|
||||
#define EXPECTED_RESPONSE_TX_AD2_31_0_LSB 0
|
||||
#define EXPECTED_RESPONSE_TX_AD2_31_0_MSB 31
|
||||
#define EXPECTED_RESPONSE_TX_AD2_31_0_MASK 0x00000000ffffffff
|
||||
|
||||
|
||||
/* Description TX_AD2_47_32
|
||||
|
||||
Upper 16 bits of the transmitter address (AD2) of the last
|
||||
packet which was transmitted, which is used by RXPCU in
|
||||
Proxy STA mode.
|
||||
*/
|
||||
|
||||
#define EXPECTED_RESPONSE_TX_AD2_47_32_OFFSET 0x0000000000000000
|
||||
#define EXPECTED_RESPONSE_TX_AD2_47_32_LSB 32
|
||||
#define EXPECTED_RESPONSE_TX_AD2_47_32_MSB 47
|
||||
#define EXPECTED_RESPONSE_TX_AD2_47_32_MASK 0x0000ffff00000000
|
||||
|
||||
|
||||
/* Description EXPECTED_RESPONSE_TYPE
|
||||
|
||||
Provides insight for RXPCU of what type of response is expected
|
||||
in the medium.
|
||||
|
||||
Mainly used for debugging purposes.
|
||||
|
||||
No matter what RXPCU receives, it shall always report it
|
||||
to TXPCU.
|
||||
|
||||
Only special scenario where RXPCU will have to generate
|
||||
a RECEIVED_RESPONSE_INFO TLV , even when no actual MPDU
|
||||
with passing FCS was received is when the response_type
|
||||
is set to: frameless_phyrx_response_accepted
|
||||
|
||||
<enum 0 no_response_expected>After transmission of this
|
||||
frame, no response in SIFS time is expected
|
||||
|
||||
When TXPCU sees this setting, it shall not generated the
|
||||
EXPECTED_RESPONSE TLV.
|
||||
|
||||
RXPCU should never see this setting
|
||||
<enum 1 ack_expected>An ACK frame is expected as response
|
||||
|
||||
|
||||
RXPCU is just expecting any response. It is TXPCU who checks
|
||||
that the right response was received.
|
||||
<enum 2 ba_64_bitmap_expected>BA with 64 bitmap is expected.
|
||||
|
||||
|
||||
PDG DOES NOT use the size info to calculated response duration.
|
||||
The length of the response will have to be programmed by
|
||||
SW in the per-BW 'Expected_ppdu_resp_length' field.
|
||||
|
||||
For TXPCU only the fact that it is a BA is important. Actual
|
||||
received BA size is not important
|
||||
|
||||
RXPCU is just expecting any response. It is TXPCU who checks
|
||||
that the right response was received.
|
||||
<enum 3 ba_256_expected>BA with 256 bitmap is expected.
|
||||
|
||||
PDG DOES NOT use the size info to calculated response duration.
|
||||
The length of the response will have to be programmed by
|
||||
SW in the per-BW 'Expected_ppdu_resp_length' field.
|
||||
|
||||
For TXPCU only the fact that it is a BA is important. Actual
|
||||
received BA size is not important
|
||||
|
||||
RXPCU is just expecting any response. It is TXPCU who checks
|
||||
that the right response was received.
|
||||
<enum 4 actionnoack_expected>SW sets this after sending
|
||||
NDP or BR-Poll.
|
||||
|
||||
As PDG has no idea on how long the reception is going to
|
||||
be, the reception time of the response will have to be
|
||||
programmed by SW in the 'Extend_duration_value_bw...' field
|
||||
|
||||
|
||||
RXPCU is just expecting any response. It is TXPCU who checks
|
||||
that the right response was received.
|
||||
<enum 5 ack_ba_expected>PDG uses the size info and assumes
|
||||
single BA format with ACK and 64 bitmap embedded.
|
||||
If SW expects more bitmaps in case of multi-TID, is shall
|
||||
program the 'Extend_duration_value_bw...' field for additional
|
||||
duration time.
|
||||
For TXPCU only the fact that an ACK and/or BA is received
|
||||
is important. Reception of only ACK or BA is also considered
|
||||
a success.
|
||||
SW also typically sets this when sending VHT single MPDU.
|
||||
Some chip vendors might send BA rather than ACK in response
|
||||
to VHT single MPDU but still we want to accept BA as well.
|
||||
|
||||
|
||||
RXPCU is just expecting any response. It is TXPCU who checks
|
||||
that the right response was received.
|
||||
<enum 6 cts_expected>SW sets this after queuing RTS frame
|
||||
as standalone packet and sending it.
|
||||
|
||||
RXPCU is just expecting any response. It is TXPCU who checks
|
||||
that the right response was received.
|
||||
<enum 7 ack_data_expected>SW sets this after sending PS-Poll.
|
||||
|
||||
|
||||
For TXPCU either ACK and/or data reception is considered
|
||||
success.
|
||||
PDG basis it's response duration calculation on an ACK.
|
||||
For the data portion, SW shall program the 'Extend_duration_value_bw...'
|
||||
field
|
||||
<enum 8 ndp_ack_expected>Reserved for 11ah usage.
|
||||
<enum 9 ndp_modified_ack>Reserved for 11ah usage
|
||||
<enum 10 ndp_ba_expected>Reserved for 11ah usage.
|
||||
<enum 11 ndp_cts_expected>Reserved for 11ah usage
|
||||
<enum 12 ndp_ack_or_ndp_modified_ack_expected>Reserved for
|
||||
11ah usage
|
||||
<enum 13 ul_mu_ba_expected>NOT SUPPORTED IN NAPIER AX AND
|
||||
HASTINGS
|
||||
|
||||
TXPCU expects UL MU OFDMA or UL MU MIMO reception.
|
||||
As PDG does not know how RUs are assigned for the uplink
|
||||
portion, PDG can not calculate the uplink duration. Therefor
|
||||
SW shall program the 'Extend_duration_value_bw...' field
|
||||
|
||||
|
||||
RXPCU will report any frame received, irrespective of it
|
||||
having been UL MU or SU It is TXPCUs responsibility to
|
||||
distinguish between the UL MU or SU
|
||||
|
||||
TXPCU can check in TLV RECEIVED_RESPONSE_INFO MU_Response_BA_bitmap
|
||||
if indeed BA was received
|
||||
<enum 14 ul_mu_ba_and_data_expected>NOT SUPPORTED IN NAPIER
|
||||
AX AND HASTINGS
|
||||
|
||||
TXPCU expects UL MU OFDMA or UL MU MIMO reception.
|
||||
As PDG does not know how RUs are assigned for the uplink
|
||||
portion, PDG can not calculate the uplink duration. Therefor
|
||||
SW shall program the 'Extend_duration_value_bw...' field
|
||||
|
||||
|
||||
RXPCU will report any frame received, irrespective of it
|
||||
having been UL MU or SU It is TXPCUs responsibility to
|
||||
distinguish between the UL MU or SU
|
||||
|
||||
TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_data_bitmap
|
||||
and MU_Response_BA_bitmap if indeed BA and data was received
|
||||
|
||||
<enum 15 ul_mu_cbf_expected>NOT SUPPORTED IN NAPIER AX AND
|
||||
HASTINGS
|
||||
|
||||
When selected, CBF frames are expected to be received in
|
||||
MU reception (uplink OFDMA or uplink MIMO)
|
||||
|
||||
RXPCU is just expecting any response. It is TXPCU who checks
|
||||
that the right response was received
|
||||
TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_cbf_bitmap
|
||||
if indeed CBF frames were received.
|
||||
<enum 16 ul_mu_frames_expected>When selected, MPDU frames
|
||||
are expected in the MU reception (uplink OFDMA or uplink
|
||||
MIMO)
|
||||
|
||||
RXPCU is just expecting any response. It is TXPCU who checks
|
||||
that the right response was received
|
||||
|
||||
TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_bitmap
|
||||
if indeed frames were received.
|
||||
<enum 17 any_response_to_this_device>Any response expected
|
||||
to be send to this device in SIFS time is acceptable.
|
||||
|
||||
RXPCU is just expecting any response. It is TXPCU who checks
|
||||
that the right response was received
|
||||
|
||||
For TXPCU, UL MU or SU is both acceptable.
|
||||
|
||||
Can be used for complex OFDMA scenarios. PDG can not calculate
|
||||
the uplink duration. Therefor SW shall program the 'Extend_duration_value_bw...'
|
||||
field
|
||||
<enum 18 any_response_accepted>Any frame in the medium to
|
||||
this or any other device, is acceptable as response.
|
||||
RXPCU is just expecting any response. It is TXPCU who checks
|
||||
that the right response was received
|
||||
|
||||
For TXPCU, UL MU or SU is both acceptable.
|
||||
|
||||
Can be used for complex OFDMA scenarios. PDG can not calculate
|
||||
the uplink duration. Therefor SW shall program the 'Extend_duration_value_bw...'
|
||||
field
|
||||
<enum 19 frameless_phyrx_response_accepted>Any MU frameless
|
||||
reception generated by the PHY is acceptable.
|
||||
|
||||
PHY indicates this type of reception explicitly in TLV PHYRX_RSSI_LEGACY,
|
||||
field Reception_type == reception_is_frameless
|
||||
|
||||
RXPCU will report any frame received, irrespective of it
|
||||
having been UL MU or SU.
|
||||
|
||||
This can be used for complex MU-MIMO or OFDMA scenarios,
|
||||
like receiving MU-CTS.
|
||||
|
||||
PDG can not calculate the uplink duration. Therefor SW shall
|
||||
program the 'Extend_duration_value_bw...' field
|
||||
<enum 20 ranging_ndp_and_lmr_expected>SW sets this after
|
||||
sending ranging NDPA followed by NDP as an ISTA and NDP
|
||||
and LMR (Action No Ack) are expected as back-to-back reception
|
||||
in SIFS.
|
||||
|
||||
As PDG has no idea on how long the reception is going to
|
||||
be, the reception time of the response will have to be
|
||||
programmed by SW in the 'Extend_duration_value_bw...' field
|
||||
|
||||
|
||||
RXPCU is just expecting any response. It is TXPCU who checks
|
||||
that the right response was received.
|
||||
<enum 21 ba_512_expected>BA with 512 bitmap is expected.
|
||||
|
||||
|
||||
PDG DOES NOT use the size info to calculated response duration.
|
||||
The length of the response will have to be programmed by
|
||||
SW in the per-BW 'Expected_ppdu_resp_length' field.
|
||||
|
||||
For TXPCU only the fact that it is a BA is important. Actual
|
||||
received BA size is not important
|
||||
|
||||
RXPCU is just expecting any response. It is TXPCU who checks
|
||||
that the right response was received.
|
||||
<enum 22 ba_1024_expected>BA with 1024 bitmap is expected.
|
||||
|
||||
|
||||
PDG DOES NOT use the size info to calculated response duration.
|
||||
The length of the response will have to be programmed by
|
||||
SW in the per-BW 'Expected_ppdu_resp_length' field.
|
||||
|
||||
For TXPCU only the fact that it is a BA is important. Actual
|
||||
received BA size is not important
|
||||
|
||||
RXPCU is just expecting any response. It is TXPCU who checks
|
||||
that the right response was received.
|
||||
<enum 23 ul_mu_ranging_cts2s_expected>When selected, CTS2S
|
||||
frames are expected to be received in MU reception (uplink
|
||||
OFDMA)
|
||||
|
||||
RXPCU shall check each response for CTS2S and report to
|
||||
TXPCU.
|
||||
|
||||
TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields
|
||||
'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed CTS2S
|
||||
frames were received.
|
||||
<enum 24 ul_mu_ranging_ndp_expected>When selected, UL NDP
|
||||
frames are expected to be received in MU reception (uplink
|
||||
spatial multiplexing)
|
||||
|
||||
RXPCU shall check each response for NDP and report to TXPCU.
|
||||
|
||||
|
||||
TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields
|
||||
'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed NDP
|
||||
frames were received.
|
||||
<enum 25 ul_mu_ranging_lmr_expected>When selected, LMR frames
|
||||
are expected to be received in MU reception (uplink OFDMA
|
||||
or uplink MIMO)
|
||||
|
||||
RXPCU shall check each response for LMR and report to TXPCU.
|
||||
|
||||
|
||||
TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields
|
||||
'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed LMR
|
||||
frames were received.
|
||||
*/
|
||||
|
||||
#define EXPECTED_RESPONSE_EXPECTED_RESPONSE_TYPE_OFFSET 0x0000000000000000
|
||||
#define EXPECTED_RESPONSE_EXPECTED_RESPONSE_TYPE_LSB 48
|
||||
#define EXPECTED_RESPONSE_EXPECTED_RESPONSE_TYPE_MSB 52
|
||||
#define EXPECTED_RESPONSE_EXPECTED_RESPONSE_TYPE_MASK 0x001f000000000000
|
||||
|
||||
|
||||
/* Description RESPONSE_TO_RESPONSE
|
||||
|
||||
Field indicates if after receiving the PPDU response (indicated
|
||||
in the field above), TXPCU is expected to generate a reponse
|
||||
to the response
|
||||
|
||||
In case a response to response is expected, RXPCU shall
|
||||
first acknowledge the proper reception of the received frames,
|
||||
so that TXPCU can first wrapup that portion of the FES.
|
||||
|
||||
<enum 0 None> No response after response allowed.
|
||||
<enum 1 SU_BA> The response after response that TXPCU is
|
||||
allowed to generate is a single BA. Even if RXPCU is indicating
|
||||
that multiple users are received, TXPCU shall only send
|
||||
a BA for 1 STA. Response_to_response rates can be found
|
||||
in fields 'response_to_response_rate_info_bw...'
|
||||
<enum 2 MU_BA> The response after response that TXPCU is
|
||||
allowed to generate is only Multi Destination Multi User
|
||||
BA. Response_to_response rates can be found in fields 'response_to_response_rate_info_bw...'
|
||||
|
||||
|
||||
<enum 3 RESPONSE_TO_RESPONSE_CMD> A response to response
|
||||
is expected to be generated. In other words, RXPCU will
|
||||
likely indicate to TXPCU at the end of upcoming reception
|
||||
that a response is needed. TXPCU is however to ignore this
|
||||
indication from RXPCU, and assume for a moment that no
|
||||
response to response is needed, as all the details on how
|
||||
to handle this is provided in the next scheduling command,
|
||||
which is marked as a 'response_to_response' type.
|
||||
|
||||
<legal 0-3>
|
||||
*/
|
||||
|
||||
#define EXPECTED_RESPONSE_RESPONSE_TO_RESPONSE_OFFSET 0x0000000000000000
|
||||
#define EXPECTED_RESPONSE_RESPONSE_TO_RESPONSE_LSB 53
|
||||
#define EXPECTED_RESPONSE_RESPONSE_TO_RESPONSE_MSB 55
|
||||
#define EXPECTED_RESPONSE_RESPONSE_TO_RESPONSE_MASK 0x00e0000000000000
|
||||
|
||||
|
||||
/* Description SU_BA_USER_NUMBER
|
||||
|
||||
Field only valid when Response_to_response is SU_BA
|
||||
|
||||
Indicates the user number of which the BA will be send after
|
||||
receiving the uplink OFDMA.
|
||||
*/
|
||||
|
||||
#define EXPECTED_RESPONSE_SU_BA_USER_NUMBER_OFFSET 0x0000000000000000
|
||||
#define EXPECTED_RESPONSE_SU_BA_USER_NUMBER_LSB 56
|
||||
#define EXPECTED_RESPONSE_SU_BA_USER_NUMBER_MSB 56
|
||||
#define EXPECTED_RESPONSE_SU_BA_USER_NUMBER_MASK 0x0100000000000000
|
||||
|
||||
|
||||
/* Description RESPONSE_INFO_PART2_REQUIRED
|
||||
|
||||
Field only valid when Response_type is NOT set to No_response_expected
|
||||
|
||||
|
||||
When set to 1, RXPCU shall generate the RECEIVED_RESPONSE_INFO_PART2
|
||||
TLV after having received the response frame. TXPCU shall
|
||||
wait for this TLV before sending the TX_FES_STATUS_END
|
||||
TLV.
|
||||
|
||||
When NOT set, RXPCU shall NOT generate the above mentioned
|
||||
TLV. TXPCU shall not wait for this TLV and after having
|
||||
received RECEIVED_RESPONSE_INFO TLV, it can immediately
|
||||
generate the TX_FES_STATUS_END TLV.
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define EXPECTED_RESPONSE_RESPONSE_INFO_PART2_REQUIRED_OFFSET 0x0000000000000000
|
||||
#define EXPECTED_RESPONSE_RESPONSE_INFO_PART2_REQUIRED_LSB 57
|
||||
#define EXPECTED_RESPONSE_RESPONSE_INFO_PART2_REQUIRED_MSB 57
|
||||
#define EXPECTED_RESPONSE_RESPONSE_INFO_PART2_REQUIRED_MASK 0x0200000000000000
|
||||
|
||||
|
||||
/* Description TRANSMITTED_BSSID_CHECK_EN
|
||||
|
||||
When set to 1, RXPCU shall assume group addressed frame
|
||||
with Tx_AD2 equal to TBSSID was sent. RxPCU should properly
|
||||
handle receive frame(s) from STA(s) which A1 is TBSSID
|
||||
or any VAPs.When NOT set, RXPCU shall compare received frame's
|
||||
A1 with Tx_AD2 only.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define EXPECTED_RESPONSE_TRANSMITTED_BSSID_CHECK_EN_OFFSET 0x0000000000000000
|
||||
#define EXPECTED_RESPONSE_TRANSMITTED_BSSID_CHECK_EN_LSB 58
|
||||
#define EXPECTED_RESPONSE_TRANSMITTED_BSSID_CHECK_EN_MSB 58
|
||||
#define EXPECTED_RESPONSE_TRANSMITTED_BSSID_CHECK_EN_MASK 0x0400000000000000
|
||||
|
||||
|
||||
/* Description RESERVED_1
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define EXPECTED_RESPONSE_RESERVED_1_OFFSET 0x0000000000000000
|
||||
#define EXPECTED_RESPONSE_RESERVED_1_LSB 59
|
||||
#define EXPECTED_RESPONSE_RESERVED_1_MSB 63
|
||||
#define EXPECTED_RESPONSE_RESERVED_1_MASK 0xf800000000000000
|
||||
|
||||
|
||||
/* Description NDP_STA_PARTIAL_AID_2_8_0
|
||||
|
||||
This field is applicable only in 11ah mode of operation.
|
||||
This field carries the information needed for RxPCU to qualify
|
||||
valid NDP-CTS
|
||||
|
||||
When an RTS is being transmitted, this field provides the
|
||||
partial AID of STA/BSSID of the transmitter,so the received
|
||||
RA/BSSID of the NDP CTS response frame can be compared
|
||||
to validate it. This value is provided by SW for valiadating
|
||||
the NDP CTS.
|
||||
|
||||
This filed also carries information for TA of the NDP Modified
|
||||
ACK when an NDP PS-Poll is transmitted.
|
||||
*/
|
||||
|
||||
#define EXPECTED_RESPONSE_NDP_STA_PARTIAL_AID_2_8_0_OFFSET 0x0000000000000008
|
||||
#define EXPECTED_RESPONSE_NDP_STA_PARTIAL_AID_2_8_0_LSB 0
|
||||
#define EXPECTED_RESPONSE_NDP_STA_PARTIAL_AID_2_8_0_MSB 10
|
||||
#define EXPECTED_RESPONSE_NDP_STA_PARTIAL_AID_2_8_0_MASK 0x00000000000007ff
|
||||
|
||||
|
||||
/* Description RESERVED_2
|
||||
|
||||
Reserved: Generator should set to 0, consumer shall ignore
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define EXPECTED_RESPONSE_RESERVED_2_OFFSET 0x0000000000000008
|
||||
#define EXPECTED_RESPONSE_RESERVED_2_LSB 11
|
||||
#define EXPECTED_RESPONSE_RESERVED_2_MSB 20
|
||||
#define EXPECTED_RESPONSE_RESERVED_2_MASK 0x00000000001ff800
|
||||
|
||||
|
||||
/* Description NDP_STA_PARTIAL_AID1_8_0
|
||||
|
||||
This field is applicable only in 11ah mode of operation.
|
||||
This field carries the information needed for RxPCU to qualify
|
||||
valid NDP Modified ACK
|
||||
|
||||
TxPCU provides the partial AID (RA) of the NDP PS-Poll frame.
|
||||
|
||||
*/
|
||||
|
||||
#define EXPECTED_RESPONSE_NDP_STA_PARTIAL_AID1_8_0_OFFSET 0x0000000000000008
|
||||
#define EXPECTED_RESPONSE_NDP_STA_PARTIAL_AID1_8_0_LSB 21
|
||||
#define EXPECTED_RESPONSE_NDP_STA_PARTIAL_AID1_8_0_MSB 31
|
||||
#define EXPECTED_RESPONSE_NDP_STA_PARTIAL_AID1_8_0_MASK 0x00000000ffe00000
|
||||
|
||||
|
||||
/* Description AST_INDEX
|
||||
|
||||
The AST index of the receive Ack/BA. This information is
|
||||
provided from the TXPCU to the RXPCU for receive Ack/BA.
|
||||
|
||||
*/
|
||||
|
||||
#define EXPECTED_RESPONSE_AST_INDEX_OFFSET 0x0000000000000008
|
||||
#define EXPECTED_RESPONSE_AST_INDEX_LSB 32
|
||||
#define EXPECTED_RESPONSE_AST_INDEX_MSB 47
|
||||
#define EXPECTED_RESPONSE_AST_INDEX_MASK 0x0000ffff00000000
|
||||
|
||||
|
||||
/* Description CAPTURE_ACK_BA_SOUNDING
|
||||
|
||||
If set enables capture of 1str and 2str sounding on Ack
|
||||
or BA as long as the corresponding capture_sounding_1str_##mhz
|
||||
bits is set.
|
||||
|
||||
If clear the capture of sounding on Ack or BA is disabled
|
||||
even if the corresponding capture_sounding_1str_##mhz is
|
||||
set.
|
||||
*/
|
||||
|
||||
#define EXPECTED_RESPONSE_CAPTURE_ACK_BA_SOUNDING_OFFSET 0x0000000000000008
|
||||
#define EXPECTED_RESPONSE_CAPTURE_ACK_BA_SOUNDING_LSB 48
|
||||
#define EXPECTED_RESPONSE_CAPTURE_ACK_BA_SOUNDING_MSB 48
|
||||
#define EXPECTED_RESPONSE_CAPTURE_ACK_BA_SOUNDING_MASK 0x0001000000000000
|
||||
|
||||
|
||||
/* Description CAPTURE_SOUNDING_1STR_20MHZ
|
||||
|
||||
Capture sounding for 1 stream 20 MHz receive packets
|
||||
*/
|
||||
|
||||
#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_20MHZ_OFFSET 0x0000000000000008
|
||||
#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_20MHZ_LSB 49
|
||||
#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_20MHZ_MSB 49
|
||||
#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_20MHZ_MASK 0x0002000000000000
|
||||
|
||||
|
||||
/* Description CAPTURE_SOUNDING_1STR_40MHZ
|
||||
|
||||
Capture sounding for 1 stream 40 MHz receive packets
|
||||
*/
|
||||
|
||||
#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_40MHZ_OFFSET 0x0000000000000008
|
||||
#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_40MHZ_LSB 50
|
||||
#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_40MHZ_MSB 50
|
||||
#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_40MHZ_MASK 0x0004000000000000
|
||||
|
||||
|
||||
/* Description CAPTURE_SOUNDING_1STR_80MHZ
|
||||
|
||||
Capture sounding for 1 stream 80 MHz receive packets
|
||||
*/
|
||||
|
||||
#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_80MHZ_OFFSET 0x0000000000000008
|
||||
#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_80MHZ_LSB 51
|
||||
#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_80MHZ_MSB 51
|
||||
#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_80MHZ_MASK 0x0008000000000000
|
||||
|
||||
|
||||
/* Description CAPTURE_SOUNDING_1STR_160MHZ
|
||||
|
||||
Capture sounding for 1 stream 160 MHz receive packets
|
||||
*/
|
||||
|
||||
#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_160MHZ_OFFSET 0x0000000000000008
|
||||
#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_160MHZ_LSB 52
|
||||
#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_160MHZ_MSB 52
|
||||
#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_160MHZ_MASK 0x0010000000000000
|
||||
|
||||
|
||||
/* Description CAPTURE_SOUNDING_1STR_240MHZ
|
||||
|
||||
Capture sounding for 1 stream 240 MHz receive packets
|
||||
*/
|
||||
|
||||
#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_240MHZ_OFFSET 0x0000000000000008
|
||||
#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_240MHZ_LSB 53
|
||||
#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_240MHZ_MSB 53
|
||||
#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_240MHZ_MASK 0x0020000000000000
|
||||
|
||||
|
||||
/* Description CAPTURE_SOUNDING_1STR_320MHZ
|
||||
|
||||
Capture sounding for 1 stream 320 MHz receive packets
|
||||
*/
|
||||
|
||||
#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_320MHZ_OFFSET 0x0000000000000008
|
||||
#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_320MHZ_LSB 54
|
||||
#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_320MHZ_MSB 54
|
||||
#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_320MHZ_MASK 0x0040000000000000
|
||||
|
||||
|
||||
/* Description RESERVED_3A
|
||||
|
||||
Reserved: Generator should set to 0, consumer shall ignore
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define EXPECTED_RESPONSE_RESERVED_3A_OFFSET 0x0000000000000008
|
||||
#define EXPECTED_RESPONSE_RESERVED_3A_LSB 55
|
||||
#define EXPECTED_RESPONSE_RESERVED_3A_MSB 63
|
||||
#define EXPECTED_RESPONSE_RESERVED_3A_MASK 0xff80000000000000
|
||||
|
||||
|
||||
/* Description FCS
|
||||
|
||||
Tx Frame's FCS[31:23]
|
||||
|
||||
TODO: describe what this is used for ...
|
||||
|
||||
For aggregates and NDP frames, this field is reserved and
|
||||
TxPCU should populate this to Zero.
|
||||
*/
|
||||
|
||||
#define EXPECTED_RESPONSE_FCS_OFFSET 0x0000000000000010
|
||||
#define EXPECTED_RESPONSE_FCS_LSB 0
|
||||
#define EXPECTED_RESPONSE_FCS_MSB 8
|
||||
#define EXPECTED_RESPONSE_FCS_MASK 0x00000000000001ff
|
||||
|
||||
|
||||
/* Description RESERVED_4A
|
||||
|
||||
Reserved: Generator should set to 0, consumer shall ignore
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define EXPECTED_RESPONSE_RESERVED_4A_OFFSET 0x0000000000000010
|
||||
#define EXPECTED_RESPONSE_RESERVED_4A_LSB 9
|
||||
#define EXPECTED_RESPONSE_RESERVED_4A_MSB 9
|
||||
#define EXPECTED_RESPONSE_RESERVED_4A_MASK 0x0000000000000200
|
||||
|
||||
|
||||
/* Description CRC
|
||||
|
||||
TODO: describe what this is used for ...
|
||||
|
||||
Tx SIG's CRC[3:0]
|
||||
*/
|
||||
|
||||
#define EXPECTED_RESPONSE_CRC_OFFSET 0x0000000000000010
|
||||
#define EXPECTED_RESPONSE_CRC_LSB 10
|
||||
#define EXPECTED_RESPONSE_CRC_MSB 13
|
||||
#define EXPECTED_RESPONSE_CRC_MASK 0x0000000000003c00
|
||||
|
||||
|
||||
/* Description SCRAMBLER_SEED
|
||||
|
||||
TODO: describe what this is used for ...
|
||||
|
||||
Tx Frames SERVICE[6:0]
|
||||
*/
|
||||
|
||||
#define EXPECTED_RESPONSE_SCRAMBLER_SEED_OFFSET 0x0000000000000010
|
||||
#define EXPECTED_RESPONSE_SCRAMBLER_SEED_LSB 14
|
||||
#define EXPECTED_RESPONSE_SCRAMBLER_SEED_MSB 20
|
||||
#define EXPECTED_RESPONSE_SCRAMBLER_SEED_MASK 0x00000000001fc000
|
||||
|
||||
|
||||
/* Description RESERVED_4B
|
||||
|
||||
Reserved: Generator should set to 0, consumer shall ignore
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define EXPECTED_RESPONSE_RESERVED_4B_OFFSET 0x0000000000000010
|
||||
#define EXPECTED_RESPONSE_RESERVED_4B_LSB 21
|
||||
#define EXPECTED_RESPONSE_RESERVED_4B_MSB 31
|
||||
#define EXPECTED_RESPONSE_RESERVED_4B_MASK 0x00000000ffe00000
|
||||
|
||||
|
||||
/* Description TLV64_PADDING
|
||||
|
||||
Automatic DWORD padding inserted while converting TLV32
|
||||
to TLV64 for 64 bit ARCH
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define EXPECTED_RESPONSE_TLV64_PADDING_OFFSET 0x0000000000000010
|
||||
#define EXPECTED_RESPONSE_TLV64_PADDING_LSB 32
|
||||
#define EXPECTED_RESPONSE_TLV64_PADDING_MSB 63
|
||||
#define EXPECTED_RESPONSE_TLV64_PADDING_MASK 0xffffffff00000000
|
||||
|
||||
|
||||
|
||||
#endif // EXPECTED_RESPONSE
|
||||
433
drivers/staging/fw-api/hw/qca5332/he_sig_a_mu_dl_info.h
Normal file
433
drivers/staging/fw-api/hw/qca5332/he_sig_a_mu_dl_info.h
Normal file
|
|
@ -0,0 +1,433 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _HE_SIG_A_MU_DL_INFO_H_
|
||||
#define _HE_SIG_A_MU_DL_INFO_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#define NUM_OF_DWORDS_HE_SIG_A_MU_DL_INFO 2
|
||||
|
||||
|
||||
struct he_sig_a_mu_dl_info {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
uint32_t dl_ul_flag : 1, // [0:0]
|
||||
mcs_of_sig_b : 3, // [3:1]
|
||||
dcm_of_sig_b : 1, // [4:4]
|
||||
bss_color_id : 6, // [10:5]
|
||||
spatial_reuse : 4, // [14:11]
|
||||
transmit_bw : 3, // [17:15]
|
||||
num_sig_b_symbols : 4, // [21:18]
|
||||
comp_mode_sig_b : 1, // [22:22]
|
||||
cp_ltf_size : 2, // [24:23]
|
||||
doppler_indication : 1, // [25:25]
|
||||
reserved_0a : 6; // [31:26]
|
||||
uint32_t txop_duration : 7, // [6:0]
|
||||
reserved_1a : 1, // [7:7]
|
||||
num_ltf_symbols : 3, // [10:8]
|
||||
ldpc_extra_symbol : 1, // [11:11]
|
||||
stbc : 1, // [12:12]
|
||||
packet_extension_a_factor : 2, // [14:13]
|
||||
packet_extension_pe_disambiguity : 1, // [15:15]
|
||||
crc : 4, // [19:16]
|
||||
tail : 6, // [25:20]
|
||||
reserved_1b : 5, // [30:26]
|
||||
rx_integrity_check_passed : 1; // [31:31]
|
||||
#else
|
||||
uint32_t reserved_0a : 6, // [31:26]
|
||||
doppler_indication : 1, // [25:25]
|
||||
cp_ltf_size : 2, // [24:23]
|
||||
comp_mode_sig_b : 1, // [22:22]
|
||||
num_sig_b_symbols : 4, // [21:18]
|
||||
transmit_bw : 3, // [17:15]
|
||||
spatial_reuse : 4, // [14:11]
|
||||
bss_color_id : 6, // [10:5]
|
||||
dcm_of_sig_b : 1, // [4:4]
|
||||
mcs_of_sig_b : 3, // [3:1]
|
||||
dl_ul_flag : 1; // [0:0]
|
||||
uint32_t rx_integrity_check_passed : 1, // [31:31]
|
||||
reserved_1b : 5, // [30:26]
|
||||
tail : 6, // [25:20]
|
||||
crc : 4, // [19:16]
|
||||
packet_extension_pe_disambiguity : 1, // [15:15]
|
||||
packet_extension_a_factor : 2, // [14:13]
|
||||
stbc : 1, // [12:12]
|
||||
ldpc_extra_symbol : 1, // [11:11]
|
||||
num_ltf_symbols : 3, // [10:8]
|
||||
reserved_1a : 1, // [7:7]
|
||||
txop_duration : 7; // [6:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description DL_UL_FLAG
|
||||
|
||||
Differentiates between DL and UL transmission
|
||||
|
||||
<enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
|
||||
<enum 1 DL_UL_FLAG_IS_UL>
|
||||
NOTE: This is unsupported for "HE MU" format (including "MU_SU")
|
||||
Tx in Napier and Hastings80.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_MU_DL_INFO_DL_UL_FLAG_OFFSET 0x00000000
|
||||
#define HE_SIG_A_MU_DL_INFO_DL_UL_FLAG_LSB 0
|
||||
#define HE_SIG_A_MU_DL_INFO_DL_UL_FLAG_MSB 0
|
||||
#define HE_SIG_A_MU_DL_INFO_DL_UL_FLAG_MASK 0x00000001
|
||||
|
||||
|
||||
/* Description MCS_OF_SIG_B
|
||||
|
||||
Indicates the MCS of HE-SIG-B
|
||||
<legal 0-5>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_MU_DL_INFO_MCS_OF_SIG_B_OFFSET 0x00000000
|
||||
#define HE_SIG_A_MU_DL_INFO_MCS_OF_SIG_B_LSB 1
|
||||
#define HE_SIG_A_MU_DL_INFO_MCS_OF_SIG_B_MSB 3
|
||||
#define HE_SIG_A_MU_DL_INFO_MCS_OF_SIG_B_MASK 0x0000000e
|
||||
|
||||
|
||||
/* Description DCM_OF_SIG_B
|
||||
|
||||
Indicates whether dual sub-carrier modulation is applied
|
||||
to HE-SIG-B
|
||||
|
||||
0: No DCM for HE_SIG_B
|
||||
1: DCM for HE_SIG_B
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_MU_DL_INFO_DCM_OF_SIG_B_OFFSET 0x00000000
|
||||
#define HE_SIG_A_MU_DL_INFO_DCM_OF_SIG_B_LSB 4
|
||||
#define HE_SIG_A_MU_DL_INFO_DCM_OF_SIG_B_MSB 4
|
||||
#define HE_SIG_A_MU_DL_INFO_DCM_OF_SIG_B_MASK 0x00000010
|
||||
|
||||
|
||||
/* Description BSS_COLOR_ID
|
||||
|
||||
BSS color ID
|
||||
|
||||
Field Used by MAC HW
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_MU_DL_INFO_BSS_COLOR_ID_OFFSET 0x00000000
|
||||
#define HE_SIG_A_MU_DL_INFO_BSS_COLOR_ID_LSB 5
|
||||
#define HE_SIG_A_MU_DL_INFO_BSS_COLOR_ID_MSB 10
|
||||
#define HE_SIG_A_MU_DL_INFO_BSS_COLOR_ID_MASK 0x000007e0
|
||||
|
||||
|
||||
/* Description SPATIAL_REUSE
|
||||
|
||||
Spatial reuse
|
||||
|
||||
For 20MHz one SR field corresponding to entire 20MHz (other
|
||||
3 fields indicate identical values)
|
||||
For 40MHz two SR fields for each 20MHz (other 2 fields indicate
|
||||
identical values)
|
||||
For 80MHz four SR fields for each 20MHz
|
||||
For 160MHz four SR fields for each 40MHz
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_MU_DL_INFO_SPATIAL_REUSE_OFFSET 0x00000000
|
||||
#define HE_SIG_A_MU_DL_INFO_SPATIAL_REUSE_LSB 11
|
||||
#define HE_SIG_A_MU_DL_INFO_SPATIAL_REUSE_MSB 14
|
||||
#define HE_SIG_A_MU_DL_INFO_SPATIAL_REUSE_MASK 0x00007800
|
||||
|
||||
|
||||
/* Description TRANSMIT_BW
|
||||
|
||||
Bandwidth of the PPDU.
|
||||
|
||||
<enum 0 HE_SIG_A_MU_DL_BW20> 20 Mhz
|
||||
<enum 1 HE_SIG_A_MU_DL_BW40> 40 Mhz
|
||||
<enum 2 HE_SIG_A_MU_DL_BW80> 80 MHz non-preamble puncturing
|
||||
mode
|
||||
<enum 3 HE_SIG_A_MU_DL_BW160> 160 MHz and 80+80 MHz non-preamble
|
||||
puncturing mode
|
||||
<enum 4 HE_SIG_A_MU_DL_BW80_SEC_20_PUNC> for preamble puncturing
|
||||
in 80 MHz, where in the preamble only the secondary 20
|
||||
MHz is punctured
|
||||
<enum 5 HE_SIG_A_MU_DL_BW80_20_PUNC_IN_SEC_40> for preamble
|
||||
puncturing in 80 MHz, where in the preamble only one of
|
||||
the two 20 MHz sub-channels in secondary 40 MHz is punctured.
|
||||
|
||||
<enum 6 HE_SIG_A_MU_DL_BW160_SEC_20_PUNC> for preamble puncturing
|
||||
in 160 MHz or 80+80 MHz, where in the primary 80 MHz of
|
||||
the preamble only the secondary 20 MHz is punctured.
|
||||
<enum 7 HE_SIG_A_MU_DL_BW160_SEC_40_80_PUNC> for preamble
|
||||
puncturing in 160 MHz or 80+80 MHz, where in the primary
|
||||
80 MHz of the preamble the primary 40 MHz is present.
|
||||
|
||||
On RX side, Field Used by MAC HW
|
||||
<legal 0-7>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_MU_DL_INFO_TRANSMIT_BW_OFFSET 0x00000000
|
||||
#define HE_SIG_A_MU_DL_INFO_TRANSMIT_BW_LSB 15
|
||||
#define HE_SIG_A_MU_DL_INFO_TRANSMIT_BW_MSB 17
|
||||
#define HE_SIG_A_MU_DL_INFO_TRANSMIT_BW_MASK 0x00038000
|
||||
|
||||
|
||||
/* Description NUM_SIG_B_SYMBOLS
|
||||
|
||||
Number of symbols
|
||||
|
||||
For OFDMA, the actual number of symbols is 1 larger then
|
||||
indicated in this field.
|
||||
|
||||
For MU-MIMO this is equal to the number of users - 1: the
|
||||
following encoding is used:
|
||||
1 => 2 users
|
||||
2 => 3 users
|
||||
Etc.
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_MU_DL_INFO_NUM_SIG_B_SYMBOLS_OFFSET 0x00000000
|
||||
#define HE_SIG_A_MU_DL_INFO_NUM_SIG_B_SYMBOLS_LSB 18
|
||||
#define HE_SIG_A_MU_DL_INFO_NUM_SIG_B_SYMBOLS_MSB 21
|
||||
#define HE_SIG_A_MU_DL_INFO_NUM_SIG_B_SYMBOLS_MASK 0x003c0000
|
||||
|
||||
|
||||
/* Description COMP_MODE_SIG_B
|
||||
|
||||
Indicates the compression mode of HE-SIG-B
|
||||
|
||||
0: Regular [uncomp mode]
|
||||
1: compressed mode (full-BW MU-MIMO only)
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_MU_DL_INFO_COMP_MODE_SIG_B_OFFSET 0x00000000
|
||||
#define HE_SIG_A_MU_DL_INFO_COMP_MODE_SIG_B_LSB 22
|
||||
#define HE_SIG_A_MU_DL_INFO_COMP_MODE_SIG_B_MSB 22
|
||||
#define HE_SIG_A_MU_DL_INFO_COMP_MODE_SIG_B_MASK 0x00400000
|
||||
|
||||
|
||||
/* Description CP_LTF_SIZE
|
||||
|
||||
Indicates the CP and HE-LTF type
|
||||
|
||||
<enum 0 MU_FourX_LTF_0_8CP> 4xLTF + 0.8 us CP
|
||||
<enum 1 MU_TwoX_LTF_0_8CP> 2x LTF + 0.8 µs CP
|
||||
<enum 2 MU_TwoX_LTF_1_6CP> 2x LTF + 1.6 µs CP
|
||||
<enum 3 MU_FourX_LTF_3_2CP> 4x LTF + 3.2 µs CP
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_MU_DL_INFO_CP_LTF_SIZE_OFFSET 0x00000000
|
||||
#define HE_SIG_A_MU_DL_INFO_CP_LTF_SIZE_LSB 23
|
||||
#define HE_SIG_A_MU_DL_INFO_CP_LTF_SIZE_MSB 24
|
||||
#define HE_SIG_A_MU_DL_INFO_CP_LTF_SIZE_MASK 0x01800000
|
||||
|
||||
|
||||
/* Description DOPPLER_INDICATION
|
||||
|
||||
0: No Doppler support
|
||||
1: Doppler support
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_MU_DL_INFO_DOPPLER_INDICATION_OFFSET 0x00000000
|
||||
#define HE_SIG_A_MU_DL_INFO_DOPPLER_INDICATION_LSB 25
|
||||
#define HE_SIG_A_MU_DL_INFO_DOPPLER_INDICATION_MSB 25
|
||||
#define HE_SIG_A_MU_DL_INFO_DOPPLER_INDICATION_MASK 0x02000000
|
||||
|
||||
|
||||
/* Description RESERVED_0A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_MU_DL_INFO_RESERVED_0A_OFFSET 0x00000000
|
||||
#define HE_SIG_A_MU_DL_INFO_RESERVED_0A_LSB 26
|
||||
#define HE_SIG_A_MU_DL_INFO_RESERVED_0A_MSB 31
|
||||
#define HE_SIG_A_MU_DL_INFO_RESERVED_0A_MASK 0xfc000000
|
||||
|
||||
|
||||
/* Description TXOP_DURATION
|
||||
|
||||
Indicates the remaining time in the current TXOP
|
||||
|
||||
Field Used by MAC HW
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_MU_DL_INFO_TXOP_DURATION_OFFSET 0x00000004
|
||||
#define HE_SIG_A_MU_DL_INFO_TXOP_DURATION_LSB 0
|
||||
#define HE_SIG_A_MU_DL_INFO_TXOP_DURATION_MSB 6
|
||||
#define HE_SIG_A_MU_DL_INFO_TXOP_DURATION_MASK 0x0000007f
|
||||
|
||||
|
||||
/* Description RESERVED_1A
|
||||
|
||||
Note: spec indicates this shall be set to 1
|
||||
<legal 1>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_MU_DL_INFO_RESERVED_1A_OFFSET 0x00000004
|
||||
#define HE_SIG_A_MU_DL_INFO_RESERVED_1A_LSB 7
|
||||
#define HE_SIG_A_MU_DL_INFO_RESERVED_1A_MSB 7
|
||||
#define HE_SIG_A_MU_DL_INFO_RESERVED_1A_MASK 0x00000080
|
||||
|
||||
|
||||
/* Description NUM_LTF_SYMBOLS
|
||||
|
||||
Indicates the number of HE-LTF symbols
|
||||
|
||||
0: 1 LTF
|
||||
1: 2 LTFs
|
||||
2: 4 LTFs
|
||||
3: 6 LTFs
|
||||
4: 8 LTFs
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_MU_DL_INFO_NUM_LTF_SYMBOLS_OFFSET 0x00000004
|
||||
#define HE_SIG_A_MU_DL_INFO_NUM_LTF_SYMBOLS_LSB 8
|
||||
#define HE_SIG_A_MU_DL_INFO_NUM_LTF_SYMBOLS_MSB 10
|
||||
#define HE_SIG_A_MU_DL_INFO_NUM_LTF_SYMBOLS_MASK 0x00000700
|
||||
|
||||
|
||||
/* Description LDPC_EXTRA_SYMBOL
|
||||
|
||||
If LDPC,
|
||||
0: LDPC extra symbol not present
|
||||
1: LDPC extra symbol present
|
||||
Else
|
||||
Set to 1
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_MU_DL_INFO_LDPC_EXTRA_SYMBOL_OFFSET 0x00000004
|
||||
#define HE_SIG_A_MU_DL_INFO_LDPC_EXTRA_SYMBOL_LSB 11
|
||||
#define HE_SIG_A_MU_DL_INFO_LDPC_EXTRA_SYMBOL_MSB 11
|
||||
#define HE_SIG_A_MU_DL_INFO_LDPC_EXTRA_SYMBOL_MASK 0x00000800
|
||||
|
||||
|
||||
/* Description STBC
|
||||
|
||||
Indicates whether STBC is applied
|
||||
0: No STBC
|
||||
1: STBC
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_MU_DL_INFO_STBC_OFFSET 0x00000004
|
||||
#define HE_SIG_A_MU_DL_INFO_STBC_LSB 12
|
||||
#define HE_SIG_A_MU_DL_INFO_STBC_MSB 12
|
||||
#define HE_SIG_A_MU_DL_INFO_STBC_MASK 0x00001000
|
||||
|
||||
|
||||
/* Description PACKET_EXTENSION_A_FACTOR
|
||||
|
||||
the packet extension duration of the trigger-based PPDU
|
||||
response with these two bits indicating the "a-factor"
|
||||
|
||||
<enum 0 a_factor_4>
|
||||
<enum 1 a_factor_1>
|
||||
<enum 2 a_factor_2>
|
||||
<enum 3 a_factor_3>
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_MU_DL_INFO_PACKET_EXTENSION_A_FACTOR_OFFSET 0x00000004
|
||||
#define HE_SIG_A_MU_DL_INFO_PACKET_EXTENSION_A_FACTOR_LSB 13
|
||||
#define HE_SIG_A_MU_DL_INFO_PACKET_EXTENSION_A_FACTOR_MSB 14
|
||||
#define HE_SIG_A_MU_DL_INFO_PACKET_EXTENSION_A_FACTOR_MASK 0x00006000
|
||||
|
||||
|
||||
/* Description PACKET_EXTENSION_PE_DISAMBIGUITY
|
||||
|
||||
the packet extension duration of the trigger-based PPDU
|
||||
response with this bit indicating the PE-Disambiguity
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_MU_DL_INFO_PACKET_EXTENSION_PE_DISAMBIGUITY_OFFSET 0x00000004
|
||||
#define HE_SIG_A_MU_DL_INFO_PACKET_EXTENSION_PE_DISAMBIGUITY_LSB 15
|
||||
#define HE_SIG_A_MU_DL_INFO_PACKET_EXTENSION_PE_DISAMBIGUITY_MSB 15
|
||||
#define HE_SIG_A_MU_DL_INFO_PACKET_EXTENSION_PE_DISAMBIGUITY_MASK 0x00008000
|
||||
|
||||
|
||||
/* Description CRC
|
||||
|
||||
CRC for HE-SIG-A contents.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_MU_DL_INFO_CRC_OFFSET 0x00000004
|
||||
#define HE_SIG_A_MU_DL_INFO_CRC_LSB 16
|
||||
#define HE_SIG_A_MU_DL_INFO_CRC_MSB 19
|
||||
#define HE_SIG_A_MU_DL_INFO_CRC_MASK 0x000f0000
|
||||
|
||||
|
||||
/* Description TAIL
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_MU_DL_INFO_TAIL_OFFSET 0x00000004
|
||||
#define HE_SIG_A_MU_DL_INFO_TAIL_LSB 20
|
||||
#define HE_SIG_A_MU_DL_INFO_TAIL_MSB 25
|
||||
#define HE_SIG_A_MU_DL_INFO_TAIL_MASK 0x03f00000
|
||||
|
||||
|
||||
/* Description RESERVED_1B
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_MU_DL_INFO_RESERVED_1B_OFFSET 0x00000004
|
||||
#define HE_SIG_A_MU_DL_INFO_RESERVED_1B_LSB 26
|
||||
#define HE_SIG_A_MU_DL_INFO_RESERVED_1B_MSB 30
|
||||
#define HE_SIG_A_MU_DL_INFO_RESERVED_1B_MASK 0x7c000000
|
||||
|
||||
|
||||
/* Description RX_INTEGRITY_CHECK_PASSED
|
||||
|
||||
TX side: Set to 0
|
||||
RX side: Set to 1 if PHY determines the HE-SIG-A CRC check
|
||||
has passed, else set to 0
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_MU_DL_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x00000004
|
||||
#define HE_SIG_A_MU_DL_INFO_RX_INTEGRITY_CHECK_PASSED_LSB 31
|
||||
#define HE_SIG_A_MU_DL_INFO_RX_INTEGRITY_CHECK_PASSED_MSB 31
|
||||
#define HE_SIG_A_MU_DL_INFO_RX_INTEGRITY_CHECK_PASSED_MASK 0x80000000
|
||||
|
||||
|
||||
|
||||
#endif // HE_SIG_A_MU_DL_INFO
|
||||
224
drivers/staging/fw-api/hw/qca5332/he_sig_a_mu_ul_info.h
Normal file
224
drivers/staging/fw-api/hw/qca5332/he_sig_a_mu_ul_info.h
Normal file
|
|
@ -0,0 +1,224 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _HE_SIG_A_MU_UL_INFO_H_
|
||||
#define _HE_SIG_A_MU_UL_INFO_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#define NUM_OF_DWORDS_HE_SIG_A_MU_UL_INFO 2
|
||||
|
||||
|
||||
struct he_sig_a_mu_ul_info {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
uint32_t format_indication : 1, // [0:0]
|
||||
bss_color_id : 6, // [6:1]
|
||||
spatial_reuse : 16, // [22:7]
|
||||
reserved_0a : 1, // [23:23]
|
||||
transmit_bw : 2, // [25:24]
|
||||
reserved_0b : 6; // [31:26]
|
||||
uint32_t txop_duration : 7, // [6:0]
|
||||
reserved_1a : 9, // [15:7]
|
||||
crc : 4, // [19:16]
|
||||
tail : 6, // [25:20]
|
||||
reserved_1b : 5, // [30:26]
|
||||
rx_integrity_check_passed : 1; // [31:31]
|
||||
#else
|
||||
uint32_t reserved_0b : 6, // [31:26]
|
||||
transmit_bw : 2, // [25:24]
|
||||
reserved_0a : 1, // [23:23]
|
||||
spatial_reuse : 16, // [22:7]
|
||||
bss_color_id : 6, // [6:1]
|
||||
format_indication : 1; // [0:0]
|
||||
uint32_t rx_integrity_check_passed : 1, // [31:31]
|
||||
reserved_1b : 5, // [30:26]
|
||||
tail : 6, // [25:20]
|
||||
crc : 4, // [19:16]
|
||||
reserved_1a : 9, // [15:7]
|
||||
txop_duration : 7; // [6:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description FORMAT_INDICATION
|
||||
|
||||
Indicates whether the transmission is SU PPDU or a trigger
|
||||
based UL MU PDDU
|
||||
<enum 0 HE_SIGA_FORMAT_HE_TRIG>
|
||||
<enum 1 HE_SIGA_FORMAT_SU_OR_EXT_SU>
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_MU_UL_INFO_FORMAT_INDICATION_OFFSET 0x00000000
|
||||
#define HE_SIG_A_MU_UL_INFO_FORMAT_INDICATION_LSB 0
|
||||
#define HE_SIG_A_MU_UL_INFO_FORMAT_INDICATION_MSB 0
|
||||
#define HE_SIG_A_MU_UL_INFO_FORMAT_INDICATION_MASK 0x00000001
|
||||
|
||||
|
||||
/* Description BSS_COLOR_ID
|
||||
|
||||
BSS color ID
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_MU_UL_INFO_BSS_COLOR_ID_OFFSET 0x00000000
|
||||
#define HE_SIG_A_MU_UL_INFO_BSS_COLOR_ID_LSB 1
|
||||
#define HE_SIG_A_MU_UL_INFO_BSS_COLOR_ID_MSB 6
|
||||
#define HE_SIG_A_MU_UL_INFO_BSS_COLOR_ID_MASK 0x0000007e
|
||||
|
||||
|
||||
/* Description SPATIAL_REUSE
|
||||
|
||||
Spatial reuse
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_MU_UL_INFO_SPATIAL_REUSE_OFFSET 0x00000000
|
||||
#define HE_SIG_A_MU_UL_INFO_SPATIAL_REUSE_LSB 7
|
||||
#define HE_SIG_A_MU_UL_INFO_SPATIAL_REUSE_MSB 22
|
||||
#define HE_SIG_A_MU_UL_INFO_SPATIAL_REUSE_MASK 0x007fff80
|
||||
|
||||
|
||||
/* Description RESERVED_0A
|
||||
|
||||
Note: spec indicates this shall be set to 1
|
||||
<legal 1>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_MU_UL_INFO_RESERVED_0A_OFFSET 0x00000000
|
||||
#define HE_SIG_A_MU_UL_INFO_RESERVED_0A_LSB 23
|
||||
#define HE_SIG_A_MU_UL_INFO_RESERVED_0A_MSB 23
|
||||
#define HE_SIG_A_MU_UL_INFO_RESERVED_0A_MASK 0x00800000
|
||||
|
||||
|
||||
/* Description TRANSMIT_BW
|
||||
|
||||
Bandwidth of the PPDU.
|
||||
|
||||
<enum 0 HE_SIG_A_MU_UL_BW20> 20 Mhz
|
||||
<enum 1 HE_SIG_A_MU_UL_BW40> 40 Mhz
|
||||
<enum 2 HE_SIG_A_MU_UL_BW80> 80 Mhz
|
||||
<enum 3 HE_SIG_A_MU_UL_BW160> 160 MHz or 80+80 MHz
|
||||
|
||||
On RX side, Field Used by MAC HW
|
||||
<legal 0-3>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_MU_UL_INFO_TRANSMIT_BW_OFFSET 0x00000000
|
||||
#define HE_SIG_A_MU_UL_INFO_TRANSMIT_BW_LSB 24
|
||||
#define HE_SIG_A_MU_UL_INFO_TRANSMIT_BW_MSB 25
|
||||
#define HE_SIG_A_MU_UL_INFO_TRANSMIT_BW_MASK 0x03000000
|
||||
|
||||
|
||||
/* Description RESERVED_0B
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_MU_UL_INFO_RESERVED_0B_OFFSET 0x00000000
|
||||
#define HE_SIG_A_MU_UL_INFO_RESERVED_0B_LSB 26
|
||||
#define HE_SIG_A_MU_UL_INFO_RESERVED_0B_MSB 31
|
||||
#define HE_SIG_A_MU_UL_INFO_RESERVED_0B_MASK 0xfc000000
|
||||
|
||||
|
||||
/* Description TXOP_DURATION
|
||||
|
||||
Indicates the remaining time in the current TXOP <legal
|
||||
all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_MU_UL_INFO_TXOP_DURATION_OFFSET 0x00000004
|
||||
#define HE_SIG_A_MU_UL_INFO_TXOP_DURATION_LSB 0
|
||||
#define HE_SIG_A_MU_UL_INFO_TXOP_DURATION_MSB 6
|
||||
#define HE_SIG_A_MU_UL_INFO_TXOP_DURATION_MASK 0x0000007f
|
||||
|
||||
|
||||
/* Description RESERVED_1A
|
||||
|
||||
Set to value indicated in the trigger frame
|
||||
<legal 255>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_MU_UL_INFO_RESERVED_1A_OFFSET 0x00000004
|
||||
#define HE_SIG_A_MU_UL_INFO_RESERVED_1A_LSB 7
|
||||
#define HE_SIG_A_MU_UL_INFO_RESERVED_1A_MSB 15
|
||||
#define HE_SIG_A_MU_UL_INFO_RESERVED_1A_MASK 0x0000ff80
|
||||
|
||||
|
||||
/* Description CRC
|
||||
|
||||
CRC for HE-SIG-A contents.
|
||||
This CRC may also cover some fields of L-SIG (TBD)
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_MU_UL_INFO_CRC_OFFSET 0x00000004
|
||||
#define HE_SIG_A_MU_UL_INFO_CRC_LSB 16
|
||||
#define HE_SIG_A_MU_UL_INFO_CRC_MSB 19
|
||||
#define HE_SIG_A_MU_UL_INFO_CRC_MASK 0x000f0000
|
||||
|
||||
|
||||
/* Description TAIL
|
||||
|
||||
BCC encoding (similar to VHT-SIG-A) with 6 tail bits is
|
||||
used
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_MU_UL_INFO_TAIL_OFFSET 0x00000004
|
||||
#define HE_SIG_A_MU_UL_INFO_TAIL_LSB 20
|
||||
#define HE_SIG_A_MU_UL_INFO_TAIL_MSB 25
|
||||
#define HE_SIG_A_MU_UL_INFO_TAIL_MASK 0x03f00000
|
||||
|
||||
|
||||
/* Description RESERVED_1B
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_MU_UL_INFO_RESERVED_1B_OFFSET 0x00000004
|
||||
#define HE_SIG_A_MU_UL_INFO_RESERVED_1B_LSB 26
|
||||
#define HE_SIG_A_MU_UL_INFO_RESERVED_1B_MSB 30
|
||||
#define HE_SIG_A_MU_UL_INFO_RESERVED_1B_MASK 0x7c000000
|
||||
|
||||
|
||||
/* Description RX_INTEGRITY_CHECK_PASSED
|
||||
|
||||
TX side: Set to 0
|
||||
RX side: Set to 1 if PHY determines the HE-SIG-A CRC check
|
||||
has passed, else set to 0
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_MU_UL_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x00000004
|
||||
#define HE_SIG_A_MU_UL_INFO_RX_INTEGRITY_CHECK_PASSED_LSB 31
|
||||
#define HE_SIG_A_MU_UL_INFO_RX_INTEGRITY_CHECK_PASSED_MSB 31
|
||||
#define HE_SIG_A_MU_UL_INFO_RX_INTEGRITY_CHECK_PASSED_MASK 0x80000000
|
||||
|
||||
|
||||
|
||||
#endif // HE_SIG_A_MU_UL_INFO
|
||||
549
drivers/staging/fw-api/hw/qca5332/he_sig_a_su_info.h
Normal file
549
drivers/staging/fw-api/hw/qca5332/he_sig_a_su_info.h
Normal file
|
|
@ -0,0 +1,549 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _HE_SIG_A_SU_INFO_H_
|
||||
#define _HE_SIG_A_SU_INFO_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#define NUM_OF_DWORDS_HE_SIG_A_SU_INFO 2
|
||||
|
||||
|
||||
struct he_sig_a_su_info {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
uint32_t format_indication : 1, // [0:0]
|
||||
beam_change : 1, // [1:1]
|
||||
dl_ul_flag : 1, // [2:2]
|
||||
transmit_mcs : 4, // [6:3]
|
||||
dcm : 1, // [7:7]
|
||||
bss_color_id : 6, // [13:8]
|
||||
reserved_0a : 1, // [14:14]
|
||||
spatial_reuse : 4, // [18:15]
|
||||
transmit_bw : 2, // [20:19]
|
||||
cp_ltf_size : 2, // [22:21]
|
||||
nsts : 3, // [25:23]
|
||||
reserved_0b : 6; // [31:26]
|
||||
uint32_t txop_duration : 7, // [6:0]
|
||||
coding : 1, // [7:7]
|
||||
ldpc_extra_symbol : 1, // [8:8]
|
||||
stbc : 1, // [9:9]
|
||||
txbf : 1, // [10:10]
|
||||
packet_extension_a_factor : 2, // [12:11]
|
||||
packet_extension_pe_disambiguity : 1, // [13:13]
|
||||
reserved_1a : 1, // [14:14]
|
||||
doppler_indication : 1, // [15:15]
|
||||
crc : 4, // [19:16]
|
||||
tail : 6, // [25:20]
|
||||
dot11ax_su_extended : 1, // [26:26]
|
||||
dot11ax_ext_ru_size : 3, // [29:27]
|
||||
rx_ndp : 1, // [30:30]
|
||||
rx_integrity_check_passed : 1; // [31:31]
|
||||
#else
|
||||
uint32_t reserved_0b : 6, // [31:26]
|
||||
nsts : 3, // [25:23]
|
||||
cp_ltf_size : 2, // [22:21]
|
||||
transmit_bw : 2, // [20:19]
|
||||
spatial_reuse : 4, // [18:15]
|
||||
reserved_0a : 1, // [14:14]
|
||||
bss_color_id : 6, // [13:8]
|
||||
dcm : 1, // [7:7]
|
||||
transmit_mcs : 4, // [6:3]
|
||||
dl_ul_flag : 1, // [2:2]
|
||||
beam_change : 1, // [1:1]
|
||||
format_indication : 1; // [0:0]
|
||||
uint32_t rx_integrity_check_passed : 1, // [31:31]
|
||||
rx_ndp : 1, // [30:30]
|
||||
dot11ax_ext_ru_size : 3, // [29:27]
|
||||
dot11ax_su_extended : 1, // [26:26]
|
||||
tail : 6, // [25:20]
|
||||
crc : 4, // [19:16]
|
||||
doppler_indication : 1, // [15:15]
|
||||
reserved_1a : 1, // [14:14]
|
||||
packet_extension_pe_disambiguity : 1, // [13:13]
|
||||
packet_extension_a_factor : 2, // [12:11]
|
||||
txbf : 1, // [10:10]
|
||||
stbc : 1, // [9:9]
|
||||
ldpc_extra_symbol : 1, // [8:8]
|
||||
coding : 1, // [7:7]
|
||||
txop_duration : 7; // [6:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description FORMAT_INDICATION
|
||||
|
||||
<enum 0 HE_SIGA_FORMAT_HE_TRIG>
|
||||
<enum 1 HE_SIGA_FORMAT_SU_OR_EXT_SU>
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_SU_INFO_FORMAT_INDICATION_OFFSET 0x00000000
|
||||
#define HE_SIG_A_SU_INFO_FORMAT_INDICATION_LSB 0
|
||||
#define HE_SIG_A_SU_INFO_FORMAT_INDICATION_MSB 0
|
||||
#define HE_SIG_A_SU_INFO_FORMAT_INDICATION_MASK 0x00000001
|
||||
|
||||
|
||||
/* Description BEAM_CHANGE
|
||||
|
||||
Indicates whether spatial mapping is changed between legacy
|
||||
and HE portion of preamble. If not, channel estimation
|
||||
can include legacy preamble to improve accuracy
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_SU_INFO_BEAM_CHANGE_OFFSET 0x00000000
|
||||
#define HE_SIG_A_SU_INFO_BEAM_CHANGE_LSB 1
|
||||
#define HE_SIG_A_SU_INFO_BEAM_CHANGE_MSB 1
|
||||
#define HE_SIG_A_SU_INFO_BEAM_CHANGE_MASK 0x00000002
|
||||
|
||||
|
||||
/* Description DL_UL_FLAG
|
||||
|
||||
Differentiates between DL and UL transmission
|
||||
|
||||
<enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
|
||||
<enum 1 DL_UL_FLAG_IS_UL>
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_SU_INFO_DL_UL_FLAG_OFFSET 0x00000000
|
||||
#define HE_SIG_A_SU_INFO_DL_UL_FLAG_LSB 2
|
||||
#define HE_SIG_A_SU_INFO_DL_UL_FLAG_MSB 2
|
||||
#define HE_SIG_A_SU_INFO_DL_UL_FLAG_MASK 0x00000004
|
||||
|
||||
|
||||
/* Description TRANSMIT_MCS
|
||||
|
||||
Indicates the data MCS
|
||||
|
||||
Field Used by MAC HW
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_SU_INFO_TRANSMIT_MCS_OFFSET 0x00000000
|
||||
#define HE_SIG_A_SU_INFO_TRANSMIT_MCS_LSB 3
|
||||
#define HE_SIG_A_SU_INFO_TRANSMIT_MCS_MSB 6
|
||||
#define HE_SIG_A_SU_INFO_TRANSMIT_MCS_MASK 0x00000078
|
||||
|
||||
|
||||
/* Description DCM
|
||||
|
||||
Indicates whether dual sub-carrier modulation is applied
|
||||
|
||||
0: No DCM
|
||||
1:DCM
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_SU_INFO_DCM_OFFSET 0x00000000
|
||||
#define HE_SIG_A_SU_INFO_DCM_LSB 7
|
||||
#define HE_SIG_A_SU_INFO_DCM_MSB 7
|
||||
#define HE_SIG_A_SU_INFO_DCM_MASK 0x00000080
|
||||
|
||||
|
||||
/* Description BSS_COLOR_ID
|
||||
|
||||
BSS color ID
|
||||
|
||||
Field Used by MAC HW
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_SU_INFO_BSS_COLOR_ID_OFFSET 0x00000000
|
||||
#define HE_SIG_A_SU_INFO_BSS_COLOR_ID_LSB 8
|
||||
#define HE_SIG_A_SU_INFO_BSS_COLOR_ID_MSB 13
|
||||
#define HE_SIG_A_SU_INFO_BSS_COLOR_ID_MASK 0x00003f00
|
||||
|
||||
|
||||
/* Description RESERVED_0A
|
||||
|
||||
Note: spec indicates this shall be set to 1
|
||||
<legal 1>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_SU_INFO_RESERVED_0A_OFFSET 0x00000000
|
||||
#define HE_SIG_A_SU_INFO_RESERVED_0A_LSB 14
|
||||
#define HE_SIG_A_SU_INFO_RESERVED_0A_MSB 14
|
||||
#define HE_SIG_A_SU_INFO_RESERVED_0A_MASK 0x00004000
|
||||
|
||||
|
||||
/* Description SPATIAL_REUSE
|
||||
|
||||
Spatial reuse
|
||||
|
||||
For 20MHz one SR field corresponding to entire 20MHz (other
|
||||
3 fields indicate identical values)
|
||||
For 40MHz two SR fields for each 20MHz (other 2 fields indicate
|
||||
identical values)
|
||||
For 80MHz four SR fields for each 20MHz
|
||||
For 160MHz four SR fields for each 40MHz
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_SU_INFO_SPATIAL_REUSE_OFFSET 0x00000000
|
||||
#define HE_SIG_A_SU_INFO_SPATIAL_REUSE_LSB 15
|
||||
#define HE_SIG_A_SU_INFO_SPATIAL_REUSE_MSB 18
|
||||
#define HE_SIG_A_SU_INFO_SPATIAL_REUSE_MASK 0x00078000
|
||||
|
||||
|
||||
/* Description TRANSMIT_BW
|
||||
|
||||
Bandwidth of the PPDU.
|
||||
|
||||
For HE SU PPDU
|
||||
|
||||
|
||||
|
||||
<enum 0 HE_SIG_A_BW20> 20 Mhz
|
||||
<enum 1 HE_SIG_A_BW40> 40 Mhz
|
||||
<enum 2 HE_SIG_A_BW80> 80 Mhz
|
||||
<enum 3 HE_SIG_A_BW160> 160 MHz or 80+80 MHz
|
||||
|
||||
For HE Extended Range SU PPDU
|
||||
Set to 0 for 242-tone RU
|
||||
|
||||
Set to 1 for right 106-tone RU within
|
||||
the primary 20 MHz
|
||||
|
||||
On RX side, Field Used by MAC HW
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_SU_INFO_TRANSMIT_BW_OFFSET 0x00000000
|
||||
#define HE_SIG_A_SU_INFO_TRANSMIT_BW_LSB 19
|
||||
#define HE_SIG_A_SU_INFO_TRANSMIT_BW_MSB 20
|
||||
#define HE_SIG_A_SU_INFO_TRANSMIT_BW_MASK 0x00180000
|
||||
|
||||
|
||||
/* Description CP_LTF_SIZE
|
||||
|
||||
Indicates the CP and HE-LTF type
|
||||
|
||||
<enum 0 OneX_LTF_0_8CP> 1xLTF + 0.8 us CP
|
||||
<enum 1 TwoX_LTF_0_8CP> 2x LTF + 0.8 µs CP
|
||||
<enum 2 TwoX_LTF_1_6CP> 2x LTF + 1.6 µs CP
|
||||
|
||||
<enum 3 FourX_LTF_0_8CP_3_2CP>
|
||||
When DCM == 0 OR STBC == 0: 4x LTF + 3.2 µs CP
|
||||
When DCM == 1 AND STBC == 1: 4x LTF + 0.8 µs CP. Note:
|
||||
In this scenario, Neither DCM nor STBC is applied to HE
|
||||
data field.
|
||||
|
||||
NOTE:
|
||||
If ( DCM == 1 ) and ( MCS > 0 ) and (STBC == 0)
|
||||
0 = 1xLTF + 0.4 usec
|
||||
1 = 2xLTF + 0.4 usec
|
||||
2~3 = Reserved
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_SU_INFO_CP_LTF_SIZE_OFFSET 0x00000000
|
||||
#define HE_SIG_A_SU_INFO_CP_LTF_SIZE_LSB 21
|
||||
#define HE_SIG_A_SU_INFO_CP_LTF_SIZE_MSB 22
|
||||
#define HE_SIG_A_SU_INFO_CP_LTF_SIZE_MASK 0x00600000
|
||||
|
||||
|
||||
/* Description NSTS
|
||||
|
||||
Indicates number of streams used for the SU transmission
|
||||
|
||||
|
||||
For HE SU PPDU
|
||||
|
||||
|
||||
Set to n for n+1 space time stream,
|
||||
where n = 0, 1, 2,.....,7.
|
||||
|
||||
|
||||
|
||||
|
||||
For HE Extended Range PPDU
|
||||
|
||||
|
||||
Set to 0 for 1 space time stream.
|
||||
Value 1 is TBD
|
||||
|
||||
|
||||
|
||||
Values 2 - 7 are reserved
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_SU_INFO_NSTS_OFFSET 0x00000000
|
||||
#define HE_SIG_A_SU_INFO_NSTS_LSB 23
|
||||
#define HE_SIG_A_SU_INFO_NSTS_MSB 25
|
||||
#define HE_SIG_A_SU_INFO_NSTS_MASK 0x03800000
|
||||
|
||||
|
||||
/* Description RESERVED_0B
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_SU_INFO_RESERVED_0B_OFFSET 0x00000000
|
||||
#define HE_SIG_A_SU_INFO_RESERVED_0B_LSB 26
|
||||
#define HE_SIG_A_SU_INFO_RESERVED_0B_MSB 31
|
||||
#define HE_SIG_A_SU_INFO_RESERVED_0B_MASK 0xfc000000
|
||||
|
||||
|
||||
/* Description TXOP_DURATION
|
||||
|
||||
Indicates the remaining time in the current TXOP
|
||||
|
||||
Field Used by MAC HW
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_SU_INFO_TXOP_DURATION_OFFSET 0x00000004
|
||||
#define HE_SIG_A_SU_INFO_TXOP_DURATION_LSB 0
|
||||
#define HE_SIG_A_SU_INFO_TXOP_DURATION_MSB 6
|
||||
#define HE_SIG_A_SU_INFO_TXOP_DURATION_MASK 0x0000007f
|
||||
|
||||
|
||||
/* Description CODING
|
||||
|
||||
Distinguishes between BCC and LDPC coding.
|
||||
|
||||
0: BCC
|
||||
1: LDPC
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_SU_INFO_CODING_OFFSET 0x00000004
|
||||
#define HE_SIG_A_SU_INFO_CODING_LSB 7
|
||||
#define HE_SIG_A_SU_INFO_CODING_MSB 7
|
||||
#define HE_SIG_A_SU_INFO_CODING_MASK 0x00000080
|
||||
|
||||
|
||||
/* Description LDPC_EXTRA_SYMBOL
|
||||
|
||||
If LDPC,
|
||||
0: LDPC extra symbol not present
|
||||
1: LDPC extra symbol present
|
||||
Else
|
||||
Set to 1
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_SU_INFO_LDPC_EXTRA_SYMBOL_OFFSET 0x00000004
|
||||
#define HE_SIG_A_SU_INFO_LDPC_EXTRA_SYMBOL_LSB 8
|
||||
#define HE_SIG_A_SU_INFO_LDPC_EXTRA_SYMBOL_MSB 8
|
||||
#define HE_SIG_A_SU_INFO_LDPC_EXTRA_SYMBOL_MASK 0x00000100
|
||||
|
||||
|
||||
/* Description STBC
|
||||
|
||||
Indicates whether STBC is applied
|
||||
0: No STBC
|
||||
1: STBC
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_SU_INFO_STBC_OFFSET 0x00000004
|
||||
#define HE_SIG_A_SU_INFO_STBC_LSB 9
|
||||
#define HE_SIG_A_SU_INFO_STBC_MSB 9
|
||||
#define HE_SIG_A_SU_INFO_STBC_MASK 0x00000200
|
||||
|
||||
|
||||
/* Description TXBF
|
||||
|
||||
Indicates whether beamforming is applied
|
||||
0: No beamforming
|
||||
1: beamforming
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_SU_INFO_TXBF_OFFSET 0x00000004
|
||||
#define HE_SIG_A_SU_INFO_TXBF_LSB 10
|
||||
#define HE_SIG_A_SU_INFO_TXBF_MSB 10
|
||||
#define HE_SIG_A_SU_INFO_TXBF_MASK 0x00000400
|
||||
|
||||
|
||||
/* Description PACKET_EXTENSION_A_FACTOR
|
||||
|
||||
Common trigger info
|
||||
|
||||
the packet extension duration of the trigger-based PPDU
|
||||
response with these two bits indicating the "a-factor"
|
||||
|
||||
<enum 0 a_factor_4>
|
||||
<enum 1 a_factor_1>
|
||||
<enum 2 a_factor_2>
|
||||
<enum 3 a_factor_3>
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_SU_INFO_PACKET_EXTENSION_A_FACTOR_OFFSET 0x00000004
|
||||
#define HE_SIG_A_SU_INFO_PACKET_EXTENSION_A_FACTOR_LSB 11
|
||||
#define HE_SIG_A_SU_INFO_PACKET_EXTENSION_A_FACTOR_MSB 12
|
||||
#define HE_SIG_A_SU_INFO_PACKET_EXTENSION_A_FACTOR_MASK 0x00001800
|
||||
|
||||
|
||||
/* Description PACKET_EXTENSION_PE_DISAMBIGUITY
|
||||
|
||||
Common trigger info
|
||||
|
||||
the packet extension duration of the trigger-based PPDU
|
||||
response with this bit indicating the PE-Disambiguity
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_SU_INFO_PACKET_EXTENSION_PE_DISAMBIGUITY_OFFSET 0x00000004
|
||||
#define HE_SIG_A_SU_INFO_PACKET_EXTENSION_PE_DISAMBIGUITY_LSB 13
|
||||
#define HE_SIG_A_SU_INFO_PACKET_EXTENSION_PE_DISAMBIGUITY_MSB 13
|
||||
#define HE_SIG_A_SU_INFO_PACKET_EXTENSION_PE_DISAMBIGUITY_MASK 0x00002000
|
||||
|
||||
|
||||
/* Description RESERVED_1A
|
||||
|
||||
Note: per standard, set to 1
|
||||
<legal 1>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_SU_INFO_RESERVED_1A_OFFSET 0x00000004
|
||||
#define HE_SIG_A_SU_INFO_RESERVED_1A_LSB 14
|
||||
#define HE_SIG_A_SU_INFO_RESERVED_1A_MSB 14
|
||||
#define HE_SIG_A_SU_INFO_RESERVED_1A_MASK 0x00004000
|
||||
|
||||
|
||||
/* Description DOPPLER_INDICATION
|
||||
|
||||
0: No Doppler support
|
||||
1: Doppler support
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_SU_INFO_DOPPLER_INDICATION_OFFSET 0x00000004
|
||||
#define HE_SIG_A_SU_INFO_DOPPLER_INDICATION_LSB 15
|
||||
#define HE_SIG_A_SU_INFO_DOPPLER_INDICATION_MSB 15
|
||||
#define HE_SIG_A_SU_INFO_DOPPLER_INDICATION_MASK 0x00008000
|
||||
|
||||
|
||||
/* Description CRC
|
||||
|
||||
CRC for HE-SIG-A contents.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_SU_INFO_CRC_OFFSET 0x00000004
|
||||
#define HE_SIG_A_SU_INFO_CRC_LSB 16
|
||||
#define HE_SIG_A_SU_INFO_CRC_MSB 19
|
||||
#define HE_SIG_A_SU_INFO_CRC_MASK 0x000f0000
|
||||
|
||||
|
||||
/* Description TAIL
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_SU_INFO_TAIL_OFFSET 0x00000004
|
||||
#define HE_SIG_A_SU_INFO_TAIL_LSB 20
|
||||
#define HE_SIG_A_SU_INFO_TAIL_MSB 25
|
||||
#define HE_SIG_A_SU_INFO_TAIL_MASK 0x03f00000
|
||||
|
||||
|
||||
/* Description DOT11AX_SU_EXTENDED
|
||||
|
||||
TX side:
|
||||
Set to 0
|
||||
|
||||
RX side:
|
||||
On RX side, evaluated by MAC HW. This is the only way for
|
||||
MAC RX to know that this was an HE_SIG_A_SU received in
|
||||
'extended' format
|
||||
|
||||
When set, the 11ax frame is of the extended range format
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_SU_INFO_DOT11AX_SU_EXTENDED_OFFSET 0x00000004
|
||||
#define HE_SIG_A_SU_INFO_DOT11AX_SU_EXTENDED_LSB 26
|
||||
#define HE_SIG_A_SU_INFO_DOT11AX_SU_EXTENDED_MSB 26
|
||||
#define HE_SIG_A_SU_INFO_DOT11AX_SU_EXTENDED_MASK 0x04000000
|
||||
|
||||
|
||||
/* Description DOT11AX_EXT_RU_SIZE
|
||||
|
||||
TX side:
|
||||
Set to 0
|
||||
|
||||
RX side:
|
||||
Field only contains valid info when dot11ax_su_extended
|
||||
is set.
|
||||
|
||||
On RX side, evaluated by MAC HW. This is the only way for
|
||||
MAC RX to know what the number of based RUs was in this
|
||||
extended range reception. It is used by the MAC to determine
|
||||
the RU size for the response...
|
||||
|
||||
<enum 0 EXT_RU_26>
|
||||
<enum 1 EXT_RU_52>
|
||||
<enum 2 EXT_RU_106>
|
||||
<enum 3 EXT_RU_242><legal 0-3>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_SU_INFO_DOT11AX_EXT_RU_SIZE_OFFSET 0x00000004
|
||||
#define HE_SIG_A_SU_INFO_DOT11AX_EXT_RU_SIZE_LSB 27
|
||||
#define HE_SIG_A_SU_INFO_DOT11AX_EXT_RU_SIZE_MSB 29
|
||||
#define HE_SIG_A_SU_INFO_DOT11AX_EXT_RU_SIZE_MASK 0x38000000
|
||||
|
||||
|
||||
/* Description RX_NDP
|
||||
|
||||
TX side:
|
||||
Set to 0
|
||||
|
||||
RX side:Valid on RX side only, and looked at by MAC HW
|
||||
|
||||
When set, PHY has received (expected) NDP frame
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_SU_INFO_RX_NDP_OFFSET 0x00000004
|
||||
#define HE_SIG_A_SU_INFO_RX_NDP_LSB 30
|
||||
#define HE_SIG_A_SU_INFO_RX_NDP_MSB 30
|
||||
#define HE_SIG_A_SU_INFO_RX_NDP_MASK 0x40000000
|
||||
|
||||
|
||||
/* Description RX_INTEGRITY_CHECK_PASSED
|
||||
|
||||
TX side: Set to 0
|
||||
RX side: Set to 1 if PHY determines the HE-SIG-A CRC check
|
||||
has passed, else set to 0
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_A_SU_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x00000004
|
||||
#define HE_SIG_A_SU_INFO_RX_INTEGRITY_CHECK_PASSED_LSB 31
|
||||
#define HE_SIG_A_SU_INFO_RX_INTEGRITY_CHECK_PASSED_MSB 31
|
||||
#define HE_SIG_A_SU_INFO_RX_INTEGRITY_CHECK_PASSED_MASK 0x80000000
|
||||
|
||||
|
||||
|
||||
#endif // HE_SIG_A_SU_INFO
|
||||
90
drivers/staging/fw-api/hw/qca5332/he_sig_b1_mu_info.h
Normal file
90
drivers/staging/fw-api/hw/qca5332/he_sig_b1_mu_info.h
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _HE_SIG_B1_MU_INFO_H_
|
||||
#define _HE_SIG_B1_MU_INFO_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#define NUM_OF_DWORDS_HE_SIG_B1_MU_INFO 1
|
||||
|
||||
|
||||
struct he_sig_b1_mu_info {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
uint32_t ru_allocation : 8, // [7:0]
|
||||
reserved_0 : 23, // [30:8]
|
||||
rx_integrity_check_passed : 1; // [31:31]
|
||||
#else
|
||||
uint32_t rx_integrity_check_passed : 1, // [31:31]
|
||||
reserved_0 : 23, // [30:8]
|
||||
ru_allocation : 8; // [7:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description RU_ALLOCATION
|
||||
|
||||
RU allocation for the user(s) following this common portion
|
||||
of the SIG
|
||||
|
||||
For details, refer to RU_TYPE description
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_B1_MU_INFO_RU_ALLOCATION_OFFSET 0x00000000
|
||||
#define HE_SIG_B1_MU_INFO_RU_ALLOCATION_LSB 0
|
||||
#define HE_SIG_B1_MU_INFO_RU_ALLOCATION_MSB 7
|
||||
#define HE_SIG_B1_MU_INFO_RU_ALLOCATION_MASK 0x000000ff
|
||||
|
||||
|
||||
/* Description RESERVED_0
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define HE_SIG_B1_MU_INFO_RESERVED_0_OFFSET 0x00000000
|
||||
#define HE_SIG_B1_MU_INFO_RESERVED_0_LSB 8
|
||||
#define HE_SIG_B1_MU_INFO_RESERVED_0_MSB 30
|
||||
#define HE_SIG_B1_MU_INFO_RESERVED_0_MASK 0x7fffff00
|
||||
|
||||
|
||||
/* Description RX_INTEGRITY_CHECK_PASSED
|
||||
|
||||
TX side: Set to 0
|
||||
RX side: Set to 1 if PHY determines the CRC check of the
|
||||
codeblock containing the HE-SIG-B common info has passed,
|
||||
else set to 0
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_B1_MU_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x00000000
|
||||
#define HE_SIG_B1_MU_INFO_RX_INTEGRITY_CHECK_PASSED_LSB 31
|
||||
#define HE_SIG_B1_MU_INFO_RX_INTEGRITY_CHECK_PASSED_MSB 31
|
||||
#define HE_SIG_B1_MU_INFO_RX_INTEGRITY_CHECK_PASSED_MASK 0x80000000
|
||||
|
||||
|
||||
|
||||
#endif // HE_SIG_B1_MU_INFO
|
||||
223
drivers/staging/fw-api/hw/qca5332/he_sig_b2_mu_info.h
Normal file
223
drivers/staging/fw-api/hw/qca5332/he_sig_b2_mu_info.h
Normal file
|
|
@ -0,0 +1,223 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _HE_SIG_B2_MU_INFO_H_
|
||||
#define _HE_SIG_B2_MU_INFO_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#define NUM_OF_DWORDS_HE_SIG_B2_MU_INFO 2
|
||||
|
||||
|
||||
struct he_sig_b2_mu_info {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
uint32_t sta_id : 11, // [10:0]
|
||||
sta_spatial_config : 4, // [14:11]
|
||||
sta_mcs : 4, // [18:15]
|
||||
reserved_set_to_1 : 1, // [19:19]
|
||||
sta_coding : 1, // [20:20]
|
||||
reserved_0a : 7, // [27:21]
|
||||
nsts : 3, // [30:28]
|
||||
rx_integrity_check_passed : 1; // [31:31]
|
||||
uint32_t user_order : 8, // [7:0]
|
||||
cc_mask : 8, // [15:8]
|
||||
reserved_1a : 16; // [31:16]
|
||||
#else
|
||||
uint32_t rx_integrity_check_passed : 1, // [31:31]
|
||||
nsts : 3, // [30:28]
|
||||
reserved_0a : 7, // [27:21]
|
||||
sta_coding : 1, // [20:20]
|
||||
reserved_set_to_1 : 1, // [19:19]
|
||||
sta_mcs : 4, // [18:15]
|
||||
sta_spatial_config : 4, // [14:11]
|
||||
sta_id : 11; // [10:0]
|
||||
uint32_t reserved_1a : 16, // [31:16]
|
||||
cc_mask : 8, // [15:8]
|
||||
user_order : 8; // [7:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description STA_ID
|
||||
|
||||
Identifies the STA that is addressed. Details of STA ID
|
||||
are TBD
|
||||
*/
|
||||
|
||||
#define HE_SIG_B2_MU_INFO_STA_ID_OFFSET 0x00000000
|
||||
#define HE_SIG_B2_MU_INFO_STA_ID_LSB 0
|
||||
#define HE_SIG_B2_MU_INFO_STA_ID_MSB 10
|
||||
#define HE_SIG_B2_MU_INFO_STA_ID_MASK 0x000007ff
|
||||
|
||||
|
||||
/* Description STA_SPATIAL_CONFIG
|
||||
|
||||
Number of assigned spatial streams and their corresponding
|
||||
index.
|
||||
Total number of spatial streams assigned for the MU-MIMO
|
||||
allocation is also signaled.
|
||||
*/
|
||||
|
||||
#define HE_SIG_B2_MU_INFO_STA_SPATIAL_CONFIG_OFFSET 0x00000000
|
||||
#define HE_SIG_B2_MU_INFO_STA_SPATIAL_CONFIG_LSB 11
|
||||
#define HE_SIG_B2_MU_INFO_STA_SPATIAL_CONFIG_MSB 14
|
||||
#define HE_SIG_B2_MU_INFO_STA_SPATIAL_CONFIG_MASK 0x00007800
|
||||
|
||||
|
||||
/* Description STA_MCS
|
||||
|
||||
Indicates the data MCS
|
||||
*/
|
||||
|
||||
#define HE_SIG_B2_MU_INFO_STA_MCS_OFFSET 0x00000000
|
||||
#define HE_SIG_B2_MU_INFO_STA_MCS_LSB 15
|
||||
#define HE_SIG_B2_MU_INFO_STA_MCS_MSB 18
|
||||
#define HE_SIG_B2_MU_INFO_STA_MCS_MASK 0x00078000
|
||||
|
||||
|
||||
/* Description RESERVED_SET_TO_1
|
||||
|
||||
<legal 1>
|
||||
*/
|
||||
|
||||
#define HE_SIG_B2_MU_INFO_RESERVED_SET_TO_1_OFFSET 0x00000000
|
||||
#define HE_SIG_B2_MU_INFO_RESERVED_SET_TO_1_LSB 19
|
||||
#define HE_SIG_B2_MU_INFO_RESERVED_SET_TO_1_MSB 19
|
||||
#define HE_SIG_B2_MU_INFO_RESERVED_SET_TO_1_MASK 0x00080000
|
||||
|
||||
|
||||
/* Description STA_CODING
|
||||
|
||||
Distinguishes between BCC/LDPC
|
||||
|
||||
0: BCC
|
||||
1: LDPC
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_B2_MU_INFO_STA_CODING_OFFSET 0x00000000
|
||||
#define HE_SIG_B2_MU_INFO_STA_CODING_LSB 20
|
||||
#define HE_SIG_B2_MU_INFO_STA_CODING_MSB 20
|
||||
#define HE_SIG_B2_MU_INFO_STA_CODING_MASK 0x00100000
|
||||
|
||||
|
||||
/* Description RESERVED_0A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define HE_SIG_B2_MU_INFO_RESERVED_0A_OFFSET 0x00000000
|
||||
#define HE_SIG_B2_MU_INFO_RESERVED_0A_LSB 21
|
||||
#define HE_SIG_B2_MU_INFO_RESERVED_0A_MSB 27
|
||||
#define HE_SIG_B2_MU_INFO_RESERVED_0A_MASK 0x0fe00000
|
||||
|
||||
|
||||
/* Description NSTS
|
||||
|
||||
MAC RX side usage only:
|
||||
Needed by RXPCU. Provided by PHY so that RXPCU does not
|
||||
need to have the RU number decoding logic.
|
||||
|
||||
Number of spatial streams for this user
|
||||
|
||||
<enum 0 1_spatial_stream>Single spatial stream
|
||||
<enum 1 2_spatial_streams>2 spatial streams
|
||||
<enum 2 3_spatial_streams>3 spatial streams
|
||||
<enum 3 4_spatial_streams>4 spatial streams
|
||||
<enum 4 5_spatial_streams>5 spatial streams
|
||||
<enum 5 6_spatial_streams>6 spatial streams
|
||||
<enum 6 7_spatial_streams>7 spatial streams
|
||||
<enum 7 8_spatial_streams>8 spatial streams
|
||||
*/
|
||||
|
||||
#define HE_SIG_B2_MU_INFO_NSTS_OFFSET 0x00000000
|
||||
#define HE_SIG_B2_MU_INFO_NSTS_LSB 28
|
||||
#define HE_SIG_B2_MU_INFO_NSTS_MSB 30
|
||||
#define HE_SIG_B2_MU_INFO_NSTS_MASK 0x70000000
|
||||
|
||||
|
||||
/* Description RX_INTEGRITY_CHECK_PASSED
|
||||
|
||||
TX side: Set to 0
|
||||
RX side: Set to 1 if PHY determines the CRC check of the
|
||||
codeblock containing this HE-SIG-B user info has passed,
|
||||
else set to 0
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_B2_MU_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x00000000
|
||||
#define HE_SIG_B2_MU_INFO_RX_INTEGRITY_CHECK_PASSED_LSB 31
|
||||
#define HE_SIG_B2_MU_INFO_RX_INTEGRITY_CHECK_PASSED_MSB 31
|
||||
#define HE_SIG_B2_MU_INFO_RX_INTEGRITY_CHECK_PASSED_MASK 0x80000000
|
||||
|
||||
|
||||
/* Description USER_ORDER
|
||||
|
||||
RX side: Set to 0
|
||||
TX side: Ordering index of the User field
|
||||
Gaps between the ordering indices of User fields indicate
|
||||
that the microcode shall generate "unallocated RU" User
|
||||
fields (STAID=2046) to fill the gaps.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_B2_MU_INFO_USER_ORDER_OFFSET 0x00000004
|
||||
#define HE_SIG_B2_MU_INFO_USER_ORDER_LSB 0
|
||||
#define HE_SIG_B2_MU_INFO_USER_ORDER_MSB 7
|
||||
#define HE_SIG_B2_MU_INFO_USER_ORDER_MASK 0x000000ff
|
||||
|
||||
|
||||
/* Description CC_MASK
|
||||
|
||||
RX side: Set to 0
|
||||
TX side: Indicates what content channel this User field
|
||||
can go to
|
||||
Bit 0: content channel 0
|
||||
Bit 1: content channel 1
|
||||
The other bits are unused, but could repeat the above pattern
|
||||
for compatibility with 'EHT_SIG_USR_MU_MIMO_INFO.'
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_B2_MU_INFO_CC_MASK_OFFSET 0x00000004
|
||||
#define HE_SIG_B2_MU_INFO_CC_MASK_LSB 8
|
||||
#define HE_SIG_B2_MU_INFO_CC_MASK_MSB 15
|
||||
#define HE_SIG_B2_MU_INFO_CC_MASK_MASK 0x0000ff00
|
||||
|
||||
|
||||
/* Description RESERVED_1A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define HE_SIG_B2_MU_INFO_RESERVED_1A_OFFSET 0x00000004
|
||||
#define HE_SIG_B2_MU_INFO_RESERVED_1A_LSB 16
|
||||
#define HE_SIG_B2_MU_INFO_RESERVED_1A_MSB 31
|
||||
#define HE_SIG_B2_MU_INFO_RESERVED_1A_MASK 0xffff0000
|
||||
|
||||
|
||||
|
||||
#endif // HE_SIG_B2_MU_INFO
|
||||
225
drivers/staging/fw-api/hw/qca5332/he_sig_b2_ofdma_info.h
Normal file
225
drivers/staging/fw-api/hw/qca5332/he_sig_b2_ofdma_info.h
Normal file
|
|
@ -0,0 +1,225 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _HE_SIG_B2_OFDMA_INFO_H_
|
||||
#define _HE_SIG_B2_OFDMA_INFO_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#define NUM_OF_DWORDS_HE_SIG_B2_OFDMA_INFO 2
|
||||
|
||||
|
||||
struct he_sig_b2_ofdma_info {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
uint32_t sta_id : 11, // [10:0]
|
||||
nsts : 3, // [13:11]
|
||||
txbf : 1, // [14:14]
|
||||
sta_mcs : 4, // [18:15]
|
||||
sta_dcm : 1, // [19:19]
|
||||
sta_coding : 1, // [20:20]
|
||||
reserved_0 : 10, // [30:21]
|
||||
rx_integrity_check_passed : 1; // [31:31]
|
||||
uint32_t user_order : 8, // [7:0]
|
||||
cc_mask : 8, // [15:8]
|
||||
reserved_1a : 16; // [31:16]
|
||||
#else
|
||||
uint32_t rx_integrity_check_passed : 1, // [31:31]
|
||||
reserved_0 : 10, // [30:21]
|
||||
sta_coding : 1, // [20:20]
|
||||
sta_dcm : 1, // [19:19]
|
||||
sta_mcs : 4, // [18:15]
|
||||
txbf : 1, // [14:14]
|
||||
nsts : 3, // [13:11]
|
||||
sta_id : 11; // [10:0]
|
||||
uint32_t reserved_1a : 16, // [31:16]
|
||||
cc_mask : 8, // [15:8]
|
||||
user_order : 8; // [7:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description STA_ID
|
||||
|
||||
Identifies the STA that is addressed. Details of STA ID
|
||||
are TBD
|
||||
*/
|
||||
|
||||
#define HE_SIG_B2_OFDMA_INFO_STA_ID_OFFSET 0x00000000
|
||||
#define HE_SIG_B2_OFDMA_INFO_STA_ID_LSB 0
|
||||
#define HE_SIG_B2_OFDMA_INFO_STA_ID_MSB 10
|
||||
#define HE_SIG_B2_OFDMA_INFO_STA_ID_MASK 0x000007ff
|
||||
|
||||
|
||||
/* Description NSTS
|
||||
|
||||
MAC RX side usage only:
|
||||
|
||||
Number of spatial streams for this user
|
||||
|
||||
<enum 0 1_spatial_stream>Single spatial stream
|
||||
<enum 1 2_spatial_streams>2 spatial streams
|
||||
<enum 2 3_spatial_streams>3 spatial streams
|
||||
<enum 3 4_spatial_streams>4 spatial streams
|
||||
<enum 4 5_spatial_streams>5 spatial streams
|
||||
<enum 5 6_spatial_streams>6 spatial streams
|
||||
<enum 6 7_spatial_streams>7 spatial streams
|
||||
<enum 7 8_spatial_streams>8 spatial streams
|
||||
*/
|
||||
|
||||
#define HE_SIG_B2_OFDMA_INFO_NSTS_OFFSET 0x00000000
|
||||
#define HE_SIG_B2_OFDMA_INFO_NSTS_LSB 11
|
||||
#define HE_SIG_B2_OFDMA_INFO_NSTS_MSB 13
|
||||
#define HE_SIG_B2_OFDMA_INFO_NSTS_MASK 0x00003800
|
||||
|
||||
|
||||
/* Description TXBF
|
||||
|
||||
Indicates whether beamforming is applied
|
||||
0: No beamforming
|
||||
1: beamforming
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_B2_OFDMA_INFO_TXBF_OFFSET 0x00000000
|
||||
#define HE_SIG_B2_OFDMA_INFO_TXBF_LSB 14
|
||||
#define HE_SIG_B2_OFDMA_INFO_TXBF_MSB 14
|
||||
#define HE_SIG_B2_OFDMA_INFO_TXBF_MASK 0x00004000
|
||||
|
||||
|
||||
/* Description STA_MCS
|
||||
|
||||
Indicates the data MCS
|
||||
*/
|
||||
|
||||
#define HE_SIG_B2_OFDMA_INFO_STA_MCS_OFFSET 0x00000000
|
||||
#define HE_SIG_B2_OFDMA_INFO_STA_MCS_LSB 15
|
||||
#define HE_SIG_B2_OFDMA_INFO_STA_MCS_MSB 18
|
||||
#define HE_SIG_B2_OFDMA_INFO_STA_MCS_MASK 0x00078000
|
||||
|
||||
|
||||
/* Description STA_DCM
|
||||
|
||||
Indicates whether dual sub-carrier modulation is applied
|
||||
|
||||
0: No DCM
|
||||
1:DCM
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_B2_OFDMA_INFO_STA_DCM_OFFSET 0x00000000
|
||||
#define HE_SIG_B2_OFDMA_INFO_STA_DCM_LSB 19
|
||||
#define HE_SIG_B2_OFDMA_INFO_STA_DCM_MSB 19
|
||||
#define HE_SIG_B2_OFDMA_INFO_STA_DCM_MASK 0x00080000
|
||||
|
||||
|
||||
/* Description STA_CODING
|
||||
|
||||
Distinguishes between BCC/LDPC
|
||||
|
||||
0: BCC
|
||||
1: LDPC
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_B2_OFDMA_INFO_STA_CODING_OFFSET 0x00000000
|
||||
#define HE_SIG_B2_OFDMA_INFO_STA_CODING_LSB 20
|
||||
#define HE_SIG_B2_OFDMA_INFO_STA_CODING_MSB 20
|
||||
#define HE_SIG_B2_OFDMA_INFO_STA_CODING_MASK 0x00100000
|
||||
|
||||
|
||||
/* Description RESERVED_0
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define HE_SIG_B2_OFDMA_INFO_RESERVED_0_OFFSET 0x00000000
|
||||
#define HE_SIG_B2_OFDMA_INFO_RESERVED_0_LSB 21
|
||||
#define HE_SIG_B2_OFDMA_INFO_RESERVED_0_MSB 30
|
||||
#define HE_SIG_B2_OFDMA_INFO_RESERVED_0_MASK 0x7fe00000
|
||||
|
||||
|
||||
/* Description RX_INTEGRITY_CHECK_PASSED
|
||||
|
||||
TX side: Set to 0
|
||||
RX side: Set to 1 if PHY determines the CRC check of the
|
||||
codeblock containing this HE-SIG-B user info has passed,
|
||||
else set to 0
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_B2_OFDMA_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x00000000
|
||||
#define HE_SIG_B2_OFDMA_INFO_RX_INTEGRITY_CHECK_PASSED_LSB 31
|
||||
#define HE_SIG_B2_OFDMA_INFO_RX_INTEGRITY_CHECK_PASSED_MSB 31
|
||||
#define HE_SIG_B2_OFDMA_INFO_RX_INTEGRITY_CHECK_PASSED_MASK 0x80000000
|
||||
|
||||
|
||||
/* Description USER_ORDER
|
||||
|
||||
RX side: Set to 0
|
||||
TX side: Ordering index of the User field
|
||||
Gaps between the ordering indices of User fields indicate
|
||||
that the microcode shall generate "unallocated RU" User
|
||||
fields (STAID=2046) to fill the gaps.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_B2_OFDMA_INFO_USER_ORDER_OFFSET 0x00000004
|
||||
#define HE_SIG_B2_OFDMA_INFO_USER_ORDER_LSB 0
|
||||
#define HE_SIG_B2_OFDMA_INFO_USER_ORDER_MSB 7
|
||||
#define HE_SIG_B2_OFDMA_INFO_USER_ORDER_MASK 0x000000ff
|
||||
|
||||
|
||||
/* Description CC_MASK
|
||||
|
||||
RX side: Set to 0
|
||||
TX side: Indicates what content channel this User field
|
||||
can go to
|
||||
Bit 0: content channel 0
|
||||
Bit 1: content channel 1
|
||||
The other bits are unused, but could repeat the above pattern
|
||||
for compatibility with 'EHT_SIG_USR_OFDMA_INFO.'
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HE_SIG_B2_OFDMA_INFO_CC_MASK_OFFSET 0x00000004
|
||||
#define HE_SIG_B2_OFDMA_INFO_CC_MASK_LSB 8
|
||||
#define HE_SIG_B2_OFDMA_INFO_CC_MASK_MSB 15
|
||||
#define HE_SIG_B2_OFDMA_INFO_CC_MASK_MASK 0x0000ff00
|
||||
|
||||
|
||||
/* Description RESERVED_1A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define HE_SIG_B2_OFDMA_INFO_RESERVED_1A_OFFSET 0x00000004
|
||||
#define HE_SIG_B2_OFDMA_INFO_RESERVED_1A_LSB 16
|
||||
#define HE_SIG_B2_OFDMA_INFO_RESERVED_1A_MSB 31
|
||||
#define HE_SIG_B2_OFDMA_INFO_RESERVED_1A_MASK 0xffff0000
|
||||
|
||||
|
||||
|
||||
#endif // HE_SIG_B2_OFDMA_INFO
|
||||
301
drivers/staging/fw-api/hw/qca5332/ht_sig_info.h
Normal file
301
drivers/staging/fw-api/hw/qca5332/ht_sig_info.h
Normal file
|
|
@ -0,0 +1,301 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _HT_SIG_INFO_H_
|
||||
#define _HT_SIG_INFO_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#define NUM_OF_DWORDS_HT_SIG_INFO 2
|
||||
|
||||
|
||||
struct ht_sig_info {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
uint32_t mcs : 7, // [6:0]
|
||||
cbw : 1, // [7:7]
|
||||
length : 16, // [23:8]
|
||||
reserved_0 : 8; // [31:24]
|
||||
uint32_t smoothing : 1, // [0:0]
|
||||
not_sounding : 1, // [1:1]
|
||||
ht_reserved : 1, // [2:2]
|
||||
aggregation : 1, // [3:3]
|
||||
stbc : 2, // [5:4]
|
||||
fec_coding : 1, // [6:6]
|
||||
short_gi : 1, // [7:7]
|
||||
num_ext_sp_str : 2, // [9:8]
|
||||
crc : 8, // [17:10]
|
||||
signal_tail : 6, // [23:18]
|
||||
reserved_1 : 7, // [30:24]
|
||||
rx_integrity_check_passed : 1; // [31:31]
|
||||
#else
|
||||
uint32_t reserved_0 : 8, // [31:24]
|
||||
length : 16, // [23:8]
|
||||
cbw : 1, // [7:7]
|
||||
mcs : 7; // [6:0]
|
||||
uint32_t rx_integrity_check_passed : 1, // [31:31]
|
||||
reserved_1 : 7, // [30:24]
|
||||
signal_tail : 6, // [23:18]
|
||||
crc : 8, // [17:10]
|
||||
num_ext_sp_str : 2, // [9:8]
|
||||
short_gi : 1, // [7:7]
|
||||
fec_coding : 1, // [6:6]
|
||||
stbc : 2, // [5:4]
|
||||
aggregation : 1, // [3:3]
|
||||
ht_reserved : 1, // [2:2]
|
||||
not_sounding : 1, // [1:1]
|
||||
smoothing : 1; // [0:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description MCS
|
||||
|
||||
Modulation Coding Scheme:
|
||||
0-7 are used for single stream
|
||||
8-15 are used for 2 streams
|
||||
16-23 are used for 3 streams
|
||||
24-31 are used for 4 streams
|
||||
32 is used for duplicate HT20 (unsupported)
|
||||
33-76 is used for unequal modulation (unsupported)
|
||||
77-127 is reserved.
|
||||
<legal 0-31>
|
||||
*/
|
||||
|
||||
#define HT_SIG_INFO_MCS_OFFSET 0x00000000
|
||||
#define HT_SIG_INFO_MCS_LSB 0
|
||||
#define HT_SIG_INFO_MCS_MSB 6
|
||||
#define HT_SIG_INFO_MCS_MASK 0x0000007f
|
||||
|
||||
|
||||
/* Description CBW
|
||||
|
||||
Packet bandwidth:
|
||||
<enum 0 ht_20_mhz>
|
||||
<enum 1 ht_40_mhz>
|
||||
<legal 0-1>
|
||||
*/
|
||||
|
||||
#define HT_SIG_INFO_CBW_OFFSET 0x00000000
|
||||
#define HT_SIG_INFO_CBW_LSB 7
|
||||
#define HT_SIG_INFO_CBW_MSB 7
|
||||
#define HT_SIG_INFO_CBW_MASK 0x00000080
|
||||
|
||||
|
||||
/* Description LENGTH
|
||||
|
||||
This is the MPDU or A-MPDU length in octets of the PPDU
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HT_SIG_INFO_LENGTH_OFFSET 0x00000000
|
||||
#define HT_SIG_INFO_LENGTH_LSB 8
|
||||
#define HT_SIG_INFO_LENGTH_MSB 23
|
||||
#define HT_SIG_INFO_LENGTH_MASK 0x00ffff00
|
||||
|
||||
|
||||
/* Description RESERVED_0
|
||||
|
||||
This field is not part of HT-SIG
|
||||
Reserved: Should be set to 0 by the MAC and ignored by the
|
||||
PHY <legal 0>
|
||||
*/
|
||||
|
||||
#define HT_SIG_INFO_RESERVED_0_OFFSET 0x00000000
|
||||
#define HT_SIG_INFO_RESERVED_0_LSB 24
|
||||
#define HT_SIG_INFO_RESERVED_0_MSB 31
|
||||
#define HT_SIG_INFO_RESERVED_0_MASK 0xff000000
|
||||
|
||||
|
||||
/* Description SMOOTHING
|
||||
|
||||
Field indicates if smoothing is needed
|
||||
E_num 0 do_smoothing Unsupported setting: indicates
|
||||
smoothing is often used for beamforming
|
||||
<enum 1 no_smoothing> Indicates no smoothing is used
|
||||
|
||||
<legal 1>
|
||||
*/
|
||||
|
||||
#define HT_SIG_INFO_SMOOTHING_OFFSET 0x00000004
|
||||
#define HT_SIG_INFO_SMOOTHING_LSB 0
|
||||
#define HT_SIG_INFO_SMOOTHING_MSB 0
|
||||
#define HT_SIG_INFO_SMOOTHING_MASK 0x00000001
|
||||
|
||||
|
||||
/* Description NOT_SOUNDING
|
||||
|
||||
E_num 0 sounding Unsupported setting: indicates sounding
|
||||
is used
|
||||
<enum 1 no_sounding> Indicates no sounding is used
|
||||
<legal 1>
|
||||
*/
|
||||
|
||||
#define HT_SIG_INFO_NOT_SOUNDING_OFFSET 0x00000004
|
||||
#define HT_SIG_INFO_NOT_SOUNDING_LSB 1
|
||||
#define HT_SIG_INFO_NOT_SOUNDING_MSB 1
|
||||
#define HT_SIG_INFO_NOT_SOUNDING_MASK 0x00000002
|
||||
|
||||
|
||||
/* Description HT_RESERVED
|
||||
|
||||
Reserved: Should be set to 1 by the MAC and ignored by the
|
||||
PHY
|
||||
<legal 1>
|
||||
*/
|
||||
|
||||
#define HT_SIG_INFO_HT_RESERVED_OFFSET 0x00000004
|
||||
#define HT_SIG_INFO_HT_RESERVED_LSB 2
|
||||
#define HT_SIG_INFO_HT_RESERVED_MSB 2
|
||||
#define HT_SIG_INFO_HT_RESERVED_MASK 0x00000004
|
||||
|
||||
|
||||
/* Description AGGREGATION
|
||||
|
||||
<enum 0 mpdu> Indicates MPDU format
|
||||
<enum 1 a_mpdu> Indicates A-MPDU format
|
||||
<legal 0-1>
|
||||
*/
|
||||
|
||||
#define HT_SIG_INFO_AGGREGATION_OFFSET 0x00000004
|
||||
#define HT_SIG_INFO_AGGREGATION_LSB 3
|
||||
#define HT_SIG_INFO_AGGREGATION_MSB 3
|
||||
#define HT_SIG_INFO_AGGREGATION_MASK 0x00000008
|
||||
|
||||
|
||||
/* Description STBC
|
||||
|
||||
<enum 0 no_stbc> Indicates no STBC
|
||||
<enum 1 1_str_stbc> Indicates 1 stream STBC
|
||||
E_num 2 2_str_stbc Indicates 2 stream STBC (Unsupported)
|
||||
|
||||
<legal 0-1>
|
||||
*/
|
||||
|
||||
#define HT_SIG_INFO_STBC_OFFSET 0x00000004
|
||||
#define HT_SIG_INFO_STBC_LSB 4
|
||||
#define HT_SIG_INFO_STBC_MSB 5
|
||||
#define HT_SIG_INFO_STBC_MASK 0x00000030
|
||||
|
||||
|
||||
/* Description FEC_CODING
|
||||
|
||||
<enum 0 ht_bcc> Indicates BCC coding
|
||||
<enum 1 ht_ldpc> Indicates LDPC coding
|
||||
<legal 0-1>
|
||||
*/
|
||||
|
||||
#define HT_SIG_INFO_FEC_CODING_OFFSET 0x00000004
|
||||
#define HT_SIG_INFO_FEC_CODING_LSB 6
|
||||
#define HT_SIG_INFO_FEC_CODING_MSB 6
|
||||
#define HT_SIG_INFO_FEC_CODING_MASK 0x00000040
|
||||
|
||||
|
||||
/* Description SHORT_GI
|
||||
|
||||
<enum 0 ht_normal_gi> Indicates normal guard interval
|
||||
|
||||
<enum 1 ht_short_gi> Indicates short guard interval
|
||||
|
||||
<legal 0-1>
|
||||
*/
|
||||
|
||||
#define HT_SIG_INFO_SHORT_GI_OFFSET 0x00000004
|
||||
#define HT_SIG_INFO_SHORT_GI_LSB 7
|
||||
#define HT_SIG_INFO_SHORT_GI_MSB 7
|
||||
#define HT_SIG_INFO_SHORT_GI_MASK 0x00000080
|
||||
|
||||
|
||||
/* Description NUM_EXT_SP_STR
|
||||
|
||||
Number of extension spatial streams: (Used for TxBF)
|
||||
<enum 0 0_ext_sp_str> No extension spatial streams
|
||||
E_num 1 1_ext_sp_str Not supported: 1 extension spatial
|
||||
streams
|
||||
E_num 2 2_ext_sp_str Not supported: 2 extension spatial
|
||||
streams
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define HT_SIG_INFO_NUM_EXT_SP_STR_OFFSET 0x00000004
|
||||
#define HT_SIG_INFO_NUM_EXT_SP_STR_LSB 8
|
||||
#define HT_SIG_INFO_NUM_EXT_SP_STR_MSB 9
|
||||
#define HT_SIG_INFO_NUM_EXT_SP_STR_MASK 0x00000300
|
||||
|
||||
|
||||
/* Description CRC
|
||||
|
||||
The CRC protects the HT-SIG (HT-SIG[0][23:0] and HT-SIG[1][9:0].
|
||||
The generator polynomial is G(D) = D8 + D2 + D + 1. <legal
|
||||
all>
|
||||
*/
|
||||
|
||||
#define HT_SIG_INFO_CRC_OFFSET 0x00000004
|
||||
#define HT_SIG_INFO_CRC_LSB 10
|
||||
#define HT_SIG_INFO_CRC_MSB 17
|
||||
#define HT_SIG_INFO_CRC_MASK 0x0003fc00
|
||||
|
||||
|
||||
/* Description SIGNAL_TAIL
|
||||
|
||||
The 6 bits of tail is always set to 0 is used to flush the
|
||||
BCC encoder and decoder. <legal 0>
|
||||
*/
|
||||
|
||||
#define HT_SIG_INFO_SIGNAL_TAIL_OFFSET 0x00000004
|
||||
#define HT_SIG_INFO_SIGNAL_TAIL_LSB 18
|
||||
#define HT_SIG_INFO_SIGNAL_TAIL_MSB 23
|
||||
#define HT_SIG_INFO_SIGNAL_TAIL_MASK 0x00fc0000
|
||||
|
||||
|
||||
/* Description RESERVED_1
|
||||
|
||||
This field is not part of HT-SIG:
|
||||
Reserved: Should be set to 0 by the MAC and ignored by the
|
||||
PHY. <legal 0>
|
||||
*/
|
||||
|
||||
#define HT_SIG_INFO_RESERVED_1_OFFSET 0x00000004
|
||||
#define HT_SIG_INFO_RESERVED_1_LSB 24
|
||||
#define HT_SIG_INFO_RESERVED_1_MSB 30
|
||||
#define HT_SIG_INFO_RESERVED_1_MASK 0x7f000000
|
||||
|
||||
|
||||
/* Description RX_INTEGRITY_CHECK_PASSED
|
||||
|
||||
TX side: Set to 0
|
||||
RX side: Set to 1 if PHY determines the HT-SIG CRC check
|
||||
has passed, else set to 0
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define HT_SIG_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x00000004
|
||||
#define HT_SIG_INFO_RX_INTEGRITY_CHECK_PASSED_LSB 31
|
||||
#define HT_SIG_INFO_RX_INTEGRITY_CHECK_PASSED_MSB 31
|
||||
#define HT_SIG_INFO_RX_INTEGRITY_CHECK_PASSED_MASK 0x80000000
|
||||
|
||||
|
||||
|
||||
#endif // HT_SIG_INFO
|
||||
209
drivers/staging/fw-api/hw/qca5332/l_sig_a_info.h
Normal file
209
drivers/staging/fw-api/hw/qca5332/l_sig_a_info.h
Normal file
|
|
@ -0,0 +1,209 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _L_SIG_A_INFO_H_
|
||||
#define _L_SIG_A_INFO_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#define NUM_OF_DWORDS_L_SIG_A_INFO 1
|
||||
|
||||
|
||||
struct l_sig_a_info {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
uint32_t rate : 4, // [3:0]
|
||||
lsig_reserved : 1, // [4:4]
|
||||
length : 12, // [16:5]
|
||||
parity : 1, // [17:17]
|
||||
tail : 6, // [23:18]
|
||||
pkt_type : 4, // [27:24]
|
||||
captured_implicit_sounding : 1, // [28:28]
|
||||
reserved : 2, // [30:29]
|
||||
rx_integrity_check_passed : 1; // [31:31]
|
||||
#else
|
||||
uint32_t rx_integrity_check_passed : 1, // [31:31]
|
||||
reserved : 2, // [30:29]
|
||||
captured_implicit_sounding : 1, // [28:28]
|
||||
pkt_type : 4, // [27:24]
|
||||
tail : 6, // [23:18]
|
||||
parity : 1, // [17:17]
|
||||
length : 12, // [16:5]
|
||||
lsig_reserved : 1, // [4:4]
|
||||
rate : 4; // [3:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description RATE
|
||||
|
||||
This format is originally defined for OFDM as a 4 bit field
|
||||
but the 5th bit was added to indicate 11b formatted frames.
|
||||
In the standard bit [4] is specified as reserved. For
|
||||
11b frames this L-SIG is transformed in the PHY into the
|
||||
11b preamble format. The following are the rates:
|
||||
<enum 8 ofdm_48_mbps> 64-QAM 2/3 (48 Mbps)
|
||||
<enum 9 ofdm_24_mbps> 16-QAM 1/2 (24 Mbps)
|
||||
<enum 10 ofdm_12_mbps> QPSK 1/2 (12 Mbps)
|
||||
<enum 11 ofdm_6_mbps> BPSK 1/2 (6 Mbps)
|
||||
<enum 12 ofdm_54_mbps> 64-QAM 3/4 (54 Mbps)
|
||||
<enum 13 ofdm_36_mbps> 16-QAM 3/4 (36 Mbps)
|
||||
<enum 14 ofdm_18_mbps> QPSK 1/2 (18 Mbps)
|
||||
<enum 15 ofdm_9_mbps> BPSK 3/4 (9 Mbps)
|
||||
<legal 8-15>
|
||||
*/
|
||||
|
||||
#define L_SIG_A_INFO_RATE_OFFSET 0x00000000
|
||||
#define L_SIG_A_INFO_RATE_LSB 0
|
||||
#define L_SIG_A_INFO_RATE_MSB 3
|
||||
#define L_SIG_A_INFO_RATE_MASK 0x0000000f
|
||||
|
||||
|
||||
/* Description LSIG_RESERVED
|
||||
|
||||
Reserved: Should be set to 0 by the MAC and ignored by the
|
||||
PHY
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define L_SIG_A_INFO_LSIG_RESERVED_OFFSET 0x00000000
|
||||
#define L_SIG_A_INFO_LSIG_RESERVED_LSB 4
|
||||
#define L_SIG_A_INFO_LSIG_RESERVED_MSB 4
|
||||
#define L_SIG_A_INFO_LSIG_RESERVED_MASK 0x00000010
|
||||
|
||||
|
||||
/* Description LENGTH
|
||||
|
||||
The length indicates the number of octets in this MPDU.
|
||||
Note that when using mixed mode .11n preamble or .11ac/.11ax/.11ba/.11be
|
||||
this length provides the spoofed length for the PPDU.
|
||||
This length provides part of the information (viz. PPDU
|
||||
duration) to derive the actually PSDU length. For legacy
|
||||
OFDM and 11B frames the maximum length is 4095.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define L_SIG_A_INFO_LENGTH_OFFSET 0x00000000
|
||||
#define L_SIG_A_INFO_LENGTH_LSB 5
|
||||
#define L_SIG_A_INFO_LENGTH_MSB 16
|
||||
#define L_SIG_A_INFO_LENGTH_MASK 0x0001ffe0
|
||||
|
||||
|
||||
/* Description PARITY
|
||||
|
||||
11a/n/ac TX: This field provides even parity over the first
|
||||
18 bits of the signal field which means that the sum of
|
||||
1s in the signal field will always be even on transmission.
|
||||
The value of the field is computed by the MAC.
|
||||
11a/n/ac RX: this field contains the received parity field
|
||||
from the L-SIG symbol for the current packet.
|
||||
<legal 0-1>
|
||||
*/
|
||||
|
||||
#define L_SIG_A_INFO_PARITY_OFFSET 0x00000000
|
||||
#define L_SIG_A_INFO_PARITY_LSB 17
|
||||
#define L_SIG_A_INFO_PARITY_MSB 17
|
||||
#define L_SIG_A_INFO_PARITY_MASK 0x00020000
|
||||
|
||||
|
||||
/* Description TAIL
|
||||
|
||||
The 6 bits of tail is always set to 0 is used to flush the
|
||||
BCC encoder and decoder. <legal 0>
|
||||
*/
|
||||
|
||||
#define L_SIG_A_INFO_TAIL_OFFSET 0x00000000
|
||||
#define L_SIG_A_INFO_TAIL_LSB 18
|
||||
#define L_SIG_A_INFO_TAIL_MSB 23
|
||||
#define L_SIG_A_INFO_TAIL_MASK 0x00fc0000
|
||||
|
||||
|
||||
/* Description PKT_TYPE
|
||||
|
||||
Only used on the RX side.
|
||||
Note: This is not really part of L-SIG
|
||||
|
||||
Packet type:
|
||||
<enum 0 dot11a>802.11a PPDU type
|
||||
<enum 1 dot11b>802.11b PPDU type
|
||||
<enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
|
||||
<enum 3 dot11ac>802.11ac PPDU type
|
||||
<enum 4 dot11ax>802.11ax PPDU type
|
||||
<enum 5 dot11ba>802.11ba (WUR) PPDU type
|
||||
<enum 6 dot11be>802.11be PPDU type
|
||||
<enum 7 dot11az>802.11az (ranging) PPDU type
|
||||
<enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported
|
||||
& aborted)
|
||||
*/
|
||||
|
||||
#define L_SIG_A_INFO_PKT_TYPE_OFFSET 0x00000000
|
||||
#define L_SIG_A_INFO_PKT_TYPE_LSB 24
|
||||
#define L_SIG_A_INFO_PKT_TYPE_MSB 27
|
||||
#define L_SIG_A_INFO_PKT_TYPE_MASK 0x0f000000
|
||||
|
||||
|
||||
/* Description CAPTURED_IMPLICIT_SOUNDING
|
||||
|
||||
Only used on the RX side.
|
||||
Note: This is not really part of L-SIG
|
||||
|
||||
This indicates that the PHY has captured implicit sounding.
|
||||
|
||||
*/
|
||||
|
||||
#define L_SIG_A_INFO_CAPTURED_IMPLICIT_SOUNDING_OFFSET 0x00000000
|
||||
#define L_SIG_A_INFO_CAPTURED_IMPLICIT_SOUNDING_LSB 28
|
||||
#define L_SIG_A_INFO_CAPTURED_IMPLICIT_SOUNDING_MSB 28
|
||||
#define L_SIG_A_INFO_CAPTURED_IMPLICIT_SOUNDING_MASK 0x10000000
|
||||
|
||||
|
||||
/* Description RESERVED
|
||||
|
||||
Reserved: Should be set to 0 by the transmitting MAC and
|
||||
ignored by the PHY <legal 0>
|
||||
*/
|
||||
|
||||
#define L_SIG_A_INFO_RESERVED_OFFSET 0x00000000
|
||||
#define L_SIG_A_INFO_RESERVED_LSB 29
|
||||
#define L_SIG_A_INFO_RESERVED_MSB 30
|
||||
#define L_SIG_A_INFO_RESERVED_MASK 0x60000000
|
||||
|
||||
|
||||
/* Description RX_INTEGRITY_CHECK_PASSED
|
||||
|
||||
TX side: Set to 0
|
||||
RX side: Set to 1 if PHY determines the L-SIG integrity
|
||||
check has passed, else set to 0
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define L_SIG_A_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x00000000
|
||||
#define L_SIG_A_INFO_RX_INTEGRITY_CHECK_PASSED_LSB 31
|
||||
#define L_SIG_A_INFO_RX_INTEGRITY_CHECK_PASSED_MSB 31
|
||||
#define L_SIG_A_INFO_RX_INTEGRITY_CHECK_PASSED_MASK 0x80000000
|
||||
|
||||
|
||||
|
||||
#endif // L_SIG_A_INFO
|
||||
107
drivers/staging/fw-api/hw/qca5332/l_sig_b_info.h
Normal file
107
drivers/staging/fw-api/hw/qca5332/l_sig_b_info.h
Normal file
|
|
@ -0,0 +1,107 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _L_SIG_B_INFO_H_
|
||||
#define _L_SIG_B_INFO_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#define NUM_OF_DWORDS_L_SIG_B_INFO 1
|
||||
|
||||
|
||||
struct l_sig_b_info {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
uint32_t rate : 4, // [3:0]
|
||||
length : 12, // [15:4]
|
||||
reserved : 15, // [30:16]
|
||||
rx_integrity_check_passed : 1; // [31:31]
|
||||
#else
|
||||
uint32_t rx_integrity_check_passed : 1, // [31:31]
|
||||
reserved : 15, // [30:16]
|
||||
length : 12, // [15:4]
|
||||
rate : 4; // [3:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description RATE
|
||||
|
||||
<enum 1 dsss_1_mpbs_long> DSSS 1 Mbps long
|
||||
<enum 2 dsss_2_mbps_long> DSSS 2 Mbps long
|
||||
<enum 3 cck_5_5_mbps_long> CCK 5.5 Mbps long
|
||||
<enum 4 cck_11_mbps_long> CCK 11 Mbps long
|
||||
<enum 5 dsss_2_mbps_short> DSSS 2 Mbps short
|
||||
<enum 6 cck_5_5_mbps_short> CCK 5.5 Mbps short
|
||||
<enum 7 cck_11_mbps_short> CCK 11 Mbps short
|
||||
<legal 1-7>
|
||||
*/
|
||||
|
||||
#define L_SIG_B_INFO_RATE_OFFSET 0x00000000
|
||||
#define L_SIG_B_INFO_RATE_LSB 0
|
||||
#define L_SIG_B_INFO_RATE_MSB 3
|
||||
#define L_SIG_B_INFO_RATE_MASK 0x0000000f
|
||||
|
||||
|
||||
/* Description LENGTH
|
||||
|
||||
The length indicates the number of octets in this MPDU.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define L_SIG_B_INFO_LENGTH_OFFSET 0x00000000
|
||||
#define L_SIG_B_INFO_LENGTH_LSB 4
|
||||
#define L_SIG_B_INFO_LENGTH_MSB 15
|
||||
#define L_SIG_B_INFO_LENGTH_MASK 0x0000fff0
|
||||
|
||||
|
||||
/* Description RESERVED
|
||||
|
||||
Reserved: Should be set to 0 by the transmitting MAC and
|
||||
ignored by the PHY <legal 0>
|
||||
*/
|
||||
|
||||
#define L_SIG_B_INFO_RESERVED_OFFSET 0x00000000
|
||||
#define L_SIG_B_INFO_RESERVED_LSB 16
|
||||
#define L_SIG_B_INFO_RESERVED_MSB 30
|
||||
#define L_SIG_B_INFO_RESERVED_MASK 0x7fff0000
|
||||
|
||||
|
||||
/* Description RX_INTEGRITY_CHECK_PASSED
|
||||
|
||||
TX side: Set to 0
|
||||
RX side: Set to 1 if PHY determines the .11b PHY header
|
||||
CRC check has passed, else set to 0
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define L_SIG_B_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x00000000
|
||||
#define L_SIG_B_INFO_RX_INTEGRITY_CHECK_PASSED_LSB 31
|
||||
#define L_SIG_B_INFO_RX_INTEGRITY_CHECK_PASSED_MSB 31
|
||||
#define L_SIG_B_INFO_RX_INTEGRITY_CHECK_PASSED_MASK 0x80000000
|
||||
|
||||
|
||||
|
||||
#endif // L_SIG_B_INFO
|
||||
91
drivers/staging/fw-api/hw/qca5332/macrx_abort_request_info.h
Normal file
91
drivers/staging/fw-api/hw/qca5332/macrx_abort_request_info.h
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _MACRX_ABORT_REQUEST_INFO_H_
|
||||
#define _MACRX_ABORT_REQUEST_INFO_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#define NUM_OF_WORDS_MACRX_ABORT_REQUEST_INFO 1
|
||||
|
||||
|
||||
struct macrx_abort_request_info {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
uint16_t macrx_abort_reason : 8, // [7:0]
|
||||
reserved_0 : 8; // [15:8]
|
||||
#else
|
||||
uint16_t reserved_0 : 8, // [15:8]
|
||||
macrx_abort_reason : 8; // [7:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description MACRX_ABORT_REASON
|
||||
|
||||
<enum 0 macrx_abort_sw_initiated>
|
||||
<enum 1 macrx_abort_obss_reception> Upon receiving this
|
||||
abort reason, PHY should stop reception of the current frame
|
||||
and go back into a search mode
|
||||
<enum 2 macrx_abort_other>
|
||||
<enum 3 macrx_abort_sw_initiated_channel_switch> MAC FW
|
||||
issued an abort for channel switch reasons
|
||||
<enum 4 macrx_abort_sw_initiated_power_save> MAC FW issued
|
||||
an abort power save reasons
|
||||
<enum 5 macrx_abort_too_much_bad_data> RXPCU is terminating
|
||||
the current ongoing reception, as the data that MAC is
|
||||
receiving seems to be all garbage... The PER is too high,
|
||||
or in case of MU UL, Likely the trigger frame never got
|
||||
properly received by any of the targeted MU UL devices.
|
||||
After the abort, PHYRX can resume a normal search mode.
|
||||
<enum 6 macrx_abort_ul_mu_early_abort> RXPCU is terminating
|
||||
the current ongoing UL MU reception, because at the end
|
||||
of the "early_termination_window," the required number
|
||||
of users with at least one valid MPDU delimiter was not
|
||||
reached. Likely the trigger frame never got properly received
|
||||
by the required number of targeted devices. After the abort,
|
||||
PHYRX can resume a normal search mode.
|
||||
|
||||
<legal 0-6>
|
||||
*/
|
||||
|
||||
#define MACRX_ABORT_REQUEST_INFO_MACRX_ABORT_REASON_OFFSET 0x00000000
|
||||
#define MACRX_ABORT_REQUEST_INFO_MACRX_ABORT_REASON_LSB 0
|
||||
#define MACRX_ABORT_REQUEST_INFO_MACRX_ABORT_REASON_MSB 7
|
||||
#define MACRX_ABORT_REQUEST_INFO_MACRX_ABORT_REASON_MASK 0x000000ff
|
||||
|
||||
|
||||
/* Description RESERVED_0
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACRX_ABORT_REQUEST_INFO_RESERVED_0_OFFSET 0x00000000
|
||||
#define MACRX_ABORT_REQUEST_INFO_RESERVED_0_LSB 8
|
||||
#define MACRX_ABORT_REQUEST_INFO_RESERVED_0_MSB 15
|
||||
#define MACRX_ABORT_REQUEST_INFO_RESERVED_0_MASK 0x0000ff00
|
||||
|
||||
|
||||
|
||||
#endif // MACRX_ABORT_REQUEST_INFO
|
||||
217
drivers/staging/fw-api/hw/qca5332/mactx_eht_sig_usr_mu_mimo.h
Normal file
217
drivers/staging/fw-api/hw/qca5332/mactx_eht_sig_usr_mu_mimo.h
Normal file
|
|
@ -0,0 +1,217 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _MACTX_EHT_SIG_USR_MU_MIMO_H_
|
||||
#define _MACTX_EHT_SIG_USR_MU_MIMO_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#include "eht_sig_usr_mu_mimo_info.h"
|
||||
#define NUM_OF_DWORDS_MACTX_EHT_SIG_USR_MU_MIMO 2
|
||||
|
||||
#define NUM_OF_QWORDS_MACTX_EHT_SIG_USR_MU_MIMO 1
|
||||
|
||||
|
||||
struct mactx_eht_sig_usr_mu_mimo {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
struct eht_sig_usr_mu_mimo_info mactx_eht_sig_usr_mu_mimo_info_details;
|
||||
#else
|
||||
struct eht_sig_usr_mu_mimo_info mactx_eht_sig_usr_mu_mimo_info_details;
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS
|
||||
|
||||
See detailed description of the STRUCT
|
||||
*/
|
||||
|
||||
|
||||
/* Description STA_ID
|
||||
|
||||
Identifies the STA that is addressed. Details of STA ID
|
||||
are TBD
|
||||
*/
|
||||
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_STA_ID_OFFSET 0x0000000000000000
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_STA_ID_LSB 0
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_STA_ID_MSB 10
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_STA_ID_MASK 0x00000000000007ff
|
||||
|
||||
|
||||
/* Description STA_MCS
|
||||
|
||||
Indicates the data MCS
|
||||
0 - 13: MCS 0 - 13
|
||||
14: validate
|
||||
15: MCS 0 with DCM
|
||||
<legal 0-13, 15>
|
||||
*/
|
||||
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_STA_MCS_OFFSET 0x0000000000000000
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_STA_MCS_LSB 11
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_STA_MCS_MSB 14
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_STA_MCS_MASK 0x0000000000007800
|
||||
|
||||
|
||||
/* Description STA_CODING
|
||||
|
||||
Distinguishes between BCC/LDPC
|
||||
|
||||
0: BCC
|
||||
1: LDPC
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_STA_CODING_OFFSET 0x0000000000000000
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_STA_CODING_LSB 15
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_STA_CODING_MSB 15
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_STA_CODING_MASK 0x0000000000008000
|
||||
|
||||
|
||||
/* Description STA_SPATIAL_CONFIG
|
||||
|
||||
Number of assigned spatial streams and their corresponding
|
||||
index.
|
||||
Total number of spatial streams assigned for the MU-MIMO
|
||||
allocation is also signaled.
|
||||
*/
|
||||
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_STA_SPATIAL_CONFIG_OFFSET 0x0000000000000000
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_STA_SPATIAL_CONFIG_LSB 16
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_STA_SPATIAL_CONFIG_MSB 21
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_STA_SPATIAL_CONFIG_MASK 0x00000000003f0000
|
||||
|
||||
|
||||
/* Description RESERVED_0A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_RESERVED_0A_OFFSET 0x0000000000000000
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_RESERVED_0A_LSB 22
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_RESERVED_0A_MSB 22
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_RESERVED_0A_MASK 0x0000000000400000
|
||||
|
||||
|
||||
/* Description RX_INTEGRITY_CHECK_PASSED
|
||||
|
||||
TX side: Set to 0
|
||||
RX side: Set to 1 if PHY determines the CRC check of the
|
||||
codeblock containing this EHT-SIG user info has passed,
|
||||
else set to 0
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 23
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 23
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x0000000000800000
|
||||
|
||||
|
||||
/* Description SUBBAND80_CC_MASK
|
||||
|
||||
RX side: Set to 0
|
||||
TX side: Indicates what content channels of what 80 MHz
|
||||
subbands this User field can go to
|
||||
Bit 0: lowest 80 MHz content channel 0
|
||||
Bit 1: lowest 80 MHz content channel 1
|
||||
Bit 2: 2nd lowest 80 MHz content channel 0
|
||||
...
|
||||
Bit 7: highest 80 MHz content channel 1
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_SUBBAND80_CC_MASK_OFFSET 0x0000000000000000
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_SUBBAND80_CC_MASK_LSB 24
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_SUBBAND80_CC_MASK_MSB 31
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_SUBBAND80_CC_MASK_MASK 0x00000000ff000000
|
||||
|
||||
|
||||
/* Description USER_ORDER_SUBBAND80_0
|
||||
|
||||
RX side: Set to 0
|
||||
TX side: Ordering index of the User field within the lowest
|
||||
80 MHz
|
||||
Gaps between the ordering indices of User fields indicate
|
||||
that the microcode shall generate "unallocated RU" User
|
||||
fields (STAID=2046) to fill the gaps.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_USER_ORDER_SUBBAND80_0_OFFSET 0x0000000000000000
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_USER_ORDER_SUBBAND80_0_LSB 32
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_USER_ORDER_SUBBAND80_0_MSB 39
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_USER_ORDER_SUBBAND80_0_MASK 0x000000ff00000000
|
||||
|
||||
|
||||
/* Description USER_ORDER_SUBBAND80_1
|
||||
|
||||
RX side: Set to 0
|
||||
TX side: Ordering index of the User field within the 2nd
|
||||
lowest 80 MHz
|
||||
See 'user_order_subband80_0.'
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_USER_ORDER_SUBBAND80_1_OFFSET 0x0000000000000000
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_USER_ORDER_SUBBAND80_1_LSB 40
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_USER_ORDER_SUBBAND80_1_MSB 47
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_USER_ORDER_SUBBAND80_1_MASK 0x0000ff0000000000
|
||||
|
||||
|
||||
/* Description USER_ORDER_SUBBAND80_2
|
||||
|
||||
RX side: Set to 0
|
||||
TX side: Ordering index of the User field within the 2nd
|
||||
highest 80 MHz
|
||||
See 'user_order_subband80_0.'
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_USER_ORDER_SUBBAND80_2_OFFSET 0x0000000000000000
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_USER_ORDER_SUBBAND80_2_LSB 48
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_USER_ORDER_SUBBAND80_2_MSB 55
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_USER_ORDER_SUBBAND80_2_MASK 0x00ff000000000000
|
||||
|
||||
|
||||
/* Description USER_ORDER_SUBBAND80_3
|
||||
|
||||
RX side: Set to 0
|
||||
TX side: Ordering index of the User field within the highest
|
||||
80 MHz
|
||||
See 'user_order_subband80_0.'
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_USER_ORDER_SUBBAND80_3_OFFSET 0x0000000000000000
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_USER_ORDER_SUBBAND80_3_LSB 56
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_USER_ORDER_SUBBAND80_3_MSB 63
|
||||
#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_USER_ORDER_SUBBAND80_3_MASK 0xff00000000000000
|
||||
|
||||
|
||||
|
||||
#endif // MACTX_EHT_SIG_USR_MU_MIMO
|
||||
244
drivers/staging/fw-api/hw/qca5332/mactx_eht_sig_usr_ofdma.h
Normal file
244
drivers/staging/fw-api/hw/qca5332/mactx_eht_sig_usr_ofdma.h
Normal file
|
|
@ -0,0 +1,244 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _MACTX_EHT_SIG_USR_OFDMA_H_
|
||||
#define _MACTX_EHT_SIG_USR_OFDMA_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#include "eht_sig_usr_ofdma_info.h"
|
||||
#define NUM_OF_DWORDS_MACTX_EHT_SIG_USR_OFDMA 2
|
||||
|
||||
#define NUM_OF_QWORDS_MACTX_EHT_SIG_USR_OFDMA 1
|
||||
|
||||
|
||||
struct mactx_eht_sig_usr_ofdma {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
struct eht_sig_usr_ofdma_info mactx_eht_sig_usr_ofdma_info_details;
|
||||
#else
|
||||
struct eht_sig_usr_ofdma_info mactx_eht_sig_usr_ofdma_info_details;
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS
|
||||
|
||||
See detailed description of the STRUCT
|
||||
*/
|
||||
|
||||
|
||||
/* Description STA_ID
|
||||
|
||||
Identifies the STA that is addressed. Details of STA ID
|
||||
are TBD
|
||||
*/
|
||||
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_STA_ID_OFFSET 0x0000000000000000
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_STA_ID_LSB 0
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_STA_ID_MSB 10
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_STA_ID_MASK 0x00000000000007ff
|
||||
|
||||
|
||||
/* Description STA_MCS
|
||||
|
||||
Indicates the data MCS
|
||||
0 - 13: MCS 0 - 13
|
||||
14: validate
|
||||
15: MCS 0 with DCM
|
||||
<legal 0-13, 15>
|
||||
*/
|
||||
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_STA_MCS_OFFSET 0x0000000000000000
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_STA_MCS_LSB 11
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_STA_MCS_MSB 14
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_STA_MCS_MASK 0x0000000000007800
|
||||
|
||||
|
||||
/* Description VALIDATE_0A
|
||||
|
||||
Note: spec indicates this shall be set to 1
|
||||
<legal 1>
|
||||
*/
|
||||
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_VALIDATE_0A_OFFSET 0x0000000000000000
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_VALIDATE_0A_LSB 15
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_VALIDATE_0A_MSB 15
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_VALIDATE_0A_MASK 0x0000000000008000
|
||||
|
||||
|
||||
/* Description NSS
|
||||
|
||||
Number of spatial streams for this user
|
||||
|
||||
The actual number of streams is 1 larger than indicated
|
||||
in this field.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_NSS_OFFSET 0x0000000000000000
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_NSS_LSB 16
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_NSS_MSB 19
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_NSS_MASK 0x00000000000f0000
|
||||
|
||||
|
||||
/* Description TXBF
|
||||
|
||||
Indicates whether beamforming is applied
|
||||
0: No beamforming
|
||||
1: beamforming
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_TXBF_OFFSET 0x0000000000000000
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_TXBF_LSB 20
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_TXBF_MSB 20
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_TXBF_MASK 0x0000000000100000
|
||||
|
||||
|
||||
/* Description STA_CODING
|
||||
|
||||
Distinguishes between BCC/LDPC
|
||||
|
||||
0: BCC
|
||||
1: LDPC
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_STA_CODING_OFFSET 0x0000000000000000
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_STA_CODING_LSB 21
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_STA_CODING_MSB 21
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_STA_CODING_MASK 0x0000000000200000
|
||||
|
||||
|
||||
/* Description RESERVED_0B
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_RESERVED_0B_OFFSET 0x0000000000000000
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_RESERVED_0B_LSB 22
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_RESERVED_0B_MSB 22
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_RESERVED_0B_MASK 0x0000000000400000
|
||||
|
||||
|
||||
/* Description RX_INTEGRITY_CHECK_PASSED
|
||||
|
||||
TX side: Set to 0
|
||||
RX side: Set to 1 if PHY determines the CRC check of the
|
||||
codeblock containing this EHT-SIG user info has passed,
|
||||
else set to 0
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 23
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 23
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x0000000000800000
|
||||
|
||||
|
||||
/* Description SUBBAND80_CC_MASK
|
||||
|
||||
RX side: Set to 0
|
||||
TX side: Indicates what content channels of what 80 MHz
|
||||
subbands this User field can go to
|
||||
Bit 0: lowest 80 MHz content channel 0
|
||||
Bit 1: lowest 80 MHz content channel 1
|
||||
Bit 2: 2nd lowest 80 MHz content channel 0
|
||||
...
|
||||
Bit 7: highest 80 MHz content channel 1
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_SUBBAND80_CC_MASK_OFFSET 0x0000000000000000
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_SUBBAND80_CC_MASK_LSB 24
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_SUBBAND80_CC_MASK_MSB 31
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_SUBBAND80_CC_MASK_MASK 0x00000000ff000000
|
||||
|
||||
|
||||
/* Description USER_ORDER_SUBBAND80_0
|
||||
|
||||
RX side: Set to 0
|
||||
TX side: Ordering index of the User field within the lowest
|
||||
80 MHz
|
||||
Gaps between the ordering indices of User fields indicate
|
||||
that the microcode shall generate "unallocated RU" User
|
||||
fields (STAID=2046) to fill the gaps.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_USER_ORDER_SUBBAND80_0_OFFSET 0x0000000000000000
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_USER_ORDER_SUBBAND80_0_LSB 32
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_USER_ORDER_SUBBAND80_0_MSB 39
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_USER_ORDER_SUBBAND80_0_MASK 0x000000ff00000000
|
||||
|
||||
|
||||
/* Description USER_ORDER_SUBBAND80_1
|
||||
|
||||
RX side: Set to 0
|
||||
TX side: Ordering index of the User field within the 2nd
|
||||
lowest 80 MHz
|
||||
See 'user_order_subband80_0.'
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_USER_ORDER_SUBBAND80_1_OFFSET 0x0000000000000000
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_USER_ORDER_SUBBAND80_1_LSB 40
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_USER_ORDER_SUBBAND80_1_MSB 47
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_USER_ORDER_SUBBAND80_1_MASK 0x0000ff0000000000
|
||||
|
||||
|
||||
/* Description USER_ORDER_SUBBAND80_2
|
||||
|
||||
RX side: Set to 0
|
||||
TX side: Ordering index of the User field within the 2nd
|
||||
highest 80 MHz
|
||||
See 'user_order_subband80_0.'
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_USER_ORDER_SUBBAND80_2_OFFSET 0x0000000000000000
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_USER_ORDER_SUBBAND80_2_LSB 48
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_USER_ORDER_SUBBAND80_2_MSB 55
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_USER_ORDER_SUBBAND80_2_MASK 0x00ff000000000000
|
||||
|
||||
|
||||
/* Description USER_ORDER_SUBBAND80_3
|
||||
|
||||
RX side: Set to 0
|
||||
TX side: Ordering index of the User field within the highest
|
||||
80 MHz
|
||||
See 'user_order_subband80_0.'
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_USER_ORDER_SUBBAND80_3_OFFSET 0x0000000000000000
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_USER_ORDER_SUBBAND80_3_LSB 56
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_USER_ORDER_SUBBAND80_3_MSB 63
|
||||
#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_USER_ORDER_SUBBAND80_3_MASK 0xff00000000000000
|
||||
|
||||
|
||||
|
||||
#endif // MACTX_EHT_SIG_USR_OFDMA
|
||||
178
drivers/staging/fw-api/hw/qca5332/mactx_eht_sig_usr_su.h
Normal file
178
drivers/staging/fw-api/hw/qca5332/mactx_eht_sig_usr_su.h
Normal file
|
|
@ -0,0 +1,178 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _MACTX_EHT_SIG_USR_SU_H_
|
||||
#define _MACTX_EHT_SIG_USR_SU_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#include "eht_sig_usr_su_info.h"
|
||||
#define NUM_OF_DWORDS_MACTX_EHT_SIG_USR_SU 2
|
||||
|
||||
#define NUM_OF_QWORDS_MACTX_EHT_SIG_USR_SU 1
|
||||
|
||||
|
||||
struct mactx_eht_sig_usr_su {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
struct eht_sig_usr_su_info mactx_eht_sig_usr_su_info_details;
|
||||
uint32_t tlv64_padding : 32; // [31:0]
|
||||
#else
|
||||
struct eht_sig_usr_su_info mactx_eht_sig_usr_su_info_details;
|
||||
uint32_t tlv64_padding : 32; // [31:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description MACTX_EHT_SIG_USR_SU_INFO_DETAILS
|
||||
|
||||
See detailed description of the STRUCT
|
||||
*/
|
||||
|
||||
|
||||
/* Description STA_ID
|
||||
|
||||
Identifies the STA that is addressed. Details of STA ID
|
||||
are TBD
|
||||
*/
|
||||
|
||||
#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_STA_ID_OFFSET 0x0000000000000000
|
||||
#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_STA_ID_LSB 0
|
||||
#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_STA_ID_MSB 10
|
||||
#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_STA_ID_MASK 0x00000000000007ff
|
||||
|
||||
|
||||
/* Description STA_MCS
|
||||
|
||||
Indicates the data MCS
|
||||
0 - 13: MCS 0 - 13
|
||||
14: MCS 0 with DCM and 2x duplicate
|
||||
15: MCS 0 with DCM
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_STA_MCS_OFFSET 0x0000000000000000
|
||||
#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_STA_MCS_LSB 11
|
||||
#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_STA_MCS_MSB 14
|
||||
#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_STA_MCS_MASK 0x0000000000007800
|
||||
|
||||
|
||||
/* Description VALIDATE_0A
|
||||
|
||||
Note: spec indicates this shall be set to 1
|
||||
<legal 1>
|
||||
*/
|
||||
|
||||
#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_VALIDATE_0A_OFFSET 0x0000000000000000
|
||||
#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_VALIDATE_0A_LSB 15
|
||||
#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_VALIDATE_0A_MSB 15
|
||||
#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_VALIDATE_0A_MASK 0x0000000000008000
|
||||
|
||||
|
||||
/* Description NSS
|
||||
|
||||
Number of spatial streams for this user
|
||||
|
||||
The actual number of streams is 1 larger than indicated
|
||||
in this field.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_NSS_OFFSET 0x0000000000000000
|
||||
#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_NSS_LSB 16
|
||||
#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_NSS_MSB 19
|
||||
#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_NSS_MASK 0x00000000000f0000
|
||||
|
||||
|
||||
/* Description TXBF
|
||||
|
||||
Indicates whether beamforming is applied
|
||||
0: No beamforming
|
||||
1: beamforming
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_TXBF_OFFSET 0x0000000000000000
|
||||
#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_TXBF_LSB 20
|
||||
#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_TXBF_MSB 20
|
||||
#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_TXBF_MASK 0x0000000000100000
|
||||
|
||||
|
||||
/* Description STA_CODING
|
||||
|
||||
Distinguishes between BCC/LDPC
|
||||
|
||||
0: BCC
|
||||
1: LDPC
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_STA_CODING_OFFSET 0x0000000000000000
|
||||
#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_STA_CODING_LSB 21
|
||||
#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_STA_CODING_MSB 21
|
||||
#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_STA_CODING_MASK 0x0000000000200000
|
||||
|
||||
|
||||
/* Description RESERVED_0B
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_RESERVED_0B_OFFSET 0x0000000000000000
|
||||
#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_RESERVED_0B_LSB 22
|
||||
#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_RESERVED_0B_MSB 30
|
||||
#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_RESERVED_0B_MASK 0x000000007fc00000
|
||||
|
||||
|
||||
/* Description RX_INTEGRITY_CHECK_PASSED
|
||||
|
||||
TX side: Set to 0
|
||||
RX side: Set to 1 if PHY determines the CRC check of the
|
||||
codeblock containing this EHT-SIG user info has passed,
|
||||
else set to 0
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
|
||||
#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 31
|
||||
#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 31
|
||||
#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x0000000080000000
|
||||
|
||||
|
||||
/* Description TLV64_PADDING
|
||||
|
||||
Automatic DWORD padding inserted while converting TLV32
|
||||
to TLV64 for 64 bit ARCH
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_EHT_SIG_USR_SU_TLV64_PADDING_OFFSET 0x0000000000000000
|
||||
#define MACTX_EHT_SIG_USR_SU_TLV64_PADDING_LSB 32
|
||||
#define MACTX_EHT_SIG_USR_SU_TLV64_PADDING_MSB 63
|
||||
#define MACTX_EHT_SIG_USR_SU_TLV64_PADDING_MASK 0xffffffff00000000
|
||||
|
||||
|
||||
|
||||
#endif // MACTX_EHT_SIG_USR_SU
|
||||
400
drivers/staging/fw-api/hw/qca5332/mactx_he_sig_a_mu_dl.h
Normal file
400
drivers/staging/fw-api/hw/qca5332/mactx_he_sig_a_mu_dl.h
Normal file
|
|
@ -0,0 +1,400 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _MACTX_HE_SIG_A_MU_DL_H_
|
||||
#define _MACTX_HE_SIG_A_MU_DL_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#include "he_sig_a_mu_dl_info.h"
|
||||
#define NUM_OF_DWORDS_MACTX_HE_SIG_A_MU_DL 2
|
||||
|
||||
#define NUM_OF_QWORDS_MACTX_HE_SIG_A_MU_DL 1
|
||||
|
||||
|
||||
struct mactx_he_sig_a_mu_dl {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
struct he_sig_a_mu_dl_info mactx_he_sig_a_mu_dl_info_details;
|
||||
#else
|
||||
struct he_sig_a_mu_dl_info mactx_he_sig_a_mu_dl_info_details;
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description MACTX_HE_SIG_A_MU_DL_INFO_DETAILS
|
||||
|
||||
See detailed description of the STRUCT
|
||||
*/
|
||||
|
||||
|
||||
/* Description DL_UL_FLAG
|
||||
|
||||
Differentiates between DL and UL transmission
|
||||
|
||||
<enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
|
||||
<enum 1 DL_UL_FLAG_IS_UL>
|
||||
NOTE: This is unsupported for "HE MU" format (including "MU_SU")
|
||||
Tx in Napier and Hastings80.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_DL_UL_FLAG_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_DL_UL_FLAG_LSB 0
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_DL_UL_FLAG_MSB 0
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_DL_UL_FLAG_MASK 0x0000000000000001
|
||||
|
||||
|
||||
/* Description MCS_OF_SIG_B
|
||||
|
||||
Indicates the MCS of HE-SIG-B
|
||||
<legal 0-5>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_MCS_OF_SIG_B_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_MCS_OF_SIG_B_LSB 1
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_MCS_OF_SIG_B_MSB 3
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_MCS_OF_SIG_B_MASK 0x000000000000000e
|
||||
|
||||
|
||||
/* Description DCM_OF_SIG_B
|
||||
|
||||
Indicates whether dual sub-carrier modulation is applied
|
||||
to HE-SIG-B
|
||||
|
||||
0: No DCM for HE_SIG_B
|
||||
1: DCM for HE_SIG_B
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_DCM_OF_SIG_B_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_DCM_OF_SIG_B_LSB 4
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_DCM_OF_SIG_B_MSB 4
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_DCM_OF_SIG_B_MASK 0x0000000000000010
|
||||
|
||||
|
||||
/* Description BSS_COLOR_ID
|
||||
|
||||
BSS color ID
|
||||
|
||||
Field Used by MAC HW
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_BSS_COLOR_ID_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_BSS_COLOR_ID_LSB 5
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_BSS_COLOR_ID_MSB 10
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_BSS_COLOR_ID_MASK 0x00000000000007e0
|
||||
|
||||
|
||||
/* Description SPATIAL_REUSE
|
||||
|
||||
Spatial reuse
|
||||
|
||||
For 20MHz one SR field corresponding to entire 20MHz (other
|
||||
3 fields indicate identical values)
|
||||
For 40MHz two SR fields for each 20MHz (other 2 fields indicate
|
||||
identical values)
|
||||
For 80MHz four SR fields for each 20MHz
|
||||
For 160MHz four SR fields for each 40MHz
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_SPATIAL_REUSE_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_SPATIAL_REUSE_LSB 11
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_SPATIAL_REUSE_MSB 14
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_SPATIAL_REUSE_MASK 0x0000000000007800
|
||||
|
||||
|
||||
/* Description TRANSMIT_BW
|
||||
|
||||
Bandwidth of the PPDU.
|
||||
|
||||
<enum 0 HE_SIG_A_MU_DL_BW20> 20 Mhz
|
||||
<enum 1 HE_SIG_A_MU_DL_BW40> 40 Mhz
|
||||
<enum 2 HE_SIG_A_MU_DL_BW80> 80 MHz non-preamble puncturing
|
||||
mode
|
||||
<enum 3 HE_SIG_A_MU_DL_BW160> 160 MHz and 80+80 MHz non-preamble
|
||||
puncturing mode
|
||||
<enum 4 HE_SIG_A_MU_DL_BW80_SEC_20_PUNC> for preamble puncturing
|
||||
in 80 MHz, where in the preamble only the secondary 20
|
||||
MHz is punctured
|
||||
<enum 5 HE_SIG_A_MU_DL_BW80_20_PUNC_IN_SEC_40> for preamble
|
||||
puncturing in 80 MHz, where in the preamble only one of
|
||||
the two 20 MHz sub-channels in secondary 40 MHz is punctured.
|
||||
|
||||
<enum 6 HE_SIG_A_MU_DL_BW160_SEC_20_PUNC> for preamble puncturing
|
||||
in 160 MHz or 80+80 MHz, where in the primary 80 MHz of
|
||||
the preamble only the secondary 20 MHz is punctured.
|
||||
<enum 7 HE_SIG_A_MU_DL_BW160_SEC_40_80_PUNC> for preamble
|
||||
puncturing in 160 MHz or 80+80 MHz, where in the primary
|
||||
80 MHz of the preamble the primary 40 MHz is present.
|
||||
|
||||
On RX side, Field Used by MAC HW
|
||||
<legal 0-7>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_TRANSMIT_BW_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_TRANSMIT_BW_LSB 15
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_TRANSMIT_BW_MSB 17
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_TRANSMIT_BW_MASK 0x0000000000038000
|
||||
|
||||
|
||||
/* Description NUM_SIG_B_SYMBOLS
|
||||
|
||||
Number of symbols
|
||||
|
||||
For OFDMA, the actual number of symbols is 1 larger then
|
||||
indicated in this field.
|
||||
|
||||
For MU-MIMO this is equal to the number of users - 1: the
|
||||
following encoding is used:
|
||||
1 => 2 users
|
||||
2 => 3 users
|
||||
Etc.
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_NUM_SIG_B_SYMBOLS_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_NUM_SIG_B_SYMBOLS_LSB 18
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_NUM_SIG_B_SYMBOLS_MSB 21
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_NUM_SIG_B_SYMBOLS_MASK 0x00000000003c0000
|
||||
|
||||
|
||||
/* Description COMP_MODE_SIG_B
|
||||
|
||||
Indicates the compression mode of HE-SIG-B
|
||||
|
||||
0: Regular [uncomp mode]
|
||||
1: compressed mode (full-BW MU-MIMO only)
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_COMP_MODE_SIG_B_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_COMP_MODE_SIG_B_LSB 22
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_COMP_MODE_SIG_B_MSB 22
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_COMP_MODE_SIG_B_MASK 0x0000000000400000
|
||||
|
||||
|
||||
/* Description CP_LTF_SIZE
|
||||
|
||||
Indicates the CP and HE-LTF type
|
||||
|
||||
<enum 0 MU_FourX_LTF_0_8CP> 4xLTF + 0.8 us CP
|
||||
<enum 1 MU_TwoX_LTF_0_8CP> 2x LTF + 0.8 µs CP
|
||||
<enum 2 MU_TwoX_LTF_1_6CP> 2x LTF + 1.6 µs CP
|
||||
<enum 3 MU_FourX_LTF_3_2CP> 4x LTF + 3.2 µs CP
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_CP_LTF_SIZE_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_CP_LTF_SIZE_LSB 23
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_CP_LTF_SIZE_MSB 24
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_CP_LTF_SIZE_MASK 0x0000000001800000
|
||||
|
||||
|
||||
/* Description DOPPLER_INDICATION
|
||||
|
||||
0: No Doppler support
|
||||
1: Doppler support
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_DOPPLER_INDICATION_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_DOPPLER_INDICATION_LSB 25
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_DOPPLER_INDICATION_MSB 25
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_DOPPLER_INDICATION_MASK 0x0000000002000000
|
||||
|
||||
|
||||
/* Description RESERVED_0A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_0A_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_0A_LSB 26
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_0A_MSB 31
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_0A_MASK 0x00000000fc000000
|
||||
|
||||
|
||||
/* Description TXOP_DURATION
|
||||
|
||||
Indicates the remaining time in the current TXOP
|
||||
|
||||
Field Used by MAC HW
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_TXOP_DURATION_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_TXOP_DURATION_LSB 32
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_TXOP_DURATION_MSB 38
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_TXOP_DURATION_MASK 0x0000007f00000000
|
||||
|
||||
|
||||
/* Description RESERVED_1A
|
||||
|
||||
Note: spec indicates this shall be set to 1
|
||||
<legal 1>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_1A_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_1A_LSB 39
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_1A_MSB 39
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_1A_MASK 0x0000008000000000
|
||||
|
||||
|
||||
/* Description NUM_LTF_SYMBOLS
|
||||
|
||||
Indicates the number of HE-LTF symbols
|
||||
|
||||
0: 1 LTF
|
||||
1: 2 LTFs
|
||||
2: 4 LTFs
|
||||
3: 6 LTFs
|
||||
4: 8 LTFs
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_NUM_LTF_SYMBOLS_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_NUM_LTF_SYMBOLS_LSB 40
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_NUM_LTF_SYMBOLS_MSB 42
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_NUM_LTF_SYMBOLS_MASK 0x0000070000000000
|
||||
|
||||
|
||||
/* Description LDPC_EXTRA_SYMBOL
|
||||
|
||||
If LDPC,
|
||||
0: LDPC extra symbol not present
|
||||
1: LDPC extra symbol present
|
||||
Else
|
||||
Set to 1
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_LDPC_EXTRA_SYMBOL_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_LDPC_EXTRA_SYMBOL_LSB 43
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_LDPC_EXTRA_SYMBOL_MSB 43
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_LDPC_EXTRA_SYMBOL_MASK 0x0000080000000000
|
||||
|
||||
|
||||
/* Description STBC
|
||||
|
||||
Indicates whether STBC is applied
|
||||
0: No STBC
|
||||
1: STBC
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_STBC_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_STBC_LSB 44
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_STBC_MSB 44
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_STBC_MASK 0x0000100000000000
|
||||
|
||||
|
||||
/* Description PACKET_EXTENSION_A_FACTOR
|
||||
|
||||
the packet extension duration of the trigger-based PPDU
|
||||
response with these two bits indicating the "a-factor"
|
||||
|
||||
<enum 0 a_factor_4>
|
||||
<enum 1 a_factor_1>
|
||||
<enum 2 a_factor_2>
|
||||
<enum 3 a_factor_3>
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_LSB 45
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_MSB 46
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_MASK 0x0000600000000000
|
||||
|
||||
|
||||
/* Description PACKET_EXTENSION_PE_DISAMBIGUITY
|
||||
|
||||
the packet extension duration of the trigger-based PPDU
|
||||
response with this bit indicating the PE-Disambiguity
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_LSB 47
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_MSB 47
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_MASK 0x0000800000000000
|
||||
|
||||
|
||||
/* Description CRC
|
||||
|
||||
CRC for HE-SIG-A contents.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_CRC_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_CRC_LSB 48
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_CRC_MSB 51
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_CRC_MASK 0x000f000000000000
|
||||
|
||||
|
||||
/* Description TAIL
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_TAIL_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_TAIL_LSB 52
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_TAIL_MSB 57
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_TAIL_MASK 0x03f0000000000000
|
||||
|
||||
|
||||
/* Description RESERVED_1B
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_1B_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_1B_LSB 58
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_1B_MSB 62
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_1B_MASK 0x7c00000000000000
|
||||
|
||||
|
||||
/* Description RX_INTEGRITY_CHECK_PASSED
|
||||
|
||||
TX side: Set to 0
|
||||
RX side: Set to 1 if PHY determines the HE-SIG-A CRC check
|
||||
has passed, else set to 0
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 63
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 63
|
||||
#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x8000000000000000
|
||||
|
||||
|
||||
|
||||
#endif // MACTX_HE_SIG_A_MU_DL
|
||||
211
drivers/staging/fw-api/hw/qca5332/mactx_he_sig_a_mu_ul.h
Normal file
211
drivers/staging/fw-api/hw/qca5332/mactx_he_sig_a_mu_ul.h
Normal file
|
|
@ -0,0 +1,211 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _MACTX_HE_SIG_A_MU_UL_H_
|
||||
#define _MACTX_HE_SIG_A_MU_UL_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#include "he_sig_a_mu_ul_info.h"
|
||||
#define NUM_OF_DWORDS_MACTX_HE_SIG_A_MU_UL 2
|
||||
|
||||
#define NUM_OF_QWORDS_MACTX_HE_SIG_A_MU_UL 1
|
||||
|
||||
|
||||
struct mactx_he_sig_a_mu_ul {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
struct he_sig_a_mu_ul_info mactx_he_sig_a_mu_ul_info_details;
|
||||
#else
|
||||
struct he_sig_a_mu_ul_info mactx_he_sig_a_mu_ul_info_details;
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description MACTX_HE_SIG_A_MU_UL_INFO_DETAILS
|
||||
|
||||
See detailed description of the STRUCT
|
||||
*/
|
||||
|
||||
|
||||
/* Description FORMAT_INDICATION
|
||||
|
||||
Indicates whether the transmission is SU PPDU or a trigger
|
||||
based UL MU PDDU
|
||||
<enum 0 HE_SIGA_FORMAT_HE_TRIG>
|
||||
<enum 1 HE_SIGA_FORMAT_SU_OR_EXT_SU>
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_FORMAT_INDICATION_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_FORMAT_INDICATION_LSB 0
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_FORMAT_INDICATION_MSB 0
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_FORMAT_INDICATION_MASK 0x0000000000000001
|
||||
|
||||
|
||||
/* Description BSS_COLOR_ID
|
||||
|
||||
BSS color ID
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_BSS_COLOR_ID_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_BSS_COLOR_ID_LSB 1
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_BSS_COLOR_ID_MSB 6
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_BSS_COLOR_ID_MASK 0x000000000000007e
|
||||
|
||||
|
||||
/* Description SPATIAL_REUSE
|
||||
|
||||
Spatial reuse
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_SPATIAL_REUSE_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_SPATIAL_REUSE_LSB 7
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_SPATIAL_REUSE_MSB 22
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_SPATIAL_REUSE_MASK 0x00000000007fff80
|
||||
|
||||
|
||||
/* Description RESERVED_0A
|
||||
|
||||
Note: spec indicates this shall be set to 1
|
||||
<legal 1>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_0A_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_0A_LSB 23
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_0A_MSB 23
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_0A_MASK 0x0000000000800000
|
||||
|
||||
|
||||
/* Description TRANSMIT_BW
|
||||
|
||||
Bandwidth of the PPDU.
|
||||
|
||||
<enum 0 HE_SIG_A_MU_UL_BW20> 20 Mhz
|
||||
<enum 1 HE_SIG_A_MU_UL_BW40> 40 Mhz
|
||||
<enum 2 HE_SIG_A_MU_UL_BW80> 80 Mhz
|
||||
<enum 3 HE_SIG_A_MU_UL_BW160> 160 MHz or 80+80 MHz
|
||||
|
||||
On RX side, Field Used by MAC HW
|
||||
<legal 0-3>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_TRANSMIT_BW_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_TRANSMIT_BW_LSB 24
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_TRANSMIT_BW_MSB 25
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_TRANSMIT_BW_MASK 0x0000000003000000
|
||||
|
||||
|
||||
/* Description RESERVED_0B
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_0B_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_0B_LSB 26
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_0B_MSB 31
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_0B_MASK 0x00000000fc000000
|
||||
|
||||
|
||||
/* Description TXOP_DURATION
|
||||
|
||||
Indicates the remaining time in the current TXOP <legal
|
||||
all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_TXOP_DURATION_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_TXOP_DURATION_LSB 32
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_TXOP_DURATION_MSB 38
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_TXOP_DURATION_MASK 0x0000007f00000000
|
||||
|
||||
|
||||
/* Description RESERVED_1A
|
||||
|
||||
Set to value indicated in the trigger frame
|
||||
<legal 255>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_1A_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_1A_LSB 39
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_1A_MSB 47
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_1A_MASK 0x0000ff8000000000
|
||||
|
||||
|
||||
/* Description CRC
|
||||
|
||||
CRC for HE-SIG-A contents.
|
||||
This CRC may also cover some fields of L-SIG (TBD)
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_CRC_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_CRC_LSB 48
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_CRC_MSB 51
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_CRC_MASK 0x000f000000000000
|
||||
|
||||
|
||||
/* Description TAIL
|
||||
|
||||
BCC encoding (similar to VHT-SIG-A) with 6 tail bits is
|
||||
used
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_TAIL_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_TAIL_LSB 52
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_TAIL_MSB 57
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_TAIL_MASK 0x03f0000000000000
|
||||
|
||||
|
||||
/* Description RESERVED_1B
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_1B_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_1B_LSB 58
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_1B_MSB 62
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_1B_MASK 0x7c00000000000000
|
||||
|
||||
|
||||
/* Description RX_INTEGRITY_CHECK_PASSED
|
||||
|
||||
TX side: Set to 0
|
||||
RX side: Set to 1 if PHY determines the HE-SIG-A CRC check
|
||||
has passed, else set to 0
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 63
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 63
|
||||
#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x8000000000000000
|
||||
|
||||
|
||||
|
||||
#endif // MACTX_HE_SIG_A_MU_UL
|
||||
506
drivers/staging/fw-api/hw/qca5332/mactx_he_sig_a_su.h
Normal file
506
drivers/staging/fw-api/hw/qca5332/mactx_he_sig_a_su.h
Normal file
|
|
@ -0,0 +1,506 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _MACTX_HE_SIG_A_SU_H_
|
||||
#define _MACTX_HE_SIG_A_SU_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#include "he_sig_a_su_info.h"
|
||||
#define NUM_OF_DWORDS_MACTX_HE_SIG_A_SU 2
|
||||
|
||||
#define NUM_OF_QWORDS_MACTX_HE_SIG_A_SU 1
|
||||
|
||||
|
||||
struct mactx_he_sig_a_su {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
struct he_sig_a_su_info mactx_he_sig_a_su_info_details;
|
||||
#else
|
||||
struct he_sig_a_su_info mactx_he_sig_a_su_info_details;
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description MACTX_HE_SIG_A_SU_INFO_DETAILS
|
||||
|
||||
See detailed description of the STRUCT
|
||||
*/
|
||||
|
||||
|
||||
/* Description FORMAT_INDICATION
|
||||
|
||||
<enum 0 HE_SIGA_FORMAT_HE_TRIG>
|
||||
<enum 1 HE_SIGA_FORMAT_SU_OR_EXT_SU>
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_FORMAT_INDICATION_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_FORMAT_INDICATION_LSB 0
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_FORMAT_INDICATION_MSB 0
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_FORMAT_INDICATION_MASK 0x0000000000000001
|
||||
|
||||
|
||||
/* Description BEAM_CHANGE
|
||||
|
||||
Indicates whether spatial mapping is changed between legacy
|
||||
and HE portion of preamble. If not, channel estimation
|
||||
can include legacy preamble to improve accuracy
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_BEAM_CHANGE_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_BEAM_CHANGE_LSB 1
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_BEAM_CHANGE_MSB 1
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_BEAM_CHANGE_MASK 0x0000000000000002
|
||||
|
||||
|
||||
/* Description DL_UL_FLAG
|
||||
|
||||
Differentiates between DL and UL transmission
|
||||
|
||||
<enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
|
||||
<enum 1 DL_UL_FLAG_IS_UL>
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DL_UL_FLAG_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DL_UL_FLAG_LSB 2
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DL_UL_FLAG_MSB 2
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DL_UL_FLAG_MASK 0x0000000000000004
|
||||
|
||||
|
||||
/* Description TRANSMIT_MCS
|
||||
|
||||
Indicates the data MCS
|
||||
|
||||
Field Used by MAC HW
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_MCS_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_MCS_LSB 3
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_MCS_MSB 6
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_MCS_MASK 0x0000000000000078
|
||||
|
||||
|
||||
/* Description DCM
|
||||
|
||||
Indicates whether dual sub-carrier modulation is applied
|
||||
|
||||
0: No DCM
|
||||
1:DCM
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DCM_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DCM_LSB 7
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DCM_MSB 7
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DCM_MASK 0x0000000000000080
|
||||
|
||||
|
||||
/* Description BSS_COLOR_ID
|
||||
|
||||
BSS color ID
|
||||
|
||||
Field Used by MAC HW
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_BSS_COLOR_ID_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_BSS_COLOR_ID_LSB 8
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_BSS_COLOR_ID_MSB 13
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_BSS_COLOR_ID_MASK 0x0000000000003f00
|
||||
|
||||
|
||||
/* Description RESERVED_0A
|
||||
|
||||
Note: spec indicates this shall be set to 1
|
||||
<legal 1>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0A_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0A_LSB 14
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0A_MSB 14
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0A_MASK 0x0000000000004000
|
||||
|
||||
|
||||
/* Description SPATIAL_REUSE
|
||||
|
||||
Spatial reuse
|
||||
|
||||
For 20MHz one SR field corresponding to entire 20MHz (other
|
||||
3 fields indicate identical values)
|
||||
For 40MHz two SR fields for each 20MHz (other 2 fields indicate
|
||||
identical values)
|
||||
For 80MHz four SR fields for each 20MHz
|
||||
For 160MHz four SR fields for each 40MHz
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_SPATIAL_REUSE_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_SPATIAL_REUSE_LSB 15
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_SPATIAL_REUSE_MSB 18
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_SPATIAL_REUSE_MASK 0x0000000000078000
|
||||
|
||||
|
||||
/* Description TRANSMIT_BW
|
||||
|
||||
Bandwidth of the PPDU.
|
||||
|
||||
For HE SU PPDU
|
||||
|
||||
|
||||
|
||||
<enum 0 HE_SIG_A_BW20> 20 Mhz
|
||||
<enum 1 HE_SIG_A_BW40> 40 Mhz
|
||||
<enum 2 HE_SIG_A_BW80> 80 Mhz
|
||||
<enum 3 HE_SIG_A_BW160> 160 MHz or 80+80 MHz
|
||||
|
||||
For HE Extended Range SU PPDU
|
||||
Set to 0 for 242-tone RU
|
||||
|
||||
Set to 1 for right 106-tone RU within
|
||||
the primary 20 MHz
|
||||
|
||||
On RX side, Field Used by MAC HW
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_BW_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_BW_LSB 19
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_BW_MSB 20
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_BW_MASK 0x0000000000180000
|
||||
|
||||
|
||||
/* Description CP_LTF_SIZE
|
||||
|
||||
Indicates the CP and HE-LTF type
|
||||
|
||||
<enum 0 OneX_LTF_0_8CP> 1xLTF + 0.8 us CP
|
||||
<enum 1 TwoX_LTF_0_8CP> 2x LTF + 0.8 µs CP
|
||||
<enum 2 TwoX_LTF_1_6CP> 2x LTF + 1.6 µs CP
|
||||
|
||||
<enum 3 FourX_LTF_0_8CP_3_2CP>
|
||||
When DCM == 0 OR STBC == 0: 4x LTF + 3.2 µs CP
|
||||
When DCM == 1 AND STBC == 1: 4x LTF + 0.8 µs CP. Note:
|
||||
In this scenario, Neither DCM nor STBC is applied to HE
|
||||
data field.
|
||||
|
||||
NOTE:
|
||||
If ( DCM == 1 ) and ( MCS > 0 ) and (STBC == 0)
|
||||
0 = 1xLTF + 0.4 usec
|
||||
1 = 2xLTF + 0.4 usec
|
||||
2~3 = Reserved
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_CP_LTF_SIZE_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_CP_LTF_SIZE_LSB 21
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_CP_LTF_SIZE_MSB 22
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_CP_LTF_SIZE_MASK 0x0000000000600000
|
||||
|
||||
|
||||
/* Description NSTS
|
||||
|
||||
Indicates number of streams used for the SU transmission
|
||||
|
||||
|
||||
For HE SU PPDU
|
||||
|
||||
|
||||
Set to n for n+1 space time stream,
|
||||
where n = 0, 1, 2,.....,7.
|
||||
|
||||
|
||||
|
||||
|
||||
For HE Extended Range PPDU
|
||||
|
||||
|
||||
Set to 0 for 1 space time stream.
|
||||
Value 1 is TBD
|
||||
|
||||
|
||||
|
||||
Values 2 - 7 are reserved
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_NSTS_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_NSTS_LSB 23
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_NSTS_MSB 25
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_NSTS_MASK 0x0000000003800000
|
||||
|
||||
|
||||
/* Description RESERVED_0B
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0B_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0B_LSB 26
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0B_MSB 31
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0B_MASK 0x00000000fc000000
|
||||
|
||||
|
||||
/* Description TXOP_DURATION
|
||||
|
||||
Indicates the remaining time in the current TXOP
|
||||
|
||||
Field Used by MAC HW
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TXOP_DURATION_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TXOP_DURATION_LSB 32
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TXOP_DURATION_MSB 38
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TXOP_DURATION_MASK 0x0000007f00000000
|
||||
|
||||
|
||||
/* Description CODING
|
||||
|
||||
Distinguishes between BCC and LDPC coding.
|
||||
|
||||
0: BCC
|
||||
1: LDPC
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_CODING_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_CODING_LSB 39
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_CODING_MSB 39
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_CODING_MASK 0x0000008000000000
|
||||
|
||||
|
||||
/* Description LDPC_EXTRA_SYMBOL
|
||||
|
||||
If LDPC,
|
||||
0: LDPC extra symbol not present
|
||||
1: LDPC extra symbol present
|
||||
Else
|
||||
Set to 1
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_LDPC_EXTRA_SYMBOL_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_LDPC_EXTRA_SYMBOL_LSB 40
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_LDPC_EXTRA_SYMBOL_MSB 40
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_LDPC_EXTRA_SYMBOL_MASK 0x0000010000000000
|
||||
|
||||
|
||||
/* Description STBC
|
||||
|
||||
Indicates whether STBC is applied
|
||||
0: No STBC
|
||||
1: STBC
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_STBC_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_STBC_LSB 41
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_STBC_MSB 41
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_STBC_MASK 0x0000020000000000
|
||||
|
||||
|
||||
/* Description TXBF
|
||||
|
||||
Indicates whether beamforming is applied
|
||||
0: No beamforming
|
||||
1: beamforming
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TXBF_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TXBF_LSB 42
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TXBF_MSB 42
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TXBF_MASK 0x0000040000000000
|
||||
|
||||
|
||||
/* Description PACKET_EXTENSION_A_FACTOR
|
||||
|
||||
Common trigger info
|
||||
|
||||
the packet extension duration of the trigger-based PPDU
|
||||
response with these two bits indicating the "a-factor"
|
||||
|
||||
<enum 0 a_factor_4>
|
||||
<enum 1 a_factor_1>
|
||||
<enum 2 a_factor_2>
|
||||
<enum 3 a_factor_3>
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_LSB 43
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_MSB 44
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_MASK 0x0000180000000000
|
||||
|
||||
|
||||
/* Description PACKET_EXTENSION_PE_DISAMBIGUITY
|
||||
|
||||
Common trigger info
|
||||
|
||||
the packet extension duration of the trigger-based PPDU
|
||||
response with this bit indicating the PE-Disambiguity
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_LSB 45
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_MSB 45
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_MASK 0x0000200000000000
|
||||
|
||||
|
||||
/* Description RESERVED_1A
|
||||
|
||||
Note: per standard, set to 1
|
||||
<legal 1>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_1A_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_1A_LSB 46
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_1A_MSB 46
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_1A_MASK 0x0000400000000000
|
||||
|
||||
|
||||
/* Description DOPPLER_INDICATION
|
||||
|
||||
0: No Doppler support
|
||||
1: Doppler support
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DOPPLER_INDICATION_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DOPPLER_INDICATION_LSB 47
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DOPPLER_INDICATION_MSB 47
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DOPPLER_INDICATION_MASK 0x0000800000000000
|
||||
|
||||
|
||||
/* Description CRC
|
||||
|
||||
CRC for HE-SIG-A contents.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_CRC_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_CRC_LSB 48
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_CRC_MSB 51
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_CRC_MASK 0x000f000000000000
|
||||
|
||||
|
||||
/* Description TAIL
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TAIL_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TAIL_LSB 52
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TAIL_MSB 57
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TAIL_MASK 0x03f0000000000000
|
||||
|
||||
|
||||
/* Description DOT11AX_SU_EXTENDED
|
||||
|
||||
TX side:
|
||||
Set to 0
|
||||
|
||||
RX side:
|
||||
On RX side, evaluated by MAC HW. This is the only way for
|
||||
MAC RX to know that this was an HE_SIG_A_SU received in
|
||||
'extended' format
|
||||
|
||||
When set, the 11ax frame is of the extended range format
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_SU_EXTENDED_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_SU_EXTENDED_LSB 58
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_SU_EXTENDED_MSB 58
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_SU_EXTENDED_MASK 0x0400000000000000
|
||||
|
||||
|
||||
/* Description DOT11AX_EXT_RU_SIZE
|
||||
|
||||
TX side:
|
||||
Set to 0
|
||||
|
||||
RX side:
|
||||
Field only contains valid info when dot11ax_su_extended
|
||||
is set.
|
||||
|
||||
On RX side, evaluated by MAC HW. This is the only way for
|
||||
MAC RX to know what the number of based RUs was in this
|
||||
extended range reception. It is used by the MAC to determine
|
||||
the RU size for the response...
|
||||
|
||||
<enum 0 EXT_RU_26>
|
||||
<enum 1 EXT_RU_52>
|
||||
<enum 2 EXT_RU_106>
|
||||
<enum 3 EXT_RU_242><legal 0-3>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_EXT_RU_SIZE_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_EXT_RU_SIZE_LSB 59
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_EXT_RU_SIZE_MSB 61
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_EXT_RU_SIZE_MASK 0x3800000000000000
|
||||
|
||||
|
||||
/* Description RX_NDP
|
||||
|
||||
TX side:
|
||||
Set to 0
|
||||
|
||||
RX side:Valid on RX side only, and looked at by MAC HW
|
||||
|
||||
When set, PHY has received (expected) NDP frame
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RX_NDP_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RX_NDP_LSB 62
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RX_NDP_MSB 62
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RX_NDP_MASK 0x4000000000000000
|
||||
|
||||
|
||||
/* Description RX_INTEGRITY_CHECK_PASSED
|
||||
|
||||
TX side: Set to 0
|
||||
RX side: Set to 1 if PHY determines the HE-SIG-A CRC check
|
||||
has passed, else set to 0
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 63
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 63
|
||||
#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x8000000000000000
|
||||
|
||||
|
||||
|
||||
#endif // MACTX_HE_SIG_A_SU
|
||||
110
drivers/staging/fw-api/hw/qca5332/mactx_he_sig_b1_mu.h
Normal file
110
drivers/staging/fw-api/hw/qca5332/mactx_he_sig_b1_mu.h
Normal file
|
|
@ -0,0 +1,110 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _MACTX_HE_SIG_B1_MU_H_
|
||||
#define _MACTX_HE_SIG_B1_MU_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#include "he_sig_b1_mu_info.h"
|
||||
#define NUM_OF_DWORDS_MACTX_HE_SIG_B1_MU 2
|
||||
|
||||
#define NUM_OF_QWORDS_MACTX_HE_SIG_B1_MU 1
|
||||
|
||||
|
||||
struct mactx_he_sig_b1_mu {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
struct he_sig_b1_mu_info mactx_he_sig_b1_mu_info_details;
|
||||
uint32_t tlv64_padding : 32; // [31:0]
|
||||
#else
|
||||
struct he_sig_b1_mu_info mactx_he_sig_b1_mu_info_details;
|
||||
uint32_t tlv64_padding : 32; // [31:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description MACTX_HE_SIG_B1_MU_INFO_DETAILS
|
||||
|
||||
See detailed description of the STRUCT
|
||||
*/
|
||||
|
||||
|
||||
/* Description RU_ALLOCATION
|
||||
|
||||
RU allocation for the user(s) following this common portion
|
||||
of the SIG
|
||||
|
||||
For details, refer to RU_TYPE description
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_B1_MU_MACTX_HE_SIG_B1_MU_INFO_DETAILS_RU_ALLOCATION_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_B1_MU_MACTX_HE_SIG_B1_MU_INFO_DETAILS_RU_ALLOCATION_LSB 0
|
||||
#define MACTX_HE_SIG_B1_MU_MACTX_HE_SIG_B1_MU_INFO_DETAILS_RU_ALLOCATION_MSB 7
|
||||
#define MACTX_HE_SIG_B1_MU_MACTX_HE_SIG_B1_MU_INFO_DETAILS_RU_ALLOCATION_MASK 0x00000000000000ff
|
||||
|
||||
|
||||
/* Description RESERVED_0
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_B1_MU_MACTX_HE_SIG_B1_MU_INFO_DETAILS_RESERVED_0_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_B1_MU_MACTX_HE_SIG_B1_MU_INFO_DETAILS_RESERVED_0_LSB 8
|
||||
#define MACTX_HE_SIG_B1_MU_MACTX_HE_SIG_B1_MU_INFO_DETAILS_RESERVED_0_MSB 30
|
||||
#define MACTX_HE_SIG_B1_MU_MACTX_HE_SIG_B1_MU_INFO_DETAILS_RESERVED_0_MASK 0x000000007fffff00
|
||||
|
||||
|
||||
/* Description RX_INTEGRITY_CHECK_PASSED
|
||||
|
||||
TX side: Set to 0
|
||||
RX side: Set to 1 if PHY determines the CRC check of the
|
||||
codeblock containing the HE-SIG-B common info has passed,
|
||||
else set to 0
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_B1_MU_MACTX_HE_SIG_B1_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_B1_MU_MACTX_HE_SIG_B1_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 31
|
||||
#define MACTX_HE_SIG_B1_MU_MACTX_HE_SIG_B1_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 31
|
||||
#define MACTX_HE_SIG_B1_MU_MACTX_HE_SIG_B1_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x0000000080000000
|
||||
|
||||
|
||||
/* Description TLV64_PADDING
|
||||
|
||||
Automatic DWORD padding inserted while converting TLV32
|
||||
to TLV64 for 64 bit ARCH
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_B1_MU_TLV64_PADDING_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_B1_MU_TLV64_PADDING_LSB 32
|
||||
#define MACTX_HE_SIG_B1_MU_TLV64_PADDING_MSB 63
|
||||
#define MACTX_HE_SIG_B1_MU_TLV64_PADDING_MASK 0xffffffff00000000
|
||||
|
||||
|
||||
|
||||
#endif // MACTX_HE_SIG_B1_MU
|
||||
212
drivers/staging/fw-api/hw/qca5332/mactx_he_sig_b2_mu.h
Normal file
212
drivers/staging/fw-api/hw/qca5332/mactx_he_sig_b2_mu.h
Normal file
|
|
@ -0,0 +1,212 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _MACTX_HE_SIG_B2_MU_H_
|
||||
#define _MACTX_HE_SIG_B2_MU_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#include "he_sig_b2_mu_info.h"
|
||||
#define NUM_OF_DWORDS_MACTX_HE_SIG_B2_MU 2
|
||||
|
||||
#define NUM_OF_QWORDS_MACTX_HE_SIG_B2_MU 1
|
||||
|
||||
|
||||
struct mactx_he_sig_b2_mu {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
struct he_sig_b2_mu_info mactx_he_sig_b2_mu_info_details;
|
||||
#else
|
||||
struct he_sig_b2_mu_info mactx_he_sig_b2_mu_info_details;
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description MACTX_HE_SIG_B2_MU_INFO_DETAILS
|
||||
|
||||
See detailed description of the STRUCT
|
||||
*/
|
||||
|
||||
|
||||
/* Description STA_ID
|
||||
|
||||
Identifies the STA that is addressed. Details of STA ID
|
||||
are TBD
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_ID_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_ID_LSB 0
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_ID_MSB 10
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_ID_MASK 0x00000000000007ff
|
||||
|
||||
|
||||
/* Description STA_SPATIAL_CONFIG
|
||||
|
||||
Number of assigned spatial streams and their corresponding
|
||||
index.
|
||||
Total number of spatial streams assigned for the MU-MIMO
|
||||
allocation is also signaled.
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_SPATIAL_CONFIG_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_SPATIAL_CONFIG_LSB 11
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_SPATIAL_CONFIG_MSB 14
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_SPATIAL_CONFIG_MASK 0x0000000000007800
|
||||
|
||||
|
||||
/* Description STA_MCS
|
||||
|
||||
Indicates the data MCS
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_MCS_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_MCS_LSB 15
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_MCS_MSB 18
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_MCS_MASK 0x0000000000078000
|
||||
|
||||
|
||||
/* Description RESERVED_SET_TO_1
|
||||
|
||||
<legal 1>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_SET_TO_1_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_SET_TO_1_LSB 19
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_SET_TO_1_MSB 19
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_SET_TO_1_MASK 0x0000000000080000
|
||||
|
||||
|
||||
/* Description STA_CODING
|
||||
|
||||
Distinguishes between BCC/LDPC
|
||||
|
||||
0: BCC
|
||||
1: LDPC
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_CODING_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_CODING_LSB 20
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_CODING_MSB 20
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_CODING_MASK 0x0000000000100000
|
||||
|
||||
|
||||
/* Description RESERVED_0A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_0A_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_0A_LSB 21
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_0A_MSB 27
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_0A_MASK 0x000000000fe00000
|
||||
|
||||
|
||||
/* Description NSTS
|
||||
|
||||
MAC RX side usage only:
|
||||
Needed by RXPCU. Provided by PHY so that RXPCU does not
|
||||
need to have the RU number decoding logic.
|
||||
|
||||
Number of spatial streams for this user
|
||||
|
||||
<enum 0 1_spatial_stream>Single spatial stream
|
||||
<enum 1 2_spatial_streams>2 spatial streams
|
||||
<enum 2 3_spatial_streams>3 spatial streams
|
||||
<enum 3 4_spatial_streams>4 spatial streams
|
||||
<enum 4 5_spatial_streams>5 spatial streams
|
||||
<enum 5 6_spatial_streams>6 spatial streams
|
||||
<enum 6 7_spatial_streams>7 spatial streams
|
||||
<enum 7 8_spatial_streams>8 spatial streams
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_NSTS_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_NSTS_LSB 28
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_NSTS_MSB 30
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_NSTS_MASK 0x0000000070000000
|
||||
|
||||
|
||||
/* Description RX_INTEGRITY_CHECK_PASSED
|
||||
|
||||
TX side: Set to 0
|
||||
RX side: Set to 1 if PHY determines the CRC check of the
|
||||
codeblock containing this HE-SIG-B user info has passed,
|
||||
else set to 0
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 31
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 31
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x0000000080000000
|
||||
|
||||
|
||||
/* Description USER_ORDER
|
||||
|
||||
RX side: Set to 0
|
||||
TX side: Ordering index of the User field
|
||||
Gaps between the ordering indices of User fields indicate
|
||||
that the microcode shall generate "unallocated RU" User
|
||||
fields (STAID=2046) to fill the gaps.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_USER_ORDER_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_USER_ORDER_LSB 32
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_USER_ORDER_MSB 39
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_USER_ORDER_MASK 0x000000ff00000000
|
||||
|
||||
|
||||
/* Description CC_MASK
|
||||
|
||||
RX side: Set to 0
|
||||
TX side: Indicates what content channel this User field
|
||||
can go to
|
||||
Bit 0: content channel 0
|
||||
Bit 1: content channel 1
|
||||
The other bits are unused, but could repeat the above pattern
|
||||
for compatibility with 'EHT_SIG_USR_MU_MIMO_INFO.'
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_CC_MASK_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_CC_MASK_LSB 40
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_CC_MASK_MSB 47
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_CC_MASK_MASK 0x0000ff0000000000
|
||||
|
||||
|
||||
/* Description RESERVED_1A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_1A_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_1A_LSB 48
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_1A_MSB 63
|
||||
#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_1A_MASK 0xffff000000000000
|
||||
|
||||
|
||||
|
||||
#endif // MACTX_HE_SIG_B2_MU
|
||||
214
drivers/staging/fw-api/hw/qca5332/mactx_he_sig_b2_ofdma.h
Normal file
214
drivers/staging/fw-api/hw/qca5332/mactx_he_sig_b2_ofdma.h
Normal file
|
|
@ -0,0 +1,214 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _MACTX_HE_SIG_B2_OFDMA_H_
|
||||
#define _MACTX_HE_SIG_B2_OFDMA_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#include "he_sig_b2_ofdma_info.h"
|
||||
#define NUM_OF_DWORDS_MACTX_HE_SIG_B2_OFDMA 2
|
||||
|
||||
#define NUM_OF_QWORDS_MACTX_HE_SIG_B2_OFDMA 1
|
||||
|
||||
|
||||
struct mactx_he_sig_b2_ofdma {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
struct he_sig_b2_ofdma_info mactx_he_sig_b2_ofdma_info_details;
|
||||
#else
|
||||
struct he_sig_b2_ofdma_info mactx_he_sig_b2_ofdma_info_details;
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS
|
||||
|
||||
See detailed description of the STRUCT
|
||||
*/
|
||||
|
||||
|
||||
/* Description STA_ID
|
||||
|
||||
Identifies the STA that is addressed. Details of STA ID
|
||||
are TBD
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_ID_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_ID_LSB 0
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_ID_MSB 10
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_ID_MASK 0x00000000000007ff
|
||||
|
||||
|
||||
/* Description NSTS
|
||||
|
||||
MAC RX side usage only:
|
||||
|
||||
Number of spatial streams for this user
|
||||
|
||||
<enum 0 1_spatial_stream>Single spatial stream
|
||||
<enum 1 2_spatial_streams>2 spatial streams
|
||||
<enum 2 3_spatial_streams>3 spatial streams
|
||||
<enum 3 4_spatial_streams>4 spatial streams
|
||||
<enum 4 5_spatial_streams>5 spatial streams
|
||||
<enum 5 6_spatial_streams>6 spatial streams
|
||||
<enum 6 7_spatial_streams>7 spatial streams
|
||||
<enum 7 8_spatial_streams>8 spatial streams
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_NSTS_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_NSTS_LSB 11
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_NSTS_MSB 13
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_NSTS_MASK 0x0000000000003800
|
||||
|
||||
|
||||
/* Description TXBF
|
||||
|
||||
Indicates whether beamforming is applied
|
||||
0: No beamforming
|
||||
1: beamforming
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_TXBF_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_TXBF_LSB 14
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_TXBF_MSB 14
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_TXBF_MASK 0x0000000000004000
|
||||
|
||||
|
||||
/* Description STA_MCS
|
||||
|
||||
Indicates the data MCS
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_MCS_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_MCS_LSB 15
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_MCS_MSB 18
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_MCS_MASK 0x0000000000078000
|
||||
|
||||
|
||||
/* Description STA_DCM
|
||||
|
||||
Indicates whether dual sub-carrier modulation is applied
|
||||
|
||||
0: No DCM
|
||||
1:DCM
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_DCM_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_DCM_LSB 19
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_DCM_MSB 19
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_DCM_MASK 0x0000000000080000
|
||||
|
||||
|
||||
/* Description STA_CODING
|
||||
|
||||
Distinguishes between BCC/LDPC
|
||||
|
||||
0: BCC
|
||||
1: LDPC
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_CODING_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_CODING_LSB 20
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_CODING_MSB 20
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_CODING_MASK 0x0000000000100000
|
||||
|
||||
|
||||
/* Description RESERVED_0
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_RESERVED_0_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_RESERVED_0_LSB 21
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_RESERVED_0_MSB 30
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_RESERVED_0_MASK 0x000000007fe00000
|
||||
|
||||
|
||||
/* Description RX_INTEGRITY_CHECK_PASSED
|
||||
|
||||
TX side: Set to 0
|
||||
RX side: Set to 1 if PHY determines the CRC check of the
|
||||
codeblock containing this HE-SIG-B user info has passed,
|
||||
else set to 0
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 31
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 31
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x0000000080000000
|
||||
|
||||
|
||||
/* Description USER_ORDER
|
||||
|
||||
RX side: Set to 0
|
||||
TX side: Ordering index of the User field
|
||||
Gaps between the ordering indices of User fields indicate
|
||||
that the microcode shall generate "unallocated RU" User
|
||||
fields (STAID=2046) to fill the gaps.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_USER_ORDER_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_USER_ORDER_LSB 32
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_USER_ORDER_MSB 39
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_USER_ORDER_MASK 0x000000ff00000000
|
||||
|
||||
|
||||
/* Description CC_MASK
|
||||
|
||||
RX side: Set to 0
|
||||
TX side: Indicates what content channel this User field
|
||||
can go to
|
||||
Bit 0: content channel 0
|
||||
Bit 1: content channel 1
|
||||
The other bits are unused, but could repeat the above pattern
|
||||
for compatibility with 'EHT_SIG_USR_OFDMA_INFO.'
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_CC_MASK_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_CC_MASK_LSB 40
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_CC_MASK_MSB 47
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_CC_MASK_MASK 0x0000ff0000000000
|
||||
|
||||
|
||||
/* Description RESERVED_1A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_RESERVED_1A_OFFSET 0x0000000000000000
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_RESERVED_1A_LSB 48
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_RESERVED_1A_MSB 63
|
||||
#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_RESERVED_1A_MASK 0xffff000000000000
|
||||
|
||||
|
||||
|
||||
#endif // MACTX_HE_SIG_B2_OFDMA
|
||||
280
drivers/staging/fw-api/hw/qca5332/mactx_ht_sig.h
Normal file
280
drivers/staging/fw-api/hw/qca5332/mactx_ht_sig.h
Normal file
|
|
@ -0,0 +1,280 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _MACTX_HT_SIG_H_
|
||||
#define _MACTX_HT_SIG_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#include "ht_sig_info.h"
|
||||
#define NUM_OF_DWORDS_MACTX_HT_SIG 2
|
||||
|
||||
#define NUM_OF_QWORDS_MACTX_HT_SIG 1
|
||||
|
||||
|
||||
struct mactx_ht_sig {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
struct ht_sig_info mactx_ht_sig_info_details;
|
||||
#else
|
||||
struct ht_sig_info mactx_ht_sig_info_details;
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description MACTX_HT_SIG_INFO_DETAILS
|
||||
|
||||
See detailed description of the STRUCT
|
||||
*/
|
||||
|
||||
|
||||
/* Description MCS
|
||||
|
||||
Modulation Coding Scheme:
|
||||
0-7 are used for single stream
|
||||
8-15 are used for 2 streams
|
||||
16-23 are used for 3 streams
|
||||
24-31 are used for 4 streams
|
||||
32 is used for duplicate HT20 (unsupported)
|
||||
33-76 is used for unequal modulation (unsupported)
|
||||
77-127 is reserved.
|
||||
<legal 0-31>
|
||||
*/
|
||||
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_MCS_OFFSET 0x0000000000000000
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_MCS_LSB 0
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_MCS_MSB 6
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_MCS_MASK 0x000000000000007f
|
||||
|
||||
|
||||
/* Description CBW
|
||||
|
||||
Packet bandwidth:
|
||||
<enum 0 ht_20_mhz>
|
||||
<enum 1 ht_40_mhz>
|
||||
<legal 0-1>
|
||||
*/
|
||||
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_CBW_OFFSET 0x0000000000000000
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_CBW_LSB 7
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_CBW_MSB 7
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_CBW_MASK 0x0000000000000080
|
||||
|
||||
|
||||
/* Description LENGTH
|
||||
|
||||
This is the MPDU or A-MPDU length in octets of the PPDU
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_LENGTH_OFFSET 0x0000000000000000
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_LENGTH_LSB 8
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_LENGTH_MSB 23
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_LENGTH_MASK 0x0000000000ffff00
|
||||
|
||||
|
||||
/* Description RESERVED_0
|
||||
|
||||
This field is not part of HT-SIG
|
||||
Reserved: Should be set to 0 by the MAC and ignored by the
|
||||
PHY <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_RESERVED_0_OFFSET 0x0000000000000000
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_RESERVED_0_LSB 24
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_RESERVED_0_MSB 31
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_RESERVED_0_MASK 0x00000000ff000000
|
||||
|
||||
|
||||
/* Description SMOOTHING
|
||||
|
||||
Field indicates if smoothing is needed
|
||||
E_num 0 do_smoothing Unsupported setting: indicates
|
||||
smoothing is often used for beamforming
|
||||
<enum 1 no_smoothing> Indicates no smoothing is used
|
||||
|
||||
<legal 1>
|
||||
*/
|
||||
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_SMOOTHING_OFFSET 0x0000000000000000
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_SMOOTHING_LSB 32
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_SMOOTHING_MSB 32
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_SMOOTHING_MASK 0x0000000100000000
|
||||
|
||||
|
||||
/* Description NOT_SOUNDING
|
||||
|
||||
E_num 0 sounding Unsupported setting: indicates sounding
|
||||
is used
|
||||
<enum 1 no_sounding> Indicates no sounding is used
|
||||
<legal 1>
|
||||
*/
|
||||
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_NOT_SOUNDING_OFFSET 0x0000000000000000
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_NOT_SOUNDING_LSB 33
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_NOT_SOUNDING_MSB 33
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_NOT_SOUNDING_MASK 0x0000000200000000
|
||||
|
||||
|
||||
/* Description HT_RESERVED
|
||||
|
||||
Reserved: Should be set to 1 by the MAC and ignored by the
|
||||
PHY
|
||||
<legal 1>
|
||||
*/
|
||||
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_HT_RESERVED_OFFSET 0x0000000000000000
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_HT_RESERVED_LSB 34
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_HT_RESERVED_MSB 34
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_HT_RESERVED_MASK 0x0000000400000000
|
||||
|
||||
|
||||
/* Description AGGREGATION
|
||||
|
||||
<enum 0 mpdu> Indicates MPDU format
|
||||
<enum 1 a_mpdu> Indicates A-MPDU format
|
||||
<legal 0-1>
|
||||
*/
|
||||
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_AGGREGATION_OFFSET 0x0000000000000000
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_AGGREGATION_LSB 35
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_AGGREGATION_MSB 35
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_AGGREGATION_MASK 0x0000000800000000
|
||||
|
||||
|
||||
/* Description STBC
|
||||
|
||||
<enum 0 no_stbc> Indicates no STBC
|
||||
<enum 1 1_str_stbc> Indicates 1 stream STBC
|
||||
E_num 2 2_str_stbc Indicates 2 stream STBC (Unsupported)
|
||||
|
||||
<legal 0-1>
|
||||
*/
|
||||
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_STBC_OFFSET 0x0000000000000000
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_STBC_LSB 36
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_STBC_MSB 37
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_STBC_MASK 0x0000003000000000
|
||||
|
||||
|
||||
/* Description FEC_CODING
|
||||
|
||||
<enum 0 ht_bcc> Indicates BCC coding
|
||||
<enum 1 ht_ldpc> Indicates LDPC coding
|
||||
<legal 0-1>
|
||||
*/
|
||||
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_FEC_CODING_OFFSET 0x0000000000000000
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_FEC_CODING_LSB 38
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_FEC_CODING_MSB 38
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_FEC_CODING_MASK 0x0000004000000000
|
||||
|
||||
|
||||
/* Description SHORT_GI
|
||||
|
||||
<enum 0 ht_normal_gi> Indicates normal guard interval
|
||||
|
||||
<enum 1 ht_short_gi> Indicates short guard interval
|
||||
|
||||
<legal 0-1>
|
||||
*/
|
||||
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_SHORT_GI_OFFSET 0x0000000000000000
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_SHORT_GI_LSB 39
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_SHORT_GI_MSB 39
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_SHORT_GI_MASK 0x0000008000000000
|
||||
|
||||
|
||||
/* Description NUM_EXT_SP_STR
|
||||
|
||||
Number of extension spatial streams: (Used for TxBF)
|
||||
<enum 0 0_ext_sp_str> No extension spatial streams
|
||||
E_num 1 1_ext_sp_str Not supported: 1 extension spatial
|
||||
streams
|
||||
E_num 2 2_ext_sp_str Not supported: 2 extension spatial
|
||||
streams
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_NUM_EXT_SP_STR_OFFSET 0x0000000000000000
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_NUM_EXT_SP_STR_LSB 40
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_NUM_EXT_SP_STR_MSB 41
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_NUM_EXT_SP_STR_MASK 0x0000030000000000
|
||||
|
||||
|
||||
/* Description CRC
|
||||
|
||||
The CRC protects the HT-SIG (HT-SIG[0][23:0] and HT-SIG[1][9:0].
|
||||
The generator polynomial is G(D) = D8 + D2 + D + 1. <legal
|
||||
all>
|
||||
*/
|
||||
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_CRC_OFFSET 0x0000000000000000
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_CRC_LSB 42
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_CRC_MSB 49
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_CRC_MASK 0x0003fc0000000000
|
||||
|
||||
|
||||
/* Description SIGNAL_TAIL
|
||||
|
||||
The 6 bits of tail is always set to 0 is used to flush the
|
||||
BCC encoder and decoder. <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_SIGNAL_TAIL_OFFSET 0x0000000000000000
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_SIGNAL_TAIL_LSB 50
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_SIGNAL_TAIL_MSB 55
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_SIGNAL_TAIL_MASK 0x00fc000000000000
|
||||
|
||||
|
||||
/* Description RESERVED_1
|
||||
|
||||
This field is not part of HT-SIG:
|
||||
Reserved: Should be set to 0 by the MAC and ignored by the
|
||||
PHY. <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_RESERVED_1_OFFSET 0x0000000000000000
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_RESERVED_1_LSB 56
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_RESERVED_1_MSB 62
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_RESERVED_1_MASK 0x7f00000000000000
|
||||
|
||||
|
||||
/* Description RX_INTEGRITY_CHECK_PASSED
|
||||
|
||||
TX side: Set to 0
|
||||
RX side: Set to 1 if PHY determines the HT-SIG CRC check
|
||||
has passed, else set to 0
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 63
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 63
|
||||
#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x8000000000000000
|
||||
|
||||
|
||||
|
||||
#endif // MACTX_HT_SIG
|
||||
217
drivers/staging/fw-api/hw/qca5332/mactx_l_sig_a.h
Normal file
217
drivers/staging/fw-api/hw/qca5332/mactx_l_sig_a.h
Normal file
|
|
@ -0,0 +1,217 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _MACTX_L_SIG_A_H_
|
||||
#define _MACTX_L_SIG_A_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#include "l_sig_a_info.h"
|
||||
#define NUM_OF_DWORDS_MACTX_L_SIG_A 2
|
||||
|
||||
#define NUM_OF_QWORDS_MACTX_L_SIG_A 1
|
||||
|
||||
|
||||
struct mactx_l_sig_a {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
struct l_sig_a_info mactx_l_sig_a_info_details;
|
||||
uint32_t tlv64_padding : 32; // [31:0]
|
||||
#else
|
||||
struct l_sig_a_info mactx_l_sig_a_info_details;
|
||||
uint32_t tlv64_padding : 32; // [31:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description MACTX_L_SIG_A_INFO_DETAILS
|
||||
|
||||
See detailed description of the STRUCT
|
||||
*/
|
||||
|
||||
|
||||
/* Description RATE
|
||||
|
||||
This format is originally defined for OFDM as a 4 bit field
|
||||
but the 5th bit was added to indicate 11b formatted frames.
|
||||
In the standard bit [4] is specified as reserved. For
|
||||
11b frames this L-SIG is transformed in the PHY into the
|
||||
11b preamble format. The following are the rates:
|
||||
<enum 8 ofdm_48_mbps> 64-QAM 2/3 (48 Mbps)
|
||||
<enum 9 ofdm_24_mbps> 16-QAM 1/2 (24 Mbps)
|
||||
<enum 10 ofdm_12_mbps> QPSK 1/2 (12 Mbps)
|
||||
<enum 11 ofdm_6_mbps> BPSK 1/2 (6 Mbps)
|
||||
<enum 12 ofdm_54_mbps> 64-QAM 3/4 (54 Mbps)
|
||||
<enum 13 ofdm_36_mbps> 16-QAM 3/4 (36 Mbps)
|
||||
<enum 14 ofdm_18_mbps> QPSK 1/2 (18 Mbps)
|
||||
<enum 15 ofdm_9_mbps> BPSK 3/4 (9 Mbps)
|
||||
<legal 8-15>
|
||||
*/
|
||||
|
||||
#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_RATE_OFFSET 0x0000000000000000
|
||||
#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_RATE_LSB 0
|
||||
#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_RATE_MSB 3
|
||||
#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_RATE_MASK 0x000000000000000f
|
||||
|
||||
|
||||
/* Description LSIG_RESERVED
|
||||
|
||||
Reserved: Should be set to 0 by the MAC and ignored by the
|
||||
PHY
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_LSIG_RESERVED_OFFSET 0x0000000000000000
|
||||
#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_LSIG_RESERVED_LSB 4
|
||||
#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_LSIG_RESERVED_MSB 4
|
||||
#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_LSIG_RESERVED_MASK 0x0000000000000010
|
||||
|
||||
|
||||
/* Description LENGTH
|
||||
|
||||
The length indicates the number of octets in this MPDU.
|
||||
Note that when using mixed mode .11n preamble or .11ac/.11ax/.11ba/.11be
|
||||
this length provides the spoofed length for the PPDU.
|
||||
This length provides part of the information (viz. PPDU
|
||||
duration) to derive the actually PSDU length. For legacy
|
||||
OFDM and 11B frames the maximum length is 4095.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_LENGTH_OFFSET 0x0000000000000000
|
||||
#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_LENGTH_LSB 5
|
||||
#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_LENGTH_MSB 16
|
||||
#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_LENGTH_MASK 0x000000000001ffe0
|
||||
|
||||
|
||||
/* Description PARITY
|
||||
|
||||
11a/n/ac TX: This field provides even parity over the first
|
||||
18 bits of the signal field which means that the sum of
|
||||
1s in the signal field will always be even on transmission.
|
||||
The value of the field is computed by the MAC.
|
||||
11a/n/ac RX: this field contains the received parity field
|
||||
from the L-SIG symbol for the current packet.
|
||||
<legal 0-1>
|
||||
*/
|
||||
|
||||
#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_PARITY_OFFSET 0x0000000000000000
|
||||
#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_PARITY_LSB 17
|
||||
#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_PARITY_MSB 17
|
||||
#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_PARITY_MASK 0x0000000000020000
|
||||
|
||||
|
||||
/* Description TAIL
|
||||
|
||||
The 6 bits of tail is always set to 0 is used to flush the
|
||||
BCC encoder and decoder. <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_TAIL_OFFSET 0x0000000000000000
|
||||
#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_TAIL_LSB 18
|
||||
#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_TAIL_MSB 23
|
||||
#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_TAIL_MASK 0x0000000000fc0000
|
||||
|
||||
|
||||
/* Description PKT_TYPE
|
||||
|
||||
Only used on the RX side.
|
||||
Note: This is not really part of L-SIG
|
||||
|
||||
Packet type:
|
||||
<enum 0 dot11a>802.11a PPDU type
|
||||
<enum 1 dot11b>802.11b PPDU type
|
||||
<enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
|
||||
<enum 3 dot11ac>802.11ac PPDU type
|
||||
<enum 4 dot11ax>802.11ax PPDU type
|
||||
<enum 5 dot11ba>802.11ba (WUR) PPDU type
|
||||
<enum 6 dot11be>802.11be PPDU type
|
||||
<enum 7 dot11az>802.11az (ranging) PPDU type
|
||||
<enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported
|
||||
& aborted)
|
||||
*/
|
||||
|
||||
#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_PKT_TYPE_OFFSET 0x0000000000000000
|
||||
#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_PKT_TYPE_LSB 24
|
||||
#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_PKT_TYPE_MSB 27
|
||||
#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_PKT_TYPE_MASK 0x000000000f000000
|
||||
|
||||
|
||||
/* Description CAPTURED_IMPLICIT_SOUNDING
|
||||
|
||||
Only used on the RX side.
|
||||
Note: This is not really part of L-SIG
|
||||
|
||||
This indicates that the PHY has captured implicit sounding.
|
||||
|
||||
*/
|
||||
|
||||
#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_CAPTURED_IMPLICIT_SOUNDING_OFFSET 0x0000000000000000
|
||||
#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_CAPTURED_IMPLICIT_SOUNDING_LSB 28
|
||||
#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_CAPTURED_IMPLICIT_SOUNDING_MSB 28
|
||||
#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_CAPTURED_IMPLICIT_SOUNDING_MASK 0x0000000010000000
|
||||
|
||||
|
||||
/* Description RESERVED
|
||||
|
||||
Reserved: Should be set to 0 by the transmitting MAC and
|
||||
ignored by the PHY <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_RESERVED_OFFSET 0x0000000000000000
|
||||
#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_RESERVED_LSB 29
|
||||
#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_RESERVED_MSB 30
|
||||
#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_RESERVED_MASK 0x0000000060000000
|
||||
|
||||
|
||||
/* Description RX_INTEGRITY_CHECK_PASSED
|
||||
|
||||
TX side: Set to 0
|
||||
RX side: Set to 1 if PHY determines the L-SIG integrity
|
||||
check has passed, else set to 0
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
|
||||
#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 31
|
||||
#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 31
|
||||
#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x0000000080000000
|
||||
|
||||
|
||||
/* Description TLV64_PADDING
|
||||
|
||||
Automatic DWORD padding inserted while converting TLV32
|
||||
to TLV64 for 64 bit ARCH
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_L_SIG_A_TLV64_PADDING_OFFSET 0x0000000000000000
|
||||
#define MACTX_L_SIG_A_TLV64_PADDING_LSB 32
|
||||
#define MACTX_L_SIG_A_TLV64_PADDING_MSB 63
|
||||
#define MACTX_L_SIG_A_TLV64_PADDING_MASK 0xffffffff00000000
|
||||
|
||||
|
||||
|
||||
#endif // MACTX_L_SIG_A
|
||||
125
drivers/staging/fw-api/hw/qca5332/mactx_l_sig_b.h
Normal file
125
drivers/staging/fw-api/hw/qca5332/mactx_l_sig_b.h
Normal file
|
|
@ -0,0 +1,125 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _MACTX_L_SIG_B_H_
|
||||
#define _MACTX_L_SIG_B_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#include "l_sig_b_info.h"
|
||||
#define NUM_OF_DWORDS_MACTX_L_SIG_B 2
|
||||
|
||||
#define NUM_OF_QWORDS_MACTX_L_SIG_B 1
|
||||
|
||||
|
||||
struct mactx_l_sig_b {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
struct l_sig_b_info mactx_l_sig_b_info_details;
|
||||
uint32_t tlv64_padding : 32; // [31:0]
|
||||
#else
|
||||
struct l_sig_b_info mactx_l_sig_b_info_details;
|
||||
uint32_t tlv64_padding : 32; // [31:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description MACTX_L_SIG_B_INFO_DETAILS
|
||||
|
||||
See detailed description of the STRUCT
|
||||
*/
|
||||
|
||||
|
||||
/* Description RATE
|
||||
|
||||
<enum 1 dsss_1_mpbs_long> DSSS 1 Mbps long
|
||||
<enum 2 dsss_2_mbps_long> DSSS 2 Mbps long
|
||||
<enum 3 cck_5_5_mbps_long> CCK 5.5 Mbps long
|
||||
<enum 4 cck_11_mbps_long> CCK 11 Mbps long
|
||||
<enum 5 dsss_2_mbps_short> DSSS 2 Mbps short
|
||||
<enum 6 cck_5_5_mbps_short> CCK 5.5 Mbps short
|
||||
<enum 7 cck_11_mbps_short> CCK 11 Mbps short
|
||||
<legal 1-7>
|
||||
*/
|
||||
|
||||
#define MACTX_L_SIG_B_MACTX_L_SIG_B_INFO_DETAILS_RATE_OFFSET 0x0000000000000000
|
||||
#define MACTX_L_SIG_B_MACTX_L_SIG_B_INFO_DETAILS_RATE_LSB 0
|
||||
#define MACTX_L_SIG_B_MACTX_L_SIG_B_INFO_DETAILS_RATE_MSB 3
|
||||
#define MACTX_L_SIG_B_MACTX_L_SIG_B_INFO_DETAILS_RATE_MASK 0x000000000000000f
|
||||
|
||||
|
||||
/* Description LENGTH
|
||||
|
||||
The length indicates the number of octets in this MPDU.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_L_SIG_B_MACTX_L_SIG_B_INFO_DETAILS_LENGTH_OFFSET 0x0000000000000000
|
||||
#define MACTX_L_SIG_B_MACTX_L_SIG_B_INFO_DETAILS_LENGTH_LSB 4
|
||||
#define MACTX_L_SIG_B_MACTX_L_SIG_B_INFO_DETAILS_LENGTH_MSB 15
|
||||
#define MACTX_L_SIG_B_MACTX_L_SIG_B_INFO_DETAILS_LENGTH_MASK 0x000000000000fff0
|
||||
|
||||
|
||||
/* Description RESERVED
|
||||
|
||||
Reserved: Should be set to 0 by the transmitting MAC and
|
||||
ignored by the PHY <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_L_SIG_B_MACTX_L_SIG_B_INFO_DETAILS_RESERVED_OFFSET 0x0000000000000000
|
||||
#define MACTX_L_SIG_B_MACTX_L_SIG_B_INFO_DETAILS_RESERVED_LSB 16
|
||||
#define MACTX_L_SIG_B_MACTX_L_SIG_B_INFO_DETAILS_RESERVED_MSB 30
|
||||
#define MACTX_L_SIG_B_MACTX_L_SIG_B_INFO_DETAILS_RESERVED_MASK 0x000000007fff0000
|
||||
|
||||
|
||||
/* Description RX_INTEGRITY_CHECK_PASSED
|
||||
|
||||
TX side: Set to 0
|
||||
RX side: Set to 1 if PHY determines the .11b PHY header
|
||||
CRC check has passed, else set to 0
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_L_SIG_B_MACTX_L_SIG_B_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
|
||||
#define MACTX_L_SIG_B_MACTX_L_SIG_B_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 31
|
||||
#define MACTX_L_SIG_B_MACTX_L_SIG_B_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 31
|
||||
#define MACTX_L_SIG_B_MACTX_L_SIG_B_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x0000000080000000
|
||||
|
||||
|
||||
/* Description TLV64_PADDING
|
||||
|
||||
Automatic DWORD padding inserted while converting TLV32
|
||||
to TLV64 for 64 bit ARCH
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_L_SIG_B_TLV64_PADDING_OFFSET 0x0000000000000000
|
||||
#define MACTX_L_SIG_B_TLV64_PADDING_LSB 32
|
||||
#define MACTX_L_SIG_B_TLV64_PADDING_MSB 63
|
||||
#define MACTX_L_SIG_B_TLV64_PADDING_MASK 0xffffffff00000000
|
||||
|
||||
|
||||
|
||||
#endif // MACTX_L_SIG_B
|
||||
1088
drivers/staging/fw-api/hw/qca5332/mactx_phy_desc.h
Normal file
1088
drivers/staging/fw-api/hw/qca5332/mactx_phy_desc.h
Normal file
File diff suppressed because it is too large
Load diff
118
drivers/staging/fw-api/hw/qca5332/mactx_service.h
Normal file
118
drivers/staging/fw-api/hw/qca5332/mactx_service.h
Normal file
|
|
@ -0,0 +1,118 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _MACTX_SERVICE_H_
|
||||
#define _MACTX_SERVICE_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#include "service_info.h"
|
||||
#define NUM_OF_DWORDS_MACTX_SERVICE 2
|
||||
|
||||
#define NUM_OF_QWORDS_MACTX_SERVICE 1
|
||||
|
||||
|
||||
struct mactx_service {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
struct service_info mactx_service_info_details;
|
||||
uint32_t tlv64_padding : 32; // [31:0]
|
||||
#else
|
||||
struct service_info mactx_service_info_details;
|
||||
uint32_t tlv64_padding : 32; // [31:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description MACTX_SERVICE_INFO_DETAILS
|
||||
|
||||
See detailed description of the STRUCT.
|
||||
|
||||
In case of EHT, instead of 'SERVICE_INFO' the STRUCT 'EHT_SERVICE_INFO'
|
||||
is used. See detailed description of the STRUCT.
|
||||
*/
|
||||
|
||||
|
||||
/* Description SCRAMBLER_SEED
|
||||
|
||||
This field provides the 7-bit seed for the data scrambler.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_SERVICE_MACTX_SERVICE_INFO_DETAILS_SCRAMBLER_SEED_OFFSET 0x0000000000000000
|
||||
#define MACTX_SERVICE_MACTX_SERVICE_INFO_DETAILS_SCRAMBLER_SEED_LSB 0
|
||||
#define MACTX_SERVICE_MACTX_SERVICE_INFO_DETAILS_SCRAMBLER_SEED_MSB 6
|
||||
#define MACTX_SERVICE_MACTX_SERVICE_INFO_DETAILS_SCRAMBLER_SEED_MASK 0x000000000000007f
|
||||
|
||||
|
||||
/* Description RESERVED
|
||||
|
||||
Reserved. Set to 0 by sender and ignored by receiver. <legal
|
||||
0>
|
||||
*/
|
||||
|
||||
#define MACTX_SERVICE_MACTX_SERVICE_INFO_DETAILS_RESERVED_OFFSET 0x0000000000000000
|
||||
#define MACTX_SERVICE_MACTX_SERVICE_INFO_DETAILS_RESERVED_LSB 7
|
||||
#define MACTX_SERVICE_MACTX_SERVICE_INFO_DETAILS_RESERVED_MSB 7
|
||||
#define MACTX_SERVICE_MACTX_SERVICE_INFO_DETAILS_RESERVED_MASK 0x0000000000000080
|
||||
|
||||
|
||||
/* Description SIG_B_CRC_USER
|
||||
|
||||
In case of vht transmission: vht_sig_b_crc_user
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_SERVICE_MACTX_SERVICE_INFO_DETAILS_SIG_B_CRC_USER_OFFSET 0x0000000000000000
|
||||
#define MACTX_SERVICE_MACTX_SERVICE_INFO_DETAILS_SIG_B_CRC_USER_LSB 8
|
||||
#define MACTX_SERVICE_MACTX_SERVICE_INFO_DETAILS_SIG_B_CRC_USER_MSB 15
|
||||
#define MACTX_SERVICE_MACTX_SERVICE_INFO_DETAILS_SIG_B_CRC_USER_MASK 0x000000000000ff00
|
||||
|
||||
|
||||
/* Description RESERVED_1
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_SERVICE_MACTX_SERVICE_INFO_DETAILS_RESERVED_1_OFFSET 0x0000000000000000
|
||||
#define MACTX_SERVICE_MACTX_SERVICE_INFO_DETAILS_RESERVED_1_LSB 16
|
||||
#define MACTX_SERVICE_MACTX_SERVICE_INFO_DETAILS_RESERVED_1_MSB 31
|
||||
#define MACTX_SERVICE_MACTX_SERVICE_INFO_DETAILS_RESERVED_1_MASK 0x00000000ffff0000
|
||||
|
||||
|
||||
/* Description TLV64_PADDING
|
||||
|
||||
Automatic DWORD padding inserted while converting TLV32
|
||||
to TLV64 for 64 bit ARCH
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_SERVICE_TLV64_PADDING_OFFSET 0x0000000000000000
|
||||
#define MACTX_SERVICE_TLV64_PADDING_LSB 32
|
||||
#define MACTX_SERVICE_TLV64_PADDING_MSB 63
|
||||
#define MACTX_SERVICE_TLV64_PADDING_MASK 0xffffffff00000000
|
||||
|
||||
|
||||
|
||||
#endif // MACTX_SERVICE
|
||||
356
drivers/staging/fw-api/hw/qca5332/mactx_u_sig_eht_su_mu.h
Normal file
356
drivers/staging/fw-api/hw/qca5332/mactx_u_sig_eht_su_mu.h
Normal file
|
|
@ -0,0 +1,356 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _MACTX_U_SIG_EHT_SU_MU_H_
|
||||
#define _MACTX_U_SIG_EHT_SU_MU_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#include "u_sig_eht_su_mu_info.h"
|
||||
#define NUM_OF_DWORDS_MACTX_U_SIG_EHT_SU_MU 2
|
||||
|
||||
#define NUM_OF_QWORDS_MACTX_U_SIG_EHT_SU_MU 1
|
||||
|
||||
|
||||
struct mactx_u_sig_eht_su_mu {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
struct u_sig_eht_su_mu_info mactx_u_sig_eht_su_mu_info_details;
|
||||
#else
|
||||
struct u_sig_eht_su_mu_info mactx_u_sig_eht_su_mu_info_details;
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS
|
||||
|
||||
See detailed description of the STRUCT
|
||||
*/
|
||||
|
||||
|
||||
/* Description PHY_VERSION
|
||||
|
||||
<enum 0 U_SIG_VERSION_EHT>
|
||||
Values 1 - 7 are reserved.
|
||||
<legal 0
|
||||
*/
|
||||
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_PHY_VERSION_OFFSET 0x0000000000000000
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_PHY_VERSION_LSB 0
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_PHY_VERSION_MSB 2
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_PHY_VERSION_MASK 0x0000000000000007
|
||||
|
||||
|
||||
/* Description TRANSMIT_BW
|
||||
|
||||
Bandwidth of the PPDU
|
||||
|
||||
<enum 0 U_SIG_BW20> 20 MHz
|
||||
<enum 1 U_SIG_BW40> 40 MHz
|
||||
<enum 2 U_SIG_BW80> 80 MHz
|
||||
<enum 3 U_SIG_BW160> 160 MHz
|
||||
<enum 4 U_SIG_BW320> 320 MHz
|
||||
<enum 5 U_SIG_BW320_2> DO NOT USE
|
||||
|
||||
Microcode remaps 'U_SIG_BW320' based on channelization.
|
||||
|
||||
On RX side, field used by MAC HW
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_TRANSMIT_BW_OFFSET 0x0000000000000000
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_TRANSMIT_BW_LSB 3
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_TRANSMIT_BW_MSB 5
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_TRANSMIT_BW_MASK 0x0000000000000038
|
||||
|
||||
|
||||
/* Description DL_UL_FLAG
|
||||
|
||||
Differentiates between DL and UL transmission
|
||||
|
||||
<enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
|
||||
<enum 1 DL_UL_FLAG_IS_UL>
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_DL_UL_FLAG_OFFSET 0x0000000000000000
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_DL_UL_FLAG_LSB 6
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_DL_UL_FLAG_MSB 6
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_DL_UL_FLAG_MASK 0x0000000000000040
|
||||
|
||||
|
||||
/* Description BSS_COLOR_ID
|
||||
|
||||
BSS color ID
|
||||
|
||||
Field used by MAC HW
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_BSS_COLOR_ID_OFFSET 0x0000000000000000
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_BSS_COLOR_ID_LSB 7
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_BSS_COLOR_ID_MSB 12
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_BSS_COLOR_ID_MASK 0x0000000000001f80
|
||||
|
||||
|
||||
/* Description TXOP_DURATION
|
||||
|
||||
Indicates the remaining time in the current TXOP
|
||||
|
||||
Field used by MAC HW
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_TXOP_DURATION_OFFSET 0x0000000000000000
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_TXOP_DURATION_LSB 13
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_TXOP_DURATION_MSB 19
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_TXOP_DURATION_MASK 0x00000000000fe000
|
||||
|
||||
|
||||
/* Description DISREGARD_0A
|
||||
|
||||
Note: spec indicates this shall be set to 1s
|
||||
<legal 31>
|
||||
*/
|
||||
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_DISREGARD_0A_OFFSET 0x0000000000000000
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_DISREGARD_0A_LSB 20
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_DISREGARD_0A_MSB 24
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_DISREGARD_0A_MASK 0x0000000001f00000
|
||||
|
||||
|
||||
/* Description VALIDATE_0B
|
||||
|
||||
Note: spec indicates this shall be set to 1
|
||||
<legal 1>
|
||||
*/
|
||||
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_VALIDATE_0B_OFFSET 0x0000000000000000
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_VALIDATE_0B_LSB 25
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_VALIDATE_0B_MSB 25
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_VALIDATE_0B_MASK 0x0000000002000000
|
||||
|
||||
|
||||
/* Description RESERVED_0C
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_RESERVED_0C_OFFSET 0x0000000000000000
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_RESERVED_0C_LSB 26
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_RESERVED_0C_MSB 31
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_RESERVED_0C_MASK 0x00000000fc000000
|
||||
|
||||
|
||||
/* Description EHT_PPDU_SIG_CMN_TYPE
|
||||
|
||||
<enum 3 EHT_PPDU_SIG_rsvd> DO NOT USE
|
||||
<enum 0 EHT_PPDU_SIG_TB_or_DL_OFDMA> Need to look at both
|
||||
EHT-SIG content channels for DL OFDMA (including OFDMA+MU-MIMO)
|
||||
|
||||
<enum 2 EHT_PPDU_SIG_DL_MU_MIMO> Need to look at both EHT-SIG
|
||||
content channels
|
||||
<enum 1 EHT_PPDU_SIG_SU> Need to look at only one EHT-SIG
|
||||
content channel
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_EHT_PPDU_SIG_CMN_TYPE_OFFSET 0x0000000000000000
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_EHT_PPDU_SIG_CMN_TYPE_LSB 32
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_EHT_PPDU_SIG_CMN_TYPE_MSB 33
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_EHT_PPDU_SIG_CMN_TYPE_MASK 0x0000000300000000
|
||||
|
||||
|
||||
/* Description VALIDATE_1A
|
||||
|
||||
Note: spec indicates this shall be set to 1
|
||||
<legal 1>
|
||||
*/
|
||||
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_VALIDATE_1A_OFFSET 0x0000000000000000
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_VALIDATE_1A_LSB 34
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_VALIDATE_1A_MSB 34
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_VALIDATE_1A_MASK 0x0000000400000000
|
||||
|
||||
|
||||
/* Description PUNCTURED_CHANNEL_INFORMATION
|
||||
|
||||
For OFDMA BW 20 MHz or 40 MHz:
|
||||
Set to all 1s, i.e. 31
|
||||
|
||||
For OFDMA of higher BW:
|
||||
Bit 3 = lowest 20 MHz in the current 80 MHz
|
||||
Bit 6 = highest 20 MHz in the current 80 MHz
|
||||
Bit 7 = 1
|
||||
|
||||
Each bit indicates whether the 20 MHz is modulated or punctured
|
||||
|
||||
0 = punctured
|
||||
1 = modulated
|
||||
|
||||
For non-OFDMA:
|
||||
Set to a 5-bit value encoding the puncture pattern, a.k.a. 'U_sig_puncture_pattern_encoding'
|
||||
elsewhere in the data structures
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_PUNCTURED_CHANNEL_INFORMATION_OFFSET 0x0000000000000000
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_PUNCTURED_CHANNEL_INFORMATION_LSB 35
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_PUNCTURED_CHANNEL_INFORMATION_MSB 39
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_PUNCTURED_CHANNEL_INFORMATION_MASK 0x000000f800000000
|
||||
|
||||
|
||||
/* Description VALIDATE_1B
|
||||
|
||||
Note: spec indicates this shall be set to 1
|
||||
<legal 1>
|
||||
*/
|
||||
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_VALIDATE_1B_OFFSET 0x0000000000000000
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_VALIDATE_1B_LSB 40
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_VALIDATE_1B_MSB 40
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_VALIDATE_1B_MASK 0x0000010000000000
|
||||
|
||||
|
||||
/* Description MCS_OF_EHT_SIG
|
||||
|
||||
Indicates the MCS of EHT-SIG
|
||||
0 - 1: MCS 0 - 1
|
||||
2: MCS 3
|
||||
3: MCS 0 with DCM
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_MCS_OF_EHT_SIG_OFFSET 0x0000000000000000
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_MCS_OF_EHT_SIG_LSB 41
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_MCS_OF_EHT_SIG_MSB 42
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_MCS_OF_EHT_SIG_MASK 0x0000060000000000
|
||||
|
||||
|
||||
/* Description NUM_EHT_SIG_SYMBOLS
|
||||
|
||||
Number of symbols
|
||||
|
||||
The actual number of symbols is 1 larger than indicated
|
||||
in this field.
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_NUM_EHT_SIG_SYMBOLS_OFFSET 0x0000000000000000
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_NUM_EHT_SIG_SYMBOLS_LSB 43
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_NUM_EHT_SIG_SYMBOLS_MSB 47
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_NUM_EHT_SIG_SYMBOLS_MASK 0x0000f80000000000
|
||||
|
||||
|
||||
/* Description CRC
|
||||
|
||||
CRC for U-SIG contents
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_CRC_OFFSET 0x0000000000000000
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_CRC_LSB 48
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_CRC_MSB 51
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_CRC_MASK 0x000f000000000000
|
||||
|
||||
|
||||
/* Description TAIL
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_TAIL_OFFSET 0x0000000000000000
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_TAIL_LSB 52
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_TAIL_MSB 57
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_TAIL_MASK 0x03f0000000000000
|
||||
|
||||
|
||||
/* Description DOT11AX_SU_EXTENDED
|
||||
|
||||
TX side:
|
||||
Set to 0
|
||||
|
||||
RX side: On RX side, evaluated by MAC HW
|
||||
|
||||
This is the only way for MAC RX to know that this was a
|
||||
U_SIG_EHT_SU received in extended range format.
|
||||
|
||||
When set, the 11be frame is of the extended range format.
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_DOT11AX_SU_EXTENDED_OFFSET 0x0000000000000000
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_DOT11AX_SU_EXTENDED_LSB 58
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_DOT11AX_SU_EXTENDED_MSB 58
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_DOT11AX_SU_EXTENDED_MASK 0x0400000000000000
|
||||
|
||||
|
||||
/* Description RESERVED_1D
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_RESERVED_1D_OFFSET 0x0000000000000000
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_RESERVED_1D_LSB 59
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_RESERVED_1D_MSB 61
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_RESERVED_1D_MASK 0x3800000000000000
|
||||
|
||||
|
||||
/* Description RX_NDP
|
||||
|
||||
TX side:
|
||||
Set to 0
|
||||
|
||||
RX side: On RX side, looked at by MAC HW
|
||||
|
||||
When set, PHY has received an (expected) NDP frame
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_RX_NDP_OFFSET 0x0000000000000000
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_RX_NDP_LSB 62
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_RX_NDP_MSB 62
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_RX_NDP_MASK 0x4000000000000000
|
||||
|
||||
|
||||
/* Description RX_INTEGRITY_CHECK_PASSED
|
||||
|
||||
TX side: Set to 0
|
||||
RX side: Set to 1 if PHY determines the U-SIG CRC check
|
||||
has passed, else set to 0
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 63
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 63
|
||||
#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x8000000000000000
|
||||
|
||||
|
||||
|
||||
#endif // MACTX_U_SIG_EHT_SU_MU
|
||||
258
drivers/staging/fw-api/hw/qca5332/mactx_u_sig_eht_tb.h
Normal file
258
drivers/staging/fw-api/hw/qca5332/mactx_u_sig_eht_tb.h
Normal file
|
|
@ -0,0 +1,258 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _MACTX_U_SIG_EHT_TB_H_
|
||||
#define _MACTX_U_SIG_EHT_TB_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#include "u_sig_eht_tb_info.h"
|
||||
#define NUM_OF_DWORDS_MACTX_U_SIG_EHT_TB 2
|
||||
|
||||
#define NUM_OF_QWORDS_MACTX_U_SIG_EHT_TB 1
|
||||
|
||||
|
||||
struct mactx_u_sig_eht_tb {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
struct u_sig_eht_tb_info mactx_u_sig_eht_tb_info_details;
|
||||
#else
|
||||
struct u_sig_eht_tb_info mactx_u_sig_eht_tb_info_details;
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description MACTX_U_SIG_EHT_TB_INFO_DETAILS
|
||||
|
||||
See detailed description of the STRUCT
|
||||
*/
|
||||
|
||||
|
||||
/* Description PHY_VERSION
|
||||
|
||||
<enum 0 U_SIG_VERSION_EHT>
|
||||
Values 1 - 7 are reserved.
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_PHY_VERSION_OFFSET 0x0000000000000000
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_PHY_VERSION_LSB 0
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_PHY_VERSION_MSB 2
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_PHY_VERSION_MASK 0x0000000000000007
|
||||
|
||||
|
||||
/* Description TRANSMIT_BW
|
||||
|
||||
Bandwidth of the PPDU, as indicated in the trigger frame
|
||||
|
||||
|
||||
<enum 0 U_SIG_BW20> 20 MHz
|
||||
<enum 1 U_SIG_BW40> 40 MHz
|
||||
<enum 2 U_SIG_BW80> 80 MHz
|
||||
<enum 3 U_SIG_BW160> 160 MHz
|
||||
<enum 4 U_SIG_BW320> 320 MHz channelization scheme 1
|
||||
<enum 5 U_SIG_BW320_2> 320 MHz channelization scheme 2
|
||||
|
||||
On RX side, field used by MAC HW
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_TRANSMIT_BW_OFFSET 0x0000000000000000
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_TRANSMIT_BW_LSB 3
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_TRANSMIT_BW_MSB 5
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_TRANSMIT_BW_MASK 0x0000000000000038
|
||||
|
||||
|
||||
/* Description DL_UL_FLAG
|
||||
|
||||
Differentiates between DL and UL transmission
|
||||
|
||||
<enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
|
||||
<enum 1 DL_UL_FLAG_IS_UL>
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_DL_UL_FLAG_OFFSET 0x0000000000000000
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_DL_UL_FLAG_LSB 6
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_DL_UL_FLAG_MSB 6
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_DL_UL_FLAG_MASK 0x0000000000000040
|
||||
|
||||
|
||||
/* Description BSS_COLOR_ID
|
||||
|
||||
BSS color ID
|
||||
|
||||
Field used by MAC HW
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_BSS_COLOR_ID_OFFSET 0x0000000000000000
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_BSS_COLOR_ID_LSB 7
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_BSS_COLOR_ID_MSB 12
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_BSS_COLOR_ID_MASK 0x0000000000001f80
|
||||
|
||||
|
||||
/* Description TXOP_DURATION
|
||||
|
||||
Indicates the remaining time in the current TXOP
|
||||
|
||||
Field used by MAC HW
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_TXOP_DURATION_OFFSET 0x0000000000000000
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_TXOP_DURATION_LSB 13
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_TXOP_DURATION_MSB 19
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_TXOP_DURATION_MASK 0x00000000000fe000
|
||||
|
||||
|
||||
/* Description DISREGARD_0A
|
||||
|
||||
Set to value indicated in the trigger frame
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_DISREGARD_0A_OFFSET 0x0000000000000000
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_DISREGARD_0A_LSB 20
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_DISREGARD_0A_MSB 25
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_DISREGARD_0A_MASK 0x0000000003f00000
|
||||
|
||||
|
||||
/* Description RESERVED_0C
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_RESERVED_0C_OFFSET 0x0000000000000000
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_RESERVED_0C_LSB 26
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_RESERVED_0C_MSB 31
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_RESERVED_0C_MASK 0x00000000fc000000
|
||||
|
||||
|
||||
/* Description EHT_PPDU_SIG_CMN_TYPE
|
||||
|
||||
<enum 3 EHT_PPDU_SIG_rsvd> DO NOT USE
|
||||
<enum 0 EHT_PPDU_SIG_TB_or_DL_OFDMA> Need to look at both
|
||||
EHT-SIG content channels for DL OFDMA (including OFDMA+MU-MIMO)
|
||||
|
||||
<enum 2 EHT_PPDU_SIG_DL_MU_MIMO> Need to look at both EHT-SIG
|
||||
content channels
|
||||
<enum 1 EHT_PPDU_SIG_SU> Need to look at only one EHT-SIG
|
||||
content channel
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_EHT_PPDU_SIG_CMN_TYPE_OFFSET 0x0000000000000000
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_EHT_PPDU_SIG_CMN_TYPE_LSB 32
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_EHT_PPDU_SIG_CMN_TYPE_MSB 33
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_EHT_PPDU_SIG_CMN_TYPE_MASK 0x0000000300000000
|
||||
|
||||
|
||||
/* Description VALIDATE_1A
|
||||
|
||||
Set to value indicated in the trigger frame
|
||||
<legal 1>
|
||||
*/
|
||||
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_VALIDATE_1A_OFFSET 0x0000000000000000
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_VALIDATE_1A_LSB 34
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_VALIDATE_1A_MSB 34
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_VALIDATE_1A_MASK 0x0000000400000000
|
||||
|
||||
|
||||
/* Description SPATIAL_REUSE
|
||||
|
||||
TODO: Placeholder
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_SPATIAL_REUSE_OFFSET 0x0000000000000000
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_SPATIAL_REUSE_LSB 35
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_SPATIAL_REUSE_MSB 42
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_SPATIAL_REUSE_MASK 0x000007f800000000
|
||||
|
||||
|
||||
/* Description DISREGARD_1B
|
||||
|
||||
Set to value indicated in the trigger frame
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_DISREGARD_1B_OFFSET 0x0000000000000000
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_DISREGARD_1B_LSB 43
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_DISREGARD_1B_MSB 47
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_DISREGARD_1B_MASK 0x0000f80000000000
|
||||
|
||||
|
||||
/* Description CRC
|
||||
|
||||
CRC for U-SIG contents
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_CRC_OFFSET 0x0000000000000000
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_CRC_LSB 48
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_CRC_MSB 51
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_CRC_MASK 0x000f000000000000
|
||||
|
||||
|
||||
/* Description TAIL
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_TAIL_OFFSET 0x0000000000000000
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_TAIL_LSB 52
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_TAIL_MSB 57
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_TAIL_MASK 0x03f0000000000000
|
||||
|
||||
|
||||
/* Description RESERVED_1C
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_RESERVED_1C_OFFSET 0x0000000000000000
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_RESERVED_1C_LSB 58
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_RESERVED_1C_MSB 62
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_RESERVED_1C_MASK 0x7c00000000000000
|
||||
|
||||
|
||||
/* Description RX_INTEGRITY_CHECK_PASSED
|
||||
|
||||
TX side: Set to 0
|
||||
RX side: Set to 1 if PHY determines the U-SIG CRC check
|
||||
has passed, else set to 0
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 63
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 63
|
||||
#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x8000000000000000
|
||||
|
||||
|
||||
|
||||
#endif // MACTX_U_SIG_EHT_TB
|
||||
1317
drivers/staging/fw-api/hw/qca5332/mactx_user_desc_common.h
Normal file
1317
drivers/staging/fw-api/hw/qca5332/mactx_user_desc_common.h
Normal file
File diff suppressed because it is too large
Load diff
482
drivers/staging/fw-api/hw/qca5332/mactx_user_desc_per_user.h
Normal file
482
drivers/staging/fw-api/hw/qca5332/mactx_user_desc_per_user.h
Normal file
|
|
@ -0,0 +1,482 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _MACTX_USER_DESC_PER_USER_H_
|
||||
#define _MACTX_USER_DESC_PER_USER_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#define NUM_OF_DWORDS_MACTX_USER_DESC_PER_USER 4
|
||||
|
||||
#define NUM_OF_QWORDS_MACTX_USER_DESC_PER_USER 2
|
||||
|
||||
|
||||
struct mactx_user_desc_per_user {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
uint32_t psdu_length : 24, // [23:0]
|
||||
reserved_0a : 8; // [31:24]
|
||||
uint32_t ru_start_index : 8, // [7:0]
|
||||
ru_size : 4, // [11:8]
|
||||
reserved_1b : 4, // [15:12]
|
||||
ofdma_mu_mimo_enabled : 1, // [16:16]
|
||||
nss : 3, // [19:17]
|
||||
stream_offset : 3, // [22:20]
|
||||
reserved_1c : 1, // [23:23]
|
||||
mcs : 4, // [27:24]
|
||||
dcm : 1, // [28:28]
|
||||
reserved_1d : 3; // [31:29]
|
||||
uint32_t fec_type : 1, // [0:0]
|
||||
reserved_2a : 7, // [7:1]
|
||||
user_bf_type : 2, // [9:8]
|
||||
reserved_2b : 6, // [15:10]
|
||||
drop_user_cbf : 1, // [16:16]
|
||||
reserved_2c : 7, // [23:17]
|
||||
ldpc_extra_symbol : 1, // [24:24]
|
||||
force_extra_symbol : 1, // [25:25]
|
||||
reserved_2d : 6; // [31:26]
|
||||
uint32_t sw_peer_id : 16, // [15:0]
|
||||
per_user_subband_mask : 16; // [31:16]
|
||||
#else
|
||||
uint32_t reserved_0a : 8, // [31:24]
|
||||
psdu_length : 24; // [23:0]
|
||||
uint32_t reserved_1d : 3, // [31:29]
|
||||
dcm : 1, // [28:28]
|
||||
mcs : 4, // [27:24]
|
||||
reserved_1c : 1, // [23:23]
|
||||
stream_offset : 3, // [22:20]
|
||||
nss : 3, // [19:17]
|
||||
ofdma_mu_mimo_enabled : 1, // [16:16]
|
||||
reserved_1b : 4, // [15:12]
|
||||
ru_size : 4, // [11:8]
|
||||
ru_start_index : 8; // [7:0]
|
||||
uint32_t reserved_2d : 6, // [31:26]
|
||||
force_extra_symbol : 1, // [25:25]
|
||||
ldpc_extra_symbol : 1, // [24:24]
|
||||
reserved_2c : 7, // [23:17]
|
||||
drop_user_cbf : 1, // [16:16]
|
||||
reserved_2b : 6, // [15:10]
|
||||
user_bf_type : 2, // [9:8]
|
||||
reserved_2a : 7, // [7:1]
|
||||
fec_type : 1; // [0:0]
|
||||
uint32_t per_user_subband_mask : 16, // [31:16]
|
||||
sw_peer_id : 16; // [15:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description PSDU_LENGTH
|
||||
|
||||
PSDU Length for the User in octets
|
||||
NOTE: This also holds good for .11ba packets
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_USER_DESC_PER_USER_PSDU_LENGTH_OFFSET 0x0000000000000000
|
||||
#define MACTX_USER_DESC_PER_USER_PSDU_LENGTH_LSB 0
|
||||
#define MACTX_USER_DESC_PER_USER_PSDU_LENGTH_MSB 23
|
||||
#define MACTX_USER_DESC_PER_USER_PSDU_LENGTH_MASK 0x0000000000ffffff
|
||||
|
||||
|
||||
/* Description RESERVED_0A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_USER_DESC_PER_USER_RESERVED_0A_OFFSET 0x0000000000000000
|
||||
#define MACTX_USER_DESC_PER_USER_RESERVED_0A_LSB 24
|
||||
#define MACTX_USER_DESC_PER_USER_RESERVED_0A_MSB 31
|
||||
#define MACTX_USER_DESC_PER_USER_RESERVED_0A_MASK 0x00000000ff000000
|
||||
|
||||
|
||||
/* Description RU_START_INDEX
|
||||
|
||||
Field only valid in case of .11ax or .11be OFDMA transmission
|
||||
(=> from MACTX_PHY_DESC, field MU_type == OFDMA)
|
||||
OR
|
||||
11ax SU "Narrow band" transmission.
|
||||
|
||||
RU Number to which User is assigned
|
||||
RU numbering is over the entire BW, starting from 0 and
|
||||
for the different users in increasing frequency order and
|
||||
not primary-secondary order.
|
||||
|
||||
For DL OFDMA transmissions, PDG shall fill this as instructed
|
||||
by SW.
|
||||
|
||||
For UL OFDMA transmissions, the RU number within 80 MHz
|
||||
is available from the RU allocation information in the trigger.
|
||||
For 160 MHz UL OFDMA transmissions, the trigger RU allocation
|
||||
only mentions primary/secondary 80 MHz. PDG needs to convert
|
||||
this to lower/higher 80 MHz.
|
||||
|
||||
If in 'PCU_PPDU_SETUP_START'/'MACTX_PRE_PHY_DESC,' CCA_Subband_channel_bonding_mask
|
||||
bit 0 is mapped to any of bits 4 - 7 of Freq_Subband_channel_bonding_mask,
|
||||
then the primary 80 MHz is the higher 80 MHz and the secondary
|
||||
80 MHz is the lower one.
|
||||
Otherwise (if CCA_Subband_channel_bonding_mask bit 0 is
|
||||
mapped to any of bits 0 - 3 of Freq_Subband_channel_bonding_mask,
|
||||
then the primary 80 MHz is the lower 80 MHz and the secondary
|
||||
80 MHz is the higher one.
|
||||
|
||||
<legal 0-147>
|
||||
*/
|
||||
|
||||
#define MACTX_USER_DESC_PER_USER_RU_START_INDEX_OFFSET 0x0000000000000000
|
||||
#define MACTX_USER_DESC_PER_USER_RU_START_INDEX_LSB 32
|
||||
#define MACTX_USER_DESC_PER_USER_RU_START_INDEX_MSB 39
|
||||
#define MACTX_USER_DESC_PER_USER_RU_START_INDEX_MASK 0x000000ff00000000
|
||||
|
||||
|
||||
/* Description RU_SIZE
|
||||
|
||||
The size of the RU for this user
|
||||
|
||||
In case of HE extended range transmission, e-num 2 (10MHz)
|
||||
or e-num 7 (20MHz) are used.
|
||||
|
||||
In case of trig transmission or OFDMA single user or MU-MIMO
|
||||
single user transmission, if the RU allocated to the user
|
||||
is the full BW (with respect to AP_bw) then the e-num 7
|
||||
is used.
|
||||
For all other cases, e-nums corresponding to the RU size
|
||||
allocated to the user is used.
|
||||
|
||||
In case of EHT duplicate transmissions, this field indicates
|
||||
the width of the actual content before duplication, e.g.
|
||||
a 40 MHz PPDU duplicated to 160 MHz will have the bandwidth
|
||||
fields indicating 160 MHz and this field set to e-num 4
|
||||
(RU_484).
|
||||
|
||||
<enum 0 RU_26>
|
||||
<enum 1 RU_52>
|
||||
<enum 2 RU_106>
|
||||
<enum 3 RU_242>
|
||||
<enum 4 RU_484>
|
||||
<enum 5 RU_996>
|
||||
<enum 6 RU_1992>
|
||||
<enum 7 RU_FULLBW> Set when the RU occupies the full packet
|
||||
bandwidth
|
||||
<enum 8 RU_FULLBW_240> Set when the RU occupies the full
|
||||
packet bandwidth
|
||||
<enum 9 RU_FULLBW_320> Set when the RU occupies the full
|
||||
packet bandwidth
|
||||
<enum 10 RU_MULTI_LARGE> HW will use per-user sub-band-mask
|
||||
to infer the actual RU-size for Multi-large-RU/SU-Puncturing
|
||||
|
||||
<enum 11 RU_78> multi small RU
|
||||
<enum 12 RU_132> multi small RU<legal 0-12>
|
||||
*/
|
||||
|
||||
#define MACTX_USER_DESC_PER_USER_RU_SIZE_OFFSET 0x0000000000000000
|
||||
#define MACTX_USER_DESC_PER_USER_RU_SIZE_LSB 40
|
||||
#define MACTX_USER_DESC_PER_USER_RU_SIZE_MSB 43
|
||||
#define MACTX_USER_DESC_PER_USER_RU_SIZE_MASK 0x00000f0000000000
|
||||
|
||||
|
||||
/* Description RESERVED_1B
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_USER_DESC_PER_USER_RESERVED_1B_OFFSET 0x0000000000000000
|
||||
#define MACTX_USER_DESC_PER_USER_RESERVED_1B_LSB 44
|
||||
#define MACTX_USER_DESC_PER_USER_RESERVED_1B_MSB 47
|
||||
#define MACTX_USER_DESC_PER_USER_RESERVED_1B_MASK 0x0000f00000000000
|
||||
|
||||
|
||||
/* Description OFDMA_MU_MIMO_ENABLED
|
||||
|
||||
Field only valid in case of .11ax or .11be OFDMA transmission
|
||||
(=> from MACTX_PHY_DESC, field MU_type == OFDMA)
|
||||
|
||||
When set, for this user there is MIMO transmission within
|
||||
the RU
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_USER_DESC_PER_USER_OFDMA_MU_MIMO_ENABLED_OFFSET 0x0000000000000000
|
||||
#define MACTX_USER_DESC_PER_USER_OFDMA_MU_MIMO_ENABLED_LSB 48
|
||||
#define MACTX_USER_DESC_PER_USER_OFDMA_MU_MIMO_ENABLED_MSB 48
|
||||
#define MACTX_USER_DESC_PER_USER_OFDMA_MU_MIMO_ENABLED_MASK 0x0001000000000000
|
||||
|
||||
|
||||
/* Description NSS
|
||||
|
||||
Number of Spatial Streams occupied by the User
|
||||
|
||||
<enum 0 1_spatial_stream>Single spatial stream
|
||||
<enum 1 2_spatial_streams>2 spatial streams
|
||||
<enum 2 3_spatial_streams>3 spatial streams
|
||||
<enum 3 4_spatial_streams>4 spatial streams
|
||||
<enum 4 5_spatial_streams>5 spatial streams
|
||||
<enum 5 6_spatial_streams>6 spatial streams
|
||||
<enum 6 7_spatial_streams>7 spatial streams
|
||||
<enum 7 8_spatial_streams>8 spatial streams
|
||||
*/
|
||||
|
||||
#define MACTX_USER_DESC_PER_USER_NSS_OFFSET 0x0000000000000000
|
||||
#define MACTX_USER_DESC_PER_USER_NSS_LSB 49
|
||||
#define MACTX_USER_DESC_PER_USER_NSS_MSB 51
|
||||
#define MACTX_USER_DESC_PER_USER_NSS_MASK 0x000e000000000000
|
||||
|
||||
|
||||
/* Description STREAM_OFFSET
|
||||
|
||||
Field only valid in case of MU-MIMO transmission (=> from
|
||||
MACTX_PHY_DESC, field MU_type == MU-MIMO)
|
||||
OR
|
||||
when field Ofdma_mu_mimo_enabled is set
|
||||
|
||||
Stream Offset from which the User occupies the Streams
|
||||
|
||||
Note MAC:
|
||||
directly from pdg_fes_setup, based on BW
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_USER_DESC_PER_USER_STREAM_OFFSET_OFFSET 0x0000000000000000
|
||||
#define MACTX_USER_DESC_PER_USER_STREAM_OFFSET_LSB 52
|
||||
#define MACTX_USER_DESC_PER_USER_STREAM_OFFSET_MSB 54
|
||||
#define MACTX_USER_DESC_PER_USER_STREAM_OFFSET_MASK 0x0070000000000000
|
||||
|
||||
|
||||
/* Description RESERVED_1C
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_USER_DESC_PER_USER_RESERVED_1C_OFFSET 0x0000000000000000
|
||||
#define MACTX_USER_DESC_PER_USER_RESERVED_1C_LSB 55
|
||||
#define MACTX_USER_DESC_PER_USER_RESERVED_1C_MSB 55
|
||||
#define MACTX_USER_DESC_PER_USER_RESERVED_1C_MASK 0x0080000000000000
|
||||
|
||||
|
||||
/* Description MCS
|
||||
|
||||
Modulation Coding Scheme for the User
|
||||
|
||||
The MCS to be used for the upcoming transmission. It must
|
||||
match the 4-bit MCS value that is sent in the appropriate
|
||||
signal field for the given packet type, except that EHT
|
||||
BPSK with DCM and/or duplicate is encoded as '0.'
|
||||
|
||||
|
||||
For details, refer to the SIG field, related to this pkt_type.
|
||||
|
||||
(Note that this is slightly different then what is on the
|
||||
MAC side defined as "MCS_TYPE". For this reason, the 'legal
|
||||
values' here are NOT defined as MCS_TYPE)
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_USER_DESC_PER_USER_MCS_OFFSET 0x0000000000000000
|
||||
#define MACTX_USER_DESC_PER_USER_MCS_LSB 56
|
||||
#define MACTX_USER_DESC_PER_USER_MCS_MSB 59
|
||||
#define MACTX_USER_DESC_PER_USER_MCS_MASK 0x0f00000000000000
|
||||
|
||||
|
||||
/* Description DCM
|
||||
|
||||
Field only valid in case of 11ax transmission
|
||||
|
||||
Indicates whether dual sub-carrier modulation is applied
|
||||
|
||||
0: No DCM
|
||||
1:DCM
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_USER_DESC_PER_USER_DCM_OFFSET 0x0000000000000000
|
||||
#define MACTX_USER_DESC_PER_USER_DCM_LSB 60
|
||||
#define MACTX_USER_DESC_PER_USER_DCM_MSB 60
|
||||
#define MACTX_USER_DESC_PER_USER_DCM_MASK 0x1000000000000000
|
||||
|
||||
|
||||
/* Description RESERVED_1D
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_USER_DESC_PER_USER_RESERVED_1D_OFFSET 0x0000000000000000
|
||||
#define MACTX_USER_DESC_PER_USER_RESERVED_1D_LSB 61
|
||||
#define MACTX_USER_DESC_PER_USER_RESERVED_1D_MSB 63
|
||||
#define MACTX_USER_DESC_PER_USER_RESERVED_1D_MASK 0xe000000000000000
|
||||
|
||||
|
||||
/* Description FEC_TYPE
|
||||
|
||||
0: BCC
|
||||
1: LDPC
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_USER_DESC_PER_USER_FEC_TYPE_OFFSET 0x0000000000000008
|
||||
#define MACTX_USER_DESC_PER_USER_FEC_TYPE_LSB 0
|
||||
#define MACTX_USER_DESC_PER_USER_FEC_TYPE_MSB 0
|
||||
#define MACTX_USER_DESC_PER_USER_FEC_TYPE_MASK 0x0000000000000001
|
||||
|
||||
|
||||
/* Description RESERVED_2A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_USER_DESC_PER_USER_RESERVED_2A_OFFSET 0x0000000000000008
|
||||
#define MACTX_USER_DESC_PER_USER_RESERVED_2A_LSB 1
|
||||
#define MACTX_USER_DESC_PER_USER_RESERVED_2A_MSB 7
|
||||
#define MACTX_USER_DESC_PER_USER_RESERVED_2A_MASK 0x00000000000000fe
|
||||
|
||||
|
||||
/* Description USER_BF_TYPE
|
||||
|
||||
This field is valid for all packets using multiple antennas
|
||||
because it defines whether the user's tones will be beamformed,
|
||||
spatially spread, both or none of the above.
|
||||
|
||||
<enum 0 USER_NO_BF> Direct mapping from Stream to Chain
|
||||
|
||||
<enum 1 USER_WALSH_ONLY> Enable Walsh mapping only
|
||||
<enum 2 USER_BF_ONLY> Enable Beamforming only
|
||||
<enum 3 USER_WALSH_AND_BF> Enable Walsh and Beamforming
|
||||
|
||||
|
||||
NOTE: USER_NO_BF and USER_BF_ONLY are not allowed if the
|
||||
number of spatial streams (NSS) < the number of Tx chains
|
||||
(NTx).
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_USER_DESC_PER_USER_USER_BF_TYPE_OFFSET 0x0000000000000008
|
||||
#define MACTX_USER_DESC_PER_USER_USER_BF_TYPE_LSB 8
|
||||
#define MACTX_USER_DESC_PER_USER_USER_BF_TYPE_MSB 9
|
||||
#define MACTX_USER_DESC_PER_USER_USER_BF_TYPE_MASK 0x0000000000000300
|
||||
|
||||
|
||||
/* Description RESERVED_2B
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_USER_DESC_PER_USER_RESERVED_2B_OFFSET 0x0000000000000008
|
||||
#define MACTX_USER_DESC_PER_USER_RESERVED_2B_LSB 10
|
||||
#define MACTX_USER_DESC_PER_USER_RESERVED_2B_MSB 15
|
||||
#define MACTX_USER_DESC_PER_USER_RESERVED_2B_MASK 0x000000000000fc00
|
||||
|
||||
|
||||
/* Description DROP_USER_CBF
|
||||
|
||||
This user shall be dropped because of CBF FCS failure or
|
||||
no CBF reception.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_USER_DESC_PER_USER_DROP_USER_CBF_OFFSET 0x0000000000000008
|
||||
#define MACTX_USER_DESC_PER_USER_DROP_USER_CBF_LSB 16
|
||||
#define MACTX_USER_DESC_PER_USER_DROP_USER_CBF_MSB 16
|
||||
#define MACTX_USER_DESC_PER_USER_DROP_USER_CBF_MASK 0x0000000000010000
|
||||
|
||||
|
||||
/* Description RESERVED_2C
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_USER_DESC_PER_USER_RESERVED_2C_OFFSET 0x0000000000000008
|
||||
#define MACTX_USER_DESC_PER_USER_RESERVED_2C_LSB 17
|
||||
#define MACTX_USER_DESC_PER_USER_RESERVED_2C_MSB 23
|
||||
#define MACTX_USER_DESC_PER_USER_RESERVED_2C_MASK 0x0000000000fe0000
|
||||
|
||||
|
||||
/* Description LDPC_EXTRA_SYMBOL
|
||||
|
||||
Set to 1 if the LDPC PPDU encoding process (if an SU PPDU),
|
||||
or at least one LDPC user's PPDU encoding process (if an
|
||||
MU PPDU), results in an extra OFDM symbol (or symbols)
|
||||
as described in 22.3.10.5.4 (LDPC coding) and 22.3.10.5.5
|
||||
(Encoding process for MU PPDUs). Set to 0 otherwise.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_USER_DESC_PER_USER_LDPC_EXTRA_SYMBOL_OFFSET 0x0000000000000008
|
||||
#define MACTX_USER_DESC_PER_USER_LDPC_EXTRA_SYMBOL_LSB 24
|
||||
#define MACTX_USER_DESC_PER_USER_LDPC_EXTRA_SYMBOL_MSB 24
|
||||
#define MACTX_USER_DESC_PER_USER_LDPC_EXTRA_SYMBOL_MASK 0x0000000001000000
|
||||
|
||||
|
||||
/* Description FORCE_EXTRA_SYMBOL
|
||||
|
||||
Set to 1 to force an extra OFDM symbol (or symbols) even
|
||||
if none of the users' PPDU encoding process resuls in an
|
||||
extra OFDM symbol (or symbols).
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_USER_DESC_PER_USER_FORCE_EXTRA_SYMBOL_OFFSET 0x0000000000000008
|
||||
#define MACTX_USER_DESC_PER_USER_FORCE_EXTRA_SYMBOL_LSB 25
|
||||
#define MACTX_USER_DESC_PER_USER_FORCE_EXTRA_SYMBOL_MSB 25
|
||||
#define MACTX_USER_DESC_PER_USER_FORCE_EXTRA_SYMBOL_MASK 0x0000000002000000
|
||||
|
||||
|
||||
/* Description RESERVED_2D
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_USER_DESC_PER_USER_RESERVED_2D_OFFSET 0x0000000000000008
|
||||
#define MACTX_USER_DESC_PER_USER_RESERVED_2D_LSB 26
|
||||
#define MACTX_USER_DESC_PER_USER_RESERVED_2D_MSB 31
|
||||
#define MACTX_USER_DESC_PER_USER_RESERVED_2D_MASK 0x00000000fc000000
|
||||
|
||||
|
||||
/* Description SW_PEER_ID
|
||||
|
||||
When set to 0, SW did not populate this field.
|
||||
|
||||
The SW peer ID for this user
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_USER_DESC_PER_USER_SW_PEER_ID_OFFSET 0x0000000000000008
|
||||
#define MACTX_USER_DESC_PER_USER_SW_PEER_ID_LSB 32
|
||||
#define MACTX_USER_DESC_PER_USER_SW_PEER_ID_MSB 47
|
||||
#define MACTX_USER_DESC_PER_USER_SW_PEER_ID_MASK 0x0000ffff00000000
|
||||
|
||||
|
||||
/* Description PER_USER_SUBBAND_MASK
|
||||
|
||||
This specifies a per-20 MHz subband mask per-user to be
|
||||
used in case of either multi-large-RU or preamble puncturing.
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_USER_DESC_PER_USER_PER_USER_SUBBAND_MASK_OFFSET 0x0000000000000008
|
||||
#define MACTX_USER_DESC_PER_USER_PER_USER_SUBBAND_MASK_LSB 48
|
||||
#define MACTX_USER_DESC_PER_USER_PER_USER_SUBBAND_MASK_MSB 63
|
||||
#define MACTX_USER_DESC_PER_USER_PER_USER_SUBBAND_MASK_MASK 0xffff000000000000
|
||||
|
||||
|
||||
|
||||
#endif // MACTX_USER_DESC_PER_USER
|
||||
370
drivers/staging/fw-api/hw/qca5332/mactx_vht_sig_a.h
Normal file
370
drivers/staging/fw-api/hw/qca5332/mactx_vht_sig_a.h
Normal file
|
|
@ -0,0 +1,370 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _MACTX_VHT_SIG_A_H_
|
||||
#define _MACTX_VHT_SIG_A_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#include "vht_sig_a_info.h"
|
||||
#define NUM_OF_DWORDS_MACTX_VHT_SIG_A 2
|
||||
|
||||
#define NUM_OF_QWORDS_MACTX_VHT_SIG_A 1
|
||||
|
||||
|
||||
struct mactx_vht_sig_a {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
struct vht_sig_a_info mactx_vht_sig_a_info_details;
|
||||
#else
|
||||
struct vht_sig_a_info mactx_vht_sig_a_info_details;
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description MACTX_VHT_SIG_A_INFO_DETAILS
|
||||
|
||||
See detailed description of the STRUCT
|
||||
*/
|
||||
|
||||
|
||||
/* Description BANDWIDTH
|
||||
|
||||
Packet bandwidth
|
||||
|
||||
<enum 0 20_MHZ_11AC>
|
||||
<enum 1 40_MHZ_11AC>
|
||||
<enum 2 80_MHZ_11AC>
|
||||
<enum 3 160_MHZ_11AC>
|
||||
|
||||
<legal 0-3>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_BANDWIDTH_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_BANDWIDTH_LSB 0
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_BANDWIDTH_MSB 1
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_BANDWIDTH_MASK 0x0000000000000003
|
||||
|
||||
|
||||
/* Description VHTA_RESERVED_0
|
||||
|
||||
Reserved. Set to 1 by MAC, PHY should ignore
|
||||
<legal 1>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0_LSB 2
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0_MSB 2
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0_MASK 0x0000000000000004
|
||||
|
||||
|
||||
/* Description STBC
|
||||
|
||||
Space time block coding:
|
||||
<enum 0 stbc_disabled> Indicates STBC is disabled
|
||||
<enum 1 stbc_enabled> Indicates STBC is enabled on
|
||||
all streams
|
||||
<legal 0-1>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_STBC_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_STBC_LSB 3
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_STBC_MSB 3
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_STBC_MASK 0x0000000000000008
|
||||
|
||||
|
||||
/* Description GROUP_ID
|
||||
|
||||
In a SU VHT PPDU, if the PPDU carries MPDU(s) addressed
|
||||
to an AP or to a mesh STA, the Group ID field is set to
|
||||
0, otherwise it is set to 63. In an NDP PPDU the Group
|
||||
ID is set according to IEEE 802.11ac_D1.0 Section 9.30.6
|
||||
(Transmission of a VHT NDP). For a MU-MIMO PPDU the Group
|
||||
ID is set as in 802.11ac_D1.0 Section 22.3.11.3 (Group
|
||||
ID). <legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_GROUP_ID_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_GROUP_ID_LSB 4
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_GROUP_ID_MSB 9
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_GROUP_ID_MASK 0x00000000000003f0
|
||||
|
||||
|
||||
/* Description N_STS
|
||||
|
||||
For MU:
|
||||
3 bits/user with maximum of 4 users (user u uses
|
||||
vht_sig_a[0][10+3u] - vht_sig_a[0][12+3u]), u = 0, 1, 2,
|
||||
3)
|
||||
Set to 0 for 0 space time streams
|
||||
Set to 1 for 1 space time stream
|
||||
Set to 2 for 2 space time streams
|
||||
Set to 3 for 3 space time streams
|
||||
Set to 4 for 4 space time streams (not supported in Wifi
|
||||
3.0)
|
||||
Values 5-7 are reserved
|
||||
In this field, references to user "u" should be interpreted
|
||||
as MU user "u". As described in the previous chapter in
|
||||
this document (see chapter on User number), the MU user
|
||||
value for a given client is defined for each MU group that
|
||||
the client participates in. The MU user number is not related
|
||||
to the internal user number that is used within the BFer.
|
||||
|
||||
|
||||
|
||||
For SU:
|
||||
vht_sig_a[0][12:10]
|
||||
Set to 0 for 1 space time stream
|
||||
Set to 1 for 2 space time streams
|
||||
Set to 2 for 3 space time streams
|
||||
Set to 3 for 4 space time streams
|
||||
Set to 4 for 5 space time streams
|
||||
Set to 5 for 6 space time streams
|
||||
Set to 6 for 7 space time streams
|
||||
Set to 7 for 8 space time streams
|
||||
|
||||
vht_sig_a[0][21:13]
|
||||
Partial AID:
|
||||
Set to the value of the TXVECTOR parameter PARTIAL_AID.
|
||||
Partial AID provides an abbreviated indication of the intended
|
||||
recipient(s) of the frame (see IEEE802.11ac_D1.0 Section
|
||||
9.17a (Partial AID in VHT PPDUs)).
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_N_STS_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_N_STS_LSB 10
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_N_STS_MSB 21
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_N_STS_MASK 0x00000000003ffc00
|
||||
|
||||
|
||||
/* Description TXOP_PS_NOT_ALLOWED
|
||||
|
||||
E_num 0 txop_ps_allowed Not supported: If set to by
|
||||
VHT AP if it allows non-AP VHT STAs in TXOP power save
|
||||
mode to enter Doze state during a TXOP
|
||||
<enum 1 no_txop_ps_allowed> Otherwise
|
||||
<legal 1>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_TXOP_PS_NOT_ALLOWED_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_TXOP_PS_NOT_ALLOWED_LSB 22
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_TXOP_PS_NOT_ALLOWED_MSB 22
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_TXOP_PS_NOT_ALLOWED_MASK 0x0000000000400000
|
||||
|
||||
|
||||
/* Description VHTA_RESERVED_0B
|
||||
|
||||
Reserved: Should be set to 1 by the MAC and ignored by the
|
||||
PHY <legal 1>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0B_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0B_LSB 23
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0B_MSB 23
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0B_MASK 0x0000000000800000
|
||||
|
||||
|
||||
/* Description RESERVED_0
|
||||
|
||||
This field is not part of HT-SIG:
|
||||
Reserved: Should be set to 0 by the MAC and ignored by the
|
||||
PHY <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_RESERVED_0_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_RESERVED_0_LSB 24
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_RESERVED_0_MSB 31
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_RESERVED_0_MASK 0x00000000ff000000
|
||||
|
||||
|
||||
/* Description GI_SETTING
|
||||
|
||||
<enum 0 normal_gi> Indicates short guard interval is
|
||||
not used in the data field
|
||||
<enum 1 short_gi> Indicates short guard interval is
|
||||
used in the data field
|
||||
<enum 3 short_gi_ambiguity> Indicates short guard interval
|
||||
is used in the data field and NSYM mod 10 = 9
|
||||
NSYM is defined in IEEE802.11ac_D1.0 Section 22.4.3 (TXTIME
|
||||
and PSDU_LENGTH calculation).
|
||||
<legal 0,1,3>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_GI_SETTING_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_GI_SETTING_LSB 32
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_GI_SETTING_MSB 33
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_GI_SETTING_MASK 0x0000000300000000
|
||||
|
||||
|
||||
/* Description SU_MU_CODING
|
||||
|
||||
For an SU PPDU, B2 is set to 0 for BCC, 1 for LDPC For an
|
||||
MU PPDU, if the MU[0] NSTS field is nonzero(#6773), then
|
||||
B2 indicates the coding used for user 0; set to 0 for BCC
|
||||
and 1 for LDPC. If the MU[0] NSTS field is 0, then this
|
||||
field is reserved and set to 1
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_SU_MU_CODING_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_SU_MU_CODING_LSB 34
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_SU_MU_CODING_MSB 34
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_SU_MU_CODING_MASK 0x0000000400000000
|
||||
|
||||
|
||||
/* Description LDPC_EXTRA_SYMBOL
|
||||
|
||||
Set to 1 if the LDPC PPDU encoding process (if an SU PPDU),
|
||||
or at least one LDPC user's PPDU encoding process (if an
|
||||
MU PPDU), results in an extra OFDM symbol (or symbols)
|
||||
as described in 22.3.10.5.4 (LDPC coding) and 22.3.10.5.5
|
||||
(Encoding process for MU PPDUs). Set to 0 otherwise.
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_LDPC_EXTRA_SYMBOL_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_LDPC_EXTRA_SYMBOL_LSB 35
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_LDPC_EXTRA_SYMBOL_MSB 35
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_LDPC_EXTRA_SYMBOL_MASK 0x0000000800000000
|
||||
|
||||
|
||||
/* Description MCS
|
||||
|
||||
For SU:
|
||||
Set to 0 for BPSK 1/2
|
||||
Set to 1 for QPSK 1/2
|
||||
Set to 2 for QPSK 3/4
|
||||
Set to 3 for 16-QAM 1/2
|
||||
Set to 4 for 16-QAM 3/4
|
||||
Set to 5 for 64-QAM 2/3
|
||||
Set to 6 for 64-QAM 3/4
|
||||
Set to 7 for 64-QAM 5/6
|
||||
Set to 8 for 256-QAM 3/4
|
||||
Set to 9 for 256-QAM 5/6
|
||||
For MU:
|
||||
If NSTS for user 1 is non-zero, then vht_sig_a[1][4] indicates
|
||||
coding for user 1: set to 0 for BCC, 1 for LDPC.
|
||||
If NSTS for user 1 is set to 0, then vht_sig_a[1][4] is
|
||||
reserved and set to 1.
|
||||
If NSTS for user 2 is non-zero, then vht_sig_a[1][5] indicates
|
||||
coding for user 2: set to 0 for BCC, 1 for LDPC.
|
||||
If NSTS for user 2 is set to 0, then vht_sig_a[1][5] is
|
||||
reserved and set to 1.
|
||||
If NSTS for user 3 is non-zero, then vht_sig_a[1][6] indicates
|
||||
coding for user 3: set to 0 for BCC, 1 for LDPC.
|
||||
If NSTS for user 3 is set to 0, then vht_sig_a[1][6] is
|
||||
reserved and set to 1.
|
||||
vht_sig_a[1][7] is reserved and set to 1
|
||||
<legal 0-15>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_MCS_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_MCS_LSB 36
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_MCS_MSB 39
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_MCS_MASK 0x000000f000000000
|
||||
|
||||
|
||||
/* Description BEAMFORMED
|
||||
|
||||
For SU:
|
||||
Set to 1 if a Beamforming steering matrix is applied to
|
||||
the waveform in an SU transmission as described in IEEE802.11ac_D1.0
|
||||
Section 19.3.11.11.2 (Spatial mapping), set to 0 otherwise.
|
||||
|
||||
For MU:
|
||||
Reserved and set to 1
|
||||
<legal 0-1>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_BEAMFORMED_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_BEAMFORMED_LSB 40
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_BEAMFORMED_MSB 40
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_BEAMFORMED_MASK 0x0000010000000000
|
||||
|
||||
|
||||
/* Description VHTA_RESERVED_1
|
||||
|
||||
Reserved and set to 1. <legal 1>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_1_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_1_LSB 41
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_1_MSB 41
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_1_MASK 0x0000020000000000
|
||||
|
||||
|
||||
/* Description CRC
|
||||
|
||||
CRC calculated as in IEEE802.11ac_D1.0 Section 19.3.9.4.4
|
||||
(CRC calculation for HTSIG) with C7 in vht_sig_a[1][10],
|
||||
etc. <legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_CRC_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_CRC_LSB 42
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_CRC_MSB 49
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_CRC_MASK 0x0003fc0000000000
|
||||
|
||||
|
||||
/* Description TAIL
|
||||
|
||||
Used to terminate the trellis of the convolutional decoder.
|
||||
Set to 0. <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_TAIL_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_TAIL_LSB 50
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_TAIL_MSB 55
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_TAIL_MASK 0x00fc000000000000
|
||||
|
||||
|
||||
/* Description RESERVED_1
|
||||
|
||||
This field is not part of HT-SIG:
|
||||
Reserved: Should be set to 0 by the MAC and ignored by the
|
||||
PHY <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_RESERVED_1_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_RESERVED_1_LSB 56
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_RESERVED_1_MSB 62
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_RESERVED_1_MASK 0x7f00000000000000
|
||||
|
||||
|
||||
/* Description RX_INTEGRITY_CHECK_PASSED
|
||||
|
||||
TX side: Set to 0
|
||||
RX side: Set to 1 if PHY determines the VHT-SIG-A CRC check
|
||||
has passed, else set to 0
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 63
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 63
|
||||
#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x8000000000000000
|
||||
|
||||
|
||||
|
||||
#endif // MACTX_VHT_SIG_A
|
||||
446
drivers/staging/fw-api/hw/qca5332/mactx_vht_sig_b_mu160.h
Normal file
446
drivers/staging/fw-api/hw/qca5332/mactx_vht_sig_b_mu160.h
Normal file
|
|
@ -0,0 +1,446 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _MACTX_VHT_SIG_B_MU160_H_
|
||||
#define _MACTX_VHT_SIG_B_MU160_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#include "vht_sig_b_mu160_info.h"
|
||||
#define NUM_OF_DWORDS_MACTX_VHT_SIG_B_MU160 8
|
||||
|
||||
#define NUM_OF_QWORDS_MACTX_VHT_SIG_B_MU160 4
|
||||
|
||||
|
||||
struct mactx_vht_sig_b_mu160 {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
struct vht_sig_b_mu160_info mactx_vht_sig_b_mu160_info_details;
|
||||
#else
|
||||
struct vht_sig_b_mu160_info mactx_vht_sig_b_mu160_info_details;
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description MACTX_VHT_SIG_B_MU160_INFO_DETAILS
|
||||
|
||||
See detailed description of the STRUCT
|
||||
*/
|
||||
|
||||
|
||||
/* Description LENGTH
|
||||
|
||||
VHT-SIG-B Length (in units of 4 octets) = ceiling (LENGTH/4)
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_LSB 0
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_MSB 18
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_MASK 0x000000000007ffff
|
||||
|
||||
|
||||
/* Description MCS
|
||||
|
||||
Modulation as described in vht_sig_a mcs field <legal 0-11>
|
||||
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_LSB 19
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_MSB 22
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_MASK 0x0000000000780000
|
||||
|
||||
|
||||
/* Description TAIL
|
||||
|
||||
Used to terminate the trellis of the convolutional decoder.
|
||||
|
||||
Set to 0. <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_LSB 23
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_MSB 28
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_MASK 0x000000001f800000
|
||||
|
||||
|
||||
/* Description RESERVED_0
|
||||
|
||||
Not part of VHT-SIG-B.
|
||||
Reserved: Set to 0 and ignored on receive <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_0_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_0_LSB 29
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_0_MSB 31
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_0_MASK 0x00000000e0000000
|
||||
|
||||
|
||||
/* Description LENGTH_COPY_A
|
||||
|
||||
Same as "length". This field is not valid for RX packets
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_A_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_A_LSB 32
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_A_MSB 50
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_A_MASK 0x0007ffff00000000
|
||||
|
||||
|
||||
/* Description MCS_COPY_A
|
||||
|
||||
Same as "mcs". This field is not valid for RX packets <legal
|
||||
0-11>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_A_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_A_LSB 51
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_A_MSB 54
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_A_MASK 0x0078000000000000
|
||||
|
||||
|
||||
/* Description TAIL_COPY_A
|
||||
|
||||
Same as "tail". This field is not valid for RX packets <legal
|
||||
0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_A_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_A_LSB 55
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_A_MSB 60
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_A_MASK 0x1f80000000000000
|
||||
|
||||
|
||||
/* Description RESERVED_1
|
||||
|
||||
Not part of VHT-SIG-B.
|
||||
Reserved: Set to 0 and ignored on receive <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_1_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_1_LSB 61
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_1_MSB 63
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_1_MASK 0xe000000000000000
|
||||
|
||||
|
||||
/* Description LENGTH_COPY_B
|
||||
|
||||
Same as "length". This field is not valid for RX packets. <legal
|
||||
all>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_B_OFFSET 0x0000000000000008
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_B_LSB 0
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_B_MSB 18
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_B_MASK 0x000000000007ffff
|
||||
|
||||
|
||||
/* Description MCS_COPY_B
|
||||
|
||||
Same as "mcs". This field is not valid for RX packets.
|
||||
|
||||
<legal 0-11>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_B_OFFSET 0x0000000000000008
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_B_LSB 19
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_B_MSB 22
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_B_MASK 0x0000000000780000
|
||||
|
||||
|
||||
/* Description TAIL_COPY_B
|
||||
|
||||
Same as "tail". This field is not valid for RX packets.
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_B_OFFSET 0x0000000000000008
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_B_LSB 23
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_B_MSB 28
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_B_MASK 0x000000001f800000
|
||||
|
||||
|
||||
/* Description RESERVED_2
|
||||
|
||||
Not part of VHT-SIG-B.
|
||||
Reserved: Set to 0 and ignored on receive <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_2_OFFSET 0x0000000000000008
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_2_LSB 29
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_2_MSB 31
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_2_MASK 0x00000000e0000000
|
||||
|
||||
|
||||
/* Description LENGTH_COPY_C
|
||||
|
||||
Same as "length". This field is not valid for RX packets. <legal
|
||||
all>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_C_OFFSET 0x0000000000000008
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_C_LSB 32
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_C_MSB 50
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_C_MASK 0x0007ffff00000000
|
||||
|
||||
|
||||
/* Description MCS_COPY_C
|
||||
|
||||
Same as "mcs". This field is not valid for RX packets.
|
||||
|
||||
<legal 0-11>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_C_OFFSET 0x0000000000000008
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_C_LSB 51
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_C_MSB 54
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_C_MASK 0x0078000000000000
|
||||
|
||||
|
||||
/* Description TAIL_COPY_C
|
||||
|
||||
Same as "tail". This field is not valid for RX packets.
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_C_OFFSET 0x0000000000000008
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_C_LSB 55
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_C_MSB 60
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_C_MASK 0x1f80000000000000
|
||||
|
||||
|
||||
/* Description RESERVED_3
|
||||
|
||||
Not part of VHT-SIG-B.
|
||||
Reserved: Set to 0 and ignored on receive <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_3_OFFSET 0x0000000000000008
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_3_LSB 61
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_3_MSB 63
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_3_MASK 0xe000000000000000
|
||||
|
||||
|
||||
/* Description LENGTH_COPY_D
|
||||
|
||||
Same as "length". This field is not valid for RX packets. <legal
|
||||
all>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_D_OFFSET 0x0000000000000010
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_D_LSB 0
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_D_MSB 18
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_D_MASK 0x000000000007ffff
|
||||
|
||||
|
||||
/* Description MCS_COPY_D
|
||||
|
||||
Same as "mcs". This field is not valid for RX packets.
|
||||
|
||||
<legal 0-11>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_D_OFFSET 0x0000000000000010
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_D_LSB 19
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_D_MSB 22
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_D_MASK 0x0000000000780000
|
||||
|
||||
|
||||
/* Description TAIL_COPY_D
|
||||
|
||||
Same as "tail". This field is not valid for RX packets.
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_D_OFFSET 0x0000000000000010
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_D_LSB 23
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_D_MSB 28
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_D_MASK 0x000000001f800000
|
||||
|
||||
|
||||
/* Description RESERVED_4
|
||||
|
||||
Not part of VHT-SIG-B.
|
||||
Reserved: Set to 0 and ignored on receive <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_4_OFFSET 0x0000000000000010
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_4_LSB 29
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_4_MSB 31
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_4_MASK 0x00000000e0000000
|
||||
|
||||
|
||||
/* Description LENGTH_COPY_E
|
||||
|
||||
Same as "length". This field is not valid for RX packets. <legal
|
||||
all>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_E_OFFSET 0x0000000000000010
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_E_LSB 32
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_E_MSB 50
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_E_MASK 0x0007ffff00000000
|
||||
|
||||
|
||||
/* Description MCS_COPY_E
|
||||
|
||||
Same as "mcs". This field is not valid for RX packets.
|
||||
|
||||
<legal 0-11>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_E_OFFSET 0x0000000000000010
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_E_LSB 51
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_E_MSB 54
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_E_MASK 0x0078000000000000
|
||||
|
||||
|
||||
/* Description TAIL_COPY_E
|
||||
|
||||
Same as "tail". This field is not valid for RX packets.
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_E_OFFSET 0x0000000000000010
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_E_LSB 55
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_E_MSB 60
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_E_MASK 0x1f80000000000000
|
||||
|
||||
|
||||
/* Description RESERVED_5
|
||||
|
||||
Not part of VHT-SIG-B.
|
||||
Reserved: Set to 0 and ignored on receive <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_5_OFFSET 0x0000000000000010
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_5_LSB 61
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_5_MSB 63
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_5_MASK 0xe000000000000000
|
||||
|
||||
|
||||
/* Description LENGTH_COPY_F
|
||||
|
||||
Same as "length". This field is not valid for RX packets. <legal
|
||||
all>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_F_OFFSET 0x0000000000000018
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_F_LSB 0
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_F_MSB 18
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_F_MASK 0x000000000007ffff
|
||||
|
||||
|
||||
/* Description MCS_COPY_F
|
||||
|
||||
Same as "mcs". This field is not valid for RX packets.
|
||||
|
||||
<legal 0-11>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_F_OFFSET 0x0000000000000018
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_F_LSB 19
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_F_MSB 22
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_F_MASK 0x0000000000780000
|
||||
|
||||
|
||||
/* Description TAIL_COPY_F
|
||||
|
||||
Same as "tail". This field is not valid for RX packets.
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_F_OFFSET 0x0000000000000018
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_F_LSB 23
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_F_MSB 28
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_F_MASK 0x000000001f800000
|
||||
|
||||
|
||||
/* Description MU_USER_NUMBER
|
||||
|
||||
Not part of VHT-SIG-B.
|
||||
Mapping from user number (BFer hardware specific) to mu_user_number.
|
||||
The reader is directed to the previous chapter (User Number)
|
||||
for a definition of the terms user and mu_user. <legal
|
||||
0-3>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MU_USER_NUMBER_OFFSET 0x0000000000000018
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MU_USER_NUMBER_LSB 29
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MU_USER_NUMBER_MSB 31
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MU_USER_NUMBER_MASK 0x00000000e0000000
|
||||
|
||||
|
||||
/* Description LENGTH_COPY_G
|
||||
|
||||
Same as "length". This field is not valid for RX packets. <legal
|
||||
all>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_G_OFFSET 0x0000000000000018
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_G_LSB 32
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_G_MSB 50
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_G_MASK 0x0007ffff00000000
|
||||
|
||||
|
||||
/* Description MCS_COPY_G
|
||||
|
||||
Same as "mcs". This field is not valid for RX packets.
|
||||
|
||||
<legal 0-11>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_G_OFFSET 0x0000000000000018
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_G_LSB 51
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_G_MSB 54
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_G_MASK 0x0078000000000000
|
||||
|
||||
|
||||
/* Description TAIL_COPY_G
|
||||
|
||||
Same as "tail". This field is not valid for RX packets.
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_G_OFFSET 0x0000000000000018
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_G_LSB 55
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_G_MSB 60
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_G_MASK 0x1f80000000000000
|
||||
|
||||
|
||||
/* Description RESERVED_7
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_7_OFFSET 0x0000000000000018
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_7_LSB 61
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_7_MSB 63
|
||||
#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_7_MASK 0xe000000000000000
|
||||
|
||||
|
||||
|
||||
#endif // MACTX_VHT_SIG_B_MU160
|
||||
132
drivers/staging/fw-api/hw/qca5332/mactx_vht_sig_b_mu20.h
Normal file
132
drivers/staging/fw-api/hw/qca5332/mactx_vht_sig_b_mu20.h
Normal file
|
|
@ -0,0 +1,132 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _MACTX_VHT_SIG_B_MU20_H_
|
||||
#define _MACTX_VHT_SIG_B_MU20_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#include "vht_sig_b_mu20_info.h"
|
||||
#define NUM_OF_DWORDS_MACTX_VHT_SIG_B_MU20 2
|
||||
|
||||
#define NUM_OF_QWORDS_MACTX_VHT_SIG_B_MU20 1
|
||||
|
||||
|
||||
struct mactx_vht_sig_b_mu20 {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
struct vht_sig_b_mu20_info mactx_vht_sig_b_mu20_info_details;
|
||||
uint32_t tlv64_padding : 32; // [31:0]
|
||||
#else
|
||||
struct vht_sig_b_mu20_info mactx_vht_sig_b_mu20_info_details;
|
||||
uint32_t tlv64_padding : 32; // [31:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description MACTX_VHT_SIG_B_MU20_INFO_DETAILS
|
||||
|
||||
See detailed description of the STRUCT
|
||||
*/
|
||||
|
||||
|
||||
/* Description LENGTH
|
||||
|
||||
VHT-SIG-B Length (in units of 4 octets) = ceiling (LENGTH/4)
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU20_MACTX_VHT_SIG_B_MU20_INFO_DETAILS_LENGTH_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_MU20_MACTX_VHT_SIG_B_MU20_INFO_DETAILS_LENGTH_LSB 0
|
||||
#define MACTX_VHT_SIG_B_MU20_MACTX_VHT_SIG_B_MU20_INFO_DETAILS_LENGTH_MSB 15
|
||||
#define MACTX_VHT_SIG_B_MU20_MACTX_VHT_SIG_B_MU20_INFO_DETAILS_LENGTH_MASK 0x000000000000ffff
|
||||
|
||||
|
||||
/* Description MCS
|
||||
|
||||
Modulation as described in vht_sig_a mcs field
|
||||
<legal 0-11>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU20_MACTX_VHT_SIG_B_MU20_INFO_DETAILS_MCS_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_MU20_MACTX_VHT_SIG_B_MU20_INFO_DETAILS_MCS_LSB 16
|
||||
#define MACTX_VHT_SIG_B_MU20_MACTX_VHT_SIG_B_MU20_INFO_DETAILS_MCS_MSB 19
|
||||
#define MACTX_VHT_SIG_B_MU20_MACTX_VHT_SIG_B_MU20_INFO_DETAILS_MCS_MASK 0x00000000000f0000
|
||||
|
||||
|
||||
/* Description TAIL
|
||||
|
||||
Used to terminate the trellis of the convolutional decoder.
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU20_MACTX_VHT_SIG_B_MU20_INFO_DETAILS_TAIL_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_MU20_MACTX_VHT_SIG_B_MU20_INFO_DETAILS_TAIL_LSB 20
|
||||
#define MACTX_VHT_SIG_B_MU20_MACTX_VHT_SIG_B_MU20_INFO_DETAILS_TAIL_MSB 25
|
||||
#define MACTX_VHT_SIG_B_MU20_MACTX_VHT_SIG_B_MU20_INFO_DETAILS_TAIL_MASK 0x0000000003f00000
|
||||
|
||||
|
||||
/* Description MU_USER_NUMBER
|
||||
|
||||
Not part of VHT-SIG-B.
|
||||
Mapping from user number (BFer hardware specific) to mu_user_number.
|
||||
The reader is directed to the previous chapter (User Number)
|
||||
for a definition of the terms user and mu_user.
|
||||
<legal 0-3>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU20_MACTX_VHT_SIG_B_MU20_INFO_DETAILS_MU_USER_NUMBER_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_MU20_MACTX_VHT_SIG_B_MU20_INFO_DETAILS_MU_USER_NUMBER_LSB 26
|
||||
#define MACTX_VHT_SIG_B_MU20_MACTX_VHT_SIG_B_MU20_INFO_DETAILS_MU_USER_NUMBER_MSB 28
|
||||
#define MACTX_VHT_SIG_B_MU20_MACTX_VHT_SIG_B_MU20_INFO_DETAILS_MU_USER_NUMBER_MASK 0x000000001c000000
|
||||
|
||||
|
||||
/* Description RESERVED_0
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU20_MACTX_VHT_SIG_B_MU20_INFO_DETAILS_RESERVED_0_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_MU20_MACTX_VHT_SIG_B_MU20_INFO_DETAILS_RESERVED_0_LSB 29
|
||||
#define MACTX_VHT_SIG_B_MU20_MACTX_VHT_SIG_B_MU20_INFO_DETAILS_RESERVED_0_MSB 31
|
||||
#define MACTX_VHT_SIG_B_MU20_MACTX_VHT_SIG_B_MU20_INFO_DETAILS_RESERVED_0_MASK 0x00000000e0000000
|
||||
|
||||
|
||||
/* Description TLV64_PADDING
|
||||
|
||||
Automatic DWORD padding inserted while converting TLV32
|
||||
to TLV64 for 64 bit ARCH
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU20_TLV64_PADDING_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_MU20_TLV64_PADDING_LSB 32
|
||||
#define MACTX_VHT_SIG_B_MU20_TLV64_PADDING_MSB 63
|
||||
#define MACTX_VHT_SIG_B_MU20_TLV64_PADDING_MASK 0xffffffff00000000
|
||||
|
||||
|
||||
|
||||
#endif // MACTX_VHT_SIG_B_MU20
|
||||
165
drivers/staging/fw-api/hw/qca5332/mactx_vht_sig_b_mu40.h
Normal file
165
drivers/staging/fw-api/hw/qca5332/mactx_vht_sig_b_mu40.h
Normal file
|
|
@ -0,0 +1,165 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _MACTX_VHT_SIG_B_MU40_H_
|
||||
#define _MACTX_VHT_SIG_B_MU40_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#include "vht_sig_b_mu40_info.h"
|
||||
#define NUM_OF_DWORDS_MACTX_VHT_SIG_B_MU40 2
|
||||
|
||||
#define NUM_OF_QWORDS_MACTX_VHT_SIG_B_MU40 1
|
||||
|
||||
|
||||
struct mactx_vht_sig_b_mu40 {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
struct vht_sig_b_mu40_info mactx_vht_sig_b_mu40_info_details;
|
||||
#else
|
||||
struct vht_sig_b_mu40_info mactx_vht_sig_b_mu40_info_details;
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description MACTX_VHT_SIG_B_MU40_INFO_DETAILS
|
||||
|
||||
See detailed description of the STRUCT
|
||||
*/
|
||||
|
||||
|
||||
/* Description LENGTH
|
||||
|
||||
VHT-SIG-B Length (in units of 4 octets) = ceiling (LENGTH/4) <legal
|
||||
all>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_LENGTH_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_LENGTH_LSB 0
|
||||
#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_LENGTH_MSB 16
|
||||
#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_LENGTH_MASK 0x000000000001ffff
|
||||
|
||||
|
||||
/* Description MCS
|
||||
|
||||
Modulation as described in vht_sig_a mcs field
|
||||
<legal 0-11>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_MCS_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_MCS_LSB 17
|
||||
#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_MCS_MSB 20
|
||||
#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_MCS_MASK 0x00000000001e0000
|
||||
|
||||
|
||||
/* Description TAIL
|
||||
|
||||
Used to terminate the trellis of the convolutional decoder.
|
||||
|
||||
Set to 0.
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_TAIL_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_TAIL_LSB 21
|
||||
#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_TAIL_MSB 26
|
||||
#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_TAIL_MASK 0x0000000007e00000
|
||||
|
||||
|
||||
/* Description RESERVED_0
|
||||
|
||||
Not part of VHT-SIG-B.
|
||||
Reserved: Set to 0 and ignored on receive <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_RESERVED_0_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_RESERVED_0_LSB 27
|
||||
#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_RESERVED_0_MSB 28
|
||||
#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_RESERVED_0_MASK 0x0000000018000000
|
||||
|
||||
|
||||
/* Description MU_USER_NUMBER
|
||||
|
||||
Not part of VHT-SIG-B.
|
||||
Mapping from user number (BFer hardware specific) to mu_user_number.
|
||||
The reader is directed to the previous chapter (User Number)
|
||||
for a definition of the terms user and mu_user. <legal
|
||||
0-3>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_MU_USER_NUMBER_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_MU_USER_NUMBER_LSB 29
|
||||
#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_MU_USER_NUMBER_MSB 31
|
||||
#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_MU_USER_NUMBER_MASK 0x00000000e0000000
|
||||
|
||||
|
||||
/* Description LENGTH_COPY
|
||||
|
||||
Same as "length". This field is not valid for RX packets. <legal
|
||||
all>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_LENGTH_COPY_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_LENGTH_COPY_LSB 32
|
||||
#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_LENGTH_COPY_MSB 48
|
||||
#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_LENGTH_COPY_MASK 0x0001ffff00000000
|
||||
|
||||
|
||||
/* Description MCS_COPY
|
||||
|
||||
Same as "mcs". This field is not valid for RX packets. <legal
|
||||
0-11>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_MCS_COPY_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_MCS_COPY_LSB 49
|
||||
#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_MCS_COPY_MSB 52
|
||||
#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_MCS_COPY_MASK 0x001e000000000000
|
||||
|
||||
|
||||
/* Description TAIL_COPY
|
||||
|
||||
Same as "tail". This field is not valid for RX packets.
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_TAIL_COPY_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_TAIL_COPY_LSB 53
|
||||
#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_TAIL_COPY_MSB 58
|
||||
#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_TAIL_COPY_MASK 0x07e0000000000000
|
||||
|
||||
|
||||
/* Description RESERVED_1
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_RESERVED_1_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_RESERVED_1_LSB 59
|
||||
#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_RESERVED_1_MSB 63
|
||||
#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_RESERVED_1_MASK 0xf800000000000000
|
||||
|
||||
|
||||
|
||||
#endif // MACTX_VHT_SIG_B_MU40
|
||||
250
drivers/staging/fw-api/hw/qca5332/mactx_vht_sig_b_mu80.h
Normal file
250
drivers/staging/fw-api/hw/qca5332/mactx_vht_sig_b_mu80.h
Normal file
|
|
@ -0,0 +1,250 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _MACTX_VHT_SIG_B_MU80_H_
|
||||
#define _MACTX_VHT_SIG_B_MU80_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#include "vht_sig_b_mu80_info.h"
|
||||
#define NUM_OF_DWORDS_MACTX_VHT_SIG_B_MU80 4
|
||||
|
||||
#define NUM_OF_QWORDS_MACTX_VHT_SIG_B_MU80 2
|
||||
|
||||
|
||||
struct mactx_vht_sig_b_mu80 {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
struct vht_sig_b_mu80_info mactx_vht_sig_b_mu80_info_details;
|
||||
#else
|
||||
struct vht_sig_b_mu80_info mactx_vht_sig_b_mu80_info_details;
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description MACTX_VHT_SIG_B_MU80_INFO_DETAILS
|
||||
|
||||
See detailed description of the STRUCT
|
||||
*/
|
||||
|
||||
|
||||
/* Description LENGTH
|
||||
|
||||
VHT-SIG-B Length (in units of 4 octets) = ceiling (LENGTH/4)
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_LENGTH_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_LENGTH_LSB 0
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_LENGTH_MSB 18
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_LENGTH_MASK 0x000000000007ffff
|
||||
|
||||
|
||||
/* Description MCS
|
||||
|
||||
Modulation as described in vht_sig_a mcs field <legal 0-11>
|
||||
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_MCS_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_MCS_LSB 19
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_MCS_MSB 22
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_MCS_MASK 0x0000000000780000
|
||||
|
||||
|
||||
/* Description TAIL
|
||||
|
||||
Used to terminate the trellis of the convolutional decoder.
|
||||
|
||||
Set to 0. <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_TAIL_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_TAIL_LSB 23
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_TAIL_MSB 28
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_TAIL_MASK 0x000000001f800000
|
||||
|
||||
|
||||
/* Description RESERVED_0
|
||||
|
||||
Not part of VHT-SIG-B.
|
||||
Reserved: Set to 0 and ignored on receive <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_RESERVED_0_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_RESERVED_0_LSB 29
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_RESERVED_0_MSB 31
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_RESERVED_0_MASK 0x00000000e0000000
|
||||
|
||||
|
||||
/* Description LENGTH_COPY_A
|
||||
|
||||
Same as "length". This field is not valid for RX packets
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_LENGTH_COPY_A_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_LENGTH_COPY_A_LSB 32
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_LENGTH_COPY_A_MSB 50
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_LENGTH_COPY_A_MASK 0x0007ffff00000000
|
||||
|
||||
|
||||
/* Description MCS_COPY_A
|
||||
|
||||
Same as "mcs". This field is not valid for RX packets <legal
|
||||
0-11>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_MCS_COPY_A_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_MCS_COPY_A_LSB 51
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_MCS_COPY_A_MSB 54
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_MCS_COPY_A_MASK 0x0078000000000000
|
||||
|
||||
|
||||
/* Description TAIL_COPY_A
|
||||
|
||||
Same as "tail". This field is not valid for RX packets <legal
|
||||
0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_TAIL_COPY_A_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_TAIL_COPY_A_LSB 55
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_TAIL_COPY_A_MSB 60
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_TAIL_COPY_A_MASK 0x1f80000000000000
|
||||
|
||||
|
||||
/* Description RESERVED_1
|
||||
|
||||
Not part of VHT-SIG-B.
|
||||
Reserved: Set to 0 and ignored on receive <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_RESERVED_1_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_RESERVED_1_LSB 61
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_RESERVED_1_MSB 63
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_RESERVED_1_MASK 0xe000000000000000
|
||||
|
||||
|
||||
/* Description LENGTH_COPY_B
|
||||
|
||||
Same as "length". This field is not valid for RX packets. <legal
|
||||
all>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_LENGTH_COPY_B_OFFSET 0x0000000000000008
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_LENGTH_COPY_B_LSB 0
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_LENGTH_COPY_B_MSB 18
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_LENGTH_COPY_B_MASK 0x000000000007ffff
|
||||
|
||||
|
||||
/* Description MCS_COPY_B
|
||||
|
||||
Same as "mcs". This field is not valid for RX packets.
|
||||
|
||||
<legal 0-11>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_MCS_COPY_B_OFFSET 0x0000000000000008
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_MCS_COPY_B_LSB 19
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_MCS_COPY_B_MSB 22
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_MCS_COPY_B_MASK 0x0000000000780000
|
||||
|
||||
|
||||
/* Description TAIL_COPY_B
|
||||
|
||||
Same as "tail". This field is not valid for RX packets.
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_TAIL_COPY_B_OFFSET 0x0000000000000008
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_TAIL_COPY_B_LSB 23
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_TAIL_COPY_B_MSB 28
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_TAIL_COPY_B_MASK 0x000000001f800000
|
||||
|
||||
|
||||
/* Description MU_USER_NUMBER
|
||||
|
||||
Not part of VHT-SIG-B.
|
||||
Mapping from user number (BFer hardware specific) to mu_user_number.
|
||||
The reader is directed to the previous chapter (User Number)
|
||||
for a definition of the terms user and mu_user. <legal
|
||||
0-3>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_MU_USER_NUMBER_OFFSET 0x0000000000000008
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_MU_USER_NUMBER_LSB 29
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_MU_USER_NUMBER_MSB 31
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_MU_USER_NUMBER_MASK 0x00000000e0000000
|
||||
|
||||
|
||||
/* Description LENGTH_COPY_C
|
||||
|
||||
Same as "length". This field is not valid for RX packets. <legal
|
||||
all>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_LENGTH_COPY_C_OFFSET 0x0000000000000008
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_LENGTH_COPY_C_LSB 32
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_LENGTH_COPY_C_MSB 50
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_LENGTH_COPY_C_MASK 0x0007ffff00000000
|
||||
|
||||
|
||||
/* Description MCS_COPY_C
|
||||
|
||||
Same as "mcs". This field is not valid for RX packets.
|
||||
|
||||
<legal 0-11>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_MCS_COPY_C_OFFSET 0x0000000000000008
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_MCS_COPY_C_LSB 51
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_MCS_COPY_C_MSB 54
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_MCS_COPY_C_MASK 0x0078000000000000
|
||||
|
||||
|
||||
/* Description TAIL_COPY_C
|
||||
|
||||
Same as "tail". This field is not valid for RX packets.
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_TAIL_COPY_C_OFFSET 0x0000000000000008
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_TAIL_COPY_C_LSB 55
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_TAIL_COPY_C_MSB 60
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_TAIL_COPY_C_MASK 0x1f80000000000000
|
||||
|
||||
|
||||
/* Description RESERVED_3
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_RESERVED_3_OFFSET 0x0000000000000008
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_RESERVED_3_LSB 61
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_RESERVED_3_MSB 63
|
||||
#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_RESERVED_3_MASK 0xe000000000000000
|
||||
|
||||
|
||||
|
||||
#endif // MACTX_VHT_SIG_B_MU80
|
||||
515
drivers/staging/fw-api/hw/qca5332/mactx_vht_sig_b_su160.h
Normal file
515
drivers/staging/fw-api/hw/qca5332/mactx_vht_sig_b_su160.h
Normal file
|
|
@ -0,0 +1,515 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _MACTX_VHT_SIG_B_SU160_H_
|
||||
#define _MACTX_VHT_SIG_B_SU160_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#include "vht_sig_b_su160_info.h"
|
||||
#define NUM_OF_DWORDS_MACTX_VHT_SIG_B_SU160 8
|
||||
|
||||
#define NUM_OF_QWORDS_MACTX_VHT_SIG_B_SU160 4
|
||||
|
||||
|
||||
struct mactx_vht_sig_b_su160 {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
struct vht_sig_b_su160_info mactx_vht_sig_b_su160_info_details;
|
||||
#else
|
||||
struct vht_sig_b_su160_info mactx_vht_sig_b_su160_info_details;
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description MACTX_VHT_SIG_B_SU160_INFO_DETAILS
|
||||
|
||||
See detailed description of the STRUCT
|
||||
*/
|
||||
|
||||
|
||||
/* Description LENGTH
|
||||
|
||||
VHT-SIG-B Length (in units of 4 octets) = ceiling (LENGTH/4)
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_LSB 0
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_MSB 20
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_MASK 0x00000000001fffff
|
||||
|
||||
|
||||
/* Description VHTB_RESERVED
|
||||
|
||||
Reserved: Set to all ones for non-NDP frames and ignored
|
||||
on receive <legal 1,3>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_LSB 21
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_MSB 22
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_MASK 0x0000000000600000
|
||||
|
||||
|
||||
/* Description TAIL
|
||||
|
||||
Used to terminate the trellis of the convolutional decoder.
|
||||
|
||||
Set to 0. <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_LSB 23
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_MSB 28
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_MASK 0x000000001f800000
|
||||
|
||||
|
||||
/* Description RESERVED_0
|
||||
|
||||
Not part of VHT-SIG-B.
|
||||
Reserved: Set to 0 and ignored on receive <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_0_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_0_LSB 29
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_0_MSB 30
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_0_MASK 0x0000000060000000
|
||||
|
||||
|
||||
/* Description RX_NDP
|
||||
|
||||
Not part of VHT-SIG-B.
|
||||
Used to identify received NDP frame
|
||||
<legal 0,1>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_LSB 31
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_MSB 31
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_MASK 0x0000000080000000
|
||||
|
||||
|
||||
/* Description LENGTH_COPY_A
|
||||
|
||||
Same as "length" <legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_A_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_A_LSB 32
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_A_MSB 52
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_A_MASK 0x001fffff00000000
|
||||
|
||||
|
||||
/* Description VHTB_RESERVED_COPY_A
|
||||
|
||||
Same as "vhtb_reserved" <legal 1,3>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_A_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_A_LSB 53
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_A_MSB 54
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_A_MASK 0x0060000000000000
|
||||
|
||||
|
||||
/* Description TAIL_COPY_A
|
||||
|
||||
Same as "tail" <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_A_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_A_LSB 55
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_A_MSB 60
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_A_MASK 0x1f80000000000000
|
||||
|
||||
|
||||
/* Description RESERVED_1
|
||||
|
||||
Reserved: Set to 0 and ignored on receive <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_1_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_1_LSB 61
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_1_MSB 62
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_1_MASK 0x6000000000000000
|
||||
|
||||
|
||||
/* Description RX_NDP_COPY_A
|
||||
|
||||
Not part of VHT-SIG-B.
|
||||
Used to identify received NDP frame
|
||||
<legal 0,1>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_A_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_A_LSB 63
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_A_MSB 63
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_A_MASK 0x8000000000000000
|
||||
|
||||
|
||||
/* Description LENGTH_COPY_B
|
||||
|
||||
Same as "length" <legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_B_OFFSET 0x0000000000000008
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_B_LSB 0
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_B_MSB 20
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_B_MASK 0x00000000001fffff
|
||||
|
||||
|
||||
/* Description VHTB_RESERVED_COPY_B
|
||||
|
||||
Same as "vhtb_reserved" <legal 1,3>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_B_OFFSET 0x0000000000000008
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_B_LSB 21
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_B_MSB 22
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_B_MASK 0x0000000000600000
|
||||
|
||||
|
||||
/* Description TAIL_COPY_B
|
||||
|
||||
Same as "tail" <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_B_OFFSET 0x0000000000000008
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_B_LSB 23
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_B_MSB 28
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_B_MASK 0x000000001f800000
|
||||
|
||||
|
||||
/* Description RESERVED_2
|
||||
|
||||
Reserved: Set to 0 and ignored on receive <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_2_OFFSET 0x0000000000000008
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_2_LSB 29
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_2_MSB 30
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_2_MASK 0x0000000060000000
|
||||
|
||||
|
||||
/* Description RX_NDP_COPY_B
|
||||
|
||||
Not part of VHT-SIG-B.
|
||||
Used to identify received NDP frame
|
||||
<legal 0,1>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_B_OFFSET 0x0000000000000008
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_B_LSB 31
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_B_MSB 31
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_B_MASK 0x0000000080000000
|
||||
|
||||
|
||||
/* Description LENGTH_COPY_C
|
||||
|
||||
Same as "length" <legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_C_OFFSET 0x0000000000000008
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_C_LSB 32
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_C_MSB 52
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_C_MASK 0x001fffff00000000
|
||||
|
||||
|
||||
/* Description VHTB_RESERVED_COPY_C
|
||||
|
||||
Same as "vhtb_reserved" <legal 1,3>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_C_OFFSET 0x0000000000000008
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_C_LSB 53
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_C_MSB 54
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_C_MASK 0x0060000000000000
|
||||
|
||||
|
||||
/* Description TAIL_COPY_C
|
||||
|
||||
Same as "tail" <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_C_OFFSET 0x0000000000000008
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_C_LSB 55
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_C_MSB 60
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_C_MASK 0x1f80000000000000
|
||||
|
||||
|
||||
/* Description RESERVED_3
|
||||
|
||||
Reserved: Set to 0 and ignored on receive <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_3_OFFSET 0x0000000000000008
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_3_LSB 61
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_3_MSB 62
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_3_MASK 0x6000000000000000
|
||||
|
||||
|
||||
/* Description RX_NDP_COPY_C
|
||||
|
||||
Not part of VHT-SIG-B.
|
||||
Used to identify received NDP frame
|
||||
<legal 0,1>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_C_OFFSET 0x0000000000000008
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_C_LSB 63
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_C_MSB 63
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_C_MASK 0x8000000000000000
|
||||
|
||||
|
||||
/* Description LENGTH_COPY_D
|
||||
|
||||
Same as "length" <legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_D_OFFSET 0x0000000000000010
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_D_LSB 0
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_D_MSB 20
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_D_MASK 0x00000000001fffff
|
||||
|
||||
|
||||
/* Description VHTB_RESERVED_COPY_D
|
||||
|
||||
Same as "vhtb_reserved" <legal 1,3>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_D_OFFSET 0x0000000000000010
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_D_LSB 21
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_D_MSB 22
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_D_MASK 0x0000000000600000
|
||||
|
||||
|
||||
/* Description TAIL_COPY_D
|
||||
|
||||
Same as "tail" <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_D_OFFSET 0x0000000000000010
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_D_LSB 23
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_D_MSB 28
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_D_MASK 0x000000001f800000
|
||||
|
||||
|
||||
/* Description RESERVED_4
|
||||
|
||||
Reserved: Set to 0 and ignored on receive <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_4_OFFSET 0x0000000000000010
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_4_LSB 29
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_4_MSB 30
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_4_MASK 0x0000000060000000
|
||||
|
||||
|
||||
/* Description RX_NDP_COPY_D
|
||||
|
||||
Not part of VHT-SIG-B.
|
||||
Used to identify received NDP frame
|
||||
<legal 0,1>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_D_OFFSET 0x0000000000000010
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_D_LSB 31
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_D_MSB 31
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_D_MASK 0x0000000080000000
|
||||
|
||||
|
||||
/* Description LENGTH_COPY_E
|
||||
|
||||
Same as "length" <legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_E_OFFSET 0x0000000000000010
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_E_LSB 32
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_E_MSB 52
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_E_MASK 0x001fffff00000000
|
||||
|
||||
|
||||
/* Description VHTB_RESERVED_COPY_E
|
||||
|
||||
Same as "vhtb_reserved" <legal 1,3>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_E_OFFSET 0x0000000000000010
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_E_LSB 53
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_E_MSB 54
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_E_MASK 0x0060000000000000
|
||||
|
||||
|
||||
/* Description TAIL_COPY_E
|
||||
|
||||
Same as "tail" <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_E_OFFSET 0x0000000000000010
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_E_LSB 55
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_E_MSB 60
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_E_MASK 0x1f80000000000000
|
||||
|
||||
|
||||
/* Description RESERVED_5
|
||||
|
||||
Reserved: Set to 0 and ignored on receive <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_5_OFFSET 0x0000000000000010
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_5_LSB 61
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_5_MSB 62
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_5_MASK 0x6000000000000000
|
||||
|
||||
|
||||
/* Description RX_NDP_COPY_E
|
||||
|
||||
Not part of VHT-SIG-B.
|
||||
Used to identify received NDP frame
|
||||
<legal 0,1>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_E_OFFSET 0x0000000000000010
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_E_LSB 63
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_E_MSB 63
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_E_MASK 0x8000000000000000
|
||||
|
||||
|
||||
/* Description LENGTH_COPY_F
|
||||
|
||||
Same as "length" <legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_F_OFFSET 0x0000000000000018
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_F_LSB 0
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_F_MSB 20
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_F_MASK 0x00000000001fffff
|
||||
|
||||
|
||||
/* Description VHTB_RESERVED_COPY_F
|
||||
|
||||
Same as "vhtb_reserved" <legal 1,3>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_F_OFFSET 0x0000000000000018
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_F_LSB 21
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_F_MSB 22
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_F_MASK 0x0000000000600000
|
||||
|
||||
|
||||
/* Description TAIL_COPY_F
|
||||
|
||||
Same as "tail" <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_F_OFFSET 0x0000000000000018
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_F_LSB 23
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_F_MSB 28
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_F_MASK 0x000000001f800000
|
||||
|
||||
|
||||
/* Description RESERVED_6
|
||||
|
||||
Reserved: Set to 0 and ignored on receive <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_6_OFFSET 0x0000000000000018
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_6_LSB 29
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_6_MSB 30
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_6_MASK 0x0000000060000000
|
||||
|
||||
|
||||
/* Description RX_NDP_COPY_F
|
||||
|
||||
Not part of VHT-SIG-B.
|
||||
Used to identify received NDP frame
|
||||
<legal 0,1>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_F_OFFSET 0x0000000000000018
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_F_LSB 31
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_F_MSB 31
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_F_MASK 0x0000000080000000
|
||||
|
||||
|
||||
/* Description LENGTH_COPY_G
|
||||
|
||||
Same as "length" <legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_G_OFFSET 0x0000000000000018
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_G_LSB 32
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_G_MSB 52
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_G_MASK 0x001fffff00000000
|
||||
|
||||
|
||||
/* Description VHTB_RESERVED_COPY_G
|
||||
|
||||
Same as "vhtb_reserved" <legal 1,3>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_G_OFFSET 0x0000000000000018
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_G_LSB 53
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_G_MSB 54
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_G_MASK 0x0060000000000000
|
||||
|
||||
|
||||
/* Description TAIL_COPY_G
|
||||
|
||||
Same as "tail" <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_G_OFFSET 0x0000000000000018
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_G_LSB 55
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_G_MSB 60
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_G_MASK 0x1f80000000000000
|
||||
|
||||
|
||||
/* Description RESERVED_7
|
||||
|
||||
Reserved: Set to 0 and ignored on receive <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_7_OFFSET 0x0000000000000018
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_7_LSB 61
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_7_MSB 62
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_7_MASK 0x6000000000000000
|
||||
|
||||
|
||||
/* Description RX_NDP_COPY_G
|
||||
|
||||
Not part of VHT-SIG-B.
|
||||
Used to identify received NDP frame
|
||||
<legal 0,1>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_G_OFFSET 0x0000000000000018
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_G_LSB 63
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_G_MSB 63
|
||||
#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_G_MASK 0x8000000000000000
|
||||
|
||||
|
||||
|
||||
#endif // MACTX_VHT_SIG_B_SU160
|
||||
132
drivers/staging/fw-api/hw/qca5332/mactx_vht_sig_b_su20.h
Normal file
132
drivers/staging/fw-api/hw/qca5332/mactx_vht_sig_b_su20.h
Normal file
|
|
@ -0,0 +1,132 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _MACTX_VHT_SIG_B_SU20_H_
|
||||
#define _MACTX_VHT_SIG_B_SU20_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#include "vht_sig_b_su20_info.h"
|
||||
#define NUM_OF_DWORDS_MACTX_VHT_SIG_B_SU20 2
|
||||
|
||||
#define NUM_OF_QWORDS_MACTX_VHT_SIG_B_SU20 1
|
||||
|
||||
|
||||
struct mactx_vht_sig_b_su20 {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
struct vht_sig_b_su20_info mactx_vht_sig_b_su20_info_details;
|
||||
uint32_t tlv64_padding : 32; // [31:0]
|
||||
#else
|
||||
struct vht_sig_b_su20_info mactx_vht_sig_b_su20_info_details;
|
||||
uint32_t tlv64_padding : 32; // [31:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description MACTX_VHT_SIG_B_SU20_INFO_DETAILS
|
||||
|
||||
See detailed description of the STRUCT
|
||||
*/
|
||||
|
||||
|
||||
/* Description LENGTH
|
||||
|
||||
VHT-SIG-B Length (in units of 4 octets) = ceiling (LENGTH/4)
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU20_MACTX_VHT_SIG_B_SU20_INFO_DETAILS_LENGTH_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_SU20_MACTX_VHT_SIG_B_SU20_INFO_DETAILS_LENGTH_LSB 0
|
||||
#define MACTX_VHT_SIG_B_SU20_MACTX_VHT_SIG_B_SU20_INFO_DETAILS_LENGTH_MSB 16
|
||||
#define MACTX_VHT_SIG_B_SU20_MACTX_VHT_SIG_B_SU20_INFO_DETAILS_LENGTH_MASK 0x000000000001ffff
|
||||
|
||||
|
||||
/* Description VHTB_RESERVED
|
||||
|
||||
Reserved: Set to all ones for non-NDP frames and ignored
|
||||
on receive
|
||||
<legal 2,7>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU20_MACTX_VHT_SIG_B_SU20_INFO_DETAILS_VHTB_RESERVED_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_SU20_MACTX_VHT_SIG_B_SU20_INFO_DETAILS_VHTB_RESERVED_LSB 17
|
||||
#define MACTX_VHT_SIG_B_SU20_MACTX_VHT_SIG_B_SU20_INFO_DETAILS_VHTB_RESERVED_MSB 19
|
||||
#define MACTX_VHT_SIG_B_SU20_MACTX_VHT_SIG_B_SU20_INFO_DETAILS_VHTB_RESERVED_MASK 0x00000000000e0000
|
||||
|
||||
|
||||
/* Description TAIL
|
||||
|
||||
Used to terminate the trellis of the convolutional decoder.
|
||||
|
||||
Set to 0. <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU20_MACTX_VHT_SIG_B_SU20_INFO_DETAILS_TAIL_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_SU20_MACTX_VHT_SIG_B_SU20_INFO_DETAILS_TAIL_LSB 20
|
||||
#define MACTX_VHT_SIG_B_SU20_MACTX_VHT_SIG_B_SU20_INFO_DETAILS_TAIL_MSB 25
|
||||
#define MACTX_VHT_SIG_B_SU20_MACTX_VHT_SIG_B_SU20_INFO_DETAILS_TAIL_MASK 0x0000000003f00000
|
||||
|
||||
|
||||
/* Description RESERVED
|
||||
|
||||
Not part of VHT-SIG-B.
|
||||
Reserved: Set to 0 and ignored on receive <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU20_MACTX_VHT_SIG_B_SU20_INFO_DETAILS_RESERVED_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_SU20_MACTX_VHT_SIG_B_SU20_INFO_DETAILS_RESERVED_LSB 26
|
||||
#define MACTX_VHT_SIG_B_SU20_MACTX_VHT_SIG_B_SU20_INFO_DETAILS_RESERVED_MSB 30
|
||||
#define MACTX_VHT_SIG_B_SU20_MACTX_VHT_SIG_B_SU20_INFO_DETAILS_RESERVED_MASK 0x000000007c000000
|
||||
|
||||
|
||||
/* Description RX_NDP
|
||||
|
||||
Not part of VHT-SIG-B.
|
||||
Used to identify received NDP frame
|
||||
<legal 0,1>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU20_MACTX_VHT_SIG_B_SU20_INFO_DETAILS_RX_NDP_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_SU20_MACTX_VHT_SIG_B_SU20_INFO_DETAILS_RX_NDP_LSB 31
|
||||
#define MACTX_VHT_SIG_B_SU20_MACTX_VHT_SIG_B_SU20_INFO_DETAILS_RX_NDP_MSB 31
|
||||
#define MACTX_VHT_SIG_B_SU20_MACTX_VHT_SIG_B_SU20_INFO_DETAILS_RX_NDP_MASK 0x0000000080000000
|
||||
|
||||
|
||||
/* Description TLV64_PADDING
|
||||
|
||||
Automatic DWORD padding inserted while converting TLV32
|
||||
to TLV64 for 64 bit ARCH
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU20_TLV64_PADDING_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_SU20_TLV64_PADDING_LSB 32
|
||||
#define MACTX_VHT_SIG_B_SU20_TLV64_PADDING_MSB 63
|
||||
#define MACTX_VHT_SIG_B_SU20_TLV64_PADDING_MASK 0xffffffff00000000
|
||||
|
||||
|
||||
|
||||
#endif // MACTX_VHT_SIG_B_SU20
|
||||
173
drivers/staging/fw-api/hw/qca5332/mactx_vht_sig_b_su40.h
Normal file
173
drivers/staging/fw-api/hw/qca5332/mactx_vht_sig_b_su40.h
Normal file
|
|
@ -0,0 +1,173 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _MACTX_VHT_SIG_B_SU40_H_
|
||||
#define _MACTX_VHT_SIG_B_SU40_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#include "vht_sig_b_su40_info.h"
|
||||
#define NUM_OF_DWORDS_MACTX_VHT_SIG_B_SU40 2
|
||||
|
||||
#define NUM_OF_QWORDS_MACTX_VHT_SIG_B_SU40 1
|
||||
|
||||
|
||||
struct mactx_vht_sig_b_su40 {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
struct vht_sig_b_su40_info mactx_vht_sig_b_su40_info_details;
|
||||
#else
|
||||
struct vht_sig_b_su40_info mactx_vht_sig_b_su40_info_details;
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description MACTX_VHT_SIG_B_SU40_INFO_DETAILS
|
||||
|
||||
See detailed description of the STRUCT
|
||||
*/
|
||||
|
||||
|
||||
/* Description LENGTH
|
||||
|
||||
VHT-SIG-B Length (in units of 4 octets) = ceiling (LENGTH/4)
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_LENGTH_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_LENGTH_LSB 0
|
||||
#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_LENGTH_MSB 18
|
||||
#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_LENGTH_MASK 0x000000000007ffff
|
||||
|
||||
|
||||
/* Description VHTB_RESERVED
|
||||
|
||||
Reserved: Set to all ones and ignored on receive <legal
|
||||
3>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_VHTB_RESERVED_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_VHTB_RESERVED_LSB 19
|
||||
#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_VHTB_RESERVED_MSB 20
|
||||
#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_VHTB_RESERVED_MASK 0x0000000000180000
|
||||
|
||||
|
||||
/* Description TAIL
|
||||
|
||||
Used to terminate the trellis of the convolutional decoder.
|
||||
|
||||
Set to 0. <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_TAIL_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_TAIL_LSB 21
|
||||
#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_TAIL_MSB 26
|
||||
#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_TAIL_MASK 0x0000000007e00000
|
||||
|
||||
|
||||
/* Description RESERVED
|
||||
|
||||
Not part of VHT-SIG-B.
|
||||
Reserved: Set to 0 and ignored on receive <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_RESERVED_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_RESERVED_LSB 27
|
||||
#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_RESERVED_MSB 30
|
||||
#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_RESERVED_MASK 0x0000000078000000
|
||||
|
||||
|
||||
/* Description RX_NDP
|
||||
|
||||
Not part of VHT-SIG-B.
|
||||
Used to identify received NDP frame
|
||||
<legal 0,1>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_RX_NDP_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_RX_NDP_LSB 31
|
||||
#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_RX_NDP_MSB 31
|
||||
#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_RX_NDP_MASK 0x0000000080000000
|
||||
|
||||
|
||||
/* Description LENGTH_COPY
|
||||
|
||||
Same as "length" <legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_LENGTH_COPY_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_LENGTH_COPY_LSB 32
|
||||
#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_LENGTH_COPY_MSB 50
|
||||
#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_LENGTH_COPY_MASK 0x0007ffff00000000
|
||||
|
||||
|
||||
/* Description VHTB_RESERVED_COPY
|
||||
|
||||
Same as "vhtb_reserved" <legal 3>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_VHTB_RESERVED_COPY_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_VHTB_RESERVED_COPY_LSB 51
|
||||
#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_VHTB_RESERVED_COPY_MSB 52
|
||||
#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_VHTB_RESERVED_COPY_MASK 0x0018000000000000
|
||||
|
||||
|
||||
/* Description TAIL_COPY
|
||||
|
||||
Same as "tail" <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_TAIL_COPY_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_TAIL_COPY_LSB 53
|
||||
#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_TAIL_COPY_MSB 58
|
||||
#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_TAIL_COPY_MASK 0x07e0000000000000
|
||||
|
||||
|
||||
/* Description RESERVED_COPY
|
||||
|
||||
Same as "reserved" <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_RESERVED_COPY_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_RESERVED_COPY_LSB 59
|
||||
#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_RESERVED_COPY_MSB 62
|
||||
#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_RESERVED_COPY_MASK 0x7800000000000000
|
||||
|
||||
|
||||
/* Description RX_NDP_COPY
|
||||
|
||||
Not part of VHT-SIG-B.
|
||||
Used to identify received NDP frame
|
||||
<legal 0,1>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_RX_NDP_COPY_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_RX_NDP_COPY_LSB 63
|
||||
#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_RX_NDP_COPY_MSB 63
|
||||
#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_RX_NDP_COPY_MASK 0x8000000000000000
|
||||
|
||||
|
||||
|
||||
#endif // MACTX_VHT_SIG_B_SU40
|
||||
287
drivers/staging/fw-api/hw/qca5332/mactx_vht_sig_b_su80.h
Normal file
287
drivers/staging/fw-api/hw/qca5332/mactx_vht_sig_b_su80.h
Normal file
|
|
@ -0,0 +1,287 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _MACTX_VHT_SIG_B_SU80_H_
|
||||
#define _MACTX_VHT_SIG_B_SU80_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#include "vht_sig_b_su80_info.h"
|
||||
#define NUM_OF_DWORDS_MACTX_VHT_SIG_B_SU80 4
|
||||
|
||||
#define NUM_OF_QWORDS_MACTX_VHT_SIG_B_SU80 2
|
||||
|
||||
|
||||
struct mactx_vht_sig_b_su80 {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
struct vht_sig_b_su80_info mactx_vht_sig_b_su80_info_details;
|
||||
#else
|
||||
struct vht_sig_b_su80_info mactx_vht_sig_b_su80_info_details;
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description MACTX_VHT_SIG_B_SU80_INFO_DETAILS
|
||||
|
||||
See detailed description of the STRUCT
|
||||
*/
|
||||
|
||||
|
||||
/* Description LENGTH
|
||||
|
||||
VHT-SIG-B Length (in units of 4 octets) = ceiling (LENGTH/4)
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_LENGTH_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_LENGTH_LSB 0
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_LENGTH_MSB 20
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_LENGTH_MASK 0x00000000001fffff
|
||||
|
||||
|
||||
/* Description VHTB_RESERVED
|
||||
|
||||
Reserved: Set to all ones for non-NDP frames and ignored
|
||||
on receive <legal 1,3>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_VHTB_RESERVED_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_VHTB_RESERVED_LSB 21
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_VHTB_RESERVED_MSB 22
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_VHTB_RESERVED_MASK 0x0000000000600000
|
||||
|
||||
|
||||
/* Description TAIL
|
||||
|
||||
Used to terminate the trellis of the convolutional decoder.
|
||||
|
||||
Set to 0. <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_TAIL_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_TAIL_LSB 23
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_TAIL_MSB 28
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_TAIL_MASK 0x000000001f800000
|
||||
|
||||
|
||||
/* Description RESERVED_0
|
||||
|
||||
Not part of VHT-SIG-B.
|
||||
Reserved: Set to 0 and ignored on receive <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RESERVED_0_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RESERVED_0_LSB 29
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RESERVED_0_MSB 30
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RESERVED_0_MASK 0x0000000060000000
|
||||
|
||||
|
||||
/* Description RX_NDP
|
||||
|
||||
Not part of VHT-SIG-B.
|
||||
Used to identify received NDP frame
|
||||
<legal 0,1>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RX_NDP_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RX_NDP_LSB 31
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RX_NDP_MSB 31
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RX_NDP_MASK 0x0000000080000000
|
||||
|
||||
|
||||
/* Description LENGTH_COPY_A
|
||||
|
||||
Same as "length" <legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_LENGTH_COPY_A_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_LENGTH_COPY_A_LSB 32
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_LENGTH_COPY_A_MSB 52
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_LENGTH_COPY_A_MASK 0x001fffff00000000
|
||||
|
||||
|
||||
/* Description VHTB_RESERVED_COPY_A
|
||||
|
||||
Same as "vhtb_reserved" <legal 1,3>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_VHTB_RESERVED_COPY_A_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_VHTB_RESERVED_COPY_A_LSB 53
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_VHTB_RESERVED_COPY_A_MSB 54
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_VHTB_RESERVED_COPY_A_MASK 0x0060000000000000
|
||||
|
||||
|
||||
/* Description TAIL_COPY_A
|
||||
|
||||
Same as "tail" <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_TAIL_COPY_A_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_TAIL_COPY_A_LSB 55
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_TAIL_COPY_A_MSB 60
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_TAIL_COPY_A_MASK 0x1f80000000000000
|
||||
|
||||
|
||||
/* Description RESERVED_1
|
||||
|
||||
Reserved: Set to 0 and ignored on receive <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RESERVED_1_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RESERVED_1_LSB 61
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RESERVED_1_MSB 62
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RESERVED_1_MASK 0x6000000000000000
|
||||
|
||||
|
||||
/* Description RX_NDP_COPY_A
|
||||
|
||||
Not part of VHT-SIG-B.
|
||||
Used to identify received NDP frame
|
||||
<legal 0,1>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RX_NDP_COPY_A_OFFSET 0x0000000000000000
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RX_NDP_COPY_A_LSB 63
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RX_NDP_COPY_A_MSB 63
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RX_NDP_COPY_A_MASK 0x8000000000000000
|
||||
|
||||
|
||||
/* Description LENGTH_COPY_B
|
||||
|
||||
Same as "length" <legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_LENGTH_COPY_B_OFFSET 0x0000000000000008
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_LENGTH_COPY_B_LSB 0
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_LENGTH_COPY_B_MSB 20
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_LENGTH_COPY_B_MASK 0x00000000001fffff
|
||||
|
||||
|
||||
/* Description VHTB_RESERVED_COPY_B
|
||||
|
||||
Same as "vhtb_reserved" <legal 1,3>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_VHTB_RESERVED_COPY_B_OFFSET 0x0000000000000008
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_VHTB_RESERVED_COPY_B_LSB 21
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_VHTB_RESERVED_COPY_B_MSB 22
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_VHTB_RESERVED_COPY_B_MASK 0x0000000000600000
|
||||
|
||||
|
||||
/* Description TAIL_COPY_B
|
||||
|
||||
Same as "tail" <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_TAIL_COPY_B_OFFSET 0x0000000000000008
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_TAIL_COPY_B_LSB 23
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_TAIL_COPY_B_MSB 28
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_TAIL_COPY_B_MASK 0x000000001f800000
|
||||
|
||||
|
||||
/* Description RESERVED_2
|
||||
|
||||
Reserved: Set to 0 and ignored on receive <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RESERVED_2_OFFSET 0x0000000000000008
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RESERVED_2_LSB 29
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RESERVED_2_MSB 30
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RESERVED_2_MASK 0x0000000060000000
|
||||
|
||||
|
||||
/* Description RX_NDP_COPY_B
|
||||
|
||||
Not part of VHT-SIG-B.
|
||||
Used to identify received NDP frame
|
||||
<legal 0,1>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RX_NDP_COPY_B_OFFSET 0x0000000000000008
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RX_NDP_COPY_B_LSB 31
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RX_NDP_COPY_B_MSB 31
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RX_NDP_COPY_B_MASK 0x0000000080000000
|
||||
|
||||
|
||||
/* Description LENGTH_COPY_C
|
||||
|
||||
Same as "length" <legal all>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_LENGTH_COPY_C_OFFSET 0x0000000000000008
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_LENGTH_COPY_C_LSB 32
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_LENGTH_COPY_C_MSB 52
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_LENGTH_COPY_C_MASK 0x001fffff00000000
|
||||
|
||||
|
||||
/* Description VHTB_RESERVED_COPY_C
|
||||
|
||||
Same as "vhtb_reserved" <legal 1,3>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_VHTB_RESERVED_COPY_C_OFFSET 0x0000000000000008
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_VHTB_RESERVED_COPY_C_LSB 53
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_VHTB_RESERVED_COPY_C_MSB 54
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_VHTB_RESERVED_COPY_C_MASK 0x0060000000000000
|
||||
|
||||
|
||||
/* Description TAIL_COPY_C
|
||||
|
||||
Same as "tail" <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_TAIL_COPY_C_OFFSET 0x0000000000000008
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_TAIL_COPY_C_LSB 55
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_TAIL_COPY_C_MSB 60
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_TAIL_COPY_C_MASK 0x1f80000000000000
|
||||
|
||||
|
||||
/* Description RESERVED_3
|
||||
|
||||
Reserved: Set to 0 and ignored on receive <legal 0>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RESERVED_3_OFFSET 0x0000000000000008
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RESERVED_3_LSB 61
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RESERVED_3_MSB 62
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RESERVED_3_MASK 0x6000000000000000
|
||||
|
||||
|
||||
/* Description RX_NDP_COPY_C
|
||||
|
||||
Not part of VHT-SIG-B.
|
||||
Used to identify received NDP frame
|
||||
<legal 0,1>
|
||||
*/
|
||||
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RX_NDP_COPY_C_OFFSET 0x0000000000000008
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RX_NDP_COPY_C_LSB 63
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RX_NDP_COPY_C_MSB 63
|
||||
#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RX_NDP_COPY_C_MASK 0x8000000000000000
|
||||
|
||||
|
||||
|
||||
#endif // MACTX_VHT_SIG_B_SU80
|
||||
114
drivers/staging/fw-api/hw/qca5332/mlo_sta_id_details.h
Normal file
114
drivers/staging/fw-api/hw/qca5332/mlo_sta_id_details.h
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _MLO_STA_ID_DETAILS_H_
|
||||
#define _MLO_STA_ID_DETAILS_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#define NUM_OF_WORDS_MLO_STA_ID_DETAILS 1
|
||||
|
||||
|
||||
struct mlo_sta_id_details {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
uint16_t nstr_mlo_sta_id : 10, // [9:0]
|
||||
block_self_ml_sync : 1, // [10:10]
|
||||
block_partner_ml_sync : 1, // [11:11]
|
||||
nstr_mlo_sta_id_valid : 1, // [12:12]
|
||||
reserved_0a : 3; // [15:13]
|
||||
#else
|
||||
uint16_t reserved_0a : 3, // [15:13]
|
||||
nstr_mlo_sta_id_valid : 1, // [12:12]
|
||||
block_partner_ml_sync : 1, // [11:11]
|
||||
block_self_ml_sync : 1, // [10:10]
|
||||
nstr_mlo_sta_id : 10; // [9:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description NSTR_MLO_STA_ID
|
||||
|
||||
ID of peer participating in non-STR MLO
|
||||
*/
|
||||
|
||||
#define MLO_STA_ID_DETAILS_NSTR_MLO_STA_ID_OFFSET 0x00000000
|
||||
#define MLO_STA_ID_DETAILS_NSTR_MLO_STA_ID_LSB 0
|
||||
#define MLO_STA_ID_DETAILS_NSTR_MLO_STA_ID_MSB 9
|
||||
#define MLO_STA_ID_DETAILS_NSTR_MLO_STA_ID_MASK 0x000003ff
|
||||
|
||||
|
||||
/* Description BLOCK_SELF_ML_SYNC
|
||||
|
||||
Only valid for TX
|
||||
|
||||
When set, this provides an indication to block the peer
|
||||
for self-link.
|
||||
*/
|
||||
|
||||
#define MLO_STA_ID_DETAILS_BLOCK_SELF_ML_SYNC_OFFSET 0x00000000
|
||||
#define MLO_STA_ID_DETAILS_BLOCK_SELF_ML_SYNC_LSB 10
|
||||
#define MLO_STA_ID_DETAILS_BLOCK_SELF_ML_SYNC_MSB 10
|
||||
#define MLO_STA_ID_DETAILS_BLOCK_SELF_ML_SYNC_MASK 0x00000400
|
||||
|
||||
|
||||
/* Description BLOCK_PARTNER_ML_SYNC
|
||||
|
||||
Only valid for TX
|
||||
|
||||
When set, this provides an indication to block the peer
|
||||
for partner links.
|
||||
*/
|
||||
|
||||
#define MLO_STA_ID_DETAILS_BLOCK_PARTNER_ML_SYNC_OFFSET 0x00000000
|
||||
#define MLO_STA_ID_DETAILS_BLOCK_PARTNER_ML_SYNC_LSB 11
|
||||
#define MLO_STA_ID_DETAILS_BLOCK_PARTNER_ML_SYNC_MSB 11
|
||||
#define MLO_STA_ID_DETAILS_BLOCK_PARTNER_ML_SYNC_MASK 0x00000800
|
||||
|
||||
|
||||
/* Description NSTR_MLO_STA_ID_VALID
|
||||
|
||||
All the fields in this TLV are valid only if this bit is
|
||||
set.
|
||||
*/
|
||||
|
||||
#define MLO_STA_ID_DETAILS_NSTR_MLO_STA_ID_VALID_OFFSET 0x00000000
|
||||
#define MLO_STA_ID_DETAILS_NSTR_MLO_STA_ID_VALID_LSB 12
|
||||
#define MLO_STA_ID_DETAILS_NSTR_MLO_STA_ID_VALID_MSB 12
|
||||
#define MLO_STA_ID_DETAILS_NSTR_MLO_STA_ID_VALID_MASK 0x00001000
|
||||
|
||||
|
||||
/* Description RESERVED_0A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MLO_STA_ID_DETAILS_RESERVED_0A_OFFSET 0x00000000
|
||||
#define MLO_STA_ID_DETAILS_RESERVED_0A_LSB 13
|
||||
#define MLO_STA_ID_DETAILS_RESERVED_0A_MSB 15
|
||||
#define MLO_STA_ID_DETAILS_RESERVED_0A_MASK 0x0000e000
|
||||
|
||||
|
||||
|
||||
#endif // MLO_STA_ID_DETAILS
|
||||
164
drivers/staging/fw-api/hw/qca5332/mon_buffer_addr.h
Normal file
164
drivers/staging/fw-api/hw/qca5332/mon_buffer_addr.h
Normal file
|
|
@ -0,0 +1,164 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _MON_BUFFER_ADDR_H_
|
||||
#define _MON_BUFFER_ADDR_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#define NUM_OF_DWORDS_MON_BUFFER_ADDR 4
|
||||
|
||||
#define NUM_OF_QWORDS_MON_BUFFER_ADDR 2
|
||||
|
||||
|
||||
struct mon_buffer_addr {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
uint32_t buffer_virt_addr_31_0 : 32; // [31:0]
|
||||
uint32_t buffer_virt_addr_63_32 : 32; // [31:0]
|
||||
uint32_t dma_length : 12, // [11:0]
|
||||
reserved_2a : 4, // [15:12]
|
||||
msdu_continuation : 1, // [16:16]
|
||||
truncated : 1, // [17:17]
|
||||
reserved_2b : 14; // [31:18]
|
||||
uint32_t tlv64_padding : 32; // [31:0]
|
||||
#else
|
||||
uint32_t buffer_virt_addr_31_0 : 32; // [31:0]
|
||||
uint32_t buffer_virt_addr_63_32 : 32; // [31:0]
|
||||
uint32_t reserved_2b : 14, // [31:18]
|
||||
truncated : 1, // [17:17]
|
||||
msdu_continuation : 1, // [16:16]
|
||||
reserved_2a : 4, // [15:12]
|
||||
dma_length : 12; // [11:0]
|
||||
uint32_t tlv64_padding : 32; // [31:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description BUFFER_VIRT_ADDR_31_0
|
||||
|
||||
Lower 32 bits of the 64-bit virtual address of the packet
|
||||
buffer
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MON_BUFFER_ADDR_BUFFER_VIRT_ADDR_31_0_OFFSET 0x0000000000000000
|
||||
#define MON_BUFFER_ADDR_BUFFER_VIRT_ADDR_31_0_LSB 0
|
||||
#define MON_BUFFER_ADDR_BUFFER_VIRT_ADDR_31_0_MSB 31
|
||||
#define MON_BUFFER_ADDR_BUFFER_VIRT_ADDR_31_0_MASK 0x00000000ffffffff
|
||||
|
||||
|
||||
/* Description BUFFER_VIRT_ADDR_63_32
|
||||
|
||||
Upper 32 bits of the 64-bit virtual address of the packet
|
||||
buffer
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MON_BUFFER_ADDR_BUFFER_VIRT_ADDR_63_32_OFFSET 0x0000000000000000
|
||||
#define MON_BUFFER_ADDR_BUFFER_VIRT_ADDR_63_32_LSB 32
|
||||
#define MON_BUFFER_ADDR_BUFFER_VIRT_ADDR_63_32_MSB 63
|
||||
#define MON_BUFFER_ADDR_BUFFER_VIRT_ADDR_63_32_MASK 0xffffffff00000000
|
||||
|
||||
|
||||
/* Description DMA_LENGTH
|
||||
|
||||
The number of bytes DMA'd into the packet buffer MINUS 1.
|
||||
|
||||
|
||||
The packet could be truncated in case of a 'TX_FLUSH' or
|
||||
'RX_FLUSH,' or in case of drops due to back-pressure.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MON_BUFFER_ADDR_DMA_LENGTH_OFFSET 0x0000000000000008
|
||||
#define MON_BUFFER_ADDR_DMA_LENGTH_LSB 0
|
||||
#define MON_BUFFER_ADDR_DMA_LENGTH_MSB 11
|
||||
#define MON_BUFFER_ADDR_DMA_LENGTH_MASK 0x0000000000000fff
|
||||
|
||||
|
||||
/* Description RESERVED_2A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MON_BUFFER_ADDR_RESERVED_2A_OFFSET 0x0000000000000008
|
||||
#define MON_BUFFER_ADDR_RESERVED_2A_LSB 12
|
||||
#define MON_BUFFER_ADDR_RESERVED_2A_MSB 15
|
||||
#define MON_BUFFER_ADDR_RESERVED_2A_MASK 0x000000000000f000
|
||||
|
||||
|
||||
/* Description MSDU_CONTINUATION
|
||||
|
||||
When set, this packet buffer was not able to hold the entire
|
||||
MSDU. The next buffer will therefore contain additional
|
||||
packet bytes.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MON_BUFFER_ADDR_MSDU_CONTINUATION_OFFSET 0x0000000000000008
|
||||
#define MON_BUFFER_ADDR_MSDU_CONTINUATION_LSB 16
|
||||
#define MON_BUFFER_ADDR_MSDU_CONTINUATION_MSB 16
|
||||
#define MON_BUFFER_ADDR_MSDU_CONTINUATION_MASK 0x0000000000010000
|
||||
|
||||
|
||||
/* Description TRUNCATED
|
||||
|
||||
When set, this TLV belongs to a previously truncated MPDU.
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MON_BUFFER_ADDR_TRUNCATED_OFFSET 0x0000000000000008
|
||||
#define MON_BUFFER_ADDR_TRUNCATED_LSB 17
|
||||
#define MON_BUFFER_ADDR_TRUNCATED_MSB 17
|
||||
#define MON_BUFFER_ADDR_TRUNCATED_MASK 0x0000000000020000
|
||||
|
||||
|
||||
/* Description RESERVED_2B
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MON_BUFFER_ADDR_RESERVED_2B_OFFSET 0x0000000000000008
|
||||
#define MON_BUFFER_ADDR_RESERVED_2B_LSB 18
|
||||
#define MON_BUFFER_ADDR_RESERVED_2B_MSB 31
|
||||
#define MON_BUFFER_ADDR_RESERVED_2B_MASK 0x00000000fffc0000
|
||||
|
||||
|
||||
/* Description TLV64_PADDING
|
||||
|
||||
Automatic DWORD padding inserted while converting TLV32
|
||||
to TLV64 for 64 bit ARCH
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MON_BUFFER_ADDR_TLV64_PADDING_OFFSET 0x0000000000000008
|
||||
#define MON_BUFFER_ADDR_TLV64_PADDING_LSB 32
|
||||
#define MON_BUFFER_ADDR_TLV64_PADDING_MSB 63
|
||||
#define MON_BUFFER_ADDR_TLV64_PADDING_MASK 0xffffffff00000000
|
||||
|
||||
|
||||
|
||||
#endif // MON_BUFFER_ADDR
|
||||
233
drivers/staging/fw-api/hw/qca5332/mon_destination_ring.h
Normal file
233
drivers/staging/fw-api/hw/qca5332/mon_destination_ring.h
Normal file
|
|
@ -0,0 +1,233 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _MON_DESTINATION_RING_H_
|
||||
#define _MON_DESTINATION_RING_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#define NUM_OF_DWORDS_MON_DESTINATION_RING 4
|
||||
|
||||
|
||||
struct mon_destination_ring {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
uint32_t stat_buf_virt_addr_31_0 : 32; // [31:0]
|
||||
uint32_t stat_buf_virt_addr_63_32 : 32; // [31:0]
|
||||
uint32_t ppdu_id : 32; // [31:0]
|
||||
uint32_t end_offset : 12, // [11:0]
|
||||
reserved_3a : 4, // [15:12]
|
||||
end_reason : 2, // [17:16]
|
||||
initiator : 1, // [18:18]
|
||||
empty_descriptor : 1, // [19:19]
|
||||
ring_id : 8, // [27:20]
|
||||
looping_count : 4; // [31:28]
|
||||
#else
|
||||
uint32_t stat_buf_virt_addr_31_0 : 32; // [31:0]
|
||||
uint32_t stat_buf_virt_addr_63_32 : 32; // [31:0]
|
||||
uint32_t ppdu_id : 32; // [31:0]
|
||||
uint32_t looping_count : 4, // [31:28]
|
||||
ring_id : 8, // [27:20]
|
||||
empty_descriptor : 1, // [19:19]
|
||||
initiator : 1, // [18:18]
|
||||
end_reason : 2, // [17:16]
|
||||
reserved_3a : 4, // [15:12]
|
||||
end_offset : 12; // [11:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description STAT_BUF_VIRT_ADDR_31_0
|
||||
|
||||
Lower 32 bits of the 64-bit virtual address of the status
|
||||
buffer
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MON_DESTINATION_RING_STAT_BUF_VIRT_ADDR_31_0_OFFSET 0x00000000
|
||||
#define MON_DESTINATION_RING_STAT_BUF_VIRT_ADDR_31_0_LSB 0
|
||||
#define MON_DESTINATION_RING_STAT_BUF_VIRT_ADDR_31_0_MSB 31
|
||||
#define MON_DESTINATION_RING_STAT_BUF_VIRT_ADDR_31_0_MASK 0xffffffff
|
||||
|
||||
|
||||
/* Description STAT_BUF_VIRT_ADDR_63_32
|
||||
|
||||
Upper 32 bits of the 64-bit virtual address of the status
|
||||
buffer
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MON_DESTINATION_RING_STAT_BUF_VIRT_ADDR_63_32_OFFSET 0x00000004
|
||||
#define MON_DESTINATION_RING_STAT_BUF_VIRT_ADDR_63_32_LSB 0
|
||||
#define MON_DESTINATION_RING_STAT_BUF_VIRT_ADDR_63_32_MSB 31
|
||||
#define MON_DESTINATION_RING_STAT_BUF_VIRT_ADDR_63_32_MASK 0xffffffff
|
||||
|
||||
|
||||
/* Description PPDU_ID
|
||||
|
||||
TXMON fills this with the schedule_id from 'TX_FES_SETUP'
|
||||
when Initiator = 1.
|
||||
TXMON fills this with the Phy_ppdu_id from 'RX_RESPONSE_REQUIRED_INFO'
|
||||
when Initiator = 0.
|
||||
RXMON fills this with the Phy_ppdu_id from 'RX_PPDU_START.'
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MON_DESTINATION_RING_PPDU_ID_OFFSET 0x00000008
|
||||
#define MON_DESTINATION_RING_PPDU_ID_LSB 0
|
||||
#define MON_DESTINATION_RING_PPDU_ID_MSB 31
|
||||
#define MON_DESTINATION_RING_PPDU_ID_MASK 0xffffffff
|
||||
|
||||
|
||||
/* Description END_OFFSET
|
||||
|
||||
The offset (in units of 4 bytes) into the status buffer
|
||||
where DMA ended, i.e. offset to the last TLV + last TLV
|
||||
size MINUS 1.
|
||||
|
||||
In case of a 'TX_FLUSH' or 'RX_FLUSH,' this reflects the
|
||||
offset at which flush occurred.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MON_DESTINATION_RING_END_OFFSET_OFFSET 0x0000000c
|
||||
#define MON_DESTINATION_RING_END_OFFSET_LSB 0
|
||||
#define MON_DESTINATION_RING_END_OFFSET_MSB 11
|
||||
#define MON_DESTINATION_RING_END_OFFSET_MASK 0x00000fff
|
||||
|
||||
|
||||
/* Description RESERVED_3A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MON_DESTINATION_RING_RESERVED_3A_OFFSET 0x0000000c
|
||||
#define MON_DESTINATION_RING_RESERVED_3A_LSB 12
|
||||
#define MON_DESTINATION_RING_RESERVED_3A_MSB 15
|
||||
#define MON_DESTINATION_RING_RESERVED_3A_MASK 0x0000f000
|
||||
|
||||
|
||||
/* Description END_REASON
|
||||
|
||||
<enum 0 MON_status_buffer_full> The status buffer was fully
|
||||
written.
|
||||
<enum 1 MON_flush_detected> A 'TX_FLUSH' or 'RX_FLUSH' was
|
||||
received. This is implicitly the end of the Tx FES or Rx
|
||||
PPDU. The status buffer data can be discarded by SW.
|
||||
<enum 2 MON_end_of_PPDU> A 'TX_FES_STATUS_END' or 'RX_PPDU_END'
|
||||
was received indicating the end of the Tx FES or Rx PPDU.
|
||||
|
||||
<enum 3 MON_PPDU_truncated> The PPDU got truncated due to
|
||||
a system-level error.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MON_DESTINATION_RING_END_REASON_OFFSET 0x0000000c
|
||||
#define MON_DESTINATION_RING_END_REASON_LSB 16
|
||||
#define MON_DESTINATION_RING_END_REASON_MSB 17
|
||||
#define MON_DESTINATION_RING_END_REASON_MASK 0x00030000
|
||||
|
||||
|
||||
/* Description INITIATOR
|
||||
|
||||
1: This descriptor belongs to a TX FES (TXOP initiator)
|
||||
0: This descriptor belongs to a response TX (TXOP responder)
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MON_DESTINATION_RING_INITIATOR_OFFSET 0x0000000c
|
||||
#define MON_DESTINATION_RING_INITIATOR_LSB 18
|
||||
#define MON_DESTINATION_RING_INITIATOR_MSB 18
|
||||
#define MON_DESTINATION_RING_INITIATOR_MASK 0x00040000
|
||||
|
||||
|
||||
/* Description EMPTY_DESCRIPTOR
|
||||
|
||||
0: This descriptor is written on a flush or the end of a
|
||||
PPDU or the end of status buffer
|
||||
1: This descriptor is written to indicate drop information
|
||||
(see 'MON_DESTINATION_RING_WITH_DROP' structure)
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MON_DESTINATION_RING_EMPTY_DESCRIPTOR_OFFSET 0x0000000c
|
||||
#define MON_DESTINATION_RING_EMPTY_DESCRIPTOR_LSB 19
|
||||
#define MON_DESTINATION_RING_EMPTY_DESCRIPTOR_MSB 19
|
||||
#define MON_DESTINATION_RING_EMPTY_DESCRIPTOR_MASK 0x00080000
|
||||
|
||||
|
||||
/* Description RING_ID
|
||||
|
||||
Consumer: SW/REO/DEBUG
|
||||
Producer: SRNG (of TXMON/RXMON)
|
||||
|
||||
For debugging.
|
||||
This field is filled in by the SRNG module.
|
||||
It help to identify the ring that is being looked
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MON_DESTINATION_RING_RING_ID_OFFSET 0x0000000c
|
||||
#define MON_DESTINATION_RING_RING_ID_LSB 20
|
||||
#define MON_DESTINATION_RING_RING_ID_MSB 27
|
||||
#define MON_DESTINATION_RING_RING_ID_MASK 0x0ff00000
|
||||
|
||||
|
||||
/* Description LOOPING_COUNT
|
||||
|
||||
Consumer: SW/DEBUG
|
||||
Producer: SRNG (of TXMON/RXMON)
|
||||
|
||||
For debugging.
|
||||
This field is filled in by the SRNG module.
|
||||
|
||||
A count value that indicates the number of times the producer
|
||||
of entries into this Ring has looped around the ring.
|
||||
At initialization time, this value is set to 0. On the first
|
||||
loop, this value is set to 1. After the max value is reached
|
||||
allowed by the number of bits for this field, the count
|
||||
value continues with 0 again.
|
||||
|
||||
In case SW is the consumer of the ring entries, it can use
|
||||
this field to figure out up to where the producer of entries
|
||||
has created new entries. This eliminates the need to check
|
||||
where the "head pointer' of the ring is located once the
|
||||
SW starts processing an interrupt indicating that new entries
|
||||
have been put into this ring...
|
||||
|
||||
Also note that SW if it wants only needs to look at the
|
||||
LSB bit of this count value.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MON_DESTINATION_RING_LOOPING_COUNT_OFFSET 0x0000000c
|
||||
#define MON_DESTINATION_RING_LOOPING_COUNT_LSB 28
|
||||
#define MON_DESTINATION_RING_LOOPING_COUNT_MSB 31
|
||||
#define MON_DESTINATION_RING_LOOPING_COUNT_MASK 0xf0000000
|
||||
|
||||
|
||||
|
||||
#endif // MON_DESTINATION_RING
|
||||
|
|
@ -0,0 +1,259 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _MON_DESTINATION_RING_WITH_DROP_H_
|
||||
#define _MON_DESTINATION_RING_WITH_DROP_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#define NUM_OF_DWORDS_MON_DESTINATION_RING_WITH_DROP 4
|
||||
|
||||
|
||||
struct mon_destination_ring_with_drop {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
uint32_t ppdu_drop_cnt : 10, // [9:0]
|
||||
mpdu_drop_cnt : 10, // [19:10]
|
||||
tlv_drop_cnt : 10, // [29:20]
|
||||
end_of_ppdu_seen : 1, // [30:30]
|
||||
reserved_0a : 1; // [31:31]
|
||||
uint32_t reserved_1a : 32; // [31:0]
|
||||
uint32_t ppdu_id : 32; // [31:0]
|
||||
uint32_t reserved_3a : 18, // [17:0]
|
||||
initiator : 1, // [18:18]
|
||||
empty_descriptor : 1, // [19:19]
|
||||
ring_id : 8, // [27:20]
|
||||
looping_count : 4; // [31:28]
|
||||
#else
|
||||
uint32_t reserved_0a : 1, // [31:31]
|
||||
end_of_ppdu_seen : 1, // [30:30]
|
||||
tlv_drop_cnt : 10, // [29:20]
|
||||
mpdu_drop_cnt : 10, // [19:10]
|
||||
ppdu_drop_cnt : 10; // [9:0]
|
||||
uint32_t reserved_1a : 32; // [31:0]
|
||||
uint32_t ppdu_id : 32; // [31:0]
|
||||
uint32_t looping_count : 4, // [31:28]
|
||||
ring_id : 8, // [27:20]
|
||||
empty_descriptor : 1, // [19:19]
|
||||
initiator : 1, // [18:18]
|
||||
reserved_3a : 18; // [17:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description PPDU_DROP_CNT
|
||||
|
||||
The number of PPDUs dropped due to the back-pressure
|
||||
|
||||
Set to 1023 if >1023 PPDUs got dropped
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MON_DESTINATION_RING_WITH_DROP_PPDU_DROP_CNT_OFFSET 0x00000000
|
||||
#define MON_DESTINATION_RING_WITH_DROP_PPDU_DROP_CNT_LSB 0
|
||||
#define MON_DESTINATION_RING_WITH_DROP_PPDU_DROP_CNT_MSB 9
|
||||
#define MON_DESTINATION_RING_WITH_DROP_PPDU_DROP_CNT_MASK 0x000003ff
|
||||
|
||||
|
||||
/* Description MPDU_DROP_CNT
|
||||
|
||||
The number of MPDUs dropped within the first PPDU due to
|
||||
the back-pressure
|
||||
|
||||
Set to 1023 if >1023 MPDUs got dropped
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MON_DESTINATION_RING_WITH_DROP_MPDU_DROP_CNT_OFFSET 0x00000000
|
||||
#define MON_DESTINATION_RING_WITH_DROP_MPDU_DROP_CNT_LSB 10
|
||||
#define MON_DESTINATION_RING_WITH_DROP_MPDU_DROP_CNT_MSB 19
|
||||
#define MON_DESTINATION_RING_WITH_DROP_MPDU_DROP_CNT_MASK 0x000ffc00
|
||||
|
||||
|
||||
/* Description TLV_DROP_CNT
|
||||
|
||||
The number of PPDU-level (global or per-user) TLVs dropped
|
||||
within the first PPDU due to the back-pressure
|
||||
*/
|
||||
|
||||
#define MON_DESTINATION_RING_WITH_DROP_TLV_DROP_CNT_OFFSET 0x00000000
|
||||
#define MON_DESTINATION_RING_WITH_DROP_TLV_DROP_CNT_LSB 20
|
||||
#define MON_DESTINATION_RING_WITH_DROP_TLV_DROP_CNT_MSB 29
|
||||
#define MON_DESTINATION_RING_WITH_DROP_TLV_DROP_CNT_MASK 0x3ff00000
|
||||
|
||||
|
||||
/* Description END_OF_PPDU_SEEN
|
||||
|
||||
Field valid only if mpdu_drop_cnt > 0 or tlv_drop_cnt >
|
||||
0
|
||||
|
||||
Set by TXMON if 'TX_FES_STATUS_END' is received for a partially
|
||||
dropped PPDU when Initiator = 1.
|
||||
Set by TXMON if 'RESPONSE_END_STATUS' is received for a
|
||||
partially dropped PPDU when Initiator = 0.
|
||||
Set by RXMON if 'RX_PPDU_END_STATUS_DONE' is received for
|
||||
a partially dropped PPDU.
|
||||
*/
|
||||
|
||||
#define MON_DESTINATION_RING_WITH_DROP_END_OF_PPDU_SEEN_OFFSET 0x00000000
|
||||
#define MON_DESTINATION_RING_WITH_DROP_END_OF_PPDU_SEEN_LSB 30
|
||||
#define MON_DESTINATION_RING_WITH_DROP_END_OF_PPDU_SEEN_MSB 30
|
||||
#define MON_DESTINATION_RING_WITH_DROP_END_OF_PPDU_SEEN_MASK 0x40000000
|
||||
|
||||
|
||||
/* Description RESERVED_0A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MON_DESTINATION_RING_WITH_DROP_RESERVED_0A_OFFSET 0x00000000
|
||||
#define MON_DESTINATION_RING_WITH_DROP_RESERVED_0A_LSB 31
|
||||
#define MON_DESTINATION_RING_WITH_DROP_RESERVED_0A_MSB 31
|
||||
#define MON_DESTINATION_RING_WITH_DROP_RESERVED_0A_MASK 0x80000000
|
||||
|
||||
|
||||
/* Description RESERVED_1A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MON_DESTINATION_RING_WITH_DROP_RESERVED_1A_OFFSET 0x00000004
|
||||
#define MON_DESTINATION_RING_WITH_DROP_RESERVED_1A_LSB 0
|
||||
#define MON_DESTINATION_RING_WITH_DROP_RESERVED_1A_MSB 31
|
||||
#define MON_DESTINATION_RING_WITH_DROP_RESERVED_1A_MASK 0xffffffff
|
||||
|
||||
|
||||
/* Description PPDU_ID
|
||||
|
||||
The ID of the last PPDU which saw the back-pressure on AXI
|
||||
|
||||
|
||||
TXMON fills this with the schedule_id from 'TX_FES_SETUP'
|
||||
when Initiator = 1.
|
||||
TXMON fills this with the Phy_ppdu_id from 'RX_RESPONSE_REQUIRED_INFO'
|
||||
when Initiator = 0.
|
||||
RXMON fills this with the Phy_ppdu_id from 'RX_PPDU_START.'
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MON_DESTINATION_RING_WITH_DROP_PPDU_ID_OFFSET 0x00000008
|
||||
#define MON_DESTINATION_RING_WITH_DROP_PPDU_ID_LSB 0
|
||||
#define MON_DESTINATION_RING_WITH_DROP_PPDU_ID_MSB 31
|
||||
#define MON_DESTINATION_RING_WITH_DROP_PPDU_ID_MASK 0xffffffff
|
||||
|
||||
|
||||
/* Description RESERVED_3A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MON_DESTINATION_RING_WITH_DROP_RESERVED_3A_OFFSET 0x0000000c
|
||||
#define MON_DESTINATION_RING_WITH_DROP_RESERVED_3A_LSB 0
|
||||
#define MON_DESTINATION_RING_WITH_DROP_RESERVED_3A_MSB 17
|
||||
#define MON_DESTINATION_RING_WITH_DROP_RESERVED_3A_MASK 0x0003ffff
|
||||
|
||||
|
||||
/* Description INITIATOR
|
||||
|
||||
1: This descriptor belongs to a TX FES (TXOP initiator)
|
||||
0: This descriptor belongs to a response TX (TXOP responder)
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MON_DESTINATION_RING_WITH_DROP_INITIATOR_OFFSET 0x0000000c
|
||||
#define MON_DESTINATION_RING_WITH_DROP_INITIATOR_LSB 18
|
||||
#define MON_DESTINATION_RING_WITH_DROP_INITIATOR_MSB 18
|
||||
#define MON_DESTINATION_RING_WITH_DROP_INITIATOR_MASK 0x00040000
|
||||
|
||||
|
||||
/* Description EMPTY_DESCRIPTOR
|
||||
|
||||
0: This descriptor is written on a flush or the end of a
|
||||
PPDU or the end of status buffer (see 'MON_DESTINATION_RING'
|
||||
structure)
|
||||
1: This descriptor is written to indicate drop information
|
||||
|
||||
<legal 1>
|
||||
*/
|
||||
|
||||
#define MON_DESTINATION_RING_WITH_DROP_EMPTY_DESCRIPTOR_OFFSET 0x0000000c
|
||||
#define MON_DESTINATION_RING_WITH_DROP_EMPTY_DESCRIPTOR_LSB 19
|
||||
#define MON_DESTINATION_RING_WITH_DROP_EMPTY_DESCRIPTOR_MSB 19
|
||||
#define MON_DESTINATION_RING_WITH_DROP_EMPTY_DESCRIPTOR_MASK 0x00080000
|
||||
|
||||
|
||||
/* Description RING_ID
|
||||
|
||||
Consumer: SW/REO/DEBUG
|
||||
Producer: SRNG (of TXMON/RXMON)
|
||||
|
||||
For debugging.
|
||||
This field is filled in by the SRNG module.
|
||||
It help to identify the ring that is being looked
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MON_DESTINATION_RING_WITH_DROP_RING_ID_OFFSET 0x0000000c
|
||||
#define MON_DESTINATION_RING_WITH_DROP_RING_ID_LSB 20
|
||||
#define MON_DESTINATION_RING_WITH_DROP_RING_ID_MSB 27
|
||||
#define MON_DESTINATION_RING_WITH_DROP_RING_ID_MASK 0x0ff00000
|
||||
|
||||
|
||||
/* Description LOOPING_COUNT
|
||||
|
||||
Consumer: SW/DEBUG
|
||||
Producer: SRNG (of TXMON/RXMON)
|
||||
|
||||
For debugging.
|
||||
This field is filled in by the SRNG module.
|
||||
|
||||
A count value that indicates the number of times the producer
|
||||
of entries into this Ring has looped around the ring.
|
||||
At initialization time, this value is set to 0. On the first
|
||||
loop, this value is set to 1. After the max value is reached
|
||||
allowed by the number of bits for this field, the count
|
||||
value continues with 0 again.
|
||||
|
||||
In case SW is the consumer of the ring entries, it can use
|
||||
this field to figure out up to where the producer of entries
|
||||
has created new entries. This eliminates the need to check
|
||||
where the "head pointer' of the ring is located once the
|
||||
SW starts processing an interrupt indicating that new entries
|
||||
have been put into this ring...
|
||||
|
||||
Also note that SW if it wants only needs to look at the
|
||||
LSB bit of this count value.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MON_DESTINATION_RING_WITH_DROP_LOOPING_COUNT_OFFSET 0x0000000c
|
||||
#define MON_DESTINATION_RING_WITH_DROP_LOOPING_COUNT_LSB 28
|
||||
#define MON_DESTINATION_RING_WITH_DROP_LOOPING_COUNT_MSB 31
|
||||
#define MON_DESTINATION_RING_WITH_DROP_LOOPING_COUNT_MASK 0xf0000000
|
||||
|
||||
|
||||
|
||||
#endif // MON_DESTINATION_RING_WITH_DROP
|
||||
146
drivers/staging/fw-api/hw/qca5332/mon_drop.h
Normal file
146
drivers/staging/fw-api/hw/qca5332/mon_drop.h
Normal file
|
|
@ -0,0 +1,146 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _MON_DROP_H_
|
||||
#define _MON_DROP_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#define NUM_OF_DWORDS_MON_DROP 2
|
||||
|
||||
#define NUM_OF_QWORDS_MON_DROP 1
|
||||
|
||||
|
||||
struct mon_drop {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
uint32_t ppdu_id : 32; // [31:0]
|
||||
uint32_t ppdu_drop_cnt : 10, // [9:0]
|
||||
mpdu_drop_cnt : 10, // [19:10]
|
||||
tlv_drop_cnt : 10, // [29:20]
|
||||
end_of_ppdu_seen : 1, // [30:30]
|
||||
reserved_1a : 1; // [31:31]
|
||||
#else
|
||||
uint32_t ppdu_id : 32; // [31:0]
|
||||
uint32_t reserved_1a : 1, // [31:31]
|
||||
end_of_ppdu_seen : 1, // [30:30]
|
||||
tlv_drop_cnt : 10, // [29:20]
|
||||
mpdu_drop_cnt : 10, // [19:10]
|
||||
ppdu_drop_cnt : 10; // [9:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description PPDU_ID
|
||||
|
||||
The ID of the last PPDU which saw the back-pressure on AXI
|
||||
|
||||
|
||||
TXMON fills this with the schedule_id from 'TX_FES_SETUP'
|
||||
in case of a TX FES (TXOP initiator).
|
||||
TXMON fills this with the Phy_ppdu_id from 'RX_RESPONSE_REQUIRED_INFO'
|
||||
in case of a response TX (TXOP responder).
|
||||
RXMON fills this with the Phy_ppdu_id from 'RX_PPDU_START.'
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MON_DROP_PPDU_ID_OFFSET 0x0000000000000000
|
||||
#define MON_DROP_PPDU_ID_LSB 0
|
||||
#define MON_DROP_PPDU_ID_MSB 31
|
||||
#define MON_DROP_PPDU_ID_MASK 0x00000000ffffffff
|
||||
|
||||
|
||||
/* Description PPDU_DROP_CNT
|
||||
|
||||
The number of PPDUs dropped due to the back-pressure
|
||||
|
||||
Set to 1023 if >1023 PPDUs got dropped
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MON_DROP_PPDU_DROP_CNT_OFFSET 0x0000000000000000
|
||||
#define MON_DROP_PPDU_DROP_CNT_LSB 32
|
||||
#define MON_DROP_PPDU_DROP_CNT_MSB 41
|
||||
#define MON_DROP_PPDU_DROP_CNT_MASK 0x000003ff00000000
|
||||
|
||||
|
||||
/* Description MPDU_DROP_CNT
|
||||
|
||||
The number of MPDUs dropped within the first PPDU due to
|
||||
the back-pressure
|
||||
|
||||
Set to 1023 if >1023 MPDUs got dropped
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MON_DROP_MPDU_DROP_CNT_OFFSET 0x0000000000000000
|
||||
#define MON_DROP_MPDU_DROP_CNT_LSB 42
|
||||
#define MON_DROP_MPDU_DROP_CNT_MSB 51
|
||||
#define MON_DROP_MPDU_DROP_CNT_MASK 0x000ffc0000000000
|
||||
|
||||
|
||||
/* Description TLV_DROP_CNT
|
||||
|
||||
The number of PPDU-level (global or per-user) TLVs dropped
|
||||
within the first PPDU due to the back-pressure
|
||||
*/
|
||||
|
||||
#define MON_DROP_TLV_DROP_CNT_OFFSET 0x0000000000000000
|
||||
#define MON_DROP_TLV_DROP_CNT_LSB 52
|
||||
#define MON_DROP_TLV_DROP_CNT_MSB 61
|
||||
#define MON_DROP_TLV_DROP_CNT_MASK 0x3ff0000000000000
|
||||
|
||||
|
||||
/* Description END_OF_PPDU_SEEN
|
||||
|
||||
Field valid only if mpdu_drop_cnt > 0 or tlv_drop_cnt >
|
||||
0
|
||||
|
||||
Set by TXMON if 'TX_FES_STATUS_END' is received but dropped
|
||||
in case of a TX FES (TXOP initiator).
|
||||
Set by TXMON if 'RESPONSE_END_STATUS' is received but dropped
|
||||
in case of a response TX (TXOP responder).
|
||||
Set by RXMON if 'RX_PPDU_END' is received but dropped
|
||||
*/
|
||||
|
||||
#define MON_DROP_END_OF_PPDU_SEEN_OFFSET 0x0000000000000000
|
||||
#define MON_DROP_END_OF_PPDU_SEEN_LSB 62
|
||||
#define MON_DROP_END_OF_PPDU_SEEN_MSB 62
|
||||
#define MON_DROP_END_OF_PPDU_SEEN_MASK 0x4000000000000000
|
||||
|
||||
|
||||
/* Description RESERVED_1A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define MON_DROP_RESERVED_1A_OFFSET 0x0000000000000000
|
||||
#define MON_DROP_RESERVED_1A_LSB 63
|
||||
#define MON_DROP_RESERVED_1A_MSB 63
|
||||
#define MON_DROP_RESERVED_1A_MASK 0x8000000000000000
|
||||
|
||||
|
||||
|
||||
#endif // MON_DROP
|
||||
221
drivers/staging/fw-api/hw/qca5332/mon_ingress_ring.h
Normal file
221
drivers/staging/fw-api/hw/qca5332/mon_ingress_ring.h
Normal file
|
|
@ -0,0 +1,221 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _MON_INGRESS_RING_H_
|
||||
#define _MON_INGRESS_RING_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#include "buffer_addr_info.h"
|
||||
#define NUM_OF_DWORDS_MON_INGRESS_RING 4
|
||||
|
||||
|
||||
struct mon_ingress_ring {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
struct buffer_addr_info buffer_addr_info_details;
|
||||
uint32_t buffer_virt_addr_31_0 : 32; // [31:0]
|
||||
uint32_t buffer_virt_addr_63_32 : 32; // [31:0]
|
||||
#else
|
||||
struct buffer_addr_info buffer_addr_info_details;
|
||||
uint32_t buffer_virt_addr_31_0 : 32; // [31:0]
|
||||
uint32_t buffer_virt_addr_63_32 : 32; // [31:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description BUFFER_ADDR_INFO_DETAILS
|
||||
|
||||
Consumer: TXMON/RXMON
|
||||
Producer: SW
|
||||
|
||||
Details of the physical address of the buffer
|
||||
|
||||
'Sw_buffer_cookie' and 'Return_buffer_manager' sub-fields
|
||||
are reserved and unused by TXMON/RXMON.
|
||||
*/
|
||||
|
||||
|
||||
/* Description BUFFER_ADDR_31_0
|
||||
|
||||
Address (lower 32 bits) of the MSDU buffer OR MSDU_EXTENSION
|
||||
descriptor OR Link Descriptor
|
||||
|
||||
In case of 'NULL' pointer, this field is set to 0
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MON_INGRESS_RING_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_OFFSET 0x00000000
|
||||
#define MON_INGRESS_RING_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_LSB 0
|
||||
#define MON_INGRESS_RING_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_MSB 31
|
||||
#define MON_INGRESS_RING_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_MASK 0xffffffff
|
||||
|
||||
|
||||
/* Description BUFFER_ADDR_39_32
|
||||
|
||||
Address (upper 8 bits) of the MSDU buffer OR MSDU_EXTENSION
|
||||
descriptor OR Link Descriptor
|
||||
|
||||
In case of 'NULL' pointer, this field is set to 0
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MON_INGRESS_RING_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_OFFSET 0x00000004
|
||||
#define MON_INGRESS_RING_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_LSB 0
|
||||
#define MON_INGRESS_RING_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_MSB 7
|
||||
#define MON_INGRESS_RING_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_MASK 0x000000ff
|
||||
|
||||
|
||||
/* Description RETURN_BUFFER_MANAGER
|
||||
|
||||
Consumer: WBM
|
||||
Producer: SW/FW
|
||||
|
||||
In case of 'NULL' pointer, this field is set to 0
|
||||
|
||||
Indicates to which buffer manager the buffer OR MSDU_EXTENSION
|
||||
descriptor OR link descriptor that is being pointed to
|
||||
shall be returned after the frame has been processed. It
|
||||
is used by WBM for routing purposes.
|
||||
|
||||
<enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
|
||||
to the WMB buffer idle list
|
||||
<enum 1 WBM_CHIP0_IDLE_DESC_LIST> This buffer shall be returned
|
||||
to the WBM idle link descriptor idle list, where the chip
|
||||
0 WBM is chosen in case of a multi-chip config
|
||||
<enum 2 WBM_CHIP1_IDLE_DESC_LIST> This buffer shall be returned
|
||||
to the chip 1 WBM idle link descriptor idle list
|
||||
<enum 3 WBM_CHIP2_IDLE_DESC_LIST> This buffer shall be returned
|
||||
to the chip 2 WBM idle link descriptor idle list
|
||||
<enum 12 WBM_CHIP3_IDLE_DESC_LIST> This buffer shall be
|
||||
returned to chip 3 WBM idle link descriptor idle list
|
||||
<enum 4 FW_BM> This buffer shall be returned to the FW
|
||||
<enum 5 SW0_BM> This buffer shall be returned to the SW,
|
||||
ring 0
|
||||
<enum 6 SW1_BM> This buffer shall be returned to the SW,
|
||||
ring 1
|
||||
<enum 7 SW2_BM> This buffer shall be returned to the SW,
|
||||
ring 2
|
||||
<enum 8 SW3_BM> This buffer shall be returned to the SW,
|
||||
ring 3
|
||||
<enum 9 SW4_BM> This buffer shall be returned to the SW,
|
||||
ring 4
|
||||
<enum 10 SW5_BM> This buffer shall be returned to the SW,
|
||||
ring 5
|
||||
<enum 11 SW6_BM> This buffer shall be returned to the SW,
|
||||
ring 6
|
||||
|
||||
<legal 0-12>
|
||||
*/
|
||||
|
||||
#define MON_INGRESS_RING_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_OFFSET 0x00000004
|
||||
#define MON_INGRESS_RING_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_LSB 8
|
||||
#define MON_INGRESS_RING_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_MSB 11
|
||||
#define MON_INGRESS_RING_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_MASK 0x00000f00
|
||||
|
||||
|
||||
/* Description SW_BUFFER_COOKIE
|
||||
|
||||
Cookie field exclusively used by SW.
|
||||
|
||||
In case of 'NULL' pointer, this field is set to 0
|
||||
|
||||
HW ignores the contents, accept that it passes the programmed
|
||||
value on to other descriptors together with the physical
|
||||
address
|
||||
|
||||
Field can be used by SW to for example associate the buffers
|
||||
physical address with the virtual address
|
||||
The bit definitions as used by SW are within SW HLD specification
|
||||
|
||||
|
||||
NOTE1:
|
||||
The three most significant bits can have a special meaning
|
||||
in case this struct is embedded in a TX_MPDU_DETAILS STRUCT,
|
||||
and field transmit_bw_restriction is set
|
||||
|
||||
In case of NON punctured transmission:
|
||||
Sw_buffer_cookie[19:17] = 3'b000: 20 MHz TX only
|
||||
Sw_buffer_cookie[19:17] = 3'b001: 40 MHz TX only
|
||||
Sw_buffer_cookie[19:17] = 3'b010: 80 MHz TX only
|
||||
Sw_buffer_cookie[19:17] = 3'b011: 160 MHz TX only
|
||||
Sw_buffer_cookie[19:17] = 3'b101: 240 MHz TX only
|
||||
Sw_buffer_cookie[19:17] = 3'b100: 320 MHz TX only
|
||||
Sw_buffer_cookie[19:18] = 2'b11: reserved
|
||||
|
||||
In case of punctured transmission:
|
||||
Sw_buffer_cookie[19:16] = 4'b0000: pattern 0 only
|
||||
Sw_buffer_cookie[19:16] = 4'b0001: pattern 1 only
|
||||
Sw_buffer_cookie[19:16] = 4'b0010: pattern 2 only
|
||||
Sw_buffer_cookie[19:16] = 4'b0011: pattern 3 only
|
||||
Sw_buffer_cookie[19:16] = 4'b0100: pattern 4 only
|
||||
Sw_buffer_cookie[19:16] = 4'b0101: pattern 5 only
|
||||
Sw_buffer_cookie[19:16] = 4'b0110: pattern 6 only
|
||||
Sw_buffer_cookie[19:16] = 4'b0111: pattern 7 only
|
||||
Sw_buffer_cookie[19:16] = 4'b1000: pattern 8 only
|
||||
Sw_buffer_cookie[19:16] = 4'b1001: pattern 9 only
|
||||
Sw_buffer_cookie[19:16] = 4'b1010: pattern 10 only
|
||||
Sw_buffer_cookie[19:16] = 4'b1011: pattern 11 only
|
||||
Sw_buffer_cookie[19:18] = 2'b11: reserved
|
||||
|
||||
Note: a punctured transmission is indicated by the presence
|
||||
of TLV TX_PUNCTURE_SETUP embedded in the scheduler TLV
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MON_INGRESS_RING_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_OFFSET 0x00000004
|
||||
#define MON_INGRESS_RING_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_LSB 12
|
||||
#define MON_INGRESS_RING_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_MSB 31
|
||||
#define MON_INGRESS_RING_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_MASK 0xfffff000
|
||||
|
||||
|
||||
/* Description BUFFER_VIRT_ADDR_31_0
|
||||
|
||||
Lower 32 bits of the 64-bit virtual address corresponding
|
||||
to Buffer_addr_info_details
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MON_INGRESS_RING_BUFFER_VIRT_ADDR_31_0_OFFSET 0x00000008
|
||||
#define MON_INGRESS_RING_BUFFER_VIRT_ADDR_31_0_LSB 0
|
||||
#define MON_INGRESS_RING_BUFFER_VIRT_ADDR_31_0_MSB 31
|
||||
#define MON_INGRESS_RING_BUFFER_VIRT_ADDR_31_0_MASK 0xffffffff
|
||||
|
||||
|
||||
/* Description BUFFER_VIRT_ADDR_63_32
|
||||
|
||||
Upper 32 bits of the 64-bit virtual address corresponding
|
||||
to Buffer_addr_info_details
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define MON_INGRESS_RING_BUFFER_VIRT_ADDR_63_32_OFFSET 0x0000000c
|
||||
#define MON_INGRESS_RING_BUFFER_VIRT_ADDR_63_32_LSB 0
|
||||
#define MON_INGRESS_RING_BUFFER_VIRT_ADDR_63_32_MSB 31
|
||||
#define MON_INGRESS_RING_BUFFER_VIRT_ADDR_63_32_MASK 0xffffffff
|
||||
|
||||
|
||||
|
||||
#endif // MON_INGRESS_RING
|
||||
320
drivers/staging/fw-api/hw/qca5332/no_ack_report.h
Normal file
320
drivers/staging/fw-api/hw/qca5332/no_ack_report.h
Normal file
|
|
@ -0,0 +1,320 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _NO_ACK_REPORT_H_
|
||||
#define _NO_ACK_REPORT_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#define NUM_OF_DWORDS_NO_ACK_REPORT 4
|
||||
|
||||
|
||||
struct no_ack_report {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
uint32_t no_ack_transmit_reason : 4, // [3:0]
|
||||
macrx_abort_reason : 4, // [7:4]
|
||||
phyrx_abort_reason : 8, // [15:8]
|
||||
frame_control : 16; // [31:16]
|
||||
uint32_t rx_ppdu_duration : 24, // [23:0]
|
||||
sr_ppdu_during_obss : 1, // [24:24]
|
||||
selfgen_response_reason_to_sr_ppdu : 4, // [28:25]
|
||||
reserved_1 : 3; // [31:29]
|
||||
uint32_t pre_bt_broadcast_status_details : 12, // [11:0]
|
||||
first_bt_broadcast_status_details : 12, // [23:12]
|
||||
reserved_2 : 8; // [31:24]
|
||||
uint32_t second_bt_broadcast_status_details : 12, // [11:0]
|
||||
reserved_3 : 20; // [31:12]
|
||||
#else
|
||||
uint32_t frame_control : 16, // [31:16]
|
||||
phyrx_abort_reason : 8, // [15:8]
|
||||
macrx_abort_reason : 4, // [7:4]
|
||||
no_ack_transmit_reason : 4; // [3:0]
|
||||
uint32_t reserved_1 : 3, // [31:29]
|
||||
selfgen_response_reason_to_sr_ppdu : 4, // [28:25]
|
||||
sr_ppdu_during_obss : 1, // [24:24]
|
||||
rx_ppdu_duration : 24; // [23:0]
|
||||
uint32_t reserved_2 : 8, // [31:24]
|
||||
first_bt_broadcast_status_details : 12, // [23:12]
|
||||
pre_bt_broadcast_status_details : 12; // [11:0]
|
||||
uint32_t reserved_3 : 20, // [31:12]
|
||||
second_bt_broadcast_status_details : 12; // [11:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description NO_ACK_TRANSMIT_REASON
|
||||
|
||||
Field that indicates why the received frame is not needing
|
||||
any transmit response in SIFS time.
|
||||
|
||||
The possible responses are listed in order.
|
||||
|
||||
<enum 0 NO_ACK_FCS_errors > All received frames have
|
||||
FCS errors.
|
||||
<enum 1 Unicast_no_ack_frame_received > All received
|
||||
frames did not require a response.
|
||||
<enum 2 NO_ACK_Broadcast> Broadcast frame received
|
||||
<enum 3 NO_ACK_Multicast> Multicast frame received
|
||||
<enum 4 Not_directed> Frames received are not directed
|
||||
to this device (based on addr1)
|
||||
<enum 5 AST_no_ack> The AST entry indicated that NO
|
||||
ACK shall be send
|
||||
<enum 6 PHY_GID_mismatch> PHY dropped the incoming frame
|
||||
dur to GID mismatch
|
||||
<enum 7 PHY_AID_mismatch> PHY dropped the incoming frame
|
||||
dur to AID mismatch
|
||||
<enum 8 NO_ACK_PHY_error> PHY reported an error during
|
||||
reception. For details, see the 'phy_error...' fields
|
||||
<enum 9 RTS_bw_not_available> The requested BW for the
|
||||
CTS response frame is not available
|
||||
<enum 10 NDPA_Frame> An NDPA frame got received
|
||||
<enum 11 NDP_Frame> An NDP frame got received
|
||||
<enum 12 Trigger_NAV_blocked> a trigger frame was received,
|
||||
but due to NAV setting, no response could be generated
|
||||
<enum 13 Trigger_no_AID> A trigger frame was received,
|
||||
but this device's AID was not in the list
|
||||
<enum 14 NO_ACK_MAC_ABORT_REQ > No ACK is needed as
|
||||
SW asked RXPCU to send a abort_request to the PHYRX
|
||||
<enum 15 no_response_other> placeholder in case non
|
||||
of the above properly cover the reasons
|
||||
|
||||
Also see the field SR_PPDU_during_OBSS.
|
||||
<legal 0-15>
|
||||
*/
|
||||
|
||||
#define NO_ACK_REPORT_NO_ACK_TRANSMIT_REASON_OFFSET 0x00000000
|
||||
#define NO_ACK_REPORT_NO_ACK_TRANSMIT_REASON_LSB 0
|
||||
#define NO_ACK_REPORT_NO_ACK_TRANSMIT_REASON_MSB 3
|
||||
#define NO_ACK_REPORT_NO_ACK_TRANSMIT_REASON_MASK 0x0000000f
|
||||
|
||||
|
||||
/* Description MACRX_ABORT_REASON
|
||||
|
||||
Field only valid when No_ack_transmit_reason is set to NO_ACK_MAC_ABORT_REQ
|
||||
|
||||
|
||||
Error field received from MACRX_ABORT_REQUEST.Macrx_abort_reason[2:0]
|
||||
|
||||
<Legal all>
|
||||
*/
|
||||
|
||||
#define NO_ACK_REPORT_MACRX_ABORT_REASON_OFFSET 0x00000000
|
||||
#define NO_ACK_REPORT_MACRX_ABORT_REASON_LSB 4
|
||||
#define NO_ACK_REPORT_MACRX_ABORT_REASON_MSB 7
|
||||
#define NO_ACK_REPORT_MACRX_ABORT_REASON_MASK 0x000000f0
|
||||
|
||||
|
||||
/* Description PHYRX_ABORT_REASON
|
||||
|
||||
Field only valid when No_ack_transmit_reason is set to NO_ACK_PHY_error
|
||||
|
||||
|
||||
Error field received from PHYRX_ABORT_REQUEST.Phyrx_abort_reason
|
||||
|
||||
|
||||
<Legal all>
|
||||
*/
|
||||
|
||||
#define NO_ACK_REPORT_PHYRX_ABORT_REASON_OFFSET 0x00000000
|
||||
#define NO_ACK_REPORT_PHYRX_ABORT_REASON_LSB 8
|
||||
#define NO_ACK_REPORT_PHYRX_ABORT_REASON_MSB 15
|
||||
#define NO_ACK_REPORT_PHYRX_ABORT_REASON_MASK 0x0000ff00
|
||||
|
||||
|
||||
/* Description FRAME_CONTROL
|
||||
|
||||
frame control field of the received (first properly received)
|
||||
frame
|
||||
|
||||
<Legal all>
|
||||
*/
|
||||
|
||||
#define NO_ACK_REPORT_FRAME_CONTROL_OFFSET 0x00000000
|
||||
#define NO_ACK_REPORT_FRAME_CONTROL_LSB 16
|
||||
#define NO_ACK_REPORT_FRAME_CONTROL_MSB 31
|
||||
#define NO_ACK_REPORT_FRAME_CONTROL_MASK 0xffff0000
|
||||
|
||||
|
||||
/* Description RX_PPDU_DURATION
|
||||
|
||||
The length of this PPDU reception in us
|
||||
<Legal all>
|
||||
*/
|
||||
|
||||
#define NO_ACK_REPORT_RX_PPDU_DURATION_OFFSET 0x00000004
|
||||
#define NO_ACK_REPORT_RX_PPDU_DURATION_LSB 0
|
||||
#define NO_ACK_REPORT_RX_PPDU_DURATION_MSB 23
|
||||
#define NO_ACK_REPORT_RX_PPDU_DURATION_MASK 0x00ffffff
|
||||
|
||||
|
||||
/* Description SR_PPDU_DURING_OBSS
|
||||
|
||||
Field only valid with SRP Responder support (not PoR in
|
||||
Moselle/Maple/Spruce)
|
||||
|
||||
Indicates that the received frame was sent using SRP as
|
||||
indicated by the 'SR PPDU' bit in the 'CAS Control' in the
|
||||
'HE A-Control' in one of the MPDUs received, and that the
|
||||
response could not be generated due to OBSS traffic setting
|
||||
the NAV
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define NO_ACK_REPORT_SR_PPDU_DURING_OBSS_OFFSET 0x00000004
|
||||
#define NO_ACK_REPORT_SR_PPDU_DURING_OBSS_LSB 24
|
||||
#define NO_ACK_REPORT_SR_PPDU_DURING_OBSS_MSB 24
|
||||
#define NO_ACK_REPORT_SR_PPDU_DURING_OBSS_MASK 0x01000000
|
||||
|
||||
|
||||
/* Description SELFGEN_RESPONSE_REASON_TO_SR_PPDU
|
||||
|
||||
Field only valid with SRP Responder support (not PoR in
|
||||
Moselle/Maple/Spruce)
|
||||
|
||||
This field indicates why the received SR PPDU needs a response
|
||||
in SIFS time. The e-num used is the same as in the field
|
||||
selfgen_response_reason in 'ACK_REPORT' structure although
|
||||
some of these will be unused in case of an SR PPDU.
|
||||
|
||||
<enum 0 CTS_frame>
|
||||
<enum 1 ACK_frame>
|
||||
<enum 2 BA_frame >
|
||||
<enum 3 Qboost_trigger> Qboost trigger received
|
||||
<enum 4 PSPOLL_trigger> PSPOLL trigger received
|
||||
<enum 5 UAPSD_trigger > Unscheduled APSD trigger received
|
||||
|
||||
<enum 6 CBF_frame> the CBF frame needs to be send as
|
||||
a result of NDP or BRPOLL
|
||||
<enum 7 ax_su_trigger> 11ax trigger received for this
|
||||
device
|
||||
<enum 8 ax_wildcard_trigger> 11ax wildcardtrigger has
|
||||
been received
|
||||
<enum 9 ax_unassoc_wildcard_trigger> 11ax wildcard trigger
|
||||
for unassociated STAs has been received
|
||||
<enum 12 eht_su_trigger> EHT R1 trigger received for
|
||||
this device
|
||||
<enum 10 MU_UL_response_to_response>
|
||||
|
||||
<enum 11 Ranging_NDP_LMR_frames> Ranging NDP + LMR need
|
||||
to be sent in response to ranging NDPA + NDP
|
||||
|
||||
<legal 0-12>
|
||||
*/
|
||||
|
||||
#define NO_ACK_REPORT_SELFGEN_RESPONSE_REASON_TO_SR_PPDU_OFFSET 0x00000004
|
||||
#define NO_ACK_REPORT_SELFGEN_RESPONSE_REASON_TO_SR_PPDU_LSB 25
|
||||
#define NO_ACK_REPORT_SELFGEN_RESPONSE_REASON_TO_SR_PPDU_MSB 28
|
||||
#define NO_ACK_REPORT_SELFGEN_RESPONSE_REASON_TO_SR_PPDU_MASK 0x1e000000
|
||||
|
||||
|
||||
/* Description RESERVED_1
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define NO_ACK_REPORT_RESERVED_1_OFFSET 0x00000004
|
||||
#define NO_ACK_REPORT_RESERVED_1_LSB 29
|
||||
#define NO_ACK_REPORT_RESERVED_1_MSB 31
|
||||
#define NO_ACK_REPORT_RESERVED_1_MASK 0xe0000000
|
||||
|
||||
|
||||
/* Description PRE_BT_BROADCAST_STATUS_DETAILS
|
||||
|
||||
Same contents as field "bt_broadcast_status_details" for
|
||||
the first received COEX_STATUS_BROADCAST tlv during this
|
||||
PPDU reception.
|
||||
After power up, this field is all initialized to 0
|
||||
|
||||
Bits: [31:28]: always 0
|
||||
|
||||
|
||||
For detailed info see doc: TBD
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define NO_ACK_REPORT_PRE_BT_BROADCAST_STATUS_DETAILS_OFFSET 0x00000008
|
||||
#define NO_ACK_REPORT_PRE_BT_BROADCAST_STATUS_DETAILS_LSB 0
|
||||
#define NO_ACK_REPORT_PRE_BT_BROADCAST_STATUS_DETAILS_MSB 11
|
||||
#define NO_ACK_REPORT_PRE_BT_BROADCAST_STATUS_DETAILS_MASK 0x00000fff
|
||||
|
||||
|
||||
/* Description FIRST_BT_BROADCAST_STATUS_DETAILS
|
||||
|
||||
Same contents as field "bt_broadcast_status_details" for
|
||||
the first received COEX_STATUS_BROADCAST tlv during this
|
||||
PPDU reception.
|
||||
|
||||
If no COEX_STATUS_BROADCAST tlv is received during this
|
||||
PPDU reception, this field will be set to 0
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define NO_ACK_REPORT_FIRST_BT_BROADCAST_STATUS_DETAILS_OFFSET 0x00000008
|
||||
#define NO_ACK_REPORT_FIRST_BT_BROADCAST_STATUS_DETAILS_LSB 12
|
||||
#define NO_ACK_REPORT_FIRST_BT_BROADCAST_STATUS_DETAILS_MSB 23
|
||||
#define NO_ACK_REPORT_FIRST_BT_BROADCAST_STATUS_DETAILS_MASK 0x00fff000
|
||||
|
||||
|
||||
/* Description RESERVED_2
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define NO_ACK_REPORT_RESERVED_2_OFFSET 0x00000008
|
||||
#define NO_ACK_REPORT_RESERVED_2_LSB 24
|
||||
#define NO_ACK_REPORT_RESERVED_2_MSB 31
|
||||
#define NO_ACK_REPORT_RESERVED_2_MASK 0xff000000
|
||||
|
||||
|
||||
/* Description SECOND_BT_BROADCAST_STATUS_DETAILS
|
||||
|
||||
Same contents as field "bt_broadcast_status_details" for
|
||||
the second received COEX_STATUS_BROADCAST tlv during this
|
||||
PPDU reception.
|
||||
|
||||
If no second COEX_STATUS_BROADCAST tlv is received during
|
||||
this PPDU reception, this field will be set to 0
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define NO_ACK_REPORT_SECOND_BT_BROADCAST_STATUS_DETAILS_OFFSET 0x0000000c
|
||||
#define NO_ACK_REPORT_SECOND_BT_BROADCAST_STATUS_DETAILS_LSB 0
|
||||
#define NO_ACK_REPORT_SECOND_BT_BROADCAST_STATUS_DETAILS_MSB 11
|
||||
#define NO_ACK_REPORT_SECOND_BT_BROADCAST_STATUS_DETAILS_MASK 0x00000fff
|
||||
|
||||
|
||||
/* Description RESERVED_3
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define NO_ACK_REPORT_RESERVED_3_OFFSET 0x0000000c
|
||||
#define NO_ACK_REPORT_RESERVED_3_LSB 12
|
||||
#define NO_ACK_REPORT_RESERVED_3_MSB 31
|
||||
#define NO_ACK_REPORT_RESERVED_3_MASK 0xfffff000
|
||||
|
||||
|
||||
|
||||
#endif // NO_ACK_REPORT
|
||||
2641
drivers/staging/fw-api/hw/qca5332/ofdma_trigger_details.h
Normal file
2641
drivers/staging/fw-api/hw/qca5332/ofdma_trigger_details.h
Normal file
File diff suppressed because it is too large
Load diff
7472
drivers/staging/fw-api/hw/qca5332/pcu_ppdu_setup_init.h
Normal file
7472
drivers/staging/fw-api/hw/qca5332/pcu_ppdu_setup_init.h
Normal file
File diff suppressed because it is too large
Load diff
1408
drivers/staging/fw-api/hw/qca5332/pdg_response.h
Normal file
1408
drivers/staging/fw-api/hw/qca5332/pdg_response.h
Normal file
File diff suppressed because it is too large
Load diff
1042
drivers/staging/fw-api/hw/qca5332/pdg_response_rate_setting.h
Normal file
1042
drivers/staging/fw-api/hw/qca5332/pdg_response_rate_setting.h
Normal file
File diff suppressed because it is too large
Load diff
237
drivers/staging/fw-api/hw/qca5332/pdg_tx_req.h
Normal file
237
drivers/staging/fw-api/hw/qca5332/pdg_tx_req.h
Normal file
|
|
@ -0,0 +1,237 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _PDG_TX_REQ_H_
|
||||
#define _PDG_TX_REQ_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#define NUM_OF_DWORDS_PDG_TX_REQ 2
|
||||
|
||||
#define NUM_OF_QWORDS_PDG_TX_REQ 1
|
||||
|
||||
|
||||
struct pdg_tx_req {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
uint32_t tx_reason : 2, // [1:0]
|
||||
use_puncture_pattern : 2, // [3:2]
|
||||
req_bw : 3, // [6:4]
|
||||
puncture_pattern_number : 6, // [12:7]
|
||||
reserved_0b : 1, // [13:13]
|
||||
req_paprd : 1, // [14:14]
|
||||
duration_field_boundary_valid : 1, // [15:15]
|
||||
duration_field_boundary : 16; // [31:16]
|
||||
uint32_t puncture_subband_mask : 16, // [15:0]
|
||||
reserved_0c : 16; // [31:16]
|
||||
#else
|
||||
uint32_t duration_field_boundary : 16, // [31:16]
|
||||
duration_field_boundary_valid : 1, // [15:15]
|
||||
req_paprd : 1, // [14:14]
|
||||
reserved_0b : 1, // [13:13]
|
||||
puncture_pattern_number : 6, // [12:7]
|
||||
req_bw : 3, // [6:4]
|
||||
use_puncture_pattern : 2, // [3:2]
|
||||
tx_reason : 2; // [1:0]
|
||||
uint32_t reserved_0c : 16, // [31:16]
|
||||
puncture_subband_mask : 16; // [15:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description TX_REASON
|
||||
|
||||
<enum 0 tx_fes_protection_frame> RTS, CTS2Self or 11h
|
||||
protection type transmission preceding the regular PPDU
|
||||
portion of the coming FES.
|
||||
<enum 1 tx_fes_after_protection > Regular PPDU transmission
|
||||
that follows the transmission of medium protection frames:.
|
||||
|
||||
<enum 2 tx_fes_only> Regular PPDU transmission without
|
||||
preceding medium protection frame exchanges.
|
||||
|
||||
Note: Response frame transmissions are initiated with the
|
||||
PDG_RESPONSE TLV
|
||||
|
||||
<legal 0-2>
|
||||
*/
|
||||
|
||||
#define PDG_TX_REQ_TX_REASON_OFFSET 0x0000000000000000
|
||||
#define PDG_TX_REQ_TX_REASON_LSB 0
|
||||
#define PDG_TX_REQ_TX_REASON_MSB 1
|
||||
#define PDG_TX_REQ_TX_REASON_MASK 0x0000000000000003
|
||||
|
||||
|
||||
/* Description USE_PUNCTURE_PATTERN
|
||||
|
||||
When set, the transmission is based on puncture pattern
|
||||
selection
|
||||
<enum 0 NO_PUNCTURE> No puncturing
|
||||
<enum 1 PUNCTURE_FROM_TX_SETUP> Scheme 1 puncturing using
|
||||
'TX_PUNCTURE_SETUP' settings
|
||||
<enum 2 PUNCTURE_RESPONSE_FROM_RX> DO NOT USE
|
||||
<enum 3 PUNCTURE_FROM_ALL_ALLOWED_MODES> New scheme 2 puncturing
|
||||
in Beryllium based on the field puncture_subband_mask selected
|
||||
from up to 37 allowed modes in TXPCU registers
|
||||
<legal 0-3>
|
||||
*/
|
||||
|
||||
#define PDG_TX_REQ_USE_PUNCTURE_PATTERN_OFFSET 0x0000000000000000
|
||||
#define PDG_TX_REQ_USE_PUNCTURE_PATTERN_LSB 2
|
||||
#define PDG_TX_REQ_USE_PUNCTURE_PATTERN_MSB 3
|
||||
#define PDG_TX_REQ_USE_PUNCTURE_PATTERN_MASK 0x000000000000000c
|
||||
|
||||
|
||||
/* Description REQ_BW
|
||||
|
||||
Field not valid when use_puncture_pattern is set to PUNCTURE_FROM_TX_SETUP
|
||||
|
||||
|
||||
The BW of the upcoming transmission.
|
||||
Note: Coex might have changed this from the original request.
|
||||
|
||||
|
||||
<enum 0 20_mhz>20 Mhz BW
|
||||
<enum 1 40_mhz>40 Mhz BW
|
||||
<enum 2 80_mhz>80 Mhz BW
|
||||
<enum 3 160_mhz>160 Mhz BW
|
||||
<enum 4 320_mhz>320 Mhz BW
|
||||
<enum 5 240_mhz>240 Mhz BW
|
||||
*/
|
||||
|
||||
#define PDG_TX_REQ_REQ_BW_OFFSET 0x0000000000000000
|
||||
#define PDG_TX_REQ_REQ_BW_LSB 4
|
||||
#define PDG_TX_REQ_REQ_BW_MSB 6
|
||||
#define PDG_TX_REQ_REQ_BW_MASK 0x0000000000000070
|
||||
|
||||
|
||||
/* Description PUNCTURE_PATTERN_NUMBER
|
||||
|
||||
Field only valid when "use_puncture_pattern" is set.
|
||||
|
||||
The pattern number in case punctured transmission is enabled
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PDG_TX_REQ_PUNCTURE_PATTERN_NUMBER_OFFSET 0x0000000000000000
|
||||
#define PDG_TX_REQ_PUNCTURE_PATTERN_NUMBER_LSB 7
|
||||
#define PDG_TX_REQ_PUNCTURE_PATTERN_NUMBER_MSB 12
|
||||
#define PDG_TX_REQ_PUNCTURE_PATTERN_NUMBER_MASK 0x0000000000001f80
|
||||
|
||||
|
||||
/* Description RESERVED_0B
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define PDG_TX_REQ_RESERVED_0B_OFFSET 0x0000000000000000
|
||||
#define PDG_TX_REQ_RESERVED_0B_LSB 13
|
||||
#define PDG_TX_REQ_RESERVED_0B_MSB 13
|
||||
#define PDG_TX_REQ_RESERVED_0B_MASK 0x0000000000002000
|
||||
|
||||
|
||||
/* Description REQ_PAPRD
|
||||
|
||||
Indicate this is a 'PAPRD' packet request. Exist in NS,
|
||||
Helium?
|
||||
This is a calibration related request.
|
||||
Field copied over from the scheduling command TLV.
|
||||
|
||||
TODO: check the usage
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define PDG_TX_REQ_REQ_PAPRD_OFFSET 0x0000000000000000
|
||||
#define PDG_TX_REQ_REQ_PAPRD_LSB 14
|
||||
#define PDG_TX_REQ_REQ_PAPRD_MSB 14
|
||||
#define PDG_TX_REQ_REQ_PAPRD_MASK 0x0000000000004000
|
||||
|
||||
|
||||
/* Description DURATION_FIELD_BOUNDARY_VALID
|
||||
|
||||
When set, PDG should take the 'duration_field_boundary'
|
||||
value into account when it is calculating the TX and RX
|
||||
boundaries for the upcoming transmission. Both RX and TX
|
||||
should not go beyond this time duration provided.
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PDG_TX_REQ_DURATION_FIELD_BOUNDARY_VALID_OFFSET 0x0000000000000000
|
||||
#define PDG_TX_REQ_DURATION_FIELD_BOUNDARY_VALID_LSB 15
|
||||
#define PDG_TX_REQ_DURATION_FIELD_BOUNDARY_VALID_MSB 15
|
||||
#define PDG_TX_REQ_DURATION_FIELD_BOUNDARY_VALID_MASK 0x0000000000008000
|
||||
|
||||
|
||||
/* Description DURATION_FIELD_BOUNDARY
|
||||
|
||||
Field only valid when 'Duration_field_boundary_valid' is
|
||||
set
|
||||
|
||||
Amount of time to both TX and RX boundaries that PDG should
|
||||
take into account for the upcoming transmission.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PDG_TX_REQ_DURATION_FIELD_BOUNDARY_OFFSET 0x0000000000000000
|
||||
#define PDG_TX_REQ_DURATION_FIELD_BOUNDARY_LSB 16
|
||||
#define PDG_TX_REQ_DURATION_FIELD_BOUNDARY_MSB 31
|
||||
#define PDG_TX_REQ_DURATION_FIELD_BOUNDARY_MASK 0x00000000ffff0000
|
||||
|
||||
|
||||
/* Description PUNCTURE_SUBBAND_MASK
|
||||
|
||||
Field only valid when use_puncture_pattern is set to PUNCTURE_FROM_ALL_ALLOWED_MODES
|
||||
|
||||
|
||||
This mask indicates which 20 Mhz channels are actively used
|
||||
in this transmission.
|
||||
|
||||
Bit 0: primary 20 Mhz
|
||||
Bit 1: secondary 20 MHz
|
||||
Etc.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PDG_TX_REQ_PUNCTURE_SUBBAND_MASK_OFFSET 0x0000000000000000
|
||||
#define PDG_TX_REQ_PUNCTURE_SUBBAND_MASK_LSB 32
|
||||
#define PDG_TX_REQ_PUNCTURE_SUBBAND_MASK_MSB 47
|
||||
#define PDG_TX_REQ_PUNCTURE_SUBBAND_MASK_MASK 0x0000ffff00000000
|
||||
|
||||
|
||||
/* Description RESERVED_0C
|
||||
|
||||
Reserved for future power bits: Generator should set to
|
||||
0, consumer shall ignore <legal 0>
|
||||
*/
|
||||
|
||||
#define PDG_TX_REQ_RESERVED_0C_OFFSET 0x0000000000000000
|
||||
#define PDG_TX_REQ_RESERVED_0C_LSB 48
|
||||
#define PDG_TX_REQ_RESERVED_0C_MSB 63
|
||||
#define PDG_TX_REQ_RESERVED_0C_MASK 0xffff000000000000
|
||||
|
||||
|
||||
|
||||
#endif // PDG_TX_REQ
|
||||
223
drivers/staging/fw-api/hw/qca5332/phyrx_abort_request_info.h
Normal file
223
drivers/staging/fw-api/hw/qca5332/phyrx_abort_request_info.h
Normal file
|
|
@ -0,0 +1,223 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _PHYRX_ABORT_REQUEST_INFO_H_
|
||||
#define _PHYRX_ABORT_REQUEST_INFO_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#define NUM_OF_DWORDS_PHYRX_ABORT_REQUEST_INFO 1
|
||||
|
||||
|
||||
struct phyrx_abort_request_info {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
uint32_t phyrx_abort_reason : 8, // [7:0]
|
||||
phy_enters_nap_state : 1, // [8:8]
|
||||
phy_enters_defer_state : 1, // [9:9]
|
||||
reserved_0 : 6, // [15:10]
|
||||
receive_duration : 16; // [31:16]
|
||||
#else
|
||||
uint32_t receive_duration : 16, // [31:16]
|
||||
reserved_0 : 6, // [15:10]
|
||||
phy_enters_defer_state : 1, // [9:9]
|
||||
phy_enters_nap_state : 1, // [8:8]
|
||||
phyrx_abort_reason : 8; // [7:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description PHYRX_ABORT_REASON
|
||||
|
||||
<enum 0 phyrx_err_phy_off> Reception aborted due to receiving
|
||||
a PHY_OFF TLV
|
||||
<enum 1 phyrx_err_synth_off>
|
||||
<enum 2 phyrx_err_ofdma_timing>
|
||||
<enum 3 phyrx_err_ofdma_signal_parity>
|
||||
<enum 4 phyrx_err_ofdma_rate_illegal>
|
||||
<enum 5 phyrx_err_ofdma_length_illegal>
|
||||
<enum 6 phyrx_err_ofdma_restart>
|
||||
<enum 7 phyrx_err_ofdma_service>
|
||||
<enum 8 phyrx_err_ppdu_ofdma_power_drop>
|
||||
|
||||
<enum 9 phyrx_err_cck_blokker>
|
||||
<enum 10 phyrx_err_cck_timing>
|
||||
<enum 11 phyrx_err_cck_header_crc>
|
||||
<enum 12 phyrx_err_cck_rate_illegal>
|
||||
<enum 13 phyrx_err_cck_length_illegal>
|
||||
<enum 14 phyrx_err_cck_restart>
|
||||
<enum 15 phyrx_err_cck_service>
|
||||
<enum 16 phyrx_err_cck_power_drop>
|
||||
|
||||
<enum 17 phyrx_err_ht_crc_err>
|
||||
<enum 18 phyrx_err_ht_length_illegal>
|
||||
<enum 19 phyrx_err_ht_rate_illegal>
|
||||
<enum 20 phyrx_err_ht_zlf>
|
||||
<enum 21 phyrx_err_false_radar_ext>
|
||||
<enum 22 phyrx_err_green_field>
|
||||
<enum 60 phyrx_err_ht_nsym_lt_zero>
|
||||
|
||||
<enum 23 phyrx_err_bw_gt_dyn_bw>
|
||||
<enum 24 phyrx_err_leg_ht_mismatch>
|
||||
<enum 25 phyrx_err_vht_crc_error>
|
||||
<enum 26 phyrx_err_vht_siga_unsupported>
|
||||
<enum 27 phyrx_err_vht_lsig_len_invalid>
|
||||
<enum 28 phyrx_err_vht_ndp_or_zlf>
|
||||
<enum 29 phyrx_err_vht_nsym_lt_zero>
|
||||
<enum 30 phyrx_err_vht_rx_extra_symbol_mismatch>
|
||||
<enum 31 phyrx_err_vht_rx_skip_group_id0>
|
||||
<enum 32 phyrx_err_vht_rx_skip_group_id1to62>
|
||||
<enum 33 phyrx_err_vht_rx_skip_group_id63>
|
||||
<enum 34 phyrx_err_ofdm_ldpc_decoder_disabled>
|
||||
<enum 35 phyrx_err_defer_nap>
|
||||
|
||||
<enum 61 phyrx_err_vht_lsig_rate_mismatch>
|
||||
<enum 62 phyrx_err_vht_paid_gid_mismatch>
|
||||
<enum 63 phyrx_err_vht_unsupported_bw>
|
||||
<enum 64 phyrx_err_vht_gi_disam_mismatch>
|
||||
|
||||
<enum 36 phyrx_err_fdomain_timeout>
|
||||
<enum 37 phyrx_err_lsig_rel_check>
|
||||
<enum 38 phyrx_err_bt_collision>
|
||||
<enum 39 phyrx_err_unsupported_mu_feedback>
|
||||
<enum 40 phyrx_err_ppdu_tx_interrupt_rx>
|
||||
<enum 41 phyrx_err_unsupported_cbf>
|
||||
|
||||
<enum 42 phyrx_err_other> Should not really be used. If
|
||||
needed, ask for documentation update
|
||||
|
||||
<enum 43 phyrx_err_he_siga_unsupported > <enum 44 phyrx_err_he_crc_error
|
||||
> <enum 45 phyrx_err_he_sigb_unsupported > <enum 46 phyrx_err_he_mu_mode_unsupported
|
||||
> <enum 47 phyrx_err_he_ndp_or_zlf > <enum 48 phyrx_err_he_nsym_lt_zero
|
||||
> <enum 49 phyrx_err_he_ru_params_unsupported > <enum 50
|
||||
phyrx_err_he_num_users_unsupported ><enum 51 phyrx_err_he_sounding_params_unsupported
|
||||
>
|
||||
<enum 54 phyrx_err_he_sigb_crc_error>
|
||||
<enum 55 phyrx_err_he_ext_su_unsupported>
|
||||
<enum 56 phyrx_err_he_trig_unsupported>
|
||||
<enum 57 phyrx_err_he_lsig_len_invalid>
|
||||
<enum 58 phyrx_err_he_lsig_rate_mismatch>
|
||||
<enum 59 phyrx_err_ofdma_signal_reliability>
|
||||
|
||||
<enum 77 phyrx_err_wur_detection>
|
||||
|
||||
<enum 72 phyrx_err_u_sig_crc_error>
|
||||
<enum 73 phyrx_err_u_sig_unsupported_mode>
|
||||
<enum 74 phyrx_err_u_sig_rsvd_err>
|
||||
<enum 75 phyrx_err_u_sig_mcs_error>
|
||||
<enum 76 phyrx_err_u_sig_bw_error>
|
||||
<enum 79 phyrx_err_u_sig_320_channel_mismatch>
|
||||
<enum 71 phyrx_err_eht_sig_crc_error>
|
||||
<enum 78 phyrx_err_eht_sig_unsupported_mode>
|
||||
|
||||
<enum 80 phyrx_err_ehtplus_er_detection>
|
||||
|
||||
<enum 52 phyrx_err_MU_UL_no_power_detected>
|
||||
<enum 53 phyrx_err_MU_UL_not_for_me>
|
||||
|
||||
<enum 65 phyrx_err_rx_wdg_timeout>
|
||||
<enum 66 phyrx_err_sizing_evt_unexpected>
|
||||
<enum 67 phyrx_err_spectralscan>
|
||||
<enum 68 phyrx_err_radar_misdetected_as_ofdm>
|
||||
<enum 69 phyrx_err_rx_stuck>
|
||||
<enum 70 phyrx_err_invalid_11b_state>
|
||||
|
||||
<legal 0 - 80>
|
||||
*/
|
||||
|
||||
#define PHYRX_ABORT_REQUEST_INFO_PHYRX_ABORT_REASON_OFFSET 0x00000000
|
||||
#define PHYRX_ABORT_REQUEST_INFO_PHYRX_ABORT_REASON_LSB 0
|
||||
#define PHYRX_ABORT_REQUEST_INFO_PHYRX_ABORT_REASON_MSB 7
|
||||
#define PHYRX_ABORT_REQUEST_INFO_PHYRX_ABORT_REASON_MASK 0x000000ff
|
||||
|
||||
|
||||
/* Description PHY_ENTERS_NAP_STATE
|
||||
|
||||
When set, PHY enters PHY NAP state after sending this abort
|
||||
|
||||
|
||||
Note that nap and defer state are mutually exclusive.
|
||||
|
||||
Field put pro-actively in place....usage still to be agreed
|
||||
upon.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_ABORT_REQUEST_INFO_PHY_ENTERS_NAP_STATE_OFFSET 0x00000000
|
||||
#define PHYRX_ABORT_REQUEST_INFO_PHY_ENTERS_NAP_STATE_LSB 8
|
||||
#define PHYRX_ABORT_REQUEST_INFO_PHY_ENTERS_NAP_STATE_MSB 8
|
||||
#define PHYRX_ABORT_REQUEST_INFO_PHY_ENTERS_NAP_STATE_MASK 0x00000100
|
||||
|
||||
|
||||
/* Description PHY_ENTERS_DEFER_STATE
|
||||
|
||||
When set, PHY enters PHY defer state after sending this
|
||||
abort
|
||||
|
||||
Note that nap and defer state are mutually exclusive.
|
||||
|
||||
Field put pro-actively in place....usage still to be agreed
|
||||
upon.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_ABORT_REQUEST_INFO_PHY_ENTERS_DEFER_STATE_OFFSET 0x00000000
|
||||
#define PHYRX_ABORT_REQUEST_INFO_PHY_ENTERS_DEFER_STATE_LSB 9
|
||||
#define PHYRX_ABORT_REQUEST_INFO_PHY_ENTERS_DEFER_STATE_MSB 9
|
||||
#define PHYRX_ABORT_REQUEST_INFO_PHY_ENTERS_DEFER_STATE_MASK 0x00000200
|
||||
|
||||
|
||||
/* Description RESERVED_0
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define PHYRX_ABORT_REQUEST_INFO_RESERVED_0_OFFSET 0x00000000
|
||||
#define PHYRX_ABORT_REQUEST_INFO_RESERVED_0_LSB 10
|
||||
#define PHYRX_ABORT_REQUEST_INFO_RESERVED_0_MSB 15
|
||||
#define PHYRX_ABORT_REQUEST_INFO_RESERVED_0_MASK 0x0000fc00
|
||||
|
||||
|
||||
/* Description RECEIVE_DURATION
|
||||
|
||||
The remaining receive duration of this PPDU in the medium
|
||||
(in us). When PHY does not know this duration when this
|
||||
TLV is generated, the field will be set to 0.
|
||||
The timing reference point is the reception by the MAC of
|
||||
this TLV. The value shall be accurate to within 2us.
|
||||
|
||||
In case Phy_enters_nap_state and/or Phy_enters_defer_state
|
||||
is set, there is a possibility that MAC PMM can also decide
|
||||
to go into a low(er) power state.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_ABORT_REQUEST_INFO_RECEIVE_DURATION_OFFSET 0x00000000
|
||||
#define PHYRX_ABORT_REQUEST_INFO_RECEIVE_DURATION_LSB 16
|
||||
#define PHYRX_ABORT_REQUEST_INFO_RECEIVE_DURATION_MSB 31
|
||||
#define PHYRX_ABORT_REQUEST_INFO_RECEIVE_DURATION_MASK 0xffff0000
|
||||
|
||||
|
||||
|
||||
#endif // PHYRX_ABORT_REQUEST_INFO
|
||||
412
drivers/staging/fw-api/hw/qca5332/phyrx_common_user_info.h
Normal file
412
drivers/staging/fw-api/hw/qca5332/phyrx_common_user_info.h
Normal file
|
|
@ -0,0 +1,412 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _PHYRX_COMMON_USER_INFO_H_
|
||||
#define _PHYRX_COMMON_USER_INFO_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#define NUM_OF_DWORDS_PHYRX_COMMON_USER_INFO 4
|
||||
|
||||
#define NUM_OF_QWORDS_PHYRX_COMMON_USER_INFO 2
|
||||
|
||||
|
||||
struct phyrx_common_user_info {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
uint32_t receive_duration : 16, // [15:0]
|
||||
reserved_0a : 16; // [31:16]
|
||||
uint32_t u_sig_puncture_pattern_encoding : 6, // [5:0]
|
||||
reserved_1a : 26; // [31:6]
|
||||
uint32_t eht_ppdu_type : 2, // [1:0]
|
||||
bss_color_id : 6, // [7:2]
|
||||
dl_ul_flag : 1, // [8:8]
|
||||
txop_duration : 7, // [15:9]
|
||||
cp_setting : 2, // [17:16]
|
||||
ltf_size : 2, // [19:18]
|
||||
spatial_reuse : 4, // [23:20]
|
||||
rx_ndp : 1, // [24:24]
|
||||
dot11be_su_extended : 1, // [25:25]
|
||||
reserved_2a : 6; // [31:26]
|
||||
uint32_t eht_duplicate : 2, // [1:0]
|
||||
eht_sig_cmn_field_type : 2, // [3:2]
|
||||
doppler_indication : 1, // [4:4]
|
||||
sta_id : 11, // [15:5]
|
||||
puncture_bitmap : 16; // [31:16]
|
||||
#else
|
||||
uint32_t reserved_0a : 16, // [31:16]
|
||||
receive_duration : 16; // [15:0]
|
||||
uint32_t reserved_1a : 26, // [31:6]
|
||||
u_sig_puncture_pattern_encoding : 6; // [5:0]
|
||||
uint32_t reserved_2a : 6, // [31:26]
|
||||
dot11be_su_extended : 1, // [25:25]
|
||||
rx_ndp : 1, // [24:24]
|
||||
spatial_reuse : 4, // [23:20]
|
||||
ltf_size : 2, // [19:18]
|
||||
cp_setting : 2, // [17:16]
|
||||
txop_duration : 7, // [15:9]
|
||||
dl_ul_flag : 1, // [8:8]
|
||||
bss_color_id : 6, // [7:2]
|
||||
eht_ppdu_type : 2; // [1:0]
|
||||
uint32_t puncture_bitmap : 16, // [31:16]
|
||||
sta_id : 11, // [15:5]
|
||||
doppler_indication : 1, // [4:4]
|
||||
eht_sig_cmn_field_type : 2, // [3:2]
|
||||
eht_duplicate : 2; // [1:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description RECEIVE_DURATION
|
||||
|
||||
The remaining receive duration of this PPDU in the medium
|
||||
(in us).
|
||||
The timing reference point is the assertion of 'rx_frame'
|
||||
by PHY for the PPDU reception. The value shall be accurate
|
||||
to within 2us.
|
||||
RXPCU shall subtract the time elapsed between 'rx_frame'
|
||||
assertion and reception of this TLV to find the actual remaining
|
||||
receive duration.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_COMMON_USER_INFO_RECEIVE_DURATION_OFFSET 0x0000000000000000
|
||||
#define PHYRX_COMMON_USER_INFO_RECEIVE_DURATION_LSB 0
|
||||
#define PHYRX_COMMON_USER_INFO_RECEIVE_DURATION_MSB 15
|
||||
#define PHYRX_COMMON_USER_INFO_RECEIVE_DURATION_MASK 0x000000000000ffff
|
||||
|
||||
|
||||
/* Description RESERVED_0A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define PHYRX_COMMON_USER_INFO_RESERVED_0A_OFFSET 0x0000000000000000
|
||||
#define PHYRX_COMMON_USER_INFO_RESERVED_0A_LSB 16
|
||||
#define PHYRX_COMMON_USER_INFO_RESERVED_0A_MSB 31
|
||||
#define PHYRX_COMMON_USER_INFO_RESERVED_0A_MASK 0x00000000ffff0000
|
||||
|
||||
|
||||
/* Description U_SIG_PUNCTURE_PATTERN_ENCODING
|
||||
|
||||
Field only valid if PHY has sent 'PHYRX_GENERIC_U_SIG' TLV.
|
||||
|
||||
|
||||
The 6-bit value used in U-SIG and/or EHT-SIG Common field
|
||||
for the puncture pattern
|
||||
<legal 0-29>
|
||||
*/
|
||||
|
||||
#define PHYRX_COMMON_USER_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_OFFSET 0x0000000000000000
|
||||
#define PHYRX_COMMON_USER_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_LSB 32
|
||||
#define PHYRX_COMMON_USER_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_MSB 37
|
||||
#define PHYRX_COMMON_USER_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_MASK 0x0000003f00000000
|
||||
|
||||
|
||||
/* Description RESERVED_1A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define PHYRX_COMMON_USER_INFO_RESERVED_1A_OFFSET 0x0000000000000000
|
||||
#define PHYRX_COMMON_USER_INFO_RESERVED_1A_LSB 38
|
||||
#define PHYRX_COMMON_USER_INFO_RESERVED_1A_MSB 63
|
||||
#define PHYRX_COMMON_USER_INFO_RESERVED_1A_MASK 0xffffffc000000000
|
||||
|
||||
|
||||
/* Description EHT_PPDU_TYPE
|
||||
|
||||
Field only valid if PHY has sent 'PHYRX_GENERIC_U_SIG' TLV.
|
||||
|
||||
|
||||
<enum 0 EHT_PPDU_rsvd> DO NOT USE
|
||||
<enum 1 EHT_PPDU_TB>
|
||||
<enum 2 EHT_PPDU_MU> Need to look at both EHT-SIG content
|
||||
channels
|
||||
<enum 3 EHT_PPDU_SU> Need to look at only one EHT-SIG content
|
||||
channel
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_COMMON_USER_INFO_EHT_PPDU_TYPE_OFFSET 0x0000000000000008
|
||||
#define PHYRX_COMMON_USER_INFO_EHT_PPDU_TYPE_LSB 0
|
||||
#define PHYRX_COMMON_USER_INFO_EHT_PPDU_TYPE_MSB 1
|
||||
#define PHYRX_COMMON_USER_INFO_EHT_PPDU_TYPE_MASK 0x0000000000000003
|
||||
|
||||
|
||||
/* Description BSS_COLOR_ID
|
||||
|
||||
Field only valid if PHY has sent 'PHYRX_GENERIC_U_SIG' TLV.
|
||||
|
||||
|
||||
BSS color ID
|
||||
|
||||
Field used by MAC HW
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_COMMON_USER_INFO_BSS_COLOR_ID_OFFSET 0x0000000000000008
|
||||
#define PHYRX_COMMON_USER_INFO_BSS_COLOR_ID_LSB 2
|
||||
#define PHYRX_COMMON_USER_INFO_BSS_COLOR_ID_MSB 7
|
||||
#define PHYRX_COMMON_USER_INFO_BSS_COLOR_ID_MASK 0x00000000000000fc
|
||||
|
||||
|
||||
/* Description DL_UL_FLAG
|
||||
|
||||
Field only valid if PHY has sent 'PHYRX_GENERIC_U_SIG' TLV.
|
||||
|
||||
|
||||
Differentiates between DL and UL transmission
|
||||
|
||||
<enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
|
||||
<enum 1 DL_UL_FLAG_IS_UL>
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_COMMON_USER_INFO_DL_UL_FLAG_OFFSET 0x0000000000000008
|
||||
#define PHYRX_COMMON_USER_INFO_DL_UL_FLAG_LSB 8
|
||||
#define PHYRX_COMMON_USER_INFO_DL_UL_FLAG_MSB 8
|
||||
#define PHYRX_COMMON_USER_INFO_DL_UL_FLAG_MASK 0x0000000000000100
|
||||
|
||||
|
||||
/* Description TXOP_DURATION
|
||||
|
||||
Field only valid if PHY has sent 'PHYRX_GENERIC_U_SIG' TLV.
|
||||
|
||||
|
||||
Indicates the remaining time in the current TXOP
|
||||
|
||||
Field used by MAC HW
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_COMMON_USER_INFO_TXOP_DURATION_OFFSET 0x0000000000000008
|
||||
#define PHYRX_COMMON_USER_INFO_TXOP_DURATION_LSB 9
|
||||
#define PHYRX_COMMON_USER_INFO_TXOP_DURATION_MSB 15
|
||||
#define PHYRX_COMMON_USER_INFO_TXOP_DURATION_MASK 0x000000000000fe00
|
||||
|
||||
|
||||
/* Description CP_SETTING
|
||||
|
||||
Field only valid if PHY has sent 'PHYRX_GENERIC_U_SIG' TLV.
|
||||
|
||||
|
||||
<enum 0 gi_0_8_us > Legacy normal GI
|
||||
<enum 1 gi_0_4_us > Legacy short GI
|
||||
<enum 2 gi_1_6_us > HE related GI
|
||||
<enum 3 gi_3_2_us > HE related GI
|
||||
<legal 0 - 3>
|
||||
*/
|
||||
|
||||
#define PHYRX_COMMON_USER_INFO_CP_SETTING_OFFSET 0x0000000000000008
|
||||
#define PHYRX_COMMON_USER_INFO_CP_SETTING_LSB 16
|
||||
#define PHYRX_COMMON_USER_INFO_CP_SETTING_MSB 17
|
||||
#define PHYRX_COMMON_USER_INFO_CP_SETTING_MASK 0x0000000000030000
|
||||
|
||||
|
||||
/* Description LTF_SIZE
|
||||
|
||||
Field only valid if PHY has sent 'PHYRX_GENERIC_U_SIG' TLV.
|
||||
|
||||
|
||||
Ltf size
|
||||
|
||||
<enum 0 ltf_1x >
|
||||
<enum 1 ltf_2x >
|
||||
<enum 2 ltf_4x >
|
||||
<legal 0 - 2>
|
||||
*/
|
||||
|
||||
#define PHYRX_COMMON_USER_INFO_LTF_SIZE_OFFSET 0x0000000000000008
|
||||
#define PHYRX_COMMON_USER_INFO_LTF_SIZE_LSB 18
|
||||
#define PHYRX_COMMON_USER_INFO_LTF_SIZE_MSB 19
|
||||
#define PHYRX_COMMON_USER_INFO_LTF_SIZE_MASK 0x00000000000c0000
|
||||
|
||||
|
||||
/* Description SPATIAL_REUSE
|
||||
|
||||
Field only valid if PHY has sent 'PHYRX_GENERIC_U_SIG' TLV.
|
||||
|
||||
|
||||
TODO: Placeholder
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_COMMON_USER_INFO_SPATIAL_REUSE_OFFSET 0x0000000000000008
|
||||
#define PHYRX_COMMON_USER_INFO_SPATIAL_REUSE_LSB 20
|
||||
#define PHYRX_COMMON_USER_INFO_SPATIAL_REUSE_MSB 23
|
||||
#define PHYRX_COMMON_USER_INFO_SPATIAL_REUSE_MASK 0x0000000000f00000
|
||||
|
||||
|
||||
/* Description RX_NDP
|
||||
|
||||
Field only valid if PHY has sent 'PHYRX_GENERIC_U_SIG' TLV.
|
||||
|
||||
|
||||
On RX side, looked at by MAC HW
|
||||
|
||||
When set, PHY has received an (expected) NDP frame
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_COMMON_USER_INFO_RX_NDP_OFFSET 0x0000000000000008
|
||||
#define PHYRX_COMMON_USER_INFO_RX_NDP_LSB 24
|
||||
#define PHYRX_COMMON_USER_INFO_RX_NDP_MSB 24
|
||||
#define PHYRX_COMMON_USER_INFO_RX_NDP_MASK 0x0000000001000000
|
||||
|
||||
|
||||
/* Description DOT11BE_SU_EXTENDED
|
||||
|
||||
Field only valid if PHY has sent 'PHYRX_GENERIC_U_SIG' TLV.
|
||||
|
||||
|
||||
On RX side, evaluated by MAC HW
|
||||
|
||||
This is the only way for MAC RX to know that this was a
|
||||
U_SIG_EHT_SU received in extended range format.
|
||||
|
||||
When set, the 11be frame is of the extended range format.
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_COMMON_USER_INFO_DOT11BE_SU_EXTENDED_OFFSET 0x0000000000000008
|
||||
#define PHYRX_COMMON_USER_INFO_DOT11BE_SU_EXTENDED_LSB 25
|
||||
#define PHYRX_COMMON_USER_INFO_DOT11BE_SU_EXTENDED_MSB 25
|
||||
#define PHYRX_COMMON_USER_INFO_DOT11BE_SU_EXTENDED_MASK 0x0000000002000000
|
||||
|
||||
|
||||
/* Description RESERVED_2A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define PHYRX_COMMON_USER_INFO_RESERVED_2A_OFFSET 0x0000000000000008
|
||||
#define PHYRX_COMMON_USER_INFO_RESERVED_2A_LSB 26
|
||||
#define PHYRX_COMMON_USER_INFO_RESERVED_2A_MSB 31
|
||||
#define PHYRX_COMMON_USER_INFO_RESERVED_2A_MASK 0x00000000fc000000
|
||||
|
||||
|
||||
/* Description EHT_DUPLICATE
|
||||
|
||||
Field only valid if PHY has sent 'PHYRX_GENERIC_U_SIG' TLV.
|
||||
|
||||
|
||||
Indicates EHT duplicate modulation
|
||||
|
||||
<enum 0 eht_no_duplicate>
|
||||
<enum 1 eht_2x_duplicate>
|
||||
<enum 2 eht_4x_duplicate>
|
||||
|
||||
<legal 0-2>
|
||||
*/
|
||||
|
||||
#define PHYRX_COMMON_USER_INFO_EHT_DUPLICATE_OFFSET 0x0000000000000008
|
||||
#define PHYRX_COMMON_USER_INFO_EHT_DUPLICATE_LSB 32
|
||||
#define PHYRX_COMMON_USER_INFO_EHT_DUPLICATE_MSB 33
|
||||
#define PHYRX_COMMON_USER_INFO_EHT_DUPLICATE_MASK 0x0000000300000000
|
||||
|
||||
|
||||
/* Description EHT_SIG_CMN_FIELD_TYPE
|
||||
|
||||
Field only valid if PHY has sent 'PHYRX_GENERIC_U_SIG' TLV.
|
||||
|
||||
|
||||
Indicates the type of EHT-SIG Common field
|
||||
|
||||
<enum 0 EHT_SIG_CMN_NO_PUNC> Non-OFDMA, EHT-SIG Common field
|
||||
does not contain puncturing information
|
||||
<enum 1 EHT_SIG_CMN_PUNC> Non-OFDMA, EHT-SIG Common field
|
||||
contains puncturing information
|
||||
<enum 2 EHT_SIG_OFDMA>
|
||||
OFDMA, EHT-SIG Common field contains RU structure
|
||||
<legal 0-2>
|
||||
*/
|
||||
|
||||
#define PHYRX_COMMON_USER_INFO_EHT_SIG_CMN_FIELD_TYPE_OFFSET 0x0000000000000008
|
||||
#define PHYRX_COMMON_USER_INFO_EHT_SIG_CMN_FIELD_TYPE_LSB 34
|
||||
#define PHYRX_COMMON_USER_INFO_EHT_SIG_CMN_FIELD_TYPE_MSB 35
|
||||
#define PHYRX_COMMON_USER_INFO_EHT_SIG_CMN_FIELD_TYPE_MASK 0x0000000c00000000
|
||||
|
||||
|
||||
/* Description DOPPLER_INDICATION
|
||||
|
||||
Field only valid if PHY has sent 'PHYRX_GENERIC_U_SIG' TLV.
|
||||
|
||||
|
||||
0: No Doppler support
|
||||
1: Doppler support
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_COMMON_USER_INFO_DOPPLER_INDICATION_OFFSET 0x0000000000000008
|
||||
#define PHYRX_COMMON_USER_INFO_DOPPLER_INDICATION_LSB 36
|
||||
#define PHYRX_COMMON_USER_INFO_DOPPLER_INDICATION_MSB 36
|
||||
#define PHYRX_COMMON_USER_INFO_DOPPLER_INDICATION_MASK 0x0000001000000000
|
||||
|
||||
|
||||
/* Description STA_ID
|
||||
|
||||
Field only valid if PHY has sent 'PHYRX_GENERIC_U_SIG' TLV
|
||||
and EHT_PPDU_type is EHT_PPDU_MU (MU-MIMO or OFDMA).
|
||||
|
||||
Identifies the STA that is addressed. Details of STA ID
|
||||
are TBD
|
||||
*/
|
||||
|
||||
#define PHYRX_COMMON_USER_INFO_STA_ID_OFFSET 0x0000000000000008
|
||||
#define PHYRX_COMMON_USER_INFO_STA_ID_LSB 37
|
||||
#define PHYRX_COMMON_USER_INFO_STA_ID_MSB 47
|
||||
#define PHYRX_COMMON_USER_INFO_STA_ID_MASK 0x0000ffe000000000
|
||||
|
||||
|
||||
/* Description PUNCTURE_BITMAP
|
||||
|
||||
Field only valid if PHY has sent 'PHYRX_GENERIC_U_SIG' TLV
|
||||
and EHT_SIG_CMN_field_type is EHT_SIG_CMN_PUNC.
|
||||
|
||||
Indicates which 20 MHz sub-bands will be modulated vs punctured
|
||||
(bits [15:0]) in CCA order (primary/secondary)
|
||||
|
||||
Bit 0: primary 20MHz sub-band
|
||||
Bit 1: secondary 20 MHz sub-band
|
||||
Bit 2: first 20 MHz sub-band in secondary 40 MHz
|
||||
Bit 3: second 20 MHz sub-band in secondary 40 MHz
|
||||
...
|
||||
Bit 15: last 20MHz sub-band in secondary 160 MHz
|
||||
A value of 0 means the band is punctured
|
||||
A value of 1 means the band is modulated
|
||||
|
||||
If the PPDU BW is less than 320 MHz, the MSB bits are reserved
|
||||
and set to 0.
|
||||
*/
|
||||
|
||||
#define PHYRX_COMMON_USER_INFO_PUNCTURE_BITMAP_OFFSET 0x0000000000000008
|
||||
#define PHYRX_COMMON_USER_INFO_PUNCTURE_BITMAP_LSB 48
|
||||
#define PHYRX_COMMON_USER_INFO_PUNCTURE_BITMAP_MSB 63
|
||||
#define PHYRX_COMMON_USER_INFO_PUNCTURE_BITMAP_MASK 0xffff000000000000
|
||||
|
||||
|
||||
|
||||
#endif // PHYRX_COMMON_USER_INFO
|
||||
400
drivers/staging/fw-api/hw/qca5332/phyrx_he_sig_a_mu_dl.h
Normal file
400
drivers/staging/fw-api/hw/qca5332/phyrx_he_sig_a_mu_dl.h
Normal file
|
|
@ -0,0 +1,400 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _PHYRX_HE_SIG_A_MU_DL_H_
|
||||
#define _PHYRX_HE_SIG_A_MU_DL_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#include "he_sig_a_mu_dl_info.h"
|
||||
#define NUM_OF_DWORDS_PHYRX_HE_SIG_A_MU_DL 2
|
||||
|
||||
#define NUM_OF_QWORDS_PHYRX_HE_SIG_A_MU_DL 1
|
||||
|
||||
|
||||
struct phyrx_he_sig_a_mu_dl {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
struct he_sig_a_mu_dl_info phyrx_he_sig_a_mu_dl_info_details;
|
||||
#else
|
||||
struct he_sig_a_mu_dl_info phyrx_he_sig_a_mu_dl_info_details;
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS
|
||||
|
||||
See detailed description of the STRUCT
|
||||
*/
|
||||
|
||||
|
||||
/* Description DL_UL_FLAG
|
||||
|
||||
Differentiates between DL and UL transmission
|
||||
|
||||
<enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
|
||||
<enum 1 DL_UL_FLAG_IS_UL>
|
||||
NOTE: This is unsupported for "HE MU" format (including "MU_SU")
|
||||
Tx in Napier and Hastings80.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_DL_UL_FLAG_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_DL_UL_FLAG_LSB 0
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_DL_UL_FLAG_MSB 0
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_DL_UL_FLAG_MASK 0x0000000000000001
|
||||
|
||||
|
||||
/* Description MCS_OF_SIG_B
|
||||
|
||||
Indicates the MCS of HE-SIG-B
|
||||
<legal 0-5>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_MCS_OF_SIG_B_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_MCS_OF_SIG_B_LSB 1
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_MCS_OF_SIG_B_MSB 3
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_MCS_OF_SIG_B_MASK 0x000000000000000e
|
||||
|
||||
|
||||
/* Description DCM_OF_SIG_B
|
||||
|
||||
Indicates whether dual sub-carrier modulation is applied
|
||||
to HE-SIG-B
|
||||
|
||||
0: No DCM for HE_SIG_B
|
||||
1: DCM for HE_SIG_B
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_DCM_OF_SIG_B_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_DCM_OF_SIG_B_LSB 4
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_DCM_OF_SIG_B_MSB 4
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_DCM_OF_SIG_B_MASK 0x0000000000000010
|
||||
|
||||
|
||||
/* Description BSS_COLOR_ID
|
||||
|
||||
BSS color ID
|
||||
|
||||
Field Used by MAC HW
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_BSS_COLOR_ID_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_BSS_COLOR_ID_LSB 5
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_BSS_COLOR_ID_MSB 10
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_BSS_COLOR_ID_MASK 0x00000000000007e0
|
||||
|
||||
|
||||
/* Description SPATIAL_REUSE
|
||||
|
||||
Spatial reuse
|
||||
|
||||
For 20MHz one SR field corresponding to entire 20MHz (other
|
||||
3 fields indicate identical values)
|
||||
For 40MHz two SR fields for each 20MHz (other 2 fields indicate
|
||||
identical values)
|
||||
For 80MHz four SR fields for each 20MHz
|
||||
For 160MHz four SR fields for each 40MHz
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_SPATIAL_REUSE_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_SPATIAL_REUSE_LSB 11
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_SPATIAL_REUSE_MSB 14
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_SPATIAL_REUSE_MASK 0x0000000000007800
|
||||
|
||||
|
||||
/* Description TRANSMIT_BW
|
||||
|
||||
Bandwidth of the PPDU.
|
||||
|
||||
<enum 0 HE_SIG_A_MU_DL_BW20> 20 Mhz
|
||||
<enum 1 HE_SIG_A_MU_DL_BW40> 40 Mhz
|
||||
<enum 2 HE_SIG_A_MU_DL_BW80> 80 MHz non-preamble puncturing
|
||||
mode
|
||||
<enum 3 HE_SIG_A_MU_DL_BW160> 160 MHz and 80+80 MHz non-preamble
|
||||
puncturing mode
|
||||
<enum 4 HE_SIG_A_MU_DL_BW80_SEC_20_PUNC> for preamble puncturing
|
||||
in 80 MHz, where in the preamble only the secondary 20
|
||||
MHz is punctured
|
||||
<enum 5 HE_SIG_A_MU_DL_BW80_20_PUNC_IN_SEC_40> for preamble
|
||||
puncturing in 80 MHz, where in the preamble only one of
|
||||
the two 20 MHz sub-channels in secondary 40 MHz is punctured.
|
||||
|
||||
<enum 6 HE_SIG_A_MU_DL_BW160_SEC_20_PUNC> for preamble puncturing
|
||||
in 160 MHz or 80+80 MHz, where in the primary 80 MHz of
|
||||
the preamble only the secondary 20 MHz is punctured.
|
||||
<enum 7 HE_SIG_A_MU_DL_BW160_SEC_40_80_PUNC> for preamble
|
||||
puncturing in 160 MHz or 80+80 MHz, where in the primary
|
||||
80 MHz of the preamble the primary 40 MHz is present.
|
||||
|
||||
On RX side, Field Used by MAC HW
|
||||
<legal 0-7>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_TRANSMIT_BW_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_TRANSMIT_BW_LSB 15
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_TRANSMIT_BW_MSB 17
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_TRANSMIT_BW_MASK 0x0000000000038000
|
||||
|
||||
|
||||
/* Description NUM_SIG_B_SYMBOLS
|
||||
|
||||
Number of symbols
|
||||
|
||||
For OFDMA, the actual number of symbols is 1 larger then
|
||||
indicated in this field.
|
||||
|
||||
For MU-MIMO this is equal to the number of users - 1: the
|
||||
following encoding is used:
|
||||
1 => 2 users
|
||||
2 => 3 users
|
||||
Etc.
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_NUM_SIG_B_SYMBOLS_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_NUM_SIG_B_SYMBOLS_LSB 18
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_NUM_SIG_B_SYMBOLS_MSB 21
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_NUM_SIG_B_SYMBOLS_MASK 0x00000000003c0000
|
||||
|
||||
|
||||
/* Description COMP_MODE_SIG_B
|
||||
|
||||
Indicates the compression mode of HE-SIG-B
|
||||
|
||||
0: Regular [uncomp mode]
|
||||
1: compressed mode (full-BW MU-MIMO only)
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_COMP_MODE_SIG_B_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_COMP_MODE_SIG_B_LSB 22
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_COMP_MODE_SIG_B_MSB 22
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_COMP_MODE_SIG_B_MASK 0x0000000000400000
|
||||
|
||||
|
||||
/* Description CP_LTF_SIZE
|
||||
|
||||
Indicates the CP and HE-LTF type
|
||||
|
||||
<enum 0 MU_FourX_LTF_0_8CP> 4xLTF + 0.8 us CP
|
||||
<enum 1 MU_TwoX_LTF_0_8CP> 2x LTF + 0.8 µs CP
|
||||
<enum 2 MU_TwoX_LTF_1_6CP> 2x LTF + 1.6 µs CP
|
||||
<enum 3 MU_FourX_LTF_3_2CP> 4x LTF + 3.2 µs CP
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_CP_LTF_SIZE_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_CP_LTF_SIZE_LSB 23
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_CP_LTF_SIZE_MSB 24
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_CP_LTF_SIZE_MASK 0x0000000001800000
|
||||
|
||||
|
||||
/* Description DOPPLER_INDICATION
|
||||
|
||||
0: No Doppler support
|
||||
1: Doppler support
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_DOPPLER_INDICATION_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_DOPPLER_INDICATION_LSB 25
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_DOPPLER_INDICATION_MSB 25
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_DOPPLER_INDICATION_MASK 0x0000000002000000
|
||||
|
||||
|
||||
/* Description RESERVED_0A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_0A_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_0A_LSB 26
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_0A_MSB 31
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_0A_MASK 0x00000000fc000000
|
||||
|
||||
|
||||
/* Description TXOP_DURATION
|
||||
|
||||
Indicates the remaining time in the current TXOP
|
||||
|
||||
Field Used by MAC HW
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_TXOP_DURATION_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_TXOP_DURATION_LSB 32
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_TXOP_DURATION_MSB 38
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_TXOP_DURATION_MASK 0x0000007f00000000
|
||||
|
||||
|
||||
/* Description RESERVED_1A
|
||||
|
||||
Note: spec indicates this shall be set to 1
|
||||
<legal 1>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_1A_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_1A_LSB 39
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_1A_MSB 39
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_1A_MASK 0x0000008000000000
|
||||
|
||||
|
||||
/* Description NUM_LTF_SYMBOLS
|
||||
|
||||
Indicates the number of HE-LTF symbols
|
||||
|
||||
0: 1 LTF
|
||||
1: 2 LTFs
|
||||
2: 4 LTFs
|
||||
3: 6 LTFs
|
||||
4: 8 LTFs
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_NUM_LTF_SYMBOLS_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_NUM_LTF_SYMBOLS_LSB 40
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_NUM_LTF_SYMBOLS_MSB 42
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_NUM_LTF_SYMBOLS_MASK 0x0000070000000000
|
||||
|
||||
|
||||
/* Description LDPC_EXTRA_SYMBOL
|
||||
|
||||
If LDPC,
|
||||
0: LDPC extra symbol not present
|
||||
1: LDPC extra symbol present
|
||||
Else
|
||||
Set to 1
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_LDPC_EXTRA_SYMBOL_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_LDPC_EXTRA_SYMBOL_LSB 43
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_LDPC_EXTRA_SYMBOL_MSB 43
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_LDPC_EXTRA_SYMBOL_MASK 0x0000080000000000
|
||||
|
||||
|
||||
/* Description STBC
|
||||
|
||||
Indicates whether STBC is applied
|
||||
0: No STBC
|
||||
1: STBC
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_STBC_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_STBC_LSB 44
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_STBC_MSB 44
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_STBC_MASK 0x0000100000000000
|
||||
|
||||
|
||||
/* Description PACKET_EXTENSION_A_FACTOR
|
||||
|
||||
the packet extension duration of the trigger-based PPDU
|
||||
response with these two bits indicating the "a-factor"
|
||||
|
||||
<enum 0 a_factor_4>
|
||||
<enum 1 a_factor_1>
|
||||
<enum 2 a_factor_2>
|
||||
<enum 3 a_factor_3>
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_LSB 45
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_MSB 46
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_MASK 0x0000600000000000
|
||||
|
||||
|
||||
/* Description PACKET_EXTENSION_PE_DISAMBIGUITY
|
||||
|
||||
the packet extension duration of the trigger-based PPDU
|
||||
response with this bit indicating the PE-Disambiguity
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_LSB 47
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_MSB 47
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_MASK 0x0000800000000000
|
||||
|
||||
|
||||
/* Description CRC
|
||||
|
||||
CRC for HE-SIG-A contents.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_CRC_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_CRC_LSB 48
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_CRC_MSB 51
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_CRC_MASK 0x000f000000000000
|
||||
|
||||
|
||||
/* Description TAIL
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_TAIL_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_TAIL_LSB 52
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_TAIL_MSB 57
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_TAIL_MASK 0x03f0000000000000
|
||||
|
||||
|
||||
/* Description RESERVED_1B
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_1B_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_1B_LSB 58
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_1B_MSB 62
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_1B_MASK 0x7c00000000000000
|
||||
|
||||
|
||||
/* Description RX_INTEGRITY_CHECK_PASSED
|
||||
|
||||
TX side: Set to 0
|
||||
RX side: Set to 1 if PHY determines the HE-SIG-A CRC check
|
||||
has passed, else set to 0
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 63
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 63
|
||||
#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x8000000000000000
|
||||
|
||||
|
||||
|
||||
#endif // PHYRX_HE_SIG_A_MU_DL
|
||||
506
drivers/staging/fw-api/hw/qca5332/phyrx_he_sig_a_su.h
Normal file
506
drivers/staging/fw-api/hw/qca5332/phyrx_he_sig_a_su.h
Normal file
|
|
@ -0,0 +1,506 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _PHYRX_HE_SIG_A_SU_H_
|
||||
#define _PHYRX_HE_SIG_A_SU_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#include "he_sig_a_su_info.h"
|
||||
#define NUM_OF_DWORDS_PHYRX_HE_SIG_A_SU 2
|
||||
|
||||
#define NUM_OF_QWORDS_PHYRX_HE_SIG_A_SU 1
|
||||
|
||||
|
||||
struct phyrx_he_sig_a_su {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
struct he_sig_a_su_info phyrx_he_sig_a_su_info_details;
|
||||
#else
|
||||
struct he_sig_a_su_info phyrx_he_sig_a_su_info_details;
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description PHYRX_HE_SIG_A_SU_INFO_DETAILS
|
||||
|
||||
See detailed description of the STRUCT
|
||||
*/
|
||||
|
||||
|
||||
/* Description FORMAT_INDICATION
|
||||
|
||||
<enum 0 HE_SIGA_FORMAT_HE_TRIG>
|
||||
<enum 1 HE_SIGA_FORMAT_SU_OR_EXT_SU>
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_FORMAT_INDICATION_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_FORMAT_INDICATION_LSB 0
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_FORMAT_INDICATION_MSB 0
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_FORMAT_INDICATION_MASK 0x0000000000000001
|
||||
|
||||
|
||||
/* Description BEAM_CHANGE
|
||||
|
||||
Indicates whether spatial mapping is changed between legacy
|
||||
and HE portion of preamble. If not, channel estimation
|
||||
can include legacy preamble to improve accuracy
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_BEAM_CHANGE_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_BEAM_CHANGE_LSB 1
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_BEAM_CHANGE_MSB 1
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_BEAM_CHANGE_MASK 0x0000000000000002
|
||||
|
||||
|
||||
/* Description DL_UL_FLAG
|
||||
|
||||
Differentiates between DL and UL transmission
|
||||
|
||||
<enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
|
||||
<enum 1 DL_UL_FLAG_IS_UL>
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DL_UL_FLAG_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DL_UL_FLAG_LSB 2
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DL_UL_FLAG_MSB 2
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DL_UL_FLAG_MASK 0x0000000000000004
|
||||
|
||||
|
||||
/* Description TRANSMIT_MCS
|
||||
|
||||
Indicates the data MCS
|
||||
|
||||
Field Used by MAC HW
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_MCS_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_MCS_LSB 3
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_MCS_MSB 6
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_MCS_MASK 0x0000000000000078
|
||||
|
||||
|
||||
/* Description DCM
|
||||
|
||||
Indicates whether dual sub-carrier modulation is applied
|
||||
|
||||
0: No DCM
|
||||
1:DCM
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DCM_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DCM_LSB 7
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DCM_MSB 7
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DCM_MASK 0x0000000000000080
|
||||
|
||||
|
||||
/* Description BSS_COLOR_ID
|
||||
|
||||
BSS color ID
|
||||
|
||||
Field Used by MAC HW
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_BSS_COLOR_ID_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_BSS_COLOR_ID_LSB 8
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_BSS_COLOR_ID_MSB 13
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_BSS_COLOR_ID_MASK 0x0000000000003f00
|
||||
|
||||
|
||||
/* Description RESERVED_0A
|
||||
|
||||
Note: spec indicates this shall be set to 1
|
||||
<legal 1>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0A_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0A_LSB 14
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0A_MSB 14
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0A_MASK 0x0000000000004000
|
||||
|
||||
|
||||
/* Description SPATIAL_REUSE
|
||||
|
||||
Spatial reuse
|
||||
|
||||
For 20MHz one SR field corresponding to entire 20MHz (other
|
||||
3 fields indicate identical values)
|
||||
For 40MHz two SR fields for each 20MHz (other 2 fields indicate
|
||||
identical values)
|
||||
For 80MHz four SR fields for each 20MHz
|
||||
For 160MHz four SR fields for each 40MHz
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_SPATIAL_REUSE_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_SPATIAL_REUSE_LSB 15
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_SPATIAL_REUSE_MSB 18
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_SPATIAL_REUSE_MASK 0x0000000000078000
|
||||
|
||||
|
||||
/* Description TRANSMIT_BW
|
||||
|
||||
Bandwidth of the PPDU.
|
||||
|
||||
For HE SU PPDU
|
||||
|
||||
|
||||
|
||||
<enum 0 HE_SIG_A_BW20> 20 Mhz
|
||||
<enum 1 HE_SIG_A_BW40> 40 Mhz
|
||||
<enum 2 HE_SIG_A_BW80> 80 Mhz
|
||||
<enum 3 HE_SIG_A_BW160> 160 MHz or 80+80 MHz
|
||||
|
||||
For HE Extended Range SU PPDU
|
||||
Set to 0 for 242-tone RU
|
||||
|
||||
Set to 1 for right 106-tone RU within
|
||||
the primary 20 MHz
|
||||
|
||||
On RX side, Field Used by MAC HW
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_BW_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_BW_LSB 19
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_BW_MSB 20
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_BW_MASK 0x0000000000180000
|
||||
|
||||
|
||||
/* Description CP_LTF_SIZE
|
||||
|
||||
Indicates the CP and HE-LTF type
|
||||
|
||||
<enum 0 OneX_LTF_0_8CP> 1xLTF + 0.8 us CP
|
||||
<enum 1 TwoX_LTF_0_8CP> 2x LTF + 0.8 µs CP
|
||||
<enum 2 TwoX_LTF_1_6CP> 2x LTF + 1.6 µs CP
|
||||
|
||||
<enum 3 FourX_LTF_0_8CP_3_2CP>
|
||||
When DCM == 0 OR STBC == 0: 4x LTF + 3.2 µs CP
|
||||
When DCM == 1 AND STBC == 1: 4x LTF + 0.8 µs CP. Note:
|
||||
In this scenario, Neither DCM nor STBC is applied to HE
|
||||
data field.
|
||||
|
||||
NOTE:
|
||||
If ( DCM == 1 ) and ( MCS > 0 ) and (STBC == 0)
|
||||
0 = 1xLTF + 0.4 usec
|
||||
1 = 2xLTF + 0.4 usec
|
||||
2~3 = Reserved
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CP_LTF_SIZE_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CP_LTF_SIZE_LSB 21
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CP_LTF_SIZE_MSB 22
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CP_LTF_SIZE_MASK 0x0000000000600000
|
||||
|
||||
|
||||
/* Description NSTS
|
||||
|
||||
Indicates number of streams used for the SU transmission
|
||||
|
||||
|
||||
For HE SU PPDU
|
||||
|
||||
|
||||
Set to n for n+1 space time stream,
|
||||
where n = 0, 1, 2,.....,7.
|
||||
|
||||
|
||||
|
||||
|
||||
For HE Extended Range PPDU
|
||||
|
||||
|
||||
Set to 0 for 1 space time stream.
|
||||
Value 1 is TBD
|
||||
|
||||
|
||||
|
||||
Values 2 - 7 are reserved
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_NSTS_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_NSTS_LSB 23
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_NSTS_MSB 25
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_NSTS_MASK 0x0000000003800000
|
||||
|
||||
|
||||
/* Description RESERVED_0B
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0B_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0B_LSB 26
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0B_MSB 31
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0B_MASK 0x00000000fc000000
|
||||
|
||||
|
||||
/* Description TXOP_DURATION
|
||||
|
||||
Indicates the remaining time in the current TXOP
|
||||
|
||||
Field Used by MAC HW
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TXOP_DURATION_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TXOP_DURATION_LSB 32
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TXOP_DURATION_MSB 38
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TXOP_DURATION_MASK 0x0000007f00000000
|
||||
|
||||
|
||||
/* Description CODING
|
||||
|
||||
Distinguishes between BCC and LDPC coding.
|
||||
|
||||
0: BCC
|
||||
1: LDPC
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CODING_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CODING_LSB 39
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CODING_MSB 39
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CODING_MASK 0x0000008000000000
|
||||
|
||||
|
||||
/* Description LDPC_EXTRA_SYMBOL
|
||||
|
||||
If LDPC,
|
||||
0: LDPC extra symbol not present
|
||||
1: LDPC extra symbol present
|
||||
Else
|
||||
Set to 1
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_LDPC_EXTRA_SYMBOL_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_LDPC_EXTRA_SYMBOL_LSB 40
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_LDPC_EXTRA_SYMBOL_MSB 40
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_LDPC_EXTRA_SYMBOL_MASK 0x0000010000000000
|
||||
|
||||
|
||||
/* Description STBC
|
||||
|
||||
Indicates whether STBC is applied
|
||||
0: No STBC
|
||||
1: STBC
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_STBC_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_STBC_LSB 41
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_STBC_MSB 41
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_STBC_MASK 0x0000020000000000
|
||||
|
||||
|
||||
/* Description TXBF
|
||||
|
||||
Indicates whether beamforming is applied
|
||||
0: No beamforming
|
||||
1: beamforming
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TXBF_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TXBF_LSB 42
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TXBF_MSB 42
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TXBF_MASK 0x0000040000000000
|
||||
|
||||
|
||||
/* Description PACKET_EXTENSION_A_FACTOR
|
||||
|
||||
Common trigger info
|
||||
|
||||
the packet extension duration of the trigger-based PPDU
|
||||
response with these two bits indicating the "a-factor"
|
||||
|
||||
<enum 0 a_factor_4>
|
||||
<enum 1 a_factor_1>
|
||||
<enum 2 a_factor_2>
|
||||
<enum 3 a_factor_3>
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_LSB 43
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_MSB 44
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_MASK 0x0000180000000000
|
||||
|
||||
|
||||
/* Description PACKET_EXTENSION_PE_DISAMBIGUITY
|
||||
|
||||
Common trigger info
|
||||
|
||||
the packet extension duration of the trigger-based PPDU
|
||||
response with this bit indicating the PE-Disambiguity
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_LSB 45
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_MSB 45
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_MASK 0x0000200000000000
|
||||
|
||||
|
||||
/* Description RESERVED_1A
|
||||
|
||||
Note: per standard, set to 1
|
||||
<legal 1>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_1A_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_1A_LSB 46
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_1A_MSB 46
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_1A_MASK 0x0000400000000000
|
||||
|
||||
|
||||
/* Description DOPPLER_INDICATION
|
||||
|
||||
0: No Doppler support
|
||||
1: Doppler support
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOPPLER_INDICATION_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOPPLER_INDICATION_LSB 47
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOPPLER_INDICATION_MSB 47
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOPPLER_INDICATION_MASK 0x0000800000000000
|
||||
|
||||
|
||||
/* Description CRC
|
||||
|
||||
CRC for HE-SIG-A contents.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CRC_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CRC_LSB 48
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CRC_MSB 51
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CRC_MASK 0x000f000000000000
|
||||
|
||||
|
||||
/* Description TAIL
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TAIL_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TAIL_LSB 52
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TAIL_MSB 57
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TAIL_MASK 0x03f0000000000000
|
||||
|
||||
|
||||
/* Description DOT11AX_SU_EXTENDED
|
||||
|
||||
TX side:
|
||||
Set to 0
|
||||
|
||||
RX side:
|
||||
On RX side, evaluated by MAC HW. This is the only way for
|
||||
MAC RX to know that this was an HE_SIG_A_SU received in
|
||||
'extended' format
|
||||
|
||||
When set, the 11ax frame is of the extended range format
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_SU_EXTENDED_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_SU_EXTENDED_LSB 58
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_SU_EXTENDED_MSB 58
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_SU_EXTENDED_MASK 0x0400000000000000
|
||||
|
||||
|
||||
/* Description DOT11AX_EXT_RU_SIZE
|
||||
|
||||
TX side:
|
||||
Set to 0
|
||||
|
||||
RX side:
|
||||
Field only contains valid info when dot11ax_su_extended
|
||||
is set.
|
||||
|
||||
On RX side, evaluated by MAC HW. This is the only way for
|
||||
MAC RX to know what the number of based RUs was in this
|
||||
extended range reception. It is used by the MAC to determine
|
||||
the RU size for the response...
|
||||
|
||||
<enum 0 EXT_RU_26>
|
||||
<enum 1 EXT_RU_52>
|
||||
<enum 2 EXT_RU_106>
|
||||
<enum 3 EXT_RU_242><legal 0-3>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_EXT_RU_SIZE_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_EXT_RU_SIZE_LSB 59
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_EXT_RU_SIZE_MSB 61
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_EXT_RU_SIZE_MASK 0x3800000000000000
|
||||
|
||||
|
||||
/* Description RX_NDP
|
||||
|
||||
TX side:
|
||||
Set to 0
|
||||
|
||||
RX side:Valid on RX side only, and looked at by MAC HW
|
||||
|
||||
When set, PHY has received (expected) NDP frame
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RX_NDP_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RX_NDP_LSB 62
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RX_NDP_MSB 62
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RX_NDP_MASK 0x4000000000000000
|
||||
|
||||
|
||||
/* Description RX_INTEGRITY_CHECK_PASSED
|
||||
|
||||
TX side: Set to 0
|
||||
RX side: Set to 1 if PHY determines the HE-SIG-A CRC check
|
||||
has passed, else set to 0
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 63
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 63
|
||||
#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x8000000000000000
|
||||
|
||||
|
||||
|
||||
#endif // PHYRX_HE_SIG_A_SU
|
||||
110
drivers/staging/fw-api/hw/qca5332/phyrx_he_sig_b1_mu.h
Normal file
110
drivers/staging/fw-api/hw/qca5332/phyrx_he_sig_b1_mu.h
Normal file
|
|
@ -0,0 +1,110 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _PHYRX_HE_SIG_B1_MU_H_
|
||||
#define _PHYRX_HE_SIG_B1_MU_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#include "he_sig_b1_mu_info.h"
|
||||
#define NUM_OF_DWORDS_PHYRX_HE_SIG_B1_MU 2
|
||||
|
||||
#define NUM_OF_QWORDS_PHYRX_HE_SIG_B1_MU 1
|
||||
|
||||
|
||||
struct phyrx_he_sig_b1_mu {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
struct he_sig_b1_mu_info phyrx_he_sig_b1_mu_info_details;
|
||||
uint32_t tlv64_padding : 32; // [31:0]
|
||||
#else
|
||||
struct he_sig_b1_mu_info phyrx_he_sig_b1_mu_info_details;
|
||||
uint32_t tlv64_padding : 32; // [31:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description PHYRX_HE_SIG_B1_MU_INFO_DETAILS
|
||||
|
||||
See detailed description of the STRUCT
|
||||
*/
|
||||
|
||||
|
||||
/* Description RU_ALLOCATION
|
||||
|
||||
RU allocation for the user(s) following this common portion
|
||||
of the SIG
|
||||
|
||||
For details, refer to RU_TYPE description
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_B1_MU_PHYRX_HE_SIG_B1_MU_INFO_DETAILS_RU_ALLOCATION_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_B1_MU_PHYRX_HE_SIG_B1_MU_INFO_DETAILS_RU_ALLOCATION_LSB 0
|
||||
#define PHYRX_HE_SIG_B1_MU_PHYRX_HE_SIG_B1_MU_INFO_DETAILS_RU_ALLOCATION_MSB 7
|
||||
#define PHYRX_HE_SIG_B1_MU_PHYRX_HE_SIG_B1_MU_INFO_DETAILS_RU_ALLOCATION_MASK 0x00000000000000ff
|
||||
|
||||
|
||||
/* Description RESERVED_0
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_B1_MU_PHYRX_HE_SIG_B1_MU_INFO_DETAILS_RESERVED_0_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_B1_MU_PHYRX_HE_SIG_B1_MU_INFO_DETAILS_RESERVED_0_LSB 8
|
||||
#define PHYRX_HE_SIG_B1_MU_PHYRX_HE_SIG_B1_MU_INFO_DETAILS_RESERVED_0_MSB 30
|
||||
#define PHYRX_HE_SIG_B1_MU_PHYRX_HE_SIG_B1_MU_INFO_DETAILS_RESERVED_0_MASK 0x000000007fffff00
|
||||
|
||||
|
||||
/* Description RX_INTEGRITY_CHECK_PASSED
|
||||
|
||||
TX side: Set to 0
|
||||
RX side: Set to 1 if PHY determines the CRC check of the
|
||||
codeblock containing the HE-SIG-B common info has passed,
|
||||
else set to 0
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_B1_MU_PHYRX_HE_SIG_B1_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_B1_MU_PHYRX_HE_SIG_B1_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 31
|
||||
#define PHYRX_HE_SIG_B1_MU_PHYRX_HE_SIG_B1_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 31
|
||||
#define PHYRX_HE_SIG_B1_MU_PHYRX_HE_SIG_B1_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x0000000080000000
|
||||
|
||||
|
||||
/* Description TLV64_PADDING
|
||||
|
||||
Automatic DWORD padding inserted while converting TLV32
|
||||
to TLV64 for 64 bit ARCH
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_B1_MU_TLV64_PADDING_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_B1_MU_TLV64_PADDING_LSB 32
|
||||
#define PHYRX_HE_SIG_B1_MU_TLV64_PADDING_MSB 63
|
||||
#define PHYRX_HE_SIG_B1_MU_TLV64_PADDING_MASK 0xffffffff00000000
|
||||
|
||||
|
||||
|
||||
#endif // PHYRX_HE_SIG_B1_MU
|
||||
212
drivers/staging/fw-api/hw/qca5332/phyrx_he_sig_b2_mu.h
Normal file
212
drivers/staging/fw-api/hw/qca5332/phyrx_he_sig_b2_mu.h
Normal file
|
|
@ -0,0 +1,212 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _PHYRX_HE_SIG_B2_MU_H_
|
||||
#define _PHYRX_HE_SIG_B2_MU_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#include "he_sig_b2_mu_info.h"
|
||||
#define NUM_OF_DWORDS_PHYRX_HE_SIG_B2_MU 2
|
||||
|
||||
#define NUM_OF_QWORDS_PHYRX_HE_SIG_B2_MU 1
|
||||
|
||||
|
||||
struct phyrx_he_sig_b2_mu {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
struct he_sig_b2_mu_info phyrx_he_sig_b2_mu_info_details;
|
||||
#else
|
||||
struct he_sig_b2_mu_info phyrx_he_sig_b2_mu_info_details;
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description PHYRX_HE_SIG_B2_MU_INFO_DETAILS
|
||||
|
||||
See detailed description of the STRUCT
|
||||
*/
|
||||
|
||||
|
||||
/* Description STA_ID
|
||||
|
||||
Identifies the STA that is addressed. Details of STA ID
|
||||
are TBD
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_ID_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_ID_LSB 0
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_ID_MSB 10
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_ID_MASK 0x00000000000007ff
|
||||
|
||||
|
||||
/* Description STA_SPATIAL_CONFIG
|
||||
|
||||
Number of assigned spatial streams and their corresponding
|
||||
index.
|
||||
Total number of spatial streams assigned for the MU-MIMO
|
||||
allocation is also signaled.
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_SPATIAL_CONFIG_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_SPATIAL_CONFIG_LSB 11
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_SPATIAL_CONFIG_MSB 14
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_SPATIAL_CONFIG_MASK 0x0000000000007800
|
||||
|
||||
|
||||
/* Description STA_MCS
|
||||
|
||||
Indicates the data MCS
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_MCS_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_MCS_LSB 15
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_MCS_MSB 18
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_MCS_MASK 0x0000000000078000
|
||||
|
||||
|
||||
/* Description RESERVED_SET_TO_1
|
||||
|
||||
<legal 1>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_SET_TO_1_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_SET_TO_1_LSB 19
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_SET_TO_1_MSB 19
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_SET_TO_1_MASK 0x0000000000080000
|
||||
|
||||
|
||||
/* Description STA_CODING
|
||||
|
||||
Distinguishes between BCC/LDPC
|
||||
|
||||
0: BCC
|
||||
1: LDPC
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_CODING_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_CODING_LSB 20
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_CODING_MSB 20
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_CODING_MASK 0x0000000000100000
|
||||
|
||||
|
||||
/* Description RESERVED_0A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_0A_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_0A_LSB 21
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_0A_MSB 27
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_0A_MASK 0x000000000fe00000
|
||||
|
||||
|
||||
/* Description NSTS
|
||||
|
||||
MAC RX side usage only:
|
||||
Needed by RXPCU. Provided by PHY so that RXPCU does not
|
||||
need to have the RU number decoding logic.
|
||||
|
||||
Number of spatial streams for this user
|
||||
|
||||
<enum 0 1_spatial_stream>Single spatial stream
|
||||
<enum 1 2_spatial_streams>2 spatial streams
|
||||
<enum 2 3_spatial_streams>3 spatial streams
|
||||
<enum 3 4_spatial_streams>4 spatial streams
|
||||
<enum 4 5_spatial_streams>5 spatial streams
|
||||
<enum 5 6_spatial_streams>6 spatial streams
|
||||
<enum 6 7_spatial_streams>7 spatial streams
|
||||
<enum 7 8_spatial_streams>8 spatial streams
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_NSTS_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_NSTS_LSB 28
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_NSTS_MSB 30
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_NSTS_MASK 0x0000000070000000
|
||||
|
||||
|
||||
/* Description RX_INTEGRITY_CHECK_PASSED
|
||||
|
||||
TX side: Set to 0
|
||||
RX side: Set to 1 if PHY determines the CRC check of the
|
||||
codeblock containing this HE-SIG-B user info has passed,
|
||||
else set to 0
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 31
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 31
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x0000000080000000
|
||||
|
||||
|
||||
/* Description USER_ORDER
|
||||
|
||||
RX side: Set to 0
|
||||
TX side: Ordering index of the User field
|
||||
Gaps between the ordering indices of User fields indicate
|
||||
that the microcode shall generate "unallocated RU" User
|
||||
fields (STAID=2046) to fill the gaps.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_USER_ORDER_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_USER_ORDER_LSB 32
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_USER_ORDER_MSB 39
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_USER_ORDER_MASK 0x000000ff00000000
|
||||
|
||||
|
||||
/* Description CC_MASK
|
||||
|
||||
RX side: Set to 0
|
||||
TX side: Indicates what content channel this User field
|
||||
can go to
|
||||
Bit 0: content channel 0
|
||||
Bit 1: content channel 1
|
||||
The other bits are unused, but could repeat the above pattern
|
||||
for compatibility with 'EHT_SIG_USR_MU_MIMO_INFO.'
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_CC_MASK_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_CC_MASK_LSB 40
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_CC_MASK_MSB 47
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_CC_MASK_MASK 0x0000ff0000000000
|
||||
|
||||
|
||||
/* Description RESERVED_1A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_1A_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_1A_LSB 48
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_1A_MSB 63
|
||||
#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_1A_MASK 0xffff000000000000
|
||||
|
||||
|
||||
|
||||
#endif // PHYRX_HE_SIG_B2_MU
|
||||
214
drivers/staging/fw-api/hw/qca5332/phyrx_he_sig_b2_ofdma.h
Normal file
214
drivers/staging/fw-api/hw/qca5332/phyrx_he_sig_b2_ofdma.h
Normal file
|
|
@ -0,0 +1,214 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _PHYRX_HE_SIG_B2_OFDMA_H_
|
||||
#define _PHYRX_HE_SIG_B2_OFDMA_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#include "he_sig_b2_ofdma_info.h"
|
||||
#define NUM_OF_DWORDS_PHYRX_HE_SIG_B2_OFDMA 2
|
||||
|
||||
#define NUM_OF_QWORDS_PHYRX_HE_SIG_B2_OFDMA 1
|
||||
|
||||
|
||||
struct phyrx_he_sig_b2_ofdma {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
struct he_sig_b2_ofdma_info phyrx_he_sig_b2_ofdma_info_details;
|
||||
#else
|
||||
struct he_sig_b2_ofdma_info phyrx_he_sig_b2_ofdma_info_details;
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS
|
||||
|
||||
See detailed description of the STRUCT
|
||||
*/
|
||||
|
||||
|
||||
/* Description STA_ID
|
||||
|
||||
Identifies the STA that is addressed. Details of STA ID
|
||||
are TBD
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_ID_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_ID_LSB 0
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_ID_MSB 10
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_ID_MASK 0x00000000000007ff
|
||||
|
||||
|
||||
/* Description NSTS
|
||||
|
||||
MAC RX side usage only:
|
||||
|
||||
Number of spatial streams for this user
|
||||
|
||||
<enum 0 1_spatial_stream>Single spatial stream
|
||||
<enum 1 2_spatial_streams>2 spatial streams
|
||||
<enum 2 3_spatial_streams>3 spatial streams
|
||||
<enum 3 4_spatial_streams>4 spatial streams
|
||||
<enum 4 5_spatial_streams>5 spatial streams
|
||||
<enum 5 6_spatial_streams>6 spatial streams
|
||||
<enum 6 7_spatial_streams>7 spatial streams
|
||||
<enum 7 8_spatial_streams>8 spatial streams
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_NSTS_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_NSTS_LSB 11
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_NSTS_MSB 13
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_NSTS_MASK 0x0000000000003800
|
||||
|
||||
|
||||
/* Description TXBF
|
||||
|
||||
Indicates whether beamforming is applied
|
||||
0: No beamforming
|
||||
1: beamforming
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_TXBF_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_TXBF_LSB 14
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_TXBF_MSB 14
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_TXBF_MASK 0x0000000000004000
|
||||
|
||||
|
||||
/* Description STA_MCS
|
||||
|
||||
Indicates the data MCS
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_MCS_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_MCS_LSB 15
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_MCS_MSB 18
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_MCS_MASK 0x0000000000078000
|
||||
|
||||
|
||||
/* Description STA_DCM
|
||||
|
||||
Indicates whether dual sub-carrier modulation is applied
|
||||
|
||||
0: No DCM
|
||||
1:DCM
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_DCM_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_DCM_LSB 19
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_DCM_MSB 19
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_DCM_MASK 0x0000000000080000
|
||||
|
||||
|
||||
/* Description STA_CODING
|
||||
|
||||
Distinguishes between BCC/LDPC
|
||||
|
||||
0: BCC
|
||||
1: LDPC
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_CODING_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_CODING_LSB 20
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_CODING_MSB 20
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_CODING_MASK 0x0000000000100000
|
||||
|
||||
|
||||
/* Description RESERVED_0
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_RESERVED_0_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_RESERVED_0_LSB 21
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_RESERVED_0_MSB 30
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_RESERVED_0_MASK 0x000000007fe00000
|
||||
|
||||
|
||||
/* Description RX_INTEGRITY_CHECK_PASSED
|
||||
|
||||
TX side: Set to 0
|
||||
RX side: Set to 1 if PHY determines the CRC check of the
|
||||
codeblock containing this HE-SIG-B user info has passed,
|
||||
else set to 0
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 31
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 31
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x0000000080000000
|
||||
|
||||
|
||||
/* Description USER_ORDER
|
||||
|
||||
RX side: Set to 0
|
||||
TX side: Ordering index of the User field
|
||||
Gaps between the ordering indices of User fields indicate
|
||||
that the microcode shall generate "unallocated RU" User
|
||||
fields (STAID=2046) to fill the gaps.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_USER_ORDER_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_USER_ORDER_LSB 32
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_USER_ORDER_MSB 39
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_USER_ORDER_MASK 0x000000ff00000000
|
||||
|
||||
|
||||
/* Description CC_MASK
|
||||
|
||||
RX side: Set to 0
|
||||
TX side: Indicates what content channel this User field
|
||||
can go to
|
||||
Bit 0: content channel 0
|
||||
Bit 1: content channel 1
|
||||
The other bits are unused, but could repeat the above pattern
|
||||
for compatibility with 'EHT_SIG_USR_OFDMA_INFO.'
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_CC_MASK_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_CC_MASK_LSB 40
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_CC_MASK_MSB 47
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_CC_MASK_MASK 0x0000ff0000000000
|
||||
|
||||
|
||||
/* Description RESERVED_1A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_RESERVED_1A_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_RESERVED_1A_LSB 48
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_RESERVED_1A_MSB 63
|
||||
#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_RESERVED_1A_MASK 0xffff000000000000
|
||||
|
||||
|
||||
|
||||
#endif // PHYRX_HE_SIG_B2_OFDMA
|
||||
280
drivers/staging/fw-api/hw/qca5332/phyrx_ht_sig.h
Normal file
280
drivers/staging/fw-api/hw/qca5332/phyrx_ht_sig.h
Normal file
|
|
@ -0,0 +1,280 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _PHYRX_HT_SIG_H_
|
||||
#define _PHYRX_HT_SIG_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#include "ht_sig_info.h"
|
||||
#define NUM_OF_DWORDS_PHYRX_HT_SIG 2
|
||||
|
||||
#define NUM_OF_QWORDS_PHYRX_HT_SIG 1
|
||||
|
||||
|
||||
struct phyrx_ht_sig {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
struct ht_sig_info phyrx_ht_sig_info_details;
|
||||
#else
|
||||
struct ht_sig_info phyrx_ht_sig_info_details;
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description PHYRX_HT_SIG_INFO_DETAILS
|
||||
|
||||
See detailed description of the STRUCT
|
||||
*/
|
||||
|
||||
|
||||
/* Description MCS
|
||||
|
||||
Modulation Coding Scheme:
|
||||
0-7 are used for single stream
|
||||
8-15 are used for 2 streams
|
||||
16-23 are used for 3 streams
|
||||
24-31 are used for 4 streams
|
||||
32 is used for duplicate HT20 (unsupported)
|
||||
33-76 is used for unequal modulation (unsupported)
|
||||
77-127 is reserved.
|
||||
<legal 0-31>
|
||||
*/
|
||||
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_MCS_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_MCS_LSB 0
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_MCS_MSB 6
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_MCS_MASK 0x000000000000007f
|
||||
|
||||
|
||||
/* Description CBW
|
||||
|
||||
Packet bandwidth:
|
||||
<enum 0 ht_20_mhz>
|
||||
<enum 1 ht_40_mhz>
|
||||
<legal 0-1>
|
||||
*/
|
||||
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_CBW_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_CBW_LSB 7
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_CBW_MSB 7
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_CBW_MASK 0x0000000000000080
|
||||
|
||||
|
||||
/* Description LENGTH
|
||||
|
||||
This is the MPDU or A-MPDU length in octets of the PPDU
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_LENGTH_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_LENGTH_LSB 8
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_LENGTH_MSB 23
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_LENGTH_MASK 0x0000000000ffff00
|
||||
|
||||
|
||||
/* Description RESERVED_0
|
||||
|
||||
This field is not part of HT-SIG
|
||||
Reserved: Should be set to 0 by the MAC and ignored by the
|
||||
PHY <legal 0>
|
||||
*/
|
||||
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_RESERVED_0_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_RESERVED_0_LSB 24
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_RESERVED_0_MSB 31
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_RESERVED_0_MASK 0x00000000ff000000
|
||||
|
||||
|
||||
/* Description SMOOTHING
|
||||
|
||||
Field indicates if smoothing is needed
|
||||
E_num 0 do_smoothing Unsupported setting: indicates
|
||||
smoothing is often used for beamforming
|
||||
<enum 1 no_smoothing> Indicates no smoothing is used
|
||||
|
||||
<legal 1>
|
||||
*/
|
||||
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_SMOOTHING_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_SMOOTHING_LSB 32
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_SMOOTHING_MSB 32
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_SMOOTHING_MASK 0x0000000100000000
|
||||
|
||||
|
||||
/* Description NOT_SOUNDING
|
||||
|
||||
E_num 0 sounding Unsupported setting: indicates sounding
|
||||
is used
|
||||
<enum 1 no_sounding> Indicates no sounding is used
|
||||
<legal 1>
|
||||
*/
|
||||
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_NOT_SOUNDING_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_NOT_SOUNDING_LSB 33
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_NOT_SOUNDING_MSB 33
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_NOT_SOUNDING_MASK 0x0000000200000000
|
||||
|
||||
|
||||
/* Description HT_RESERVED
|
||||
|
||||
Reserved: Should be set to 1 by the MAC and ignored by the
|
||||
PHY
|
||||
<legal 1>
|
||||
*/
|
||||
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_HT_RESERVED_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_HT_RESERVED_LSB 34
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_HT_RESERVED_MSB 34
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_HT_RESERVED_MASK 0x0000000400000000
|
||||
|
||||
|
||||
/* Description AGGREGATION
|
||||
|
||||
<enum 0 mpdu> Indicates MPDU format
|
||||
<enum 1 a_mpdu> Indicates A-MPDU format
|
||||
<legal 0-1>
|
||||
*/
|
||||
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_AGGREGATION_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_AGGREGATION_LSB 35
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_AGGREGATION_MSB 35
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_AGGREGATION_MASK 0x0000000800000000
|
||||
|
||||
|
||||
/* Description STBC
|
||||
|
||||
<enum 0 no_stbc> Indicates no STBC
|
||||
<enum 1 1_str_stbc> Indicates 1 stream STBC
|
||||
E_num 2 2_str_stbc Indicates 2 stream STBC (Unsupported)
|
||||
|
||||
<legal 0-1>
|
||||
*/
|
||||
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_STBC_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_STBC_LSB 36
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_STBC_MSB 37
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_STBC_MASK 0x0000003000000000
|
||||
|
||||
|
||||
/* Description FEC_CODING
|
||||
|
||||
<enum 0 ht_bcc> Indicates BCC coding
|
||||
<enum 1 ht_ldpc> Indicates LDPC coding
|
||||
<legal 0-1>
|
||||
*/
|
||||
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_FEC_CODING_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_FEC_CODING_LSB 38
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_FEC_CODING_MSB 38
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_FEC_CODING_MASK 0x0000004000000000
|
||||
|
||||
|
||||
/* Description SHORT_GI
|
||||
|
||||
<enum 0 ht_normal_gi> Indicates normal guard interval
|
||||
|
||||
<enum 1 ht_short_gi> Indicates short guard interval
|
||||
|
||||
<legal 0-1>
|
||||
*/
|
||||
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_SHORT_GI_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_SHORT_GI_LSB 39
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_SHORT_GI_MSB 39
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_SHORT_GI_MASK 0x0000008000000000
|
||||
|
||||
|
||||
/* Description NUM_EXT_SP_STR
|
||||
|
||||
Number of extension spatial streams: (Used for TxBF)
|
||||
<enum 0 0_ext_sp_str> No extension spatial streams
|
||||
E_num 1 1_ext_sp_str Not supported: 1 extension spatial
|
||||
streams
|
||||
E_num 2 2_ext_sp_str Not supported: 2 extension spatial
|
||||
streams
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_NUM_EXT_SP_STR_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_NUM_EXT_SP_STR_LSB 40
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_NUM_EXT_SP_STR_MSB 41
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_NUM_EXT_SP_STR_MASK 0x0000030000000000
|
||||
|
||||
|
||||
/* Description CRC
|
||||
|
||||
The CRC protects the HT-SIG (HT-SIG[0][23:0] and HT-SIG[1][9:0].
|
||||
The generator polynomial is G(D) = D8 + D2 + D + 1. <legal
|
||||
all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_CRC_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_CRC_LSB 42
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_CRC_MSB 49
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_CRC_MASK 0x0003fc0000000000
|
||||
|
||||
|
||||
/* Description SIGNAL_TAIL
|
||||
|
||||
The 6 bits of tail is always set to 0 is used to flush the
|
||||
BCC encoder and decoder. <legal 0>
|
||||
*/
|
||||
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_SIGNAL_TAIL_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_SIGNAL_TAIL_LSB 50
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_SIGNAL_TAIL_MSB 55
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_SIGNAL_TAIL_MASK 0x00fc000000000000
|
||||
|
||||
|
||||
/* Description RESERVED_1
|
||||
|
||||
This field is not part of HT-SIG:
|
||||
Reserved: Should be set to 0 by the MAC and ignored by the
|
||||
PHY. <legal 0>
|
||||
*/
|
||||
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_RESERVED_1_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_RESERVED_1_LSB 56
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_RESERVED_1_MSB 62
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_RESERVED_1_MASK 0x7f00000000000000
|
||||
|
||||
|
||||
/* Description RX_INTEGRITY_CHECK_PASSED
|
||||
|
||||
TX side: Set to 0
|
||||
RX side: Set to 1 if PHY determines the HT-SIG CRC check
|
||||
has passed, else set to 0
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 63
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 63
|
||||
#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x8000000000000000
|
||||
|
||||
|
||||
|
||||
#endif // PHYRX_HT_SIG
|
||||
217
drivers/staging/fw-api/hw/qca5332/phyrx_l_sig_a.h
Normal file
217
drivers/staging/fw-api/hw/qca5332/phyrx_l_sig_a.h
Normal file
|
|
@ -0,0 +1,217 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _PHYRX_L_SIG_A_H_
|
||||
#define _PHYRX_L_SIG_A_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#include "l_sig_a_info.h"
|
||||
#define NUM_OF_DWORDS_PHYRX_L_SIG_A 2
|
||||
|
||||
#define NUM_OF_QWORDS_PHYRX_L_SIG_A 1
|
||||
|
||||
|
||||
struct phyrx_l_sig_a {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
struct l_sig_a_info phyrx_l_sig_a_info_details;
|
||||
uint32_t tlv64_padding : 32; // [31:0]
|
||||
#else
|
||||
struct l_sig_a_info phyrx_l_sig_a_info_details;
|
||||
uint32_t tlv64_padding : 32; // [31:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description PHYRX_L_SIG_A_INFO_DETAILS
|
||||
|
||||
See detailed description of the STRUCT
|
||||
*/
|
||||
|
||||
|
||||
/* Description RATE
|
||||
|
||||
This format is originally defined for OFDM as a 4 bit field
|
||||
but the 5th bit was added to indicate 11b formatted frames.
|
||||
In the standard bit [4] is specified as reserved. For
|
||||
11b frames this L-SIG is transformed in the PHY into the
|
||||
11b preamble format. The following are the rates:
|
||||
<enum 8 ofdm_48_mbps> 64-QAM 2/3 (48 Mbps)
|
||||
<enum 9 ofdm_24_mbps> 16-QAM 1/2 (24 Mbps)
|
||||
<enum 10 ofdm_12_mbps> QPSK 1/2 (12 Mbps)
|
||||
<enum 11 ofdm_6_mbps> BPSK 1/2 (6 Mbps)
|
||||
<enum 12 ofdm_54_mbps> 64-QAM 3/4 (54 Mbps)
|
||||
<enum 13 ofdm_36_mbps> 16-QAM 3/4 (36 Mbps)
|
||||
<enum 14 ofdm_18_mbps> QPSK 1/2 (18 Mbps)
|
||||
<enum 15 ofdm_9_mbps> BPSK 3/4 (9 Mbps)
|
||||
<legal 8-15>
|
||||
*/
|
||||
|
||||
#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_RATE_OFFSET 0x0000000000000000
|
||||
#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_RATE_LSB 0
|
||||
#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_RATE_MSB 3
|
||||
#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_RATE_MASK 0x000000000000000f
|
||||
|
||||
|
||||
/* Description LSIG_RESERVED
|
||||
|
||||
Reserved: Should be set to 0 by the MAC and ignored by the
|
||||
PHY
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_LSIG_RESERVED_OFFSET 0x0000000000000000
|
||||
#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_LSIG_RESERVED_LSB 4
|
||||
#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_LSIG_RESERVED_MSB 4
|
||||
#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_LSIG_RESERVED_MASK 0x0000000000000010
|
||||
|
||||
|
||||
/* Description LENGTH
|
||||
|
||||
The length indicates the number of octets in this MPDU.
|
||||
Note that when using mixed mode .11n preamble or .11ac/.11ax/.11ba/.11be
|
||||
this length provides the spoofed length for the PPDU.
|
||||
This length provides part of the information (viz. PPDU
|
||||
duration) to derive the actually PSDU length. For legacy
|
||||
OFDM and 11B frames the maximum length is 4095.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_LENGTH_OFFSET 0x0000000000000000
|
||||
#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_LENGTH_LSB 5
|
||||
#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_LENGTH_MSB 16
|
||||
#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_LENGTH_MASK 0x000000000001ffe0
|
||||
|
||||
|
||||
/* Description PARITY
|
||||
|
||||
11a/n/ac TX: This field provides even parity over the first
|
||||
18 bits of the signal field which means that the sum of
|
||||
1s in the signal field will always be even on transmission.
|
||||
The value of the field is computed by the MAC.
|
||||
11a/n/ac RX: this field contains the received parity field
|
||||
from the L-SIG symbol for the current packet.
|
||||
<legal 0-1>
|
||||
*/
|
||||
|
||||
#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_PARITY_OFFSET 0x0000000000000000
|
||||
#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_PARITY_LSB 17
|
||||
#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_PARITY_MSB 17
|
||||
#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_PARITY_MASK 0x0000000000020000
|
||||
|
||||
|
||||
/* Description TAIL
|
||||
|
||||
The 6 bits of tail is always set to 0 is used to flush the
|
||||
BCC encoder and decoder. <legal 0>
|
||||
*/
|
||||
|
||||
#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_TAIL_OFFSET 0x0000000000000000
|
||||
#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_TAIL_LSB 18
|
||||
#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_TAIL_MSB 23
|
||||
#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_TAIL_MASK 0x0000000000fc0000
|
||||
|
||||
|
||||
/* Description PKT_TYPE
|
||||
|
||||
Only used on the RX side.
|
||||
Note: This is not really part of L-SIG
|
||||
|
||||
Packet type:
|
||||
<enum 0 dot11a>802.11a PPDU type
|
||||
<enum 1 dot11b>802.11b PPDU type
|
||||
<enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
|
||||
<enum 3 dot11ac>802.11ac PPDU type
|
||||
<enum 4 dot11ax>802.11ax PPDU type
|
||||
<enum 5 dot11ba>802.11ba (WUR) PPDU type
|
||||
<enum 6 dot11be>802.11be PPDU type
|
||||
<enum 7 dot11az>802.11az (ranging) PPDU type
|
||||
<enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported
|
||||
& aborted)
|
||||
*/
|
||||
|
||||
#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_PKT_TYPE_OFFSET 0x0000000000000000
|
||||
#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_PKT_TYPE_LSB 24
|
||||
#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_PKT_TYPE_MSB 27
|
||||
#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_PKT_TYPE_MASK 0x000000000f000000
|
||||
|
||||
|
||||
/* Description CAPTURED_IMPLICIT_SOUNDING
|
||||
|
||||
Only used on the RX side.
|
||||
Note: This is not really part of L-SIG
|
||||
|
||||
This indicates that the PHY has captured implicit sounding.
|
||||
|
||||
*/
|
||||
|
||||
#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_CAPTURED_IMPLICIT_SOUNDING_OFFSET 0x0000000000000000
|
||||
#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_CAPTURED_IMPLICIT_SOUNDING_LSB 28
|
||||
#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_CAPTURED_IMPLICIT_SOUNDING_MSB 28
|
||||
#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_CAPTURED_IMPLICIT_SOUNDING_MASK 0x0000000010000000
|
||||
|
||||
|
||||
/* Description RESERVED
|
||||
|
||||
Reserved: Should be set to 0 by the transmitting MAC and
|
||||
ignored by the PHY <legal 0>
|
||||
*/
|
||||
|
||||
#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_RESERVED_OFFSET 0x0000000000000000
|
||||
#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_RESERVED_LSB 29
|
||||
#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_RESERVED_MSB 30
|
||||
#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_RESERVED_MASK 0x0000000060000000
|
||||
|
||||
|
||||
/* Description RX_INTEGRITY_CHECK_PASSED
|
||||
|
||||
TX side: Set to 0
|
||||
RX side: Set to 1 if PHY determines the L-SIG integrity
|
||||
check has passed, else set to 0
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
|
||||
#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 31
|
||||
#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 31
|
||||
#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x0000000080000000
|
||||
|
||||
|
||||
/* Description TLV64_PADDING
|
||||
|
||||
Automatic DWORD padding inserted while converting TLV32
|
||||
to TLV64 for 64 bit ARCH
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define PHYRX_L_SIG_A_TLV64_PADDING_OFFSET 0x0000000000000000
|
||||
#define PHYRX_L_SIG_A_TLV64_PADDING_LSB 32
|
||||
#define PHYRX_L_SIG_A_TLV64_PADDING_MSB 63
|
||||
#define PHYRX_L_SIG_A_TLV64_PADDING_MASK 0xffffffff00000000
|
||||
|
||||
|
||||
|
||||
#endif // PHYRX_L_SIG_A
|
||||
125
drivers/staging/fw-api/hw/qca5332/phyrx_l_sig_b.h
Normal file
125
drivers/staging/fw-api/hw/qca5332/phyrx_l_sig_b.h
Normal file
|
|
@ -0,0 +1,125 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _PHYRX_L_SIG_B_H_
|
||||
#define _PHYRX_L_SIG_B_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#include "l_sig_b_info.h"
|
||||
#define NUM_OF_DWORDS_PHYRX_L_SIG_B 2
|
||||
|
||||
#define NUM_OF_QWORDS_PHYRX_L_SIG_B 1
|
||||
|
||||
|
||||
struct phyrx_l_sig_b {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
struct l_sig_b_info phyrx_l_sig_b_info_details;
|
||||
uint32_t tlv64_padding : 32; // [31:0]
|
||||
#else
|
||||
struct l_sig_b_info phyrx_l_sig_b_info_details;
|
||||
uint32_t tlv64_padding : 32; // [31:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description PHYRX_L_SIG_B_INFO_DETAILS
|
||||
|
||||
See detailed description of the STRUCT
|
||||
*/
|
||||
|
||||
|
||||
/* Description RATE
|
||||
|
||||
<enum 1 dsss_1_mpbs_long> DSSS 1 Mbps long
|
||||
<enum 2 dsss_2_mbps_long> DSSS 2 Mbps long
|
||||
<enum 3 cck_5_5_mbps_long> CCK 5.5 Mbps long
|
||||
<enum 4 cck_11_mbps_long> CCK 11 Mbps long
|
||||
<enum 5 dsss_2_mbps_short> DSSS 2 Mbps short
|
||||
<enum 6 cck_5_5_mbps_short> CCK 5.5 Mbps short
|
||||
<enum 7 cck_11_mbps_short> CCK 11 Mbps short
|
||||
<legal 1-7>
|
||||
*/
|
||||
|
||||
#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_RATE_OFFSET 0x0000000000000000
|
||||
#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_RATE_LSB 0
|
||||
#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_RATE_MSB 3
|
||||
#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_RATE_MASK 0x000000000000000f
|
||||
|
||||
|
||||
/* Description LENGTH
|
||||
|
||||
The length indicates the number of octets in this MPDU.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_LENGTH_OFFSET 0x0000000000000000
|
||||
#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_LENGTH_LSB 4
|
||||
#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_LENGTH_MSB 15
|
||||
#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_LENGTH_MASK 0x000000000000fff0
|
||||
|
||||
|
||||
/* Description RESERVED
|
||||
|
||||
Reserved: Should be set to 0 by the transmitting MAC and
|
||||
ignored by the PHY <legal 0>
|
||||
*/
|
||||
|
||||
#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_RESERVED_OFFSET 0x0000000000000000
|
||||
#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_RESERVED_LSB 16
|
||||
#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_RESERVED_MSB 30
|
||||
#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_RESERVED_MASK 0x000000007fff0000
|
||||
|
||||
|
||||
/* Description RX_INTEGRITY_CHECK_PASSED
|
||||
|
||||
TX side: Set to 0
|
||||
RX side: Set to 1 if PHY determines the .11b PHY header
|
||||
CRC check has passed, else set to 0
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
|
||||
#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 31
|
||||
#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 31
|
||||
#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x0000000080000000
|
||||
|
||||
|
||||
/* Description TLV64_PADDING
|
||||
|
||||
Automatic DWORD padding inserted while converting TLV32
|
||||
to TLV64 for 64 bit ARCH
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define PHYRX_L_SIG_B_TLV64_PADDING_OFFSET 0x0000000000000000
|
||||
#define PHYRX_L_SIG_B_TLV64_PADDING_LSB 32
|
||||
#define PHYRX_L_SIG_B_TLV64_PADDING_MSB 63
|
||||
#define PHYRX_L_SIG_B_TLV64_PADDING_MASK 0xffffffff00000000
|
||||
|
||||
|
||||
|
||||
#endif // PHYRX_L_SIG_B
|
||||
920
drivers/staging/fw-api/hw/qca5332/phyrx_location.h
Normal file
920
drivers/staging/fw-api/hw/qca5332/phyrx_location.h
Normal file
|
|
@ -0,0 +1,920 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _PHYRX_LOCATION_H_
|
||||
#define _PHYRX_LOCATION_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#include "rx_location_info.h"
|
||||
#define NUM_OF_DWORDS_PHYRX_LOCATION 28
|
||||
|
||||
#define NUM_OF_QWORDS_PHYRX_LOCATION 14
|
||||
|
||||
|
||||
struct phyrx_location {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
struct rx_location_info rx_location_info_details;
|
||||
#else
|
||||
struct rx_location_info rx_location_info_details;
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description RX_LOCATION_INFO_DETAILS
|
||||
|
||||
Overview of location related info
|
||||
*/
|
||||
|
||||
|
||||
/* Description RX_LOCATION_INFO_VALID
|
||||
|
||||
<enum 0 rx_location_info_is_not_valid>
|
||||
<enum 1 rx_location_info_is_valid>
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_LOCATION_INFO_VALID_OFFSET 0x0000000000000000
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_LOCATION_INFO_VALID_LSB 0
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_LOCATION_INFO_VALID_MSB 0
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_LOCATION_INFO_VALID_MASK 0x0000000000000001
|
||||
|
||||
|
||||
/* Description RTT_HW_IFFT_MODE
|
||||
|
||||
Indicator showing if HW IFFT mode or SW IFFT mode
|
||||
|
||||
<enum 0 location_sw_ifft_mode>
|
||||
<enum 1 location_hw_ifft_mode>
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_HW_IFFT_MODE_OFFSET 0x0000000000000000
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_HW_IFFT_MODE_LSB 1
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_HW_IFFT_MODE_MSB 1
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_HW_IFFT_MODE_MASK 0x0000000000000002
|
||||
|
||||
|
||||
/* Description RTT_11AZ_MODE
|
||||
|
||||
Indicator showing RTT5/.11mc or .11az mode for debug
|
||||
|
||||
<enum 0 location_rtt5_mode> legacy RTT5/.11mc mode
|
||||
<enum 1 location_11az_ISTA> .11az ISTA location info. sent
|
||||
on Rx path after receiving R2I LMR
|
||||
<enum 2 location_RSVD>
|
||||
<enum 3 location_11az_RSTA> .11az RSTA location info. sent
|
||||
on Tx path after transmitting R2I LMR
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_11AZ_MODE_OFFSET 0x0000000000000000
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_11AZ_MODE_LSB 2
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_11AZ_MODE_MSB 3
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_11AZ_MODE_MASK 0x000000000000000c
|
||||
|
||||
|
||||
/* Description RESERVED_0
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RESERVED_0_OFFSET 0x0000000000000000
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RESERVED_0_LSB 4
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RESERVED_0_MSB 7
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RESERVED_0_MASK 0x00000000000000f0
|
||||
|
||||
|
||||
/* Description RTT_NUM_FAC
|
||||
|
||||
Number of valid first arrival correction (FAC) values (in
|
||||
fields rtt_fac_0 - rtt_fac_31)
|
||||
<legal 0-32>
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_NUM_FAC_OFFSET 0x0000000000000000
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_NUM_FAC_LSB 8
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_NUM_FAC_MSB 15
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_NUM_FAC_MASK 0x000000000000ff00
|
||||
|
||||
|
||||
/* Description RTT_RX_CHAIN_MASK
|
||||
|
||||
Rx chain mask, each bit is a Rx chain
|
||||
0: the Rx chain is not used
|
||||
1: the Rx chain is used
|
||||
|
||||
Up to 4 Rx chains are supported.
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_RX_CHAIN_MASK_OFFSET 0x0000000000000000
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_RX_CHAIN_MASK_LSB 16
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_RX_CHAIN_MASK_MSB 23
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_RX_CHAIN_MASK_MASK 0x0000000000ff0000
|
||||
|
||||
|
||||
/* Description RTT_NUM_STREAMS
|
||||
|
||||
Number of streams used
|
||||
|
||||
Up to 8 streams are supported.
|
||||
|
||||
<legal 0-8>
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_NUM_STREAMS_OFFSET 0x0000000000000000
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_NUM_STREAMS_LSB 24
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_NUM_STREAMS_MSB 31
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_NUM_STREAMS_MASK 0x00000000ff000000
|
||||
|
||||
|
||||
/* Description RTT_FIRST_SELECTED_CHAIN
|
||||
|
||||
For legacy RTT5/.11mc mode, this field shows the first selected
|
||||
Rx chain that is used for FAC calculations, when forced
|
||||
by a virtual register.
|
||||
|
||||
<enum 0 location_selected_chain_is_0>
|
||||
<enum 1 location_selected_chain_is_1>
|
||||
<enum 2 location_selected_chain_is_2>
|
||||
<enum 3 location_selected_chain_is_3>
|
||||
<legal 0-3>
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FIRST_SELECTED_CHAIN_OFFSET 0x0000000000000000
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FIRST_SELECTED_CHAIN_LSB 32
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FIRST_SELECTED_CHAIN_MSB 39
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FIRST_SELECTED_CHAIN_MASK 0x000000ff00000000
|
||||
|
||||
|
||||
/* Description RTT_SECOND_SELECTED_CHAIN
|
||||
|
||||
For legacy RTT5/.11mc mode, this field shows the second
|
||||
selected Rx chain that is used for FAC calculations, when
|
||||
forced by a virtual register.
|
||||
|
||||
<enum 0 location_selected_chain_is_0>
|
||||
<enum 1 location_selected_chain_is_1>
|
||||
<enum 2 location_selected_chain_is_2>
|
||||
<enum 3 location_selected_chain_is_3>
|
||||
<legal 0-3>
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_SECOND_SELECTED_CHAIN_OFFSET 0x0000000000000000
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_SECOND_SELECTED_CHAIN_LSB 40
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_SECOND_SELECTED_CHAIN_MSB 47
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_SECOND_SELECTED_CHAIN_MASK 0x0000ff0000000000
|
||||
|
||||
|
||||
/* Description RTT_CFR_STATUS
|
||||
|
||||
Status of channel frequency response dump
|
||||
|
||||
<enum 0 location_CFR_dump_not_valid>
|
||||
<enum 1 location_CFR_dump_valid>
|
||||
<legal 0-1>
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CFR_STATUS_OFFSET 0x0000000000000000
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CFR_STATUS_LSB 48
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CFR_STATUS_MSB 55
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CFR_STATUS_MASK 0x00ff000000000000
|
||||
|
||||
|
||||
/* Description RTT_CIR_STATUS
|
||||
|
||||
Status of channel impulse response dump
|
||||
|
||||
<enum 0 location_CIR_dump_not_valid>
|
||||
<enum 1 location_CIR_dump_valid>
|
||||
<legal 0-1>
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CIR_STATUS_OFFSET 0x0000000000000000
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CIR_STATUS_LSB 56
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CIR_STATUS_MSB 63
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CIR_STATUS_MASK 0xff00000000000000
|
||||
|
||||
|
||||
/* Description RTT_CHE_BUFFER_POINTER_LOW32
|
||||
|
||||
The low 32 bits of the 40 bits pointer pointed to the external
|
||||
RTT channel information buffer
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CHE_BUFFER_POINTER_LOW32_OFFSET 0x0000000000000008
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CHE_BUFFER_POINTER_LOW32_LSB 0
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CHE_BUFFER_POINTER_LOW32_MSB 31
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CHE_BUFFER_POINTER_LOW32_MASK 0x00000000ffffffff
|
||||
|
||||
|
||||
/* Description RTT_CHE_BUFFER_POINTER_HIGH8
|
||||
|
||||
The high 8 bits of the 40 bits pointer pointed to the external
|
||||
RTT channel information buffer
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CHE_BUFFER_POINTER_HIGH8_OFFSET 0x0000000000000008
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CHE_BUFFER_POINTER_HIGH8_LSB 32
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CHE_BUFFER_POINTER_HIGH8_MSB 39
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CHE_BUFFER_POINTER_HIGH8_MASK 0x000000ff00000000
|
||||
|
||||
|
||||
/* Description RESERVED_3
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RESERVED_3_OFFSET 0x0000000000000008
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RESERVED_3_LSB 40
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RESERVED_3_MSB 47
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RESERVED_3_MASK 0x0000ff0000000000
|
||||
|
||||
|
||||
/* Description RTT_PKT_BW_VHT
|
||||
|
||||
Indicate the bandwidth of (V)HT/HE-LTF
|
||||
|
||||
<enum 0 location_pkt_bw_20MHz>
|
||||
<enum 1 location_pkt_bw_40MHz>
|
||||
<enum 2 location_pkt_bw_80MHz>
|
||||
<enum 3 location_pkt_bw_160MHz>
|
||||
<enum 4 location_pkt_bw_240MHz> Only valid for CFR, FAC
|
||||
calculations are not PoR for 240 MHz.
|
||||
<enum 5 location_pkt_bw_320MHz> Only valid for CFR, FAC
|
||||
calculations are not PoR for 320 MHz.
|
||||
<legal 0-5>
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_PKT_BW_VHT_OFFSET 0x0000000000000008
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_PKT_BW_VHT_LSB 48
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_PKT_BW_VHT_MSB 51
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_PKT_BW_VHT_MASK 0x000f000000000000
|
||||
|
||||
|
||||
/* Description RTT_PKT_BW_LEG
|
||||
|
||||
Indicate the bandwidth of L-LTF
|
||||
|
||||
<enum 0 location_pkt_bw_20MHz>
|
||||
<enum 1 location_pkt_bw_40MHz>
|
||||
<enum 2 location_pkt_bw_80MHz>
|
||||
<enum 3 location_pkt_bw_160MHz>
|
||||
<enum 4 location_pkt_bw_240MHz> Only valid for CFR, FAC
|
||||
calculations are not PoR for 240 MHz.
|
||||
<enum 5 location_pkt_bw_320MHz> Only valid for CFR, FAC
|
||||
calculations are not PoR for 320 MHz.
|
||||
<legal 0-5>
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_PKT_BW_LEG_OFFSET 0x0000000000000008
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_PKT_BW_LEG_LSB 52
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_PKT_BW_LEG_MSB 55
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_PKT_BW_LEG_MASK 0x00f0000000000000
|
||||
|
||||
|
||||
/* Description RTT_MCS_RATE
|
||||
|
||||
Bits 0~4 indicate MCS rate, if Legacy,
|
||||
0: 48 Mbps,
|
||||
1: 24 Mbps,
|
||||
2: 12 Mbps,
|
||||
3: 6 Mbps,
|
||||
4: 54 Mbps,
|
||||
5: 36 Mbps,
|
||||
6: 18 Mbps,
|
||||
7: 9 Mbps,
|
||||
8-15: reserved
|
||||
|
||||
if HT, 0-7: MCS0-MCS7, 8-15: reserved,
|
||||
if VHT, 0-9: MCS0-MCS9, 10-15: reserved,
|
||||
if HE or EHT, 0-11: MCS0-MCS11, 12-13: 4096QAM, 14-15: reserved
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_MCS_RATE_OFFSET 0x0000000000000008
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_MCS_RATE_LSB 56
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_MCS_RATE_MSB 63
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_MCS_RATE_MASK 0xff00000000000000
|
||||
|
||||
|
||||
/* Description RTT_CFO_MEASUREMENT
|
||||
|
||||
CFO measurement. Needed for passive locationing
|
||||
|
||||
14 bits, signed 1.13. 13 bits fraction to provide a resolution
|
||||
of 153 Hz
|
||||
|
||||
In units of cycles/800 ns
|
||||
<legal 0-16383>
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CFO_MEASUREMENT_OFFSET 0x0000000000000010
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CFO_MEASUREMENT_LSB 0
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CFO_MEASUREMENT_MSB 15
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CFO_MEASUREMENT_MASK 0x000000000000ffff
|
||||
|
||||
|
||||
/* Description RTT_PREAMBLE_TYPE
|
||||
|
||||
Indicate preamble type
|
||||
|
||||
<enum 0 location_preamble_type_legacy>
|
||||
<enum 1 location_preamble_type_ht>
|
||||
<enum 2 location_preamble_type_vht>
|
||||
<enum 3 location_preamble_type_he_su_4xltf>
|
||||
<enum 4 location_preamble_type_he_su_2xltf>
|
||||
<enum 5 location_preamble_type_he_su_1xltf>
|
||||
<enum 6 location_preamble_type_he_trigger_based_ul_4xltf>
|
||||
|
||||
<enum 7 location_preamble_type_he_trigger_based_ul_2xltf>
|
||||
|
||||
<enum 8 location_preamble_type_he_trigger_based_ul_1xltf>
|
||||
|
||||
<enum 9 location_preamble_type_he_mu_4xltf>
|
||||
<enum 10 location_preamble_type_he_mu_2xltf>
|
||||
<enum 11 location_preamble_type_he_mu_1xltf>
|
||||
<enum 12 location_preamble_type_he_extended_range_su_4xltf>
|
||||
|
||||
<enum 13 location_preamble_type_he_extended_range_su_2xltf>
|
||||
|
||||
<enum 14 location_preamble_type_he_extended_range_su_1xltf>
|
||||
|
||||
<legal 0-14>
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_PREAMBLE_TYPE_OFFSET 0x0000000000000010
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_PREAMBLE_TYPE_LSB 16
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_PREAMBLE_TYPE_MSB 23
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_PREAMBLE_TYPE_MASK 0x0000000000ff0000
|
||||
|
||||
|
||||
/* Description RTT_GI_TYPE
|
||||
|
||||
Indicate GI (guard interval) type
|
||||
|
||||
<enum 0 location_gi_0_8_us > HE related GI. Can also be
|
||||
used for HE
|
||||
<enum 1 location_gi_0_4_us > HE related GI. Can also be
|
||||
used for HE
|
||||
<enum 2 location_gi_1_6_us > HE related GI
|
||||
<enum 3 location_gi_3_2_us > HE related GI
|
||||
<legal 0 - 3>
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_GI_TYPE_OFFSET 0x0000000000000010
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_GI_TYPE_LSB 24
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_GI_TYPE_MSB 31
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_GI_TYPE_MASK 0x00000000ff000000
|
||||
|
||||
|
||||
/* Description RX_START_TS
|
||||
|
||||
RX packet start timestamp lower 32 bits
|
||||
|
||||
It reports the time the first L-STF ADC sample arrived at
|
||||
RX antenna.
|
||||
|
||||
The clock unit is 960MHz.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_START_TS_OFFSET 0x0000000000000010
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_START_TS_LSB 32
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_START_TS_MSB 63
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_START_TS_MASK 0xffffffff00000000
|
||||
|
||||
|
||||
/* Description RX_START_TS_UPPER
|
||||
|
||||
RX packet start timestamp upper 32 bits
|
||||
|
||||
It reports the time the first L-STF ADC sample arrived at
|
||||
RX antenna.
|
||||
|
||||
The clock unit is 960MHz.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_START_TS_UPPER_OFFSET 0x0000000000000018
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_START_TS_UPPER_LSB 0
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_START_TS_UPPER_MSB 31
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_START_TS_UPPER_MASK 0x00000000ffffffff
|
||||
|
||||
|
||||
/* Description RX_END_TS
|
||||
|
||||
RX packet end timestamp lower 32 bits
|
||||
|
||||
It reports the time the last symbol's last ADC sample arrived
|
||||
at RX antenna.
|
||||
|
||||
The clock unit is 960MHz. Only 32 bits are reported.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_END_TS_OFFSET 0x0000000000000018
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_END_TS_LSB 32
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_END_TS_MSB 63
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_END_TS_MASK 0xffffffff00000000
|
||||
|
||||
|
||||
/* Description GAIN_CHAIN0
|
||||
|
||||
Reports the total gain in dB and the gain table index to
|
||||
support angle of arrival for chain0
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN0_OFFSET 0x0000000000000020
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN0_LSB 0
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN0_MSB 15
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN0_MASK 0x000000000000ffff
|
||||
|
||||
|
||||
/* Description GAIN_CHAIN1
|
||||
|
||||
Reports the total gain in dB and the gain table index to
|
||||
support angle of arrival for chain1
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN1_OFFSET 0x0000000000000020
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN1_LSB 16
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN1_MSB 31
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN1_MASK 0x00000000ffff0000
|
||||
|
||||
|
||||
/* Description GAIN_CHAIN2
|
||||
|
||||
Reports the total gain in dB and the gain table index to
|
||||
support angle of arrival for chain2
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN2_OFFSET 0x0000000000000020
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN2_LSB 32
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN2_MSB 47
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN2_MASK 0x0000ffff00000000
|
||||
|
||||
|
||||
/* Description GAIN_CHAIN3
|
||||
|
||||
Reports the total gain in dB and the gain table index to
|
||||
support angle of arrival for chain3
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN3_OFFSET 0x0000000000000020
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN3_LSB 48
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN3_MSB 63
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN3_MASK 0xffff000000000000
|
||||
|
||||
|
||||
/* Description GAIN_REPORT_STATUS
|
||||
|
||||
Number of valid gain reports (in fields gain_chain0 - gain_chain_3)
|
||||
|
||||
<legal 0-4>
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_REPORT_STATUS_OFFSET 0x0000000000000028
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_REPORT_STATUS_LSB 0
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_REPORT_STATUS_MSB 7
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_REPORT_STATUS_MASK 0x00000000000000ff
|
||||
|
||||
|
||||
/* Description RTT_TIMING_BACKOFF_SEL
|
||||
|
||||
Indicate which timing backoff value is used
|
||||
|
||||
<enum 0 timing_backoff_low_rssi>
|
||||
<enum 1 timing_backoff_mid_rssi>
|
||||
<enum 2 timing_backoff_high_rssi>
|
||||
<enum 3 reserved>
|
||||
<legal 0-3>
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_TIMING_BACKOFF_SEL_OFFSET 0x0000000000000028
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_TIMING_BACKOFF_SEL_LSB 8
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_TIMING_BACKOFF_SEL_MSB 15
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_TIMING_BACKOFF_SEL_MASK 0x000000000000ff00
|
||||
|
||||
|
||||
/* Description RTT_FAC_COMBINED
|
||||
|
||||
Final adjusted and combined first arrival correction value
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_COMBINED_OFFSET 0x0000000000000028
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_COMBINED_LSB 16
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_COMBINED_MSB 31
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_COMBINED_MASK 0x00000000ffff0000
|
||||
|
||||
|
||||
/* Description RTT_FAC_0
|
||||
|
||||
The fields 'rtt_fac_0' - 'rtt_fac_31' show the RTT first
|
||||
arrival correction (FAC) value computed from the LTFs on
|
||||
the selected Rx chains.
|
||||
|
||||
16 bits, signed 11.5. 11 integer bits to cover -3.2us to
|
||||
3.2us, and 5 fraction bits to cover 160 MHz with 32x FAC
|
||||
interpolation.
|
||||
|
||||
The clock unit is 320MHz.
|
||||
|
||||
For .11az/MIMO, the FACs will be stored in spatial stream
|
||||
order with multiple chains reported together for each stream. [ss0-ch0,
|
||||
ss0-ch1, ..., ss1-ch0, ss1-ch1, ...]
|
||||
|
||||
For legacy RTT5/.11mc, the FACs will be stored in preamble
|
||||
order with multiple chains reported together for each LTF. [legacy-ch0,
|
||||
legacy-ch1, ..., (v)ht/he-ch0, (v)ht/he-ch1, ...]
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_0_OFFSET 0x0000000000000028
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_0_LSB 32
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_0_MSB 47
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_0_MASK 0x0000ffff00000000
|
||||
|
||||
|
||||
/* Description RTT_FAC_1
|
||||
|
||||
See 'rtt_fac_0' description
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_1_OFFSET 0x0000000000000028
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_1_LSB 48
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_1_MSB 63
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_1_MASK 0xffff000000000000
|
||||
|
||||
|
||||
/* Description RTT_FAC_2
|
||||
|
||||
See 'rtt_fac_0' description
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_2_OFFSET 0x0000000000000030
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_2_LSB 0
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_2_MSB 15
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_2_MASK 0x000000000000ffff
|
||||
|
||||
|
||||
/* Description RTT_FAC_3
|
||||
|
||||
See 'rtt_fac_0' description
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_3_OFFSET 0x0000000000000030
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_3_LSB 16
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_3_MSB 31
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_3_MASK 0x00000000ffff0000
|
||||
|
||||
|
||||
/* Description RTT_FAC_4
|
||||
|
||||
See 'rtt_fac_0' description
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_4_OFFSET 0x0000000000000030
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_4_LSB 32
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_4_MSB 47
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_4_MASK 0x0000ffff00000000
|
||||
|
||||
|
||||
/* Description RTT_FAC_5
|
||||
|
||||
See 'rtt_fac_0' description
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_5_OFFSET 0x0000000000000030
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_5_LSB 48
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_5_MSB 63
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_5_MASK 0xffff000000000000
|
||||
|
||||
|
||||
/* Description RTT_FAC_6
|
||||
|
||||
See 'rtt_fac_0' description
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_6_OFFSET 0x0000000000000038
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_6_LSB 0
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_6_MSB 15
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_6_MASK 0x000000000000ffff
|
||||
|
||||
|
||||
/* Description RTT_FAC_7
|
||||
|
||||
See 'rtt_fac_0' description
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_7_OFFSET 0x0000000000000038
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_7_LSB 16
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_7_MSB 31
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_7_MASK 0x00000000ffff0000
|
||||
|
||||
|
||||
/* Description RTT_FAC_8
|
||||
|
||||
See 'rtt_fac_0' description
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_8_OFFSET 0x0000000000000038
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_8_LSB 32
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_8_MSB 47
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_8_MASK 0x0000ffff00000000
|
||||
|
||||
|
||||
/* Description RTT_FAC_9
|
||||
|
||||
See 'rtt_fac_0' description
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_9_OFFSET 0x0000000000000038
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_9_LSB 48
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_9_MSB 63
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_9_MASK 0xffff000000000000
|
||||
|
||||
|
||||
/* Description RTT_FAC_10
|
||||
|
||||
See 'rtt_fac_0' description
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_10_OFFSET 0x0000000000000040
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_10_LSB 0
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_10_MSB 15
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_10_MASK 0x000000000000ffff
|
||||
|
||||
|
||||
/* Description RTT_FAC_11
|
||||
|
||||
See 'rtt_fac_0' description
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_11_OFFSET 0x0000000000000040
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_11_LSB 16
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_11_MSB 31
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_11_MASK 0x00000000ffff0000
|
||||
|
||||
|
||||
/* Description RTT_FAC_12
|
||||
|
||||
See 'rtt_fac_0' description
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_12_OFFSET 0x0000000000000040
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_12_LSB 32
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_12_MSB 47
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_12_MASK 0x0000ffff00000000
|
||||
|
||||
|
||||
/* Description RTT_FAC_13
|
||||
|
||||
See 'rtt_fac_0' description
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_13_OFFSET 0x0000000000000040
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_13_LSB 48
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_13_MSB 63
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_13_MASK 0xffff000000000000
|
||||
|
||||
|
||||
/* Description RTT_FAC_14
|
||||
|
||||
See 'rtt_fac_0' description
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_14_OFFSET 0x0000000000000048
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_14_LSB 0
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_14_MSB 15
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_14_MASK 0x000000000000ffff
|
||||
|
||||
|
||||
/* Description RTT_FAC_15
|
||||
|
||||
See 'rtt_fac_0' description
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_15_OFFSET 0x0000000000000048
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_15_LSB 16
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_15_MSB 31
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_15_MASK 0x00000000ffff0000
|
||||
|
||||
|
||||
/* Description RTT_FAC_16
|
||||
|
||||
See 'rtt_fac_0' description
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_16_OFFSET 0x0000000000000048
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_16_LSB 32
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_16_MSB 47
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_16_MASK 0x0000ffff00000000
|
||||
|
||||
|
||||
/* Description RTT_FAC_17
|
||||
|
||||
See 'rtt_fac_0' description
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_17_OFFSET 0x0000000000000048
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_17_LSB 48
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_17_MSB 63
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_17_MASK 0xffff000000000000
|
||||
|
||||
|
||||
/* Description RTT_FAC_18
|
||||
|
||||
See 'rtt_fac_0' description
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_18_OFFSET 0x0000000000000050
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_18_LSB 0
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_18_MSB 15
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_18_MASK 0x000000000000ffff
|
||||
|
||||
|
||||
/* Description RTT_FAC_19
|
||||
|
||||
See 'rtt_fac_0' description
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_19_OFFSET 0x0000000000000050
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_19_LSB 16
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_19_MSB 31
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_19_MASK 0x00000000ffff0000
|
||||
|
||||
|
||||
/* Description RTT_FAC_20
|
||||
|
||||
See 'rtt_fac_0' description
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_20_OFFSET 0x0000000000000050
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_20_LSB 32
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_20_MSB 47
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_20_MASK 0x0000ffff00000000
|
||||
|
||||
|
||||
/* Description RTT_FAC_21
|
||||
|
||||
See 'rtt_fac_0' description
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_21_OFFSET 0x0000000000000050
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_21_LSB 48
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_21_MSB 63
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_21_MASK 0xffff000000000000
|
||||
|
||||
|
||||
/* Description RTT_FAC_22
|
||||
|
||||
See 'rtt_fac_0' description
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_22_OFFSET 0x0000000000000058
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_22_LSB 0
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_22_MSB 15
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_22_MASK 0x000000000000ffff
|
||||
|
||||
|
||||
/* Description RTT_FAC_23
|
||||
|
||||
See 'rtt_fac_0' description
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_23_OFFSET 0x0000000000000058
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_23_LSB 16
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_23_MSB 31
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_23_MASK 0x00000000ffff0000
|
||||
|
||||
|
||||
/* Description RTT_FAC_24
|
||||
|
||||
See 'rtt_fac_0' description
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_24_OFFSET 0x0000000000000058
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_24_LSB 32
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_24_MSB 47
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_24_MASK 0x0000ffff00000000
|
||||
|
||||
|
||||
/* Description RTT_FAC_25
|
||||
|
||||
See 'rtt_fac_0' description
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_25_OFFSET 0x0000000000000058
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_25_LSB 48
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_25_MSB 63
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_25_MASK 0xffff000000000000
|
||||
|
||||
|
||||
/* Description RTT_FAC_26
|
||||
|
||||
See 'rtt_fac_0' description
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_26_OFFSET 0x0000000000000060
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_26_LSB 0
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_26_MSB 15
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_26_MASK 0x000000000000ffff
|
||||
|
||||
|
||||
/* Description RTT_FAC_27
|
||||
|
||||
See 'rtt_fac_0' description
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_27_OFFSET 0x0000000000000060
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_27_LSB 16
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_27_MSB 31
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_27_MASK 0x00000000ffff0000
|
||||
|
||||
|
||||
/* Description RTT_FAC_28
|
||||
|
||||
See 'rtt_fac_0' description
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_28_OFFSET 0x0000000000000060
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_28_LSB 32
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_28_MSB 47
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_28_MASK 0x0000ffff00000000
|
||||
|
||||
|
||||
/* Description RTT_FAC_29
|
||||
|
||||
See 'rtt_fac_0' description
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_29_OFFSET 0x0000000000000060
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_29_LSB 48
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_29_MSB 63
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_29_MASK 0xffff000000000000
|
||||
|
||||
|
||||
/* Description RTT_FAC_30
|
||||
|
||||
See 'rtt_fac_0' description
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_30_OFFSET 0x0000000000000068
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_30_LSB 0
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_30_MSB 15
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_30_MASK 0x000000000000ffff
|
||||
|
||||
|
||||
/* Description RTT_FAC_31
|
||||
|
||||
See 'rtt_fac_0' description
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_31_OFFSET 0x0000000000000068
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_31_LSB 16
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_31_MSB 31
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_31_MASK 0x00000000ffff0000
|
||||
|
||||
|
||||
/* Description RESERVED_27A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RESERVED_27A_OFFSET 0x0000000000000068
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RESERVED_27A_LSB 32
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RESERVED_27A_MSB 63
|
||||
#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RESERVED_27A_MASK 0xffffffff00000000
|
||||
|
||||
|
||||
|
||||
#endif // PHYRX_LOCATION
|
||||
|
|
@ -0,0 +1,107 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_H_
|
||||
#define _PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#define NUM_OF_DWORDS_PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS 4
|
||||
|
||||
#define NUM_OF_QWORDS_PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS 2
|
||||
|
||||
|
||||
struct phyrx_other_receive_info_ru_details {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
uint32_t ru_details_channel_0 : 32; // [31:0]
|
||||
uint32_t ru_details_channel_1 : 32; // [31:0]
|
||||
uint32_t spare : 32; // [31:0]
|
||||
uint32_t tlv64_padding : 32; // [31:0]
|
||||
#else
|
||||
uint32_t ru_details_channel_0 : 32; // [31:0]
|
||||
uint32_t ru_details_channel_1 : 32; // [31:0]
|
||||
uint32_t spare : 32; // [31:0]
|
||||
uint32_t tlv64_padding : 32; // [31:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description RU_DETAILS_CHANNEL_0
|
||||
|
||||
Ru_allocation from content channel 0
|
||||
[7:0] for 20/40 MHz
|
||||
[15:0] for 80 MHz
|
||||
[31:0] for 160 MHz
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_RU_DETAILS_CHANNEL_0_OFFSET 0x0000000000000000
|
||||
#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_RU_DETAILS_CHANNEL_0_LSB 0
|
||||
#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_RU_DETAILS_CHANNEL_0_MSB 31
|
||||
#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_RU_DETAILS_CHANNEL_0_MASK 0x00000000ffffffff
|
||||
|
||||
|
||||
/* Description RU_DETAILS_CHANNEL_1
|
||||
|
||||
Ru_allocation from content channel 1
|
||||
[7:0] for 40 MHz
|
||||
[15:0] for 80 MHz
|
||||
[31:0] for 160 MHz
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_RU_DETAILS_CHANNEL_1_OFFSET 0x0000000000000000
|
||||
#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_RU_DETAILS_CHANNEL_1_LSB 32
|
||||
#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_RU_DETAILS_CHANNEL_1_MSB 63
|
||||
#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_RU_DETAILS_CHANNEL_1_MASK 0xffffffff00000000
|
||||
|
||||
|
||||
/* Description SPARE
|
||||
|
||||
Extra spare bits added to convey additional information
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_SPARE_OFFSET 0x0000000000000008
|
||||
#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_SPARE_LSB 0
|
||||
#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_SPARE_MSB 31
|
||||
#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_SPARE_MASK 0x00000000ffffffff
|
||||
|
||||
|
||||
/* Description TLV64_PADDING
|
||||
|
||||
Automatic DWORD padding inserted while converting TLV32
|
||||
to TLV64 for 64 bit ARCH
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_TLV64_PADDING_OFFSET 0x0000000000000008
|
||||
#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_TLV64_PADDING_LSB 32
|
||||
#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_TLV64_PADDING_MSB 63
|
||||
#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_TLV64_PADDING_MASK 0xffffffff00000000
|
||||
|
||||
|
||||
|
||||
#endif // PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS
|
||||
1144
drivers/staging/fw-api/hw/qca5332/phyrx_pkt_end.h
Normal file
1144
drivers/staging/fw-api/hw/qca5332/phyrx_pkt_end.h
Normal file
File diff suppressed because it is too large
Load diff
1168
drivers/staging/fw-api/hw/qca5332/phyrx_pkt_end_info.h
Normal file
1168
drivers/staging/fw-api/hw/qca5332/phyrx_pkt_end_info.h
Normal file
File diff suppressed because it is too large
Load diff
2256
drivers/staging/fw-api/hw/qca5332/phyrx_rssi_legacy.h
Normal file
2256
drivers/staging/fw-api/hw/qca5332/phyrx_rssi_legacy.h
Normal file
File diff suppressed because it is too large
Load diff
370
drivers/staging/fw-api/hw/qca5332/phyrx_vht_sig_a.h
Normal file
370
drivers/staging/fw-api/hw/qca5332/phyrx_vht_sig_a.h
Normal file
|
|
@ -0,0 +1,370 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _PHYRX_VHT_SIG_A_H_
|
||||
#define _PHYRX_VHT_SIG_A_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#include "vht_sig_a_info.h"
|
||||
#define NUM_OF_DWORDS_PHYRX_VHT_SIG_A 2
|
||||
|
||||
#define NUM_OF_QWORDS_PHYRX_VHT_SIG_A 1
|
||||
|
||||
|
||||
struct phyrx_vht_sig_a {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
struct vht_sig_a_info phyrx_vht_sig_a_info_details;
|
||||
#else
|
||||
struct vht_sig_a_info phyrx_vht_sig_a_info_details;
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description PHYRX_VHT_SIG_A_INFO_DETAILS
|
||||
|
||||
See detailed description of the STRUCT
|
||||
*/
|
||||
|
||||
|
||||
/* Description BANDWIDTH
|
||||
|
||||
Packet bandwidth
|
||||
|
||||
<enum 0 20_MHZ_11AC>
|
||||
<enum 1 40_MHZ_11AC>
|
||||
<enum 2 80_MHZ_11AC>
|
||||
<enum 3 160_MHZ_11AC>
|
||||
|
||||
<legal 0-3>
|
||||
*/
|
||||
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_BANDWIDTH_OFFSET 0x0000000000000000
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_BANDWIDTH_LSB 0
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_BANDWIDTH_MSB 1
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_BANDWIDTH_MASK 0x0000000000000003
|
||||
|
||||
|
||||
/* Description VHTA_RESERVED_0
|
||||
|
||||
Reserved. Set to 1 by MAC, PHY should ignore
|
||||
<legal 1>
|
||||
*/
|
||||
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0_OFFSET 0x0000000000000000
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0_LSB 2
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0_MSB 2
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0_MASK 0x0000000000000004
|
||||
|
||||
|
||||
/* Description STBC
|
||||
|
||||
Space time block coding:
|
||||
<enum 0 stbc_disabled> Indicates STBC is disabled
|
||||
<enum 1 stbc_enabled> Indicates STBC is enabled on
|
||||
all streams
|
||||
<legal 0-1>
|
||||
*/
|
||||
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_STBC_OFFSET 0x0000000000000000
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_STBC_LSB 3
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_STBC_MSB 3
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_STBC_MASK 0x0000000000000008
|
||||
|
||||
|
||||
/* Description GROUP_ID
|
||||
|
||||
In a SU VHT PPDU, if the PPDU carries MPDU(s) addressed
|
||||
to an AP or to a mesh STA, the Group ID field is set to
|
||||
0, otherwise it is set to 63. In an NDP PPDU the Group
|
||||
ID is set according to IEEE 802.11ac_D1.0 Section 9.30.6
|
||||
(Transmission of a VHT NDP). For a MU-MIMO PPDU the Group
|
||||
ID is set as in 802.11ac_D1.0 Section 22.3.11.3 (Group
|
||||
ID). <legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_GROUP_ID_OFFSET 0x0000000000000000
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_GROUP_ID_LSB 4
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_GROUP_ID_MSB 9
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_GROUP_ID_MASK 0x00000000000003f0
|
||||
|
||||
|
||||
/* Description N_STS
|
||||
|
||||
For MU:
|
||||
3 bits/user with maximum of 4 users (user u uses
|
||||
vht_sig_a[0][10+3u] - vht_sig_a[0][12+3u]), u = 0, 1, 2,
|
||||
3)
|
||||
Set to 0 for 0 space time streams
|
||||
Set to 1 for 1 space time stream
|
||||
Set to 2 for 2 space time streams
|
||||
Set to 3 for 3 space time streams
|
||||
Set to 4 for 4 space time streams (not supported in Wifi
|
||||
3.0)
|
||||
Values 5-7 are reserved
|
||||
In this field, references to user "u" should be interpreted
|
||||
as MU user "u". As described in the previous chapter in
|
||||
this document (see chapter on User number), the MU user
|
||||
value for a given client is defined for each MU group that
|
||||
the client participates in. The MU user number is not related
|
||||
to the internal user number that is used within the BFer.
|
||||
|
||||
|
||||
|
||||
For SU:
|
||||
vht_sig_a[0][12:10]
|
||||
Set to 0 for 1 space time stream
|
||||
Set to 1 for 2 space time streams
|
||||
Set to 2 for 3 space time streams
|
||||
Set to 3 for 4 space time streams
|
||||
Set to 4 for 5 space time streams
|
||||
Set to 5 for 6 space time streams
|
||||
Set to 6 for 7 space time streams
|
||||
Set to 7 for 8 space time streams
|
||||
|
||||
vht_sig_a[0][21:13]
|
||||
Partial AID:
|
||||
Set to the value of the TXVECTOR parameter PARTIAL_AID.
|
||||
Partial AID provides an abbreviated indication of the intended
|
||||
recipient(s) of the frame (see IEEE802.11ac_D1.0 Section
|
||||
9.17a (Partial AID in VHT PPDUs)).
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_N_STS_OFFSET 0x0000000000000000
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_N_STS_LSB 10
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_N_STS_MSB 21
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_N_STS_MASK 0x00000000003ffc00
|
||||
|
||||
|
||||
/* Description TXOP_PS_NOT_ALLOWED
|
||||
|
||||
E_num 0 txop_ps_allowed Not supported: If set to by
|
||||
VHT AP if it allows non-AP VHT STAs in TXOP power save
|
||||
mode to enter Doze state during a TXOP
|
||||
<enum 1 no_txop_ps_allowed> Otherwise
|
||||
<legal 1>
|
||||
*/
|
||||
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_TXOP_PS_NOT_ALLOWED_OFFSET 0x0000000000000000
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_TXOP_PS_NOT_ALLOWED_LSB 22
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_TXOP_PS_NOT_ALLOWED_MSB 22
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_TXOP_PS_NOT_ALLOWED_MASK 0x0000000000400000
|
||||
|
||||
|
||||
/* Description VHTA_RESERVED_0B
|
||||
|
||||
Reserved: Should be set to 1 by the MAC and ignored by the
|
||||
PHY <legal 1>
|
||||
*/
|
||||
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0B_OFFSET 0x0000000000000000
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0B_LSB 23
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0B_MSB 23
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0B_MASK 0x0000000000800000
|
||||
|
||||
|
||||
/* Description RESERVED_0
|
||||
|
||||
This field is not part of HT-SIG:
|
||||
Reserved: Should be set to 0 by the MAC and ignored by the
|
||||
PHY <legal 0>
|
||||
*/
|
||||
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_0_OFFSET 0x0000000000000000
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_0_LSB 24
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_0_MSB 31
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_0_MASK 0x00000000ff000000
|
||||
|
||||
|
||||
/* Description GI_SETTING
|
||||
|
||||
<enum 0 normal_gi> Indicates short guard interval is
|
||||
not used in the data field
|
||||
<enum 1 short_gi> Indicates short guard interval is
|
||||
used in the data field
|
||||
<enum 3 short_gi_ambiguity> Indicates short guard interval
|
||||
is used in the data field and NSYM mod 10 = 9
|
||||
NSYM is defined in IEEE802.11ac_D1.0 Section 22.4.3 (TXTIME
|
||||
and PSDU_LENGTH calculation).
|
||||
<legal 0,1,3>
|
||||
*/
|
||||
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_GI_SETTING_OFFSET 0x0000000000000000
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_GI_SETTING_LSB 32
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_GI_SETTING_MSB 33
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_GI_SETTING_MASK 0x0000000300000000
|
||||
|
||||
|
||||
/* Description SU_MU_CODING
|
||||
|
||||
For an SU PPDU, B2 is set to 0 for BCC, 1 for LDPC For an
|
||||
MU PPDU, if the MU[0] NSTS field is nonzero(#6773), then
|
||||
B2 indicates the coding used for user 0; set to 0 for BCC
|
||||
and 1 for LDPC. If the MU[0] NSTS field is 0, then this
|
||||
field is reserved and set to 1
|
||||
*/
|
||||
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_SU_MU_CODING_OFFSET 0x0000000000000000
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_SU_MU_CODING_LSB 34
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_SU_MU_CODING_MSB 34
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_SU_MU_CODING_MASK 0x0000000400000000
|
||||
|
||||
|
||||
/* Description LDPC_EXTRA_SYMBOL
|
||||
|
||||
Set to 1 if the LDPC PPDU encoding process (if an SU PPDU),
|
||||
or at least one LDPC user's PPDU encoding process (if an
|
||||
MU PPDU), results in an extra OFDM symbol (or symbols)
|
||||
as described in 22.3.10.5.4 (LDPC coding) and 22.3.10.5.5
|
||||
(Encoding process for MU PPDUs). Set to 0 otherwise.
|
||||
*/
|
||||
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_LDPC_EXTRA_SYMBOL_OFFSET 0x0000000000000000
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_LDPC_EXTRA_SYMBOL_LSB 35
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_LDPC_EXTRA_SYMBOL_MSB 35
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_LDPC_EXTRA_SYMBOL_MASK 0x0000000800000000
|
||||
|
||||
|
||||
/* Description MCS
|
||||
|
||||
For SU:
|
||||
Set to 0 for BPSK 1/2
|
||||
Set to 1 for QPSK 1/2
|
||||
Set to 2 for QPSK 3/4
|
||||
Set to 3 for 16-QAM 1/2
|
||||
Set to 4 for 16-QAM 3/4
|
||||
Set to 5 for 64-QAM 2/3
|
||||
Set to 6 for 64-QAM 3/4
|
||||
Set to 7 for 64-QAM 5/6
|
||||
Set to 8 for 256-QAM 3/4
|
||||
Set to 9 for 256-QAM 5/6
|
||||
For MU:
|
||||
If NSTS for user 1 is non-zero, then vht_sig_a[1][4] indicates
|
||||
coding for user 1: set to 0 for BCC, 1 for LDPC.
|
||||
If NSTS for user 1 is set to 0, then vht_sig_a[1][4] is
|
||||
reserved and set to 1.
|
||||
If NSTS for user 2 is non-zero, then vht_sig_a[1][5] indicates
|
||||
coding for user 2: set to 0 for BCC, 1 for LDPC.
|
||||
If NSTS for user 2 is set to 0, then vht_sig_a[1][5] is
|
||||
reserved and set to 1.
|
||||
If NSTS for user 3 is non-zero, then vht_sig_a[1][6] indicates
|
||||
coding for user 3: set to 0 for BCC, 1 for LDPC.
|
||||
If NSTS for user 3 is set to 0, then vht_sig_a[1][6] is
|
||||
reserved and set to 1.
|
||||
vht_sig_a[1][7] is reserved and set to 1
|
||||
<legal 0-15>
|
||||
*/
|
||||
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_MCS_OFFSET 0x0000000000000000
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_MCS_LSB 36
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_MCS_MSB 39
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_MCS_MASK 0x000000f000000000
|
||||
|
||||
|
||||
/* Description BEAMFORMED
|
||||
|
||||
For SU:
|
||||
Set to 1 if a Beamforming steering matrix is applied to
|
||||
the waveform in an SU transmission as described in IEEE802.11ac_D1.0
|
||||
Section 19.3.11.11.2 (Spatial mapping), set to 0 otherwise.
|
||||
|
||||
For MU:
|
||||
Reserved and set to 1
|
||||
<legal 0-1>
|
||||
*/
|
||||
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_BEAMFORMED_OFFSET 0x0000000000000000
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_BEAMFORMED_LSB 40
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_BEAMFORMED_MSB 40
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_BEAMFORMED_MASK 0x0000010000000000
|
||||
|
||||
|
||||
/* Description VHTA_RESERVED_1
|
||||
|
||||
Reserved and set to 1. <legal 1>
|
||||
*/
|
||||
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_1_OFFSET 0x0000000000000000
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_1_LSB 41
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_1_MSB 41
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_1_MASK 0x0000020000000000
|
||||
|
||||
|
||||
/* Description CRC
|
||||
|
||||
CRC calculated as in IEEE802.11ac_D1.0 Section 19.3.9.4.4
|
||||
(CRC calculation for HTSIG) with C7 in vht_sig_a[1][10],
|
||||
etc. <legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_CRC_OFFSET 0x0000000000000000
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_CRC_LSB 42
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_CRC_MSB 49
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_CRC_MASK 0x0003fc0000000000
|
||||
|
||||
|
||||
/* Description TAIL
|
||||
|
||||
Used to terminate the trellis of the convolutional decoder.
|
||||
Set to 0. <legal 0>
|
||||
*/
|
||||
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_TAIL_OFFSET 0x0000000000000000
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_TAIL_LSB 50
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_TAIL_MSB 55
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_TAIL_MASK 0x00fc000000000000
|
||||
|
||||
|
||||
/* Description RESERVED_1
|
||||
|
||||
This field is not part of HT-SIG:
|
||||
Reserved: Should be set to 0 by the MAC and ignored by the
|
||||
PHY <legal 0>
|
||||
*/
|
||||
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_1_OFFSET 0x0000000000000000
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_1_LSB 56
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_1_MSB 62
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_1_MASK 0x7f00000000000000
|
||||
|
||||
|
||||
/* Description RX_INTEGRITY_CHECK_PASSED
|
||||
|
||||
TX side: Set to 0
|
||||
RX side: Set to 1 if PHY determines the VHT-SIG-A CRC check
|
||||
has passed, else set to 0
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 63
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 63
|
||||
#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x8000000000000000
|
||||
|
||||
|
||||
|
||||
#endif // PHYRX_VHT_SIG_A
|
||||
251
drivers/staging/fw-api/hw/qca5332/phytx_abort_request_info.h
Normal file
251
drivers/staging/fw-api/hw/qca5332/phytx_abort_request_info.h
Normal file
|
|
@ -0,0 +1,251 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _PHYTX_ABORT_REQUEST_INFO_H_
|
||||
#define _PHYTX_ABORT_REQUEST_INFO_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#define NUM_OF_WORDS_PHYTX_ABORT_REQUEST_INFO 1
|
||||
|
||||
|
||||
struct phytx_abort_request_info {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
uint16_t phytx_abort_reason : 8, // [7:0]
|
||||
user_number : 6, // [13:8]
|
||||
reserved : 2; // [15:14]
|
||||
#else
|
||||
uint16_t reserved : 2, // [15:14]
|
||||
user_number : 6, // [13:8]
|
||||
phytx_abort_reason : 8; // [7:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description PHYTX_ABORT_REASON
|
||||
|
||||
Reason for early termination of TX packet by the PHY
|
||||
|
||||
<enum 0 no_phytx_error_reported>This value is the default
|
||||
value the MAC will fill in the status TLV (when not PHY
|
||||
abort was received).
|
||||
|
||||
Note that when PHY generates the PHYTX_ABORT_REQUEST, this
|
||||
value shall never be used.
|
||||
<enum 1 error_txtd_ifft_underrun>PHY ran out of transmit
|
||||
data due to transmit underrun - this field is user-specific
|
||||
(see user_number field)
|
||||
<enum 2 error_tx_invalid_tlv>
|
||||
<enum 3 error_tx_unexpected_tlv>
|
||||
<enum 4 error_tx_pkt_end_error>
|
||||
<enum 5 error_tx_bw_is_gt_dyn_bw>
|
||||
<enum 6 error_txtd_pkt_start_error>
|
||||
<enum 7 error_txfd_pre_phy_tlv_ooo>
|
||||
<enum 8 error_txtd_mu_data_underrun>
|
||||
<enum 9 error_tx_legacy_rate_illegal>
|
||||
<enum 10 error_tx_fifo_error>
|
||||
<enum 11 error_tx_ack_wd_error>
|
||||
<enum 12 error_tx_tpc_miss>
|
||||
<enum 13 error_mac_tx_abort>
|
||||
<enum 14 error_tx_pcss_phy_desc_wdg_timeout>
|
||||
<enum 15 error_unsupported_cbf>
|
||||
<enum 16 error_cv_static_bandwidth_mismatch>
|
||||
<enum 17 error_cv_dynamic_bandwidth_mismatch>
|
||||
<enum 18 error_cv_unsupported_nss_total>
|
||||
<enum 19 error_nss_bf_params_mismatch>
|
||||
<enum 20 error_txbf_fail>
|
||||
<enum 21 error_txbf_snd_fail>This used to be called 'error_illegal_nss.'
|
||||
|
||||
<enum 22 error_otp_txbf>
|
||||
<enum 23 error_tx_inv_chainmask>
|
||||
<enum 24 error_cv_index_assign_overload>This error indicates
|
||||
that CV prefetch command indicated a CV index that is not
|
||||
available.
|
||||
<enum 25 error_cv_index_delete>This error indicates that
|
||||
CV delete command indicated a CV index that did not contain
|
||||
any valid info
|
||||
<enum 26 error_tx_he_rate_illegal>Error found with the HE
|
||||
transmission parameters
|
||||
<enum 27 error_tx_pcss_wdg_timeout>
|
||||
<enum 28 error_tx_tlv_tag_mismatch>
|
||||
<enum 29 error_tx_cck_fifo_flush>
|
||||
<enum 30 error_tx_no_mac_pkt_end>
|
||||
<enum 31 error_tx_abort_for_mac_war>
|
||||
<enum 32 error_tx_stuck>
|
||||
<enum 33 error_tx_invalid_uplink_tlv>
|
||||
<enum 34 error_txfd_txcck_illegal_tx_rate_error>
|
||||
<enum 35 error_txfd_txcck_underrun_error>
|
||||
<enum 36 error_txfd_mpi_req_grant_error>
|
||||
<enum 37 error_txfd_control_tlv_fifo_ovfl_error>
|
||||
<enum 38 error_txfd_tlv_fifo_overflow_error>
|
||||
<enum 39 error_txfd_data_fifo_underflow_error>
|
||||
<enum 40 error_txfd_data_fifo_overflow_error>
|
||||
<enum 41 error_txfd_service_fifo_overflow_error>
|
||||
<enum 42 error_txfd_he_sigb_fifo_overflow_error>
|
||||
<enum 43 error_txfd_spurious_data_fifo_error>
|
||||
<enum 44 error_txfd_he_siga_fifo_ovfl_error>
|
||||
<enum 45 error_txfd_unknown_tlv_error>
|
||||
<enum 46 error_txfd_mac_response_ordering_error>
|
||||
<enum 47 error_txfd_unexpected_mac_pkt_end_error>
|
||||
<enum 48 error_txfd_tlv_fifo_rd_hang_error>All FIFO read
|
||||
hang errors use this value.
|
||||
<enum 49 error_txfd_tlv_fifo_no_rd_error>All FIFO no read
|
||||
errors use this value.
|
||||
<enum 50 error_txfd_ordering_fifo_no_rd_error>
|
||||
<enum 51 error_txfd_illegal_cf_tlv_error>
|
||||
<enum 52 error_txfd_user_ru_hang_error>
|
||||
<enum 53 error_txfd_stream_ru_hang_error>
|
||||
<enum 54 error_txfd_num_pad_bits_error>
|
||||
<enum 55 error_txfd_phy_abort_ack_wd_to_error>
|
||||
<enum 56 error_txfd_pre_pkt_isr_not_done_before_phy_desc_error>
|
||||
|
||||
<enum 57 error_txfd_bf_weights_not_ready_error>
|
||||
<enum 58 error_txfd_req_timer_breach_error>
|
||||
<enum 59 error_txfd_wd_to_error>
|
||||
<enum 60 error_txfd_legacy_bf_weights_not_ready_error>
|
||||
<enum 61 error_txfd_axi_slave_to_error>
|
||||
<enum 62 error_txfd_hw_acc_error>
|
||||
<enum 63 error_txfd_txb_req_fifo_underrun_error>
|
||||
<enum 64 error_txfd_unknown_ru_alloc_error>
|
||||
<enum 65 error_txfd_more_user_desc_per_user_tlvs_error>
|
||||
<enum 66 error_txfd_ldpc_param_calc_to_error>
|
||||
<enum 69 error_txfd_cbf_start_before_expect_cbf_clear_error>
|
||||
|
||||
<enum 70 error_txfd_out_of_range_cbf_user_id_error>
|
||||
<enum 71 error_txfd_less_cbf_data_error>
|
||||
<enum 72 error_txfd_more_cbf_data_error>
|
||||
<enum 73 error_txfd_cbf_done_not_received_error>
|
||||
<enum 74 error_txfd_mpi_cbf_valid_to_error>
|
||||
<enum 75 error_txfd_cbf_start_missing_error>
|
||||
<enum 76 error_txfd_mimo_ctrl_error>
|
||||
<enum 77 error_txfd_cbf_buffer_ovfl_error>
|
||||
<enum 78 error_txfd_dma0_hang_error>
|
||||
<enum 79 error_txfd_dma1_hang_error>
|
||||
<enum 80 error_txfd_b2b_cbf_start_error>
|
||||
<enum 81 error_txfd_b2b_cbf_done_error>
|
||||
<enum 82 error_txfd_unsaved_cv_error>
|
||||
<enum 83 error_txfd_wt_mem_wr_conflict_error>
|
||||
<enum 84 error_txfd_wt_mem_rd_conflict_error>
|
||||
<enum 85 error_txfd_qre_intf_to_error>
|
||||
<enum 86 error_txfd_qre_txbf_stomp_rx_error>
|
||||
<enum 87 error_txfd_qre_rx_stomp_txbf_error>
|
||||
<enum 88 error_txfd_precoding_start_before_bf_param_clr_error>
|
||||
|
||||
<enum 89 error_txfd_tone_map_lut_rd_conflict_error>
|
||||
<enum 90 error_txfd_precoding_fifo_ovfl_error>
|
||||
<enum 91 error_txfd_precoding_fifo_udfl_error>
|
||||
<enum 92 error_txfd_txbf_axi_slave_to_error>
|
||||
<enum 93 error_txfd_less_prefetch_tlvs_error>
|
||||
<enum 94 error_txfd_more_prefetch_tlvs_error>
|
||||
<enum 95 error_txfd_prefetch_fifo_ovfl_error>
|
||||
<enum 96 error_txfd_prefetch_fifo_udfl_error>
|
||||
<enum 97 error_txfd_precoding_error>
|
||||
<enum 98 error_txfd_cv_ctrl_state_to_error>
|
||||
<enum 99 error_txfd_txbfp_qre_tone_udfl_error>
|
||||
<enum 100 error_txfd_less_bf_param_per_user_tlvs_error>
|
||||
<enum 101 error_txfd_more_bf_param_per_user_tlvs_error>
|
||||
<enum 102 error_txfd_bf_param_common_unexpected_error>
|
||||
<enum 103 error_txfd_less_expect_cbf_per_user_tlvs_error>
|
||||
|
||||
<enum 104 error_txfd_more_expect_cbf_per_user_tlvs_error>
|
||||
|
||||
<enum 105 error_txfd_precoding_stg1_stg2_wait_to_error>
|
||||
<enum 106 error_txfd_expect_cbf_per_user_before_common_error>
|
||||
|
||||
<enum 107 error_txfd_prefetch_per_user_before_common_error>
|
||||
|
||||
<enum 108 error_txfd_bf_param_per_user_before_common_error>
|
||||
|
||||
<enum 109 error_txfd_ndp_cbf_bw_mismatch_error>
|
||||
<enum 110 error_txtd_tx_pre_desc_error>
|
||||
<enum 111 error_txtd_tx_desc_error>
|
||||
<enum 112 error_txtd_start_error>
|
||||
<enum 113 error_txtd_sym_error>
|
||||
<enum 114 error_txtd_multi_sym_error>
|
||||
<enum 115 error_txtd_pre_data_error>
|
||||
<enum 116 error_txtd_pkt_data_error>
|
||||
<enum 117 error_txtd_pkt_end_error>
|
||||
<enum 118 error_txtd_tx_frame_unexp>
|
||||
<enum 119 error_txtd_start_unexp>
|
||||
<enum 120 error_txtd_fft_error_1>
|
||||
<enum 121 error_txtd_fft_error_2>
|
||||
<enum 122 error_txtd_uld_sym_cp_len_zero>
|
||||
<enum 123 error_txtd_start_done>
|
||||
<enum 124 error_txtd_start_nonidle>
|
||||
<enum 125 error_txtd_tx_abort_nonidle>
|
||||
<enum 126 error_txtd_tx_abort_done>
|
||||
<enum 127 error_txtd_tx_abort_idle>
|
||||
<enum 128 error_txtd_cck_sample_overflow>
|
||||
<enum 129 error_txtd_cck_timeout>
|
||||
<enum 130 error_txtd_ofdm_sym_mismatch>
|
||||
<enum 131 error_txtd_tx_vld_unalign_error>
|
||||
<enum 132 error_txtd_fft_cdc_fifo>This is the merged Rx/Tx
|
||||
CDC FIFO empty/full error code
|
||||
<enum 133 error_mac_tb_ppdu_abort>All 'error_txtd_chn' codes
|
||||
use this value as well.
|
||||
<enum 136 error_abort_req_from_macrx_enum_05>This code is
|
||||
used to abort the Tx when MAC Rx issues an abort request
|
||||
with code 05 "macrx_abort_too_much_bad_data."
|
||||
<enum 137 error_tx_extra_sym_mismatch>
|
||||
<enum 138 error_tx_vht_length_not_multiple_of_3>
|
||||
<enum 139 error_tx_11b_rate_illegal>
|
||||
<enum 140 error_tx_ht_rate_illegal>
|
||||
<enum 141 error_tx_vht_rate_illegal>
|
||||
<enum 142 error_mac_rf_only_abort>
|
||||
<enum 255 error_tx_invalid_error_code>
|
||||
*/
|
||||
|
||||
#define PHYTX_ABORT_REQUEST_INFO_PHYTX_ABORT_REASON_OFFSET 0x00000000
|
||||
#define PHYTX_ABORT_REQUEST_INFO_PHYTX_ABORT_REASON_LSB 0
|
||||
#define PHYTX_ABORT_REQUEST_INFO_PHYTX_ABORT_REASON_MSB 7
|
||||
#define PHYTX_ABORT_REQUEST_INFO_PHYTX_ABORT_REASON_MASK 0x000000ff
|
||||
|
||||
|
||||
/* Description USER_NUMBER
|
||||
|
||||
For some errors, the user for which this error was detected
|
||||
can be indicated in this field.
|
||||
<legal 0-36>
|
||||
*/
|
||||
|
||||
#define PHYTX_ABORT_REQUEST_INFO_USER_NUMBER_OFFSET 0x00000000
|
||||
#define PHYTX_ABORT_REQUEST_INFO_USER_NUMBER_LSB 8
|
||||
#define PHYTX_ABORT_REQUEST_INFO_USER_NUMBER_MSB 13
|
||||
#define PHYTX_ABORT_REQUEST_INFO_USER_NUMBER_MASK 0x00003f00
|
||||
|
||||
|
||||
/* Description RESERVED
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define PHYTX_ABORT_REQUEST_INFO_RESERVED_OFFSET 0x00000000
|
||||
#define PHYTX_ABORT_REQUEST_INFO_RESERVED_LSB 14
|
||||
#define PHYTX_ABORT_REQUEST_INFO_RESERVED_MSB 15
|
||||
#define PHYTX_ABORT_REQUEST_INFO_RESERVED_MASK 0x0000c000
|
||||
|
||||
|
||||
|
||||
#endif // PHYTX_ABORT_REQUEST_INFO
|
||||
|
|
@ -0,0 +1,98 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _PHYTX_PPDU_HEADER_INFO_REQUEST_H_
|
||||
#define _PHYTX_PPDU_HEADER_INFO_REQUEST_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#define NUM_OF_WORDS_PHYTX_PPDU_HEADER_INFO_REQUEST 2
|
||||
|
||||
#define NUM_OF_DWORDS_PHYTX_PPDU_HEADER_INFO_REQUEST 1
|
||||
|
||||
|
||||
struct phytx_ppdu_header_info_request {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
uint16_t request_type : 5, // [4:0]
|
||||
reserved : 11; // [15:5]
|
||||
uint16_t tlv32_padding : 16; // [15:0]
|
||||
#else
|
||||
uint16_t reserved : 11, // [15:5]
|
||||
request_type : 5; // [4:0]
|
||||
uint16_t tlv32_padding : 16; // [15:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description REQUEST_TYPE
|
||||
|
||||
Reason for the request by PHY
|
||||
<enum 0 request_L_SIG_B>
|
||||
<enum 1 request_L_SIG_A>
|
||||
<enum 2 request_USER_DESC>
|
||||
<enum 3 request_HT_SIG>
|
||||
<enum 4 request_VHT_SIG_A>
|
||||
<enum 5 request_VHT_SIG_B >
|
||||
<enum 6 request_TX_SERVICE>
|
||||
<enum 7 request_HE_SIG_A>
|
||||
<enum 8 request_HE_SIG_B>
|
||||
<enum 9 request_U_SIG>
|
||||
<enum 10 request_EHT_SIG>
|
||||
|
||||
<legal 0-10>
|
||||
*/
|
||||
|
||||
#define PHYTX_PPDU_HEADER_INFO_REQUEST_REQUEST_TYPE_OFFSET 0x00000000
|
||||
#define PHYTX_PPDU_HEADER_INFO_REQUEST_REQUEST_TYPE_LSB 0
|
||||
#define PHYTX_PPDU_HEADER_INFO_REQUEST_REQUEST_TYPE_MSB 4
|
||||
#define PHYTX_PPDU_HEADER_INFO_REQUEST_REQUEST_TYPE_MASK 0x0000001f
|
||||
|
||||
|
||||
/* Description RESERVED
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define PHYTX_PPDU_HEADER_INFO_REQUEST_RESERVED_OFFSET 0x00000000
|
||||
#define PHYTX_PPDU_HEADER_INFO_REQUEST_RESERVED_LSB 5
|
||||
#define PHYTX_PPDU_HEADER_INFO_REQUEST_RESERVED_MSB 15
|
||||
#define PHYTX_PPDU_HEADER_INFO_REQUEST_RESERVED_MASK 0x0000ffe0
|
||||
|
||||
|
||||
/* Description TLV32_PADDING
|
||||
|
||||
Automatic WORD padding inserted while converting TLV16 to
|
||||
TLV32 for 64 bit ARCH
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define PHYTX_PPDU_HEADER_INFO_REQUEST_TLV32_PADDING_OFFSET 0x00000002
|
||||
#define PHYTX_PPDU_HEADER_INFO_REQUEST_TLV32_PADDING_LSB 0
|
||||
#define PHYTX_PPDU_HEADER_INFO_REQUEST_TLV32_PADDING_MSB 15
|
||||
#define PHYTX_PPDU_HEADER_INFO_REQUEST_TLV32_PADDING_MASK 0x0000ffff
|
||||
|
||||
|
||||
|
||||
#endif // PHYTX_PPDU_HEADER_INFO_REQUEST
|
||||
1002
drivers/staging/fw-api/hw/qca5332/receive_rssi_info.h
Normal file
1002
drivers/staging/fw-api/hw/qca5332/receive_rssi_info.h
Normal file
File diff suppressed because it is too large
Load diff
715
drivers/staging/fw-api/hw/qca5332/receive_user_info.h
Normal file
715
drivers/staging/fw-api/hw/qca5332/receive_user_info.h
Normal file
|
|
@ -0,0 +1,715 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _RECEIVE_USER_INFO_H_
|
||||
#define _RECEIVE_USER_INFO_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#define NUM_OF_DWORDS_RECEIVE_USER_INFO 8
|
||||
|
||||
|
||||
struct receive_user_info {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
uint32_t phy_ppdu_id : 16, // [15:0]
|
||||
user_rssi : 8, // [23:16]
|
||||
pkt_type : 4, // [27:24]
|
||||
stbc : 1, // [28:28]
|
||||
reception_type : 3; // [31:29]
|
||||
uint32_t rate_mcs : 4, // [3:0]
|
||||
sgi : 2, // [5:4]
|
||||
he_ranging_ndp : 1, // [6:6]
|
||||
reserved_1a : 1, // [7:7]
|
||||
mimo_ss_bitmap : 8, // [15:8]
|
||||
receive_bandwidth : 3, // [18:16]
|
||||
reserved_1b : 5, // [23:19]
|
||||
dl_ofdma_user_index : 8; // [31:24]
|
||||
uint32_t dl_ofdma_content_channel : 1, // [0:0]
|
||||
reserved_2a : 7, // [7:1]
|
||||
nss : 3, // [10:8]
|
||||
stream_offset : 3, // [13:11]
|
||||
sta_dcm : 1, // [14:14]
|
||||
ldpc : 1, // [15:15]
|
||||
ru_type_80_0 : 4, // [19:16]
|
||||
ru_type_80_1 : 4, // [23:20]
|
||||
ru_type_80_2 : 4, // [27:24]
|
||||
ru_type_80_3 : 4; // [31:28]
|
||||
uint32_t ru_start_index_80_0 : 6, // [5:0]
|
||||
reserved_3a : 2, // [7:6]
|
||||
ru_start_index_80_1 : 6, // [13:8]
|
||||
reserved_3b : 2, // [15:14]
|
||||
ru_start_index_80_2 : 6, // [21:16]
|
||||
reserved_3c : 2, // [23:22]
|
||||
ru_start_index_80_3 : 6, // [29:24]
|
||||
reserved_3d : 2; // [31:30]
|
||||
uint32_t user_fd_rssi_seg0 : 32; // [31:0]
|
||||
uint32_t user_fd_rssi_seg1 : 32; // [31:0]
|
||||
uint32_t user_fd_rssi_seg2 : 32; // [31:0]
|
||||
uint32_t user_fd_rssi_seg3 : 32; // [31:0]
|
||||
#else
|
||||
uint32_t reception_type : 3, // [31:29]
|
||||
stbc : 1, // [28:28]
|
||||
pkt_type : 4, // [27:24]
|
||||
user_rssi : 8, // [23:16]
|
||||
phy_ppdu_id : 16; // [15:0]
|
||||
uint32_t dl_ofdma_user_index : 8, // [31:24]
|
||||
reserved_1b : 5, // [23:19]
|
||||
receive_bandwidth : 3, // [18:16]
|
||||
mimo_ss_bitmap : 8, // [15:8]
|
||||
reserved_1a : 1, // [7:7]
|
||||
he_ranging_ndp : 1, // [6:6]
|
||||
sgi : 2, // [5:4]
|
||||
rate_mcs : 4; // [3:0]
|
||||
uint32_t ru_type_80_3 : 4, // [31:28]
|
||||
ru_type_80_2 : 4, // [27:24]
|
||||
ru_type_80_1 : 4, // [23:20]
|
||||
ru_type_80_0 : 4, // [19:16]
|
||||
ldpc : 1, // [15:15]
|
||||
sta_dcm : 1, // [14:14]
|
||||
stream_offset : 3, // [13:11]
|
||||
nss : 3, // [10:8]
|
||||
reserved_2a : 7, // [7:1]
|
||||
dl_ofdma_content_channel : 1; // [0:0]
|
||||
uint32_t reserved_3d : 2, // [31:30]
|
||||
ru_start_index_80_3 : 6, // [29:24]
|
||||
reserved_3c : 2, // [23:22]
|
||||
ru_start_index_80_2 : 6, // [21:16]
|
||||
reserved_3b : 2, // [15:14]
|
||||
ru_start_index_80_1 : 6, // [13:8]
|
||||
reserved_3a : 2, // [7:6]
|
||||
ru_start_index_80_0 : 6; // [5:0]
|
||||
uint32_t user_fd_rssi_seg0 : 32; // [31:0]
|
||||
uint32_t user_fd_rssi_seg1 : 32; // [31:0]
|
||||
uint32_t user_fd_rssi_seg2 : 32; // [31:0]
|
||||
uint32_t user_fd_rssi_seg3 : 32; // [31:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description PHY_PPDU_ID
|
||||
|
||||
A ppdu counter value that PHY increments for every PPDU
|
||||
received. The counter value wraps around
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVE_USER_INFO_PHY_PPDU_ID_OFFSET 0x00000000
|
||||
#define RECEIVE_USER_INFO_PHY_PPDU_ID_LSB 0
|
||||
#define RECEIVE_USER_INFO_PHY_PPDU_ID_MSB 15
|
||||
#define RECEIVE_USER_INFO_PHY_PPDU_ID_MASK 0x0000ffff
|
||||
|
||||
|
||||
/* Description USER_RSSI
|
||||
|
||||
RSSI for this user
|
||||
Frequency domain RSSI measurement for this user. Based on
|
||||
the channel estimate.
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVE_USER_INFO_USER_RSSI_OFFSET 0x00000000
|
||||
#define RECEIVE_USER_INFO_USER_RSSI_LSB 16
|
||||
#define RECEIVE_USER_INFO_USER_RSSI_MSB 23
|
||||
#define RECEIVE_USER_INFO_USER_RSSI_MASK 0x00ff0000
|
||||
|
||||
|
||||
/* Description PKT_TYPE
|
||||
|
||||
Packet type:
|
||||
|
||||
<enum 0 dot11a>802.11a PPDU type
|
||||
<enum 1 dot11b>802.11b PPDU type
|
||||
<enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
|
||||
<enum 3 dot11ac>802.11ac PPDU type
|
||||
<enum 4 dot11ax>802.11ax PPDU type
|
||||
<enum 5 dot11ba>802.11ba (WUR) PPDU type
|
||||
<enum 6 dot11be>802.11be PPDU type
|
||||
<enum 7 dot11az>802.11az (ranging) PPDU type
|
||||
<enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported
|
||||
& aborted)
|
||||
*/
|
||||
|
||||
#define RECEIVE_USER_INFO_PKT_TYPE_OFFSET 0x00000000
|
||||
#define RECEIVE_USER_INFO_PKT_TYPE_LSB 24
|
||||
#define RECEIVE_USER_INFO_PKT_TYPE_MSB 27
|
||||
#define RECEIVE_USER_INFO_PKT_TYPE_MASK 0x0f000000
|
||||
|
||||
|
||||
/* Description STBC
|
||||
|
||||
When set, use STBC transmission rates
|
||||
*/
|
||||
|
||||
#define RECEIVE_USER_INFO_STBC_OFFSET 0x00000000
|
||||
#define RECEIVE_USER_INFO_STBC_LSB 28
|
||||
#define RECEIVE_USER_INFO_STBC_MSB 28
|
||||
#define RECEIVE_USER_INFO_STBC_MASK 0x10000000
|
||||
|
||||
|
||||
/* Description RECEPTION_TYPE
|
||||
|
||||
Indicates what type of reception this is.
|
||||
<enum 0 reception_type_SU > Basic SU reception (not
|
||||
part of OFDMA or MU-MIMO)
|
||||
<enum 1 reception_type_MU_MIMO > This is related to
|
||||
DL type of reception
|
||||
<enum 2 reception_type_MU_OFDMA > This is related to
|
||||
DL type of reception
|
||||
<enum 3 reception_type_MU_OFDMA_MIMO > This is related
|
||||
to DL type of reception
|
||||
<enum 4 reception_type_UL_MU_MIMO > This is related
|
||||
to UL type of reception
|
||||
<enum 5 reception_type_UL_MU_OFDMA > This is related
|
||||
to UL type of reception
|
||||
<enum 6 reception_type_UL_MU_OFDMA_MIMO > This is related
|
||||
to UL type of reception
|
||||
|
||||
<legal 0-6>
|
||||
*/
|
||||
|
||||
#define RECEIVE_USER_INFO_RECEPTION_TYPE_OFFSET 0x00000000
|
||||
#define RECEIVE_USER_INFO_RECEPTION_TYPE_LSB 29
|
||||
#define RECEIVE_USER_INFO_RECEPTION_TYPE_MSB 31
|
||||
#define RECEIVE_USER_INFO_RECEPTION_TYPE_MASK 0xe0000000
|
||||
|
||||
|
||||
/* Description RATE_MCS
|
||||
|
||||
For details, refer to MCS_TYPE description
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVE_USER_INFO_RATE_MCS_OFFSET 0x00000004
|
||||
#define RECEIVE_USER_INFO_RATE_MCS_LSB 0
|
||||
#define RECEIVE_USER_INFO_RATE_MCS_MSB 3
|
||||
#define RECEIVE_USER_INFO_RATE_MCS_MASK 0x0000000f
|
||||
|
||||
|
||||
/* Description SGI
|
||||
|
||||
Field only valid when pkt type is HT, VHT or HE.
|
||||
|
||||
<enum 0 gi_0_8_us > Legacy normal GI. Can also be used
|
||||
for HE
|
||||
<enum 1 gi_0_4_us > Legacy short GI. Can also be used
|
||||
for HE
|
||||
<enum 2 gi_1_6_us > HE related GI
|
||||
<enum 3 gi_3_2_us > HE related GI
|
||||
<legal 0 - 3>
|
||||
*/
|
||||
|
||||
#define RECEIVE_USER_INFO_SGI_OFFSET 0x00000004
|
||||
#define RECEIVE_USER_INFO_SGI_LSB 4
|
||||
#define RECEIVE_USER_INFO_SGI_MSB 5
|
||||
#define RECEIVE_USER_INFO_SGI_MASK 0x00000030
|
||||
|
||||
|
||||
/* Description HE_RANGING_NDP
|
||||
|
||||
Set to 1 for expected HE TB ranging NDP Rx in response to
|
||||
sounding/secure sounding ranging Trigger Tx
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVE_USER_INFO_HE_RANGING_NDP_OFFSET 0x00000004
|
||||
#define RECEIVE_USER_INFO_HE_RANGING_NDP_LSB 6
|
||||
#define RECEIVE_USER_INFO_HE_RANGING_NDP_MSB 6
|
||||
#define RECEIVE_USER_INFO_HE_RANGING_NDP_MASK 0x00000040
|
||||
|
||||
|
||||
/* Description RESERVED_1A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define RECEIVE_USER_INFO_RESERVED_1A_OFFSET 0x00000004
|
||||
#define RECEIVE_USER_INFO_RESERVED_1A_LSB 7
|
||||
#define RECEIVE_USER_INFO_RESERVED_1A_MSB 7
|
||||
#define RECEIVE_USER_INFO_RESERVED_1A_MASK 0x00000080
|
||||
|
||||
|
||||
/* Description MIMO_SS_BITMAP
|
||||
|
||||
Bitmap, with each bit indicating if the related spatial
|
||||
stream is used for this STA
|
||||
LSB related to SS 0
|
||||
|
||||
0: spatial stream not used for this reception
|
||||
1: spatial stream used for this reception
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVE_USER_INFO_MIMO_SS_BITMAP_OFFSET 0x00000004
|
||||
#define RECEIVE_USER_INFO_MIMO_SS_BITMAP_LSB 8
|
||||
#define RECEIVE_USER_INFO_MIMO_SS_BITMAP_MSB 15
|
||||
#define RECEIVE_USER_INFO_MIMO_SS_BITMAP_MASK 0x0000ff00
|
||||
|
||||
|
||||
/* Description RECEIVE_BANDWIDTH
|
||||
|
||||
Full receive Bandwidth
|
||||
|
||||
<enum 0 20_mhz>20 Mhz BW
|
||||
<enum 1 40_mhz>40 Mhz BW
|
||||
<enum 2 80_mhz>80 Mhz BW
|
||||
<enum 3 160_mhz>160 Mhz BW
|
||||
<enum 4 320_mhz>320 Mhz BW
|
||||
<enum 5 240_mhz>240 Mhz BW
|
||||
*/
|
||||
|
||||
#define RECEIVE_USER_INFO_RECEIVE_BANDWIDTH_OFFSET 0x00000004
|
||||
#define RECEIVE_USER_INFO_RECEIVE_BANDWIDTH_LSB 16
|
||||
#define RECEIVE_USER_INFO_RECEIVE_BANDWIDTH_MSB 18
|
||||
#define RECEIVE_USER_INFO_RECEIVE_BANDWIDTH_MASK 0x00070000
|
||||
|
||||
|
||||
/* Description RESERVED_1B
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define RECEIVE_USER_INFO_RESERVED_1B_OFFSET 0x00000004
|
||||
#define RECEIVE_USER_INFO_RESERVED_1B_LSB 19
|
||||
#define RECEIVE_USER_INFO_RESERVED_1B_MSB 23
|
||||
#define RECEIVE_USER_INFO_RESERVED_1B_MASK 0x00f80000
|
||||
|
||||
|
||||
/* Description DL_OFDMA_USER_INDEX
|
||||
|
||||
Field only valid in the of DL MU OFDMA reception
|
||||
|
||||
The user number within the RU_allocation.
|
||||
|
||||
This is needed for SW to determine the exact RU position
|
||||
within the reception.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVE_USER_INFO_DL_OFDMA_USER_INDEX_OFFSET 0x00000004
|
||||
#define RECEIVE_USER_INFO_DL_OFDMA_USER_INDEX_LSB 24
|
||||
#define RECEIVE_USER_INFO_DL_OFDMA_USER_INDEX_MSB 31
|
||||
#define RECEIVE_USER_INFO_DL_OFDMA_USER_INDEX_MASK 0xff000000
|
||||
|
||||
|
||||
/* Description DL_OFDMA_CONTENT_CHANNEL
|
||||
|
||||
Field only valid in the of DL MU OFDMA/MIMO reception
|
||||
|
||||
In case of DL MU reception, this field indicates the content
|
||||
channel number where PHY found the RU information for this
|
||||
user
|
||||
|
||||
This is needed for SW to determine the exact RU position
|
||||
within the reception.
|
||||
|
||||
<enum 0 content_channel_1>
|
||||
<enum 1 content_channel_2>
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVE_USER_INFO_DL_OFDMA_CONTENT_CHANNEL_OFFSET 0x00000008
|
||||
#define RECEIVE_USER_INFO_DL_OFDMA_CONTENT_CHANNEL_LSB 0
|
||||
#define RECEIVE_USER_INFO_DL_OFDMA_CONTENT_CHANNEL_MSB 0
|
||||
#define RECEIVE_USER_INFO_DL_OFDMA_CONTENT_CHANNEL_MASK 0x00000001
|
||||
|
||||
|
||||
/* Description RESERVED_2A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define RECEIVE_USER_INFO_RESERVED_2A_OFFSET 0x00000008
|
||||
#define RECEIVE_USER_INFO_RESERVED_2A_LSB 1
|
||||
#define RECEIVE_USER_INFO_RESERVED_2A_MSB 7
|
||||
#define RECEIVE_USER_INFO_RESERVED_2A_MASK 0x000000fe
|
||||
|
||||
|
||||
/* Description NSS
|
||||
|
||||
Field only valid in case of Uplink_receive_type == mimo_only
|
||||
OR ofdma_mimo
|
||||
|
||||
Number of Spatial Streams occupied by the User
|
||||
|
||||
<enum 0 1_spatial_stream>Single spatial stream
|
||||
<enum 1 2_spatial_streams>2 spatial streams
|
||||
<enum 2 3_spatial_streams>3 spatial streams
|
||||
<enum 3 4_spatial_streams>4 spatial streams
|
||||
<enum 4 5_spatial_streams>5 spatial streams
|
||||
<enum 5 6_spatial_streams>6 spatial streams
|
||||
<enum 6 7_spatial_streams>7 spatial streams
|
||||
<enum 7 8_spatial_streams>8 spatial streams
|
||||
*/
|
||||
|
||||
#define RECEIVE_USER_INFO_NSS_OFFSET 0x00000008
|
||||
#define RECEIVE_USER_INFO_NSS_LSB 8
|
||||
#define RECEIVE_USER_INFO_NSS_MSB 10
|
||||
#define RECEIVE_USER_INFO_NSS_MASK 0x00000700
|
||||
|
||||
|
||||
/* Description STREAM_OFFSET
|
||||
|
||||
Field only valid in case of Uplink_receive_type == mimo_only
|
||||
OR ofdma_mimo
|
||||
|
||||
Stream Offset from which the User occupies the Streams
|
||||
|
||||
Note MAC:
|
||||
directly from pdg_fes_setup, based on BW
|
||||
*/
|
||||
|
||||
#define RECEIVE_USER_INFO_STREAM_OFFSET_OFFSET 0x00000008
|
||||
#define RECEIVE_USER_INFO_STREAM_OFFSET_LSB 11
|
||||
#define RECEIVE_USER_INFO_STREAM_OFFSET_MSB 13
|
||||
#define RECEIVE_USER_INFO_STREAM_OFFSET_MASK 0x00003800
|
||||
|
||||
|
||||
/* Description STA_DCM
|
||||
|
||||
Indicates whether dual sub-carrier modulation is applied
|
||||
|
||||
0: No DCM
|
||||
1:DCM
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVE_USER_INFO_STA_DCM_OFFSET 0x00000008
|
||||
#define RECEIVE_USER_INFO_STA_DCM_LSB 14
|
||||
#define RECEIVE_USER_INFO_STA_DCM_MSB 14
|
||||
#define RECEIVE_USER_INFO_STA_DCM_MASK 0x00004000
|
||||
|
||||
|
||||
/* Description LDPC
|
||||
|
||||
When set, use LDPC transmission rates were used.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVE_USER_INFO_LDPC_OFFSET 0x00000008
|
||||
#define RECEIVE_USER_INFO_LDPC_LSB 15
|
||||
#define RECEIVE_USER_INFO_LDPC_MSB 15
|
||||
#define RECEIVE_USER_INFO_LDPC_MASK 0x00008000
|
||||
|
||||
|
||||
/* Description RU_TYPE_80_0
|
||||
|
||||
Indicates the size of the RU in the first 80 MHz sub-band
|
||||
|
||||
<enum 0 RU_26_per80>
|
||||
<enum 1 RU_52_per80>
|
||||
<enum 2 RU_78_per80>
|
||||
<enum 3 RU_106_per80>
|
||||
<enum 4 RU_132_per80>
|
||||
<enum 5 RU_242_per80>
|
||||
<enum 6 RU_484_per80>
|
||||
<enum 7 RU_726_per80>
|
||||
<enum 8 RU_996_per80>
|
||||
<enum 9 RU_996x2>
|
||||
<enum 10 RU_996x3>
|
||||
<enum 11 RU_996x4>
|
||||
<enum 12 RU_rsvd0> DO NOT USE
|
||||
<enum 13 RU_rsvd1> DO NOT USE
|
||||
<enum 14 RU_rsvd2> DO NOT USE
|
||||
<enum 15 RU_NONE> No RUs in this 80 MHz
|
||||
<legal 0-15>
|
||||
*/
|
||||
|
||||
#define RECEIVE_USER_INFO_RU_TYPE_80_0_OFFSET 0x00000008
|
||||
#define RECEIVE_USER_INFO_RU_TYPE_80_0_LSB 16
|
||||
#define RECEIVE_USER_INFO_RU_TYPE_80_0_MSB 19
|
||||
#define RECEIVE_USER_INFO_RU_TYPE_80_0_MASK 0x000f0000
|
||||
|
||||
|
||||
/* Description RU_TYPE_80_1
|
||||
|
||||
Indicates the size of the RU in the second 80 MHz sub-band
|
||||
|
||||
<enum 0 RU_26_per80>
|
||||
<enum 1 RU_52_per80>
|
||||
<enum 2 RU_78_per80>
|
||||
<enum 3 RU_106_per80>
|
||||
<enum 4 RU_132_per80>
|
||||
<enum 5 RU_242_per80>
|
||||
<enum 6 RU_484_per80>
|
||||
<enum 7 RU_726_per80>
|
||||
<enum 8 RU_996_per80>
|
||||
<enum 9 RU_996x2>
|
||||
<enum 10 RU_996x3>
|
||||
<enum 11 RU_996x4>
|
||||
<enum 12 RU_rsvd0> DO NOT USE
|
||||
<enum 13 RU_rsvd1> DO NOT USE
|
||||
<enum 14 RU_rsvd2> DO NOT USE
|
||||
<enum 15 RU_NONE> No RUs in this 80 MHz
|
||||
<legal 0-15>
|
||||
*/
|
||||
|
||||
#define RECEIVE_USER_INFO_RU_TYPE_80_1_OFFSET 0x00000008
|
||||
#define RECEIVE_USER_INFO_RU_TYPE_80_1_LSB 20
|
||||
#define RECEIVE_USER_INFO_RU_TYPE_80_1_MSB 23
|
||||
#define RECEIVE_USER_INFO_RU_TYPE_80_1_MASK 0x00f00000
|
||||
|
||||
|
||||
/* Description RU_TYPE_80_2
|
||||
|
||||
Indicates the size of the RU in the third 80 MHz sub-band
|
||||
|
||||
<enum 0 RU_26_per80>
|
||||
<enum 1 RU_52_per80>
|
||||
<enum 2 RU_78_per80>
|
||||
<enum 3 RU_106_per80>
|
||||
<enum 4 RU_132_per80>
|
||||
<enum 5 RU_242_per80>
|
||||
<enum 6 RU_484_per80>
|
||||
<enum 7 RU_726_per80>
|
||||
<enum 8 RU_996_per80>
|
||||
<enum 9 RU_996x2>
|
||||
<enum 10 RU_996x3>
|
||||
<enum 11 RU_996x4>
|
||||
<enum 12 RU_rsvd0> DO NOT USE
|
||||
<enum 13 RU_rsvd1> DO NOT USE
|
||||
<enum 14 RU_rsvd2> DO NOT USE
|
||||
<enum 15 RU_NONE> No RUs in this 80 MHz
|
||||
<legal 0-15>
|
||||
*/
|
||||
|
||||
#define RECEIVE_USER_INFO_RU_TYPE_80_2_OFFSET 0x00000008
|
||||
#define RECEIVE_USER_INFO_RU_TYPE_80_2_LSB 24
|
||||
#define RECEIVE_USER_INFO_RU_TYPE_80_2_MSB 27
|
||||
#define RECEIVE_USER_INFO_RU_TYPE_80_2_MASK 0x0f000000
|
||||
|
||||
|
||||
/* Description RU_TYPE_80_3
|
||||
|
||||
Indicates the size of the RU in the fourth 80 MHz sub-band
|
||||
|
||||
<enum 0 RU_26_per80>
|
||||
<enum 1 RU_52_per80>
|
||||
<enum 2 RU_78_per80>
|
||||
<enum 3 RU_106_per80>
|
||||
<enum 4 RU_132_per80>
|
||||
<enum 5 RU_242_per80>
|
||||
<enum 6 RU_484_per80>
|
||||
<enum 7 RU_726_per80>
|
||||
<enum 8 RU_996_per80>
|
||||
<enum 9 RU_996x2>
|
||||
<enum 10 RU_996x3>
|
||||
<enum 11 RU_996x4>
|
||||
<enum 12 RU_rsvd0> DO NOT USE
|
||||
<enum 13 RU_rsvd1> DO NOT USE
|
||||
<enum 14 RU_rsvd2> DO NOT USE
|
||||
<enum 15 RU_NONE> No RUs in this 80 MHz
|
||||
<legal 0-15>
|
||||
*/
|
||||
|
||||
#define RECEIVE_USER_INFO_RU_TYPE_80_3_OFFSET 0x00000008
|
||||
#define RECEIVE_USER_INFO_RU_TYPE_80_3_LSB 28
|
||||
#define RECEIVE_USER_INFO_RU_TYPE_80_3_MSB 31
|
||||
#define RECEIVE_USER_INFO_RU_TYPE_80_3_MASK 0xf0000000
|
||||
|
||||
|
||||
/* Description RU_START_INDEX_80_0
|
||||
|
||||
RU index number to which User is assigned in the first 80
|
||||
MHz
|
||||
RU numbering is over the entire BW, starting from 0 and
|
||||
in increasing frequency order and not primary-secondary
|
||||
order
|
||||
<legal 0-36>
|
||||
*/
|
||||
|
||||
#define RECEIVE_USER_INFO_RU_START_INDEX_80_0_OFFSET 0x0000000c
|
||||
#define RECEIVE_USER_INFO_RU_START_INDEX_80_0_LSB 0
|
||||
#define RECEIVE_USER_INFO_RU_START_INDEX_80_0_MSB 5
|
||||
#define RECEIVE_USER_INFO_RU_START_INDEX_80_0_MASK 0x0000003f
|
||||
|
||||
|
||||
/* Description RESERVED_3A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define RECEIVE_USER_INFO_RESERVED_3A_OFFSET 0x0000000c
|
||||
#define RECEIVE_USER_INFO_RESERVED_3A_LSB 6
|
||||
#define RECEIVE_USER_INFO_RESERVED_3A_MSB 7
|
||||
#define RECEIVE_USER_INFO_RESERVED_3A_MASK 0x000000c0
|
||||
|
||||
|
||||
/* Description RU_START_INDEX_80_1
|
||||
|
||||
RU index number to which User is assigned in the second
|
||||
80 MHz
|
||||
RU numbering is over the entire BW, starting from 0 and
|
||||
in increasing frequency order and not primary-secondary
|
||||
order
|
||||
<legal 0-36>
|
||||
*/
|
||||
|
||||
#define RECEIVE_USER_INFO_RU_START_INDEX_80_1_OFFSET 0x0000000c
|
||||
#define RECEIVE_USER_INFO_RU_START_INDEX_80_1_LSB 8
|
||||
#define RECEIVE_USER_INFO_RU_START_INDEX_80_1_MSB 13
|
||||
#define RECEIVE_USER_INFO_RU_START_INDEX_80_1_MASK 0x00003f00
|
||||
|
||||
|
||||
/* Description RESERVED_3B
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define RECEIVE_USER_INFO_RESERVED_3B_OFFSET 0x0000000c
|
||||
#define RECEIVE_USER_INFO_RESERVED_3B_LSB 14
|
||||
#define RECEIVE_USER_INFO_RESERVED_3B_MSB 15
|
||||
#define RECEIVE_USER_INFO_RESERVED_3B_MASK 0x0000c000
|
||||
|
||||
|
||||
/* Description RU_START_INDEX_80_2
|
||||
|
||||
RU index number to which User is assigned in the third 80
|
||||
MHz
|
||||
RU numbering is over the entire BW, starting from 0 and
|
||||
in increasing frequency order and not primary-secondary
|
||||
order
|
||||
<legal 0-36>
|
||||
*/
|
||||
|
||||
#define RECEIVE_USER_INFO_RU_START_INDEX_80_2_OFFSET 0x0000000c
|
||||
#define RECEIVE_USER_INFO_RU_START_INDEX_80_2_LSB 16
|
||||
#define RECEIVE_USER_INFO_RU_START_INDEX_80_2_MSB 21
|
||||
#define RECEIVE_USER_INFO_RU_START_INDEX_80_2_MASK 0x003f0000
|
||||
|
||||
|
||||
/* Description RESERVED_3C
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define RECEIVE_USER_INFO_RESERVED_3C_OFFSET 0x0000000c
|
||||
#define RECEIVE_USER_INFO_RESERVED_3C_LSB 22
|
||||
#define RECEIVE_USER_INFO_RESERVED_3C_MSB 23
|
||||
#define RECEIVE_USER_INFO_RESERVED_3C_MASK 0x00c00000
|
||||
|
||||
|
||||
/* Description RU_START_INDEX_80_3
|
||||
|
||||
RU index number to which User is assigned in the fourth
|
||||
80 MHz
|
||||
RU numbering is over the entire BW, starting from 0 and
|
||||
in increasing frequency order and not primary-secondary
|
||||
order
|
||||
<legal 0-36>
|
||||
*/
|
||||
|
||||
#define RECEIVE_USER_INFO_RU_START_INDEX_80_3_OFFSET 0x0000000c
|
||||
#define RECEIVE_USER_INFO_RU_START_INDEX_80_3_LSB 24
|
||||
#define RECEIVE_USER_INFO_RU_START_INDEX_80_3_MSB 29
|
||||
#define RECEIVE_USER_INFO_RU_START_INDEX_80_3_MASK 0x3f000000
|
||||
|
||||
|
||||
/* Description RESERVED_3D
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define RECEIVE_USER_INFO_RESERVED_3D_OFFSET 0x0000000c
|
||||
#define RECEIVE_USER_INFO_RESERVED_3D_LSB 30
|
||||
#define RECEIVE_USER_INFO_RESERVED_3D_MSB 31
|
||||
#define RECEIVE_USER_INFO_RESERVED_3D_MASK 0xc0000000
|
||||
|
||||
|
||||
/* Description USER_FD_RSSI_SEG0
|
||||
|
||||
Frequency domain RSSI measurement for the lowest 80 MHz
|
||||
subband of this user, per spatial stream
|
||||
[7:0]: first spatial stream
|
||||
...
|
||||
[31:24]: fourth spatial stream
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG0_OFFSET 0x00000010
|
||||
#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG0_LSB 0
|
||||
#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG0_MSB 31
|
||||
#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG0_MASK 0xffffffff
|
||||
|
||||
|
||||
/* Description USER_FD_RSSI_SEG1
|
||||
|
||||
Frequency domain RSSI measurement for the second lowest
|
||||
80 MHz subband of this user, per spatial stream
|
||||
[7:0]: first spatial stream
|
||||
...
|
||||
[31:24]: fourth spatial stream
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG1_OFFSET 0x00000014
|
||||
#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG1_LSB 0
|
||||
#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG1_MSB 31
|
||||
#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG1_MASK 0xffffffff
|
||||
|
||||
|
||||
/* Description USER_FD_RSSI_SEG2
|
||||
|
||||
Frequency domain RSSI measurement for the third lowest 80
|
||||
MHz subband of this user, per spatial stream
|
||||
[7:0]: first spatial stream
|
||||
...
|
||||
[31:24]: fourth spatial stream
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG2_OFFSET 0x00000018
|
||||
#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG2_LSB 0
|
||||
#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG2_MSB 31
|
||||
#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG2_MASK 0xffffffff
|
||||
|
||||
|
||||
/* Description USER_FD_RSSI_SEG3
|
||||
|
||||
Frequency domain RSSI measurement for the highest 80 MHz
|
||||
subband of this user, per spatial stream
|
||||
[7:0]: first spatial stream
|
||||
...
|
||||
[31:24]: fourth spatial stream
|
||||
|
||||
In Hamilton v1 this structure had 4 more (32-bit) words
|
||||
after this field.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG3_OFFSET 0x0000001c
|
||||
#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG3_LSB 0
|
||||
#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG3_MSB 31
|
||||
#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG3_MASK 0xffffffff
|
||||
|
||||
|
||||
|
||||
#endif // RECEIVE_USER_INFO
|
||||
3125
drivers/staging/fw-api/hw/qca5332/received_response_user_15_8.h
Normal file
3125
drivers/staging/fw-api/hw/qca5332/received_response_user_15_8.h
Normal file
File diff suppressed because it is too large
Load diff
3125
drivers/staging/fw-api/hw/qca5332/received_response_user_23_16.h
Normal file
3125
drivers/staging/fw-api/hw/qca5332/received_response_user_23_16.h
Normal file
File diff suppressed because it is too large
Load diff
3125
drivers/staging/fw-api/hw/qca5332/received_response_user_31_24.h
Normal file
3125
drivers/staging/fw-api/hw/qca5332/received_response_user_31_24.h
Normal file
File diff suppressed because it is too large
Load diff
1970
drivers/staging/fw-api/hw/qca5332/received_response_user_36_32.h
Normal file
1970
drivers/staging/fw-api/hw/qca5332/received_response_user_36_32.h
Normal file
File diff suppressed because it is too large
Load diff
3125
drivers/staging/fw-api/hw/qca5332/received_response_user_7_0.h
Normal file
3125
drivers/staging/fw-api/hw/qca5332/received_response_user_7_0.h
Normal file
File diff suppressed because it is too large
Load diff
472
drivers/staging/fw-api/hw/qca5332/received_response_user_info.h
Normal file
472
drivers/staging/fw-api/hw/qca5332/received_response_user_info.h
Normal file
|
|
@ -0,0 +1,472 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _RECEIVED_RESPONSE_USER_INFO_H_
|
||||
#define _RECEIVED_RESPONSE_USER_INFO_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#define NUM_OF_DWORDS_RECEIVED_RESPONSE_USER_INFO 8
|
||||
|
||||
|
||||
struct received_response_user_info {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
uint32_t mpdu_fcs_pass_count : 12, // [11:0]
|
||||
mpdu_fcs_fail_count : 12, // [23:12]
|
||||
qosnull_frame_count : 4, // [27:24]
|
||||
reserved_0a : 3, // [30:28]
|
||||
user_info_valid : 1; // [31:31]
|
||||
uint32_t null_delimiter_count : 22, // [21:0]
|
||||
reserved_1a : 9, // [30:22]
|
||||
ht_control_valid : 1; // [31:31]
|
||||
uint32_t ht_control : 32; // [31:0]
|
||||
uint32_t qos_control_valid : 16, // [15:0]
|
||||
eosp : 16; // [31:16]
|
||||
uint32_t qos_control_15_8_tid_0 : 8, // [7:0]
|
||||
qos_control_15_8_tid_1 : 8, // [15:8]
|
||||
qos_control_15_8_tid_2 : 8, // [23:16]
|
||||
qos_control_15_8_tid_3 : 8; // [31:24]
|
||||
uint32_t qos_control_15_8_tid_4 : 8, // [7:0]
|
||||
qos_control_15_8_tid_5 : 8, // [15:8]
|
||||
qos_control_15_8_tid_6 : 8, // [23:16]
|
||||
qos_control_15_8_tid_7 : 8; // [31:24]
|
||||
uint32_t qos_control_15_8_tid_8 : 8, // [7:0]
|
||||
qos_control_15_8_tid_9 : 8, // [15:8]
|
||||
qos_control_15_8_tid_10 : 8, // [23:16]
|
||||
qos_control_15_8_tid_11 : 8; // [31:24]
|
||||
uint32_t qos_control_15_8_tid_12 : 8, // [7:0]
|
||||
qos_control_15_8_tid_13 : 8, // [15:8]
|
||||
qos_control_15_8_tid_14 : 8, // [23:16]
|
||||
qos_control_15_8_tid_15 : 8; // [31:24]
|
||||
#else
|
||||
uint32_t user_info_valid : 1, // [31:31]
|
||||
reserved_0a : 3, // [30:28]
|
||||
qosnull_frame_count : 4, // [27:24]
|
||||
mpdu_fcs_fail_count : 12, // [23:12]
|
||||
mpdu_fcs_pass_count : 12; // [11:0]
|
||||
uint32_t ht_control_valid : 1, // [31:31]
|
||||
reserved_1a : 9, // [30:22]
|
||||
null_delimiter_count : 22; // [21:0]
|
||||
uint32_t ht_control : 32; // [31:0]
|
||||
uint32_t eosp : 16, // [31:16]
|
||||
qos_control_valid : 16; // [15:0]
|
||||
uint32_t qos_control_15_8_tid_3 : 8, // [31:24]
|
||||
qos_control_15_8_tid_2 : 8, // [23:16]
|
||||
qos_control_15_8_tid_1 : 8, // [15:8]
|
||||
qos_control_15_8_tid_0 : 8; // [7:0]
|
||||
uint32_t qos_control_15_8_tid_7 : 8, // [31:24]
|
||||
qos_control_15_8_tid_6 : 8, // [23:16]
|
||||
qos_control_15_8_tid_5 : 8, // [15:8]
|
||||
qos_control_15_8_tid_4 : 8; // [7:0]
|
||||
uint32_t qos_control_15_8_tid_11 : 8, // [31:24]
|
||||
qos_control_15_8_tid_10 : 8, // [23:16]
|
||||
qos_control_15_8_tid_9 : 8, // [15:8]
|
||||
qos_control_15_8_tid_8 : 8; // [7:0]
|
||||
uint32_t qos_control_15_8_tid_15 : 8, // [31:24]
|
||||
qos_control_15_8_tid_14 : 8, // [23:16]
|
||||
qos_control_15_8_tid_13 : 8, // [15:8]
|
||||
qos_control_15_8_tid_12 : 8; // [7:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description MPDU_FCS_PASS_COUNT
|
||||
|
||||
The number of MPDUs received with correct FCS.
|
||||
Hamilton v1 used bits [15:8] to report 'mpdu_fcs_fail_count.'
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_RESPONSE_USER_INFO_MPDU_FCS_PASS_COUNT_OFFSET 0x00000000
|
||||
#define RECEIVED_RESPONSE_USER_INFO_MPDU_FCS_PASS_COUNT_LSB 0
|
||||
#define RECEIVED_RESPONSE_USER_INFO_MPDU_FCS_PASS_COUNT_MSB 11
|
||||
#define RECEIVED_RESPONSE_USER_INFO_MPDU_FCS_PASS_COUNT_MASK 0x00000fff
|
||||
|
||||
|
||||
/* Description MPDU_FCS_FAIL_COUNT
|
||||
|
||||
The number of MPDUs received with wrong FCS.
|
||||
Hamilton v1 used bits [15:8] for this and bits [23:16] to
|
||||
report the number of data frames with correct FCS.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_RESPONSE_USER_INFO_MPDU_FCS_FAIL_COUNT_OFFSET 0x00000000
|
||||
#define RECEIVED_RESPONSE_USER_INFO_MPDU_FCS_FAIL_COUNT_LSB 12
|
||||
#define RECEIVED_RESPONSE_USER_INFO_MPDU_FCS_FAIL_COUNT_MSB 23
|
||||
#define RECEIVED_RESPONSE_USER_INFO_MPDU_FCS_FAIL_COUNT_MASK 0x00fff000
|
||||
|
||||
|
||||
/* Description QOSNULL_FRAME_COUNT
|
||||
|
||||
The number of QoSNULL frames received with correct FCS.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOSNULL_FRAME_COUNT_OFFSET 0x00000000
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOSNULL_FRAME_COUNT_LSB 24
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOSNULL_FRAME_COUNT_MSB 27
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOSNULL_FRAME_COUNT_MASK 0x0f000000
|
||||
|
||||
|
||||
/* Description RESERVED_0A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define RECEIVED_RESPONSE_USER_INFO_RESERVED_0A_OFFSET 0x00000000
|
||||
#define RECEIVED_RESPONSE_USER_INFO_RESERVED_0A_LSB 28
|
||||
#define RECEIVED_RESPONSE_USER_INFO_RESERVED_0A_MSB 30
|
||||
#define RECEIVED_RESPONSE_USER_INFO_RESERVED_0A_MASK 0x70000000
|
||||
|
||||
|
||||
/* Description USER_INFO_VALID
|
||||
|
||||
When set, this RECEIVED_RESPONSE_USER_INFO STRUCT contains
|
||||
valid information.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_RESPONSE_USER_INFO_USER_INFO_VALID_OFFSET 0x00000000
|
||||
#define RECEIVED_RESPONSE_USER_INFO_USER_INFO_VALID_LSB 31
|
||||
#define RECEIVED_RESPONSE_USER_INFO_USER_INFO_VALID_MSB 31
|
||||
#define RECEIVED_RESPONSE_USER_INFO_USER_INFO_VALID_MASK 0x80000000
|
||||
|
||||
|
||||
/* Description NULL_DELIMITER_COUNT
|
||||
|
||||
The number of valid, properly formed NULL delimiters received
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_RESPONSE_USER_INFO_NULL_DELIMITER_COUNT_OFFSET 0x00000004
|
||||
#define RECEIVED_RESPONSE_USER_INFO_NULL_DELIMITER_COUNT_LSB 0
|
||||
#define RECEIVED_RESPONSE_USER_INFO_NULL_DELIMITER_COUNT_MSB 21
|
||||
#define RECEIVED_RESPONSE_USER_INFO_NULL_DELIMITER_COUNT_MASK 0x003fffff
|
||||
|
||||
|
||||
/* Description RESERVED_1A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define RECEIVED_RESPONSE_USER_INFO_RESERVED_1A_OFFSET 0x00000004
|
||||
#define RECEIVED_RESPONSE_USER_INFO_RESERVED_1A_LSB 22
|
||||
#define RECEIVED_RESPONSE_USER_INFO_RESERVED_1A_MSB 30
|
||||
#define RECEIVED_RESPONSE_USER_INFO_RESERVED_1A_MASK 0x7fc00000
|
||||
|
||||
|
||||
/* Description HT_CONTROL_VALID
|
||||
|
||||
When set, indicates that the received MPDUs included an
|
||||
HT Control field
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_RESPONSE_USER_INFO_HT_CONTROL_VALID_OFFSET 0x00000004
|
||||
#define RECEIVED_RESPONSE_USER_INFO_HT_CONTROL_VALID_LSB 31
|
||||
#define RECEIVED_RESPONSE_USER_INFO_HT_CONTROL_VALID_MSB 31
|
||||
#define RECEIVED_RESPONSE_USER_INFO_HT_CONTROL_VALID_MASK 0x80000000
|
||||
|
||||
|
||||
/* Description HT_CONTROL
|
||||
|
||||
Field only valid if HT_Control_valid is set
|
||||
Received HT Control value
|
||||
|
||||
Hamilton v1 did not include this (and any subsequent) word.
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_RESPONSE_USER_INFO_HT_CONTROL_OFFSET 0x00000008
|
||||
#define RECEIVED_RESPONSE_USER_INFO_HT_CONTROL_LSB 0
|
||||
#define RECEIVED_RESPONSE_USER_INFO_HT_CONTROL_MSB 31
|
||||
#define RECEIVED_RESPONSE_USER_INFO_HT_CONTROL_MASK 0xffffffff
|
||||
|
||||
|
||||
/* Description QOS_CONTROL_VALID
|
||||
|
||||
Each bit when set, indicates that the received MPDUs included
|
||||
that TID and the corresponding 'EOSP' bit and 'QoS_Control_15_8_*'
|
||||
field are valid.
|
||||
Bit 0: TID 0
|
||||
...
|
||||
Bit 15: TID 15
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_VALID_OFFSET 0x0000000c
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_VALID_LSB 0
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_VALID_MSB 15
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_VALID_MASK 0x0000ffff
|
||||
|
||||
|
||||
/* Description EOSP
|
||||
|
||||
Each bit only valid if the corresponding bit of QoS_Control_valid
|
||||
is set.
|
||||
|
||||
Received EOSP bit for each TID
|
||||
Bit 0: TID 0
|
||||
...
|
||||
Bit 15: TID 15
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_RESPONSE_USER_INFO_EOSP_OFFSET 0x0000000c
|
||||
#define RECEIVED_RESPONSE_USER_INFO_EOSP_LSB 16
|
||||
#define RECEIVED_RESPONSE_USER_INFO_EOSP_MSB 31
|
||||
#define RECEIVED_RESPONSE_USER_INFO_EOSP_MASK 0xffff0000
|
||||
|
||||
|
||||
/* Description QOS_CONTROL_15_8_TID_0
|
||||
|
||||
Field only valid if QoS_Control_valid[0] is set.
|
||||
|
||||
Received bits [15:8] of QoS Control for TID 0
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_0_OFFSET 0x00000010
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_0_LSB 0
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_0_MSB 7
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_0_MASK 0x000000ff
|
||||
|
||||
|
||||
/* Description QOS_CONTROL_15_8_TID_1
|
||||
|
||||
Field only valid if QoS_Control_valid[1] is set.
|
||||
|
||||
Received bits [15:8] of QoS Control for TID 1
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_1_OFFSET 0x00000010
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_1_LSB 8
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_1_MSB 15
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_1_MASK 0x0000ff00
|
||||
|
||||
|
||||
/* Description QOS_CONTROL_15_8_TID_2
|
||||
|
||||
Field only valid if QoS_Control_valid[2] is set.
|
||||
|
||||
Received bits [15:8] of QoS Control for TID 2
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_2_OFFSET 0x00000010
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_2_LSB 16
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_2_MSB 23
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_2_MASK 0x00ff0000
|
||||
|
||||
|
||||
/* Description QOS_CONTROL_15_8_TID_3
|
||||
|
||||
Field only valid if QoS_Control_valid[3] is set.
|
||||
|
||||
Received bits [15:8] of QoS Control for TID 3
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_3_OFFSET 0x00000010
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_3_LSB 24
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_3_MSB 31
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_3_MASK 0xff000000
|
||||
|
||||
|
||||
/* Description QOS_CONTROL_15_8_TID_4
|
||||
|
||||
Field only valid if QoS_Control_valid[4] is set.
|
||||
|
||||
Received bits [15:8] of QoS Control for TID 4
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_4_OFFSET 0x00000014
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_4_LSB 0
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_4_MSB 7
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_4_MASK 0x000000ff
|
||||
|
||||
|
||||
/* Description QOS_CONTROL_15_8_TID_5
|
||||
|
||||
Field only valid if QoS_Control_valid[5] is set.
|
||||
|
||||
Received bits [15:8] of QoS Control for TID 5
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_5_OFFSET 0x00000014
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_5_LSB 8
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_5_MSB 15
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_5_MASK 0x0000ff00
|
||||
|
||||
|
||||
/* Description QOS_CONTROL_15_8_TID_6
|
||||
|
||||
Field only valid if QoS_Control_valid[6] is set.
|
||||
|
||||
Received bits [15:8] of QoS Control for TID 6
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_6_OFFSET 0x00000014
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_6_LSB 16
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_6_MSB 23
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_6_MASK 0x00ff0000
|
||||
|
||||
|
||||
/* Description QOS_CONTROL_15_8_TID_7
|
||||
|
||||
Field only valid if QoS_Control_valid[7] is set.
|
||||
|
||||
Received bits [15:8] of QoS Control for TID 7
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_7_OFFSET 0x00000014
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_7_LSB 24
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_7_MSB 31
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_7_MASK 0xff000000
|
||||
|
||||
|
||||
/* Description QOS_CONTROL_15_8_TID_8
|
||||
|
||||
Field only valid if QoS_Control_valid[8] is set.
|
||||
|
||||
Received bits [15:8] of QoS Control for TID 8
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_8_OFFSET 0x00000018
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_8_LSB 0
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_8_MSB 7
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_8_MASK 0x000000ff
|
||||
|
||||
|
||||
/* Description QOS_CONTROL_15_8_TID_9
|
||||
|
||||
Field only valid if QoS_Control_valid[9] is set.
|
||||
|
||||
Received bits [15:8] of QoS Control for TID 9
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_9_OFFSET 0x00000018
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_9_LSB 8
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_9_MSB 15
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_9_MASK 0x0000ff00
|
||||
|
||||
|
||||
/* Description QOS_CONTROL_15_8_TID_10
|
||||
|
||||
Field only valid if QoS_Control_valid[10] is set.
|
||||
|
||||
Received bits [15:8] of QoS Control for TID 10
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_10_OFFSET 0x00000018
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_10_LSB 16
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_10_MSB 23
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_10_MASK 0x00ff0000
|
||||
|
||||
|
||||
/* Description QOS_CONTROL_15_8_TID_11
|
||||
|
||||
Field only valid if QoS_Control_valid[11] is set.
|
||||
|
||||
Received bits [15:8] of QoS Control for TID 11
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_11_OFFSET 0x00000018
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_11_LSB 24
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_11_MSB 31
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_11_MASK 0xff000000
|
||||
|
||||
|
||||
/* Description QOS_CONTROL_15_8_TID_12
|
||||
|
||||
Field only valid if QoS_Control_valid[12] is set.
|
||||
|
||||
Received bits [15:8] of QoS Control for TID 12
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_12_OFFSET 0x0000001c
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_12_LSB 0
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_12_MSB 7
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_12_MASK 0x000000ff
|
||||
|
||||
|
||||
/* Description QOS_CONTROL_15_8_TID_13
|
||||
|
||||
Field only valid if QoS_Control_valid[13] is set.
|
||||
|
||||
Received bits [15:8] of QoS Control for TID 13
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_13_OFFSET 0x0000001c
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_13_LSB 8
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_13_MSB 15
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_13_MASK 0x0000ff00
|
||||
|
||||
|
||||
/* Description QOS_CONTROL_15_8_TID_14
|
||||
|
||||
Field only valid if QoS_Control_valid[14] is set.
|
||||
|
||||
Received bits [15:8] of QoS Control for TID 14
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_14_OFFSET 0x0000001c
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_14_LSB 16
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_14_MSB 23
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_14_MASK 0x00ff0000
|
||||
|
||||
|
||||
/* Description QOS_CONTROL_15_8_TID_15
|
||||
|
||||
Field only valid if QoS_Control_valid[15] is set.
|
||||
|
||||
Received bits [15:8] of QoS Control for TID 15
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_15_OFFSET 0x0000001c
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_15_LSB 24
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_15_MSB 31
|
||||
#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_15_MASK 0xff000000
|
||||
|
||||
|
||||
|
||||
#endif // RECEIVED_RESPONSE_USER_INFO
|
||||
344
drivers/staging/fw-api/hw/qca5332/received_trigger_info.h
Normal file
344
drivers/staging/fw-api/hw/qca5332/received_trigger_info.h
Normal file
|
|
@ -0,0 +1,344 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _RECEIVED_TRIGGER_INFO_H_
|
||||
#define _RECEIVED_TRIGGER_INFO_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#include "received_trigger_info_details.h"
|
||||
#define NUM_OF_DWORDS_RECEIVED_TRIGGER_INFO 6
|
||||
|
||||
#define NUM_OF_QWORDS_RECEIVED_TRIGGER_INFO 3
|
||||
|
||||
|
||||
struct received_trigger_info {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
struct received_trigger_info_details received_trigger_details;
|
||||
uint32_t tlv64_padding : 32; // [31:0]
|
||||
#else
|
||||
struct received_trigger_info_details received_trigger_details;
|
||||
uint32_t tlv64_padding : 32; // [31:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description RECEIVED_TRIGGER_DETAILS
|
||||
|
||||
Info related to the type of trigger (that potentially requires
|
||||
SIFS response) that was received
|
||||
*/
|
||||
|
||||
|
||||
/* Description TRIGGER_TYPE
|
||||
|
||||
This field indicates for what type of trigger has been received
|
||||
|
||||
|
||||
<enum 0 SCH_Qboost_trigger>
|
||||
<enum 1 SCH_PSPOLL_trigger>
|
||||
<enum 2 SCH_UAPSD_trigger>
|
||||
<enum 3 SCH_11ax_trigger>
|
||||
Field "AX_trigger_type" indicates the ID of the received
|
||||
trigger
|
||||
<enum 7 SCH_EHT_trigger>
|
||||
Field "AX_trigger_type" indicates the ID of the received
|
||||
trigger
|
||||
<enum 4 SCH_11ax_wildcard_trigger>
|
||||
Field "AX_trigger_type" indicates the ID of the received
|
||||
trigger
|
||||
<enum 5 SCH_11ax_unassoc_wildcard_trigger>
|
||||
Field "AX_trigger_type" indicates the ID of the received
|
||||
trigger
|
||||
<enum 6 SCH_11az_ranging_trigger> Field "AX_trigger_type"
|
||||
indicates the subtype of the received trigger
|
||||
|
||||
<legal 0-7>
|
||||
*/
|
||||
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_TRIGGER_TYPE_OFFSET 0x0000000000000000
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_TRIGGER_TYPE_LSB 0
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_TRIGGER_TYPE_MSB 3
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_TRIGGER_TYPE_MASK 0x000000000000000f
|
||||
|
||||
|
||||
/* Description AX_TRIGGER_SOURCE
|
||||
|
||||
Field Only valid when Trigger_type is an 11ax related trigger
|
||||
|
||||
|
||||
<enum 0 11ax_trigger_frame>
|
||||
<enum 1 he_control_based_trigger>
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_AX_TRIGGER_SOURCE_OFFSET 0x0000000000000000
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_AX_TRIGGER_SOURCE_LSB 4
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_AX_TRIGGER_SOURCE_MSB 4
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_AX_TRIGGER_SOURCE_MASK 0x0000000000000010
|
||||
|
||||
|
||||
/* Description AX_TRIGGER_TYPE
|
||||
|
||||
Field Only valid when Trigger_type is an 11ax related trigger
|
||||
|
||||
|
||||
The 11AX trigger type/ trigger number:
|
||||
It identifies which trigger was received.
|
||||
<enum 0 ax_trigger_basic>
|
||||
<enum 1 ax_trigger_brpoll>
|
||||
<enum 2 ax_trigger_mu_bar>
|
||||
<enum 3 ax_trigger_mu_rts>
|
||||
<enum 4 ax_trigger_buffer_size>
|
||||
<enum 5 ax_trigger_gcr_mu_bar>
|
||||
<enum 6 ax_trigger_BQRP>
|
||||
<enum 7 ax_trigger_NDP_fb_report_poll>
|
||||
<enum 8 ax_tb_ranging_trigger> Indicates the reception of
|
||||
Ranging Trigger Frame of subvariant indicated by Ranging_Trigger_Subtype
|
||||
|
||||
<enum 9 ax_trigger_reserved_9>
|
||||
<enum 10 ax_trigger_reserved_10>
|
||||
<enum 11 ax_trigger_reserved_11>
|
||||
<enum 12 ax_trigger_reserved_12>
|
||||
<enum 13 ax_trigger_reserved_13>
|
||||
<enum 14 ax_trigger_reserved_14>
|
||||
<enum 15 ax_trigger_reserved_15>
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_AX_TRIGGER_TYPE_OFFSET 0x0000000000000000
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_AX_TRIGGER_TYPE_LSB 5
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_AX_TRIGGER_TYPE_MSB 8
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_AX_TRIGGER_TYPE_MASK 0x00000000000001e0
|
||||
|
||||
|
||||
/* Description TRIGGER_SOURCE_STA_FULL_AID
|
||||
|
||||
The sta_full_aid of the sta/ap that generated the trigger.
|
||||
|
||||
Comes from the address_search_entry
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_TRIGGER_SOURCE_STA_FULL_AID_OFFSET 0x0000000000000000
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_TRIGGER_SOURCE_STA_FULL_AID_LSB 9
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_TRIGGER_SOURCE_STA_FULL_AID_MSB 21
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_TRIGGER_SOURCE_STA_FULL_AID_MASK 0x00000000003ffe00
|
||||
|
||||
|
||||
/* Description FRAME_CONTROL_VALID
|
||||
|
||||
When set, the 'frame_control' field contains valid info
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_FRAME_CONTROL_VALID_OFFSET 0x0000000000000000
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_FRAME_CONTROL_VALID_LSB 22
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_FRAME_CONTROL_VALID_MSB 22
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_FRAME_CONTROL_VALID_MASK 0x0000000000400000
|
||||
|
||||
|
||||
/* Description QOS_CONTROL_VALID
|
||||
|
||||
When set, the 'QoS_control' field contains valid info
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_QOS_CONTROL_VALID_OFFSET 0x0000000000000000
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_QOS_CONTROL_VALID_LSB 23
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_QOS_CONTROL_VALID_MSB 23
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_QOS_CONTROL_VALID_MASK 0x0000000000800000
|
||||
|
||||
|
||||
/* Description HE_CONTROL_INFO_VALID
|
||||
|
||||
When set, the 'HE control' field contains valid info
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_HE_CONTROL_INFO_VALID_OFFSET 0x0000000000000000
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_HE_CONTROL_INFO_VALID_LSB 24
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_HE_CONTROL_INFO_VALID_MSB 24
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_HE_CONTROL_INFO_VALID_MASK 0x0000000001000000
|
||||
|
||||
|
||||
/* Description RANGING_TRIGGER_SUBTYPE
|
||||
|
||||
Field only valid if AX_Trigger_type = ax_tb_ranging_trigger
|
||||
|
||||
|
||||
Indicates the Trigger subtype for the current ranging TF
|
||||
|
||||
|
||||
<enum 0 TF_Poll>
|
||||
<enum 1 TF_Sound>
|
||||
<enum 2 TF_Secure_Sound>
|
||||
<enum 3 TF_Report>
|
||||
|
||||
<legal 0-3>
|
||||
*/
|
||||
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RANGING_TRIGGER_SUBTYPE_OFFSET 0x0000000000000000
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RANGING_TRIGGER_SUBTYPE_LSB 25
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RANGING_TRIGGER_SUBTYPE_MSB 28
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RANGING_TRIGGER_SUBTYPE_MASK 0x000000001e000000
|
||||
|
||||
|
||||
/* Description RESERVED_0B
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_0B_OFFSET 0x0000000000000000
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_0B_LSB 29
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_0B_MSB 31
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_0B_MASK 0x00000000e0000000
|
||||
|
||||
|
||||
/* Description PHY_PPDU_ID
|
||||
|
||||
A ppdu counter value that PHY increments for every PPDU
|
||||
received. The counter value wraps around
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_PHY_PPDU_ID_OFFSET 0x0000000000000000
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_PHY_PPDU_ID_LSB 32
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_PHY_PPDU_ID_MSB 47
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_PHY_PPDU_ID_MASK 0x0000ffff00000000
|
||||
|
||||
|
||||
/* Description LSIG_RESPONSE_LENGTH
|
||||
|
||||
Field only valid in case of OFDMA trigger
|
||||
|
||||
Indicates the value of the L-SIG Length field of the HE
|
||||
trigger-based PPDU that is the response to the Trigger frame
|
||||
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_LSIG_RESPONSE_LENGTH_OFFSET 0x0000000000000000
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_LSIG_RESPONSE_LENGTH_LSB 48
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_LSIG_RESPONSE_LENGTH_MSB 59
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_LSIG_RESPONSE_LENGTH_MASK 0x0fff000000000000
|
||||
|
||||
|
||||
/* Description RESERVED_1A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_1A_OFFSET 0x0000000000000000
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_1A_LSB 60
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_1A_MSB 63
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_1A_MASK 0xf000000000000000
|
||||
|
||||
|
||||
/* Description FRAME_CONTROL
|
||||
|
||||
frame control field of the received frame
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_FRAME_CONTROL_OFFSET 0x0000000000000008
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_FRAME_CONTROL_LSB 0
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_FRAME_CONTROL_MSB 15
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_FRAME_CONTROL_MASK 0x000000000000ffff
|
||||
|
||||
|
||||
/* Description QOS_CONTROL
|
||||
|
||||
frame control field of the received frame (if present)
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_QOS_CONTROL_OFFSET 0x0000000000000008
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_QOS_CONTROL_LSB 16
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_QOS_CONTROL_MSB 31
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_QOS_CONTROL_MASK 0x00000000ffff0000
|
||||
|
||||
|
||||
/* Description SW_PEER_ID
|
||||
|
||||
A unique identifier for this STA. Extracted from the Address_Search_Entry
|
||||
|
||||
|
||||
Used by the SCH to find linkage between this trigger and
|
||||
potentially pre-programmed responses.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_SW_PEER_ID_OFFSET 0x0000000000000008
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_SW_PEER_ID_LSB 32
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_SW_PEER_ID_MSB 47
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_SW_PEER_ID_MASK 0x0000ffff00000000
|
||||
|
||||
|
||||
/* Description RESERVED_3A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_3A_OFFSET 0x0000000000000008
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_3A_LSB 48
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_3A_MSB 63
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_3A_MASK 0xffff000000000000
|
||||
|
||||
|
||||
/* Description HE_CONTROL
|
||||
|
||||
Field only valid when HE_control_info_valid is set
|
||||
|
||||
This is the 'RAW HE_CONTROL field' that was present in the
|
||||
frame.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_HE_CONTROL_OFFSET 0x0000000000000010
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_HE_CONTROL_LSB 0
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_HE_CONTROL_MSB 31
|
||||
#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_HE_CONTROL_MASK 0x00000000ffffffff
|
||||
|
||||
|
||||
/* Description TLV64_PADDING
|
||||
|
||||
Automatic DWORD padding inserted while converting TLV32
|
||||
to TLV64 for 64 bit ARCH
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define RECEIVED_TRIGGER_INFO_TLV64_PADDING_OFFSET 0x0000000000000010
|
||||
#define RECEIVED_TRIGGER_INFO_TLV64_PADDING_LSB 32
|
||||
#define RECEIVED_TRIGGER_INFO_TLV64_PADDING_MSB 63
|
||||
#define RECEIVED_TRIGGER_INFO_TLV64_PADDING_MASK 0xffffffff00000000
|
||||
|
||||
|
||||
|
||||
#endif // RECEIVED_TRIGGER_INFO
|
||||
|
|
@ -0,0 +1,351 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _RECEIVED_TRIGGER_INFO_DETAILS_H_
|
||||
#define _RECEIVED_TRIGGER_INFO_DETAILS_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#define NUM_OF_DWORDS_RECEIVED_TRIGGER_INFO_DETAILS 5
|
||||
|
||||
|
||||
struct received_trigger_info_details {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
uint32_t trigger_type : 4, // [3:0]
|
||||
ax_trigger_source : 1, // [4:4]
|
||||
ax_trigger_type : 4, // [8:5]
|
||||
trigger_source_sta_full_aid : 13, // [21:9]
|
||||
frame_control_valid : 1, // [22:22]
|
||||
qos_control_valid : 1, // [23:23]
|
||||
he_control_info_valid : 1, // [24:24]
|
||||
ranging_trigger_subtype : 4, // [28:25]
|
||||
reserved_0b : 3; // [31:29]
|
||||
uint32_t phy_ppdu_id : 16, // [15:0]
|
||||
lsig_response_length : 12, // [27:16]
|
||||
reserved_1a : 4; // [31:28]
|
||||
uint32_t frame_control : 16, // [15:0]
|
||||
qos_control : 16; // [31:16]
|
||||
uint32_t sw_peer_id : 16, // [15:0]
|
||||
reserved_3a : 16; // [31:16]
|
||||
uint32_t he_control : 32; // [31:0]
|
||||
#else
|
||||
uint32_t reserved_0b : 3, // [31:29]
|
||||
ranging_trigger_subtype : 4, // [28:25]
|
||||
he_control_info_valid : 1, // [24:24]
|
||||
qos_control_valid : 1, // [23:23]
|
||||
frame_control_valid : 1, // [22:22]
|
||||
trigger_source_sta_full_aid : 13, // [21:9]
|
||||
ax_trigger_type : 4, // [8:5]
|
||||
ax_trigger_source : 1, // [4:4]
|
||||
trigger_type : 4; // [3:0]
|
||||
uint32_t reserved_1a : 4, // [31:28]
|
||||
lsig_response_length : 12, // [27:16]
|
||||
phy_ppdu_id : 16; // [15:0]
|
||||
uint32_t qos_control : 16, // [31:16]
|
||||
frame_control : 16; // [15:0]
|
||||
uint32_t reserved_3a : 16, // [31:16]
|
||||
sw_peer_id : 16; // [15:0]
|
||||
uint32_t he_control : 32; // [31:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description TRIGGER_TYPE
|
||||
|
||||
This field indicates for what type of trigger has been received
|
||||
|
||||
|
||||
<enum 0 SCH_Qboost_trigger>
|
||||
<enum 1 SCH_PSPOLL_trigger>
|
||||
<enum 2 SCH_UAPSD_trigger>
|
||||
<enum 3 SCH_11ax_trigger>
|
||||
Field "AX_trigger_type" indicates the ID of the received
|
||||
trigger
|
||||
<enum 7 SCH_EHT_trigger>
|
||||
Field "AX_trigger_type" indicates the ID of the received
|
||||
trigger
|
||||
<enum 4 SCH_11ax_wildcard_trigger>
|
||||
Field "AX_trigger_type" indicates the ID of the received
|
||||
trigger
|
||||
<enum 5 SCH_11ax_unassoc_wildcard_trigger>
|
||||
Field "AX_trigger_type" indicates the ID of the received
|
||||
trigger
|
||||
<enum 6 SCH_11az_ranging_trigger> Field "AX_trigger_type"
|
||||
indicates the subtype of the received trigger
|
||||
|
||||
<legal 0-7>
|
||||
*/
|
||||
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_TRIGGER_TYPE_OFFSET 0x00000000
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_TRIGGER_TYPE_LSB 0
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_TRIGGER_TYPE_MSB 3
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_TRIGGER_TYPE_MASK 0x0000000f
|
||||
|
||||
|
||||
/* Description AX_TRIGGER_SOURCE
|
||||
|
||||
Field Only valid when Trigger_type is an 11ax related trigger
|
||||
|
||||
|
||||
<enum 0 11ax_trigger_frame>
|
||||
<enum 1 he_control_based_trigger>
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_AX_TRIGGER_SOURCE_OFFSET 0x00000000
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_AX_TRIGGER_SOURCE_LSB 4
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_AX_TRIGGER_SOURCE_MSB 4
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_AX_TRIGGER_SOURCE_MASK 0x00000010
|
||||
|
||||
|
||||
/* Description AX_TRIGGER_TYPE
|
||||
|
||||
Field Only valid when Trigger_type is an 11ax related trigger
|
||||
|
||||
|
||||
The 11AX trigger type/ trigger number:
|
||||
It identifies which trigger was received.
|
||||
<enum 0 ax_trigger_basic>
|
||||
<enum 1 ax_trigger_brpoll>
|
||||
<enum 2 ax_trigger_mu_bar>
|
||||
<enum 3 ax_trigger_mu_rts>
|
||||
<enum 4 ax_trigger_buffer_size>
|
||||
<enum 5 ax_trigger_gcr_mu_bar>
|
||||
<enum 6 ax_trigger_BQRP>
|
||||
<enum 7 ax_trigger_NDP_fb_report_poll>
|
||||
<enum 8 ax_tb_ranging_trigger> Indicates the reception of
|
||||
Ranging Trigger Frame of subvariant indicated by Ranging_Trigger_Subtype
|
||||
|
||||
<enum 9 ax_trigger_reserved_9>
|
||||
<enum 10 ax_trigger_reserved_10>
|
||||
<enum 11 ax_trigger_reserved_11>
|
||||
<enum 12 ax_trigger_reserved_12>
|
||||
<enum 13 ax_trigger_reserved_13>
|
||||
<enum 14 ax_trigger_reserved_14>
|
||||
<enum 15 ax_trigger_reserved_15>
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_AX_TRIGGER_TYPE_OFFSET 0x00000000
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_AX_TRIGGER_TYPE_LSB 5
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_AX_TRIGGER_TYPE_MSB 8
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_AX_TRIGGER_TYPE_MASK 0x000001e0
|
||||
|
||||
|
||||
/* Description TRIGGER_SOURCE_STA_FULL_AID
|
||||
|
||||
The sta_full_aid of the sta/ap that generated the trigger.
|
||||
|
||||
Comes from the address_search_entry
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_TRIGGER_SOURCE_STA_FULL_AID_OFFSET 0x00000000
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_TRIGGER_SOURCE_STA_FULL_AID_LSB 9
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_TRIGGER_SOURCE_STA_FULL_AID_MSB 21
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_TRIGGER_SOURCE_STA_FULL_AID_MASK 0x003ffe00
|
||||
|
||||
|
||||
/* Description FRAME_CONTROL_VALID
|
||||
|
||||
When set, the 'frame_control' field contains valid info
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_FRAME_CONTROL_VALID_OFFSET 0x00000000
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_FRAME_CONTROL_VALID_LSB 22
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_FRAME_CONTROL_VALID_MSB 22
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_FRAME_CONTROL_VALID_MASK 0x00400000
|
||||
|
||||
|
||||
/* Description QOS_CONTROL_VALID
|
||||
|
||||
When set, the 'QoS_control' field contains valid info
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_QOS_CONTROL_VALID_OFFSET 0x00000000
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_QOS_CONTROL_VALID_LSB 23
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_QOS_CONTROL_VALID_MSB 23
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_QOS_CONTROL_VALID_MASK 0x00800000
|
||||
|
||||
|
||||
/* Description HE_CONTROL_INFO_VALID
|
||||
|
||||
When set, the 'HE control' field contains valid info
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_HE_CONTROL_INFO_VALID_OFFSET 0x00000000
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_HE_CONTROL_INFO_VALID_LSB 24
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_HE_CONTROL_INFO_VALID_MSB 24
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_HE_CONTROL_INFO_VALID_MASK 0x01000000
|
||||
|
||||
|
||||
/* Description RANGING_TRIGGER_SUBTYPE
|
||||
|
||||
Field only valid if AX_Trigger_type = ax_tb_ranging_trigger
|
||||
|
||||
|
||||
Indicates the Trigger subtype for the current ranging TF
|
||||
|
||||
|
||||
<enum 0 TF_Poll>
|
||||
<enum 1 TF_Sound>
|
||||
<enum 2 TF_Secure_Sound>
|
||||
<enum 3 TF_Report>
|
||||
|
||||
<legal 0-3>
|
||||
*/
|
||||
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_RANGING_TRIGGER_SUBTYPE_OFFSET 0x00000000
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_RANGING_TRIGGER_SUBTYPE_LSB 25
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_RANGING_TRIGGER_SUBTYPE_MSB 28
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_RANGING_TRIGGER_SUBTYPE_MASK 0x1e000000
|
||||
|
||||
|
||||
/* Description RESERVED_0B
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_0B_OFFSET 0x00000000
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_0B_LSB 29
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_0B_MSB 31
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_0B_MASK 0xe0000000
|
||||
|
||||
|
||||
/* Description PHY_PPDU_ID
|
||||
|
||||
A ppdu counter value that PHY increments for every PPDU
|
||||
received. The counter value wraps around
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_PHY_PPDU_ID_OFFSET 0x00000004
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_PHY_PPDU_ID_LSB 0
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_PHY_PPDU_ID_MSB 15
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_PHY_PPDU_ID_MASK 0x0000ffff
|
||||
|
||||
|
||||
/* Description LSIG_RESPONSE_LENGTH
|
||||
|
||||
Field only valid in case of OFDMA trigger
|
||||
|
||||
Indicates the value of the L-SIG Length field of the HE
|
||||
trigger-based PPDU that is the response to the Trigger frame
|
||||
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_LSIG_RESPONSE_LENGTH_OFFSET 0x00000004
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_LSIG_RESPONSE_LENGTH_LSB 16
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_LSIG_RESPONSE_LENGTH_MSB 27
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_LSIG_RESPONSE_LENGTH_MASK 0x0fff0000
|
||||
|
||||
|
||||
/* Description RESERVED_1A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_1A_OFFSET 0x00000004
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_1A_LSB 28
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_1A_MSB 31
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_1A_MASK 0xf0000000
|
||||
|
||||
|
||||
/* Description FRAME_CONTROL
|
||||
|
||||
frame control field of the received frame
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_FRAME_CONTROL_OFFSET 0x00000008
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_FRAME_CONTROL_LSB 0
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_FRAME_CONTROL_MSB 15
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_FRAME_CONTROL_MASK 0x0000ffff
|
||||
|
||||
|
||||
/* Description QOS_CONTROL
|
||||
|
||||
frame control field of the received frame (if present)
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_QOS_CONTROL_OFFSET 0x00000008
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_QOS_CONTROL_LSB 16
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_QOS_CONTROL_MSB 31
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_QOS_CONTROL_MASK 0xffff0000
|
||||
|
||||
|
||||
/* Description SW_PEER_ID
|
||||
|
||||
A unique identifier for this STA. Extracted from the Address_Search_Entry
|
||||
|
||||
|
||||
Used by the SCH to find linkage between this trigger and
|
||||
potentially pre-programmed responses.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_SW_PEER_ID_OFFSET 0x0000000c
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_SW_PEER_ID_LSB 0
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_SW_PEER_ID_MSB 15
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_SW_PEER_ID_MASK 0x0000ffff
|
||||
|
||||
|
||||
/* Description RESERVED_3A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_3A_OFFSET 0x0000000c
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_3A_LSB 16
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_3A_MSB 31
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_3A_MASK 0xffff0000
|
||||
|
||||
|
||||
/* Description HE_CONTROL
|
||||
|
||||
Field only valid when HE_control_info_valid is set
|
||||
|
||||
This is the 'RAW HE_CONTROL field' that was present in the
|
||||
frame.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_HE_CONTROL_OFFSET 0x00000010
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_HE_CONTROL_LSB 0
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_HE_CONTROL_MSB 31
|
||||
#define RECEIVED_TRIGGER_INFO_DETAILS_HE_CONTROL_MASK 0xffffffff
|
||||
|
||||
|
||||
|
||||
#endif // RECEIVED_TRIGGER_INFO_DETAILS
|
||||
|
|
@ -0,0 +1,572 @@
|
|||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_H_
|
||||
#define _REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#include "uniform_reo_status_header.h"
|
||||
#define NUM_OF_DWORDS_REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS 26
|
||||
|
||||
#define NUM_OF_QWORDS_REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS 13
|
||||
|
||||
|
||||
struct reo_descriptor_threshold_reached_status {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
struct uniform_reo_status_header status_header;
|
||||
uint32_t threshold_index : 2, // [1:0]
|
||||
reserved_2 : 30; // [31:2]
|
||||
uint32_t link_descriptor_counter0 : 24, // [23:0]
|
||||
reserved_3 : 8; // [31:24]
|
||||
uint32_t link_descriptor_counter1 : 24, // [23:0]
|
||||
reserved_4 : 8; // [31:24]
|
||||
uint32_t link_descriptor_counter2 : 24, // [23:0]
|
||||
reserved_5 : 8; // [31:24]
|
||||
uint32_t link_descriptor_counter_sum : 26, // [25:0]
|
||||
reserved_6 : 6; // [31:26]
|
||||
uint32_t reserved_7 : 32; // [31:0]
|
||||
uint32_t reserved_8 : 32; // [31:0]
|
||||
uint32_t reserved_9a : 32; // [31:0]
|
||||
uint32_t reserved_10a : 32; // [31:0]
|
||||
uint32_t reserved_11a : 32; // [31:0]
|
||||
uint32_t reserved_12a : 32; // [31:0]
|
||||
uint32_t reserved_13a : 32; // [31:0]
|
||||
uint32_t reserved_14a : 32; // [31:0]
|
||||
uint32_t reserved_15a : 32; // [31:0]
|
||||
uint32_t reserved_16a : 32; // [31:0]
|
||||
uint32_t reserved_17a : 32; // [31:0]
|
||||
uint32_t reserved_18a : 32; // [31:0]
|
||||
uint32_t reserved_19a : 32; // [31:0]
|
||||
uint32_t reserved_20a : 32; // [31:0]
|
||||
uint32_t reserved_21a : 32; // [31:0]
|
||||
uint32_t reserved_22a : 32; // [31:0]
|
||||
uint32_t reserved_23a : 32; // [31:0]
|
||||
uint32_t reserved_24a : 32; // [31:0]
|
||||
uint32_t reserved_25a : 28, // [27:0]
|
||||
looping_count : 4; // [31:28]
|
||||
#else
|
||||
struct uniform_reo_status_header status_header;
|
||||
uint32_t reserved_2 : 30, // [31:2]
|
||||
threshold_index : 2; // [1:0]
|
||||
uint32_t reserved_3 : 8, // [31:24]
|
||||
link_descriptor_counter0 : 24; // [23:0]
|
||||
uint32_t reserved_4 : 8, // [31:24]
|
||||
link_descriptor_counter1 : 24; // [23:0]
|
||||
uint32_t reserved_5 : 8, // [31:24]
|
||||
link_descriptor_counter2 : 24; // [23:0]
|
||||
uint32_t reserved_6 : 6, // [31:26]
|
||||
link_descriptor_counter_sum : 26; // [25:0]
|
||||
uint32_t reserved_7 : 32; // [31:0]
|
||||
uint32_t reserved_8 : 32; // [31:0]
|
||||
uint32_t reserved_9a : 32; // [31:0]
|
||||
uint32_t reserved_10a : 32; // [31:0]
|
||||
uint32_t reserved_11a : 32; // [31:0]
|
||||
uint32_t reserved_12a : 32; // [31:0]
|
||||
uint32_t reserved_13a : 32; // [31:0]
|
||||
uint32_t reserved_14a : 32; // [31:0]
|
||||
uint32_t reserved_15a : 32; // [31:0]
|
||||
uint32_t reserved_16a : 32; // [31:0]
|
||||
uint32_t reserved_17a : 32; // [31:0]
|
||||
uint32_t reserved_18a : 32; // [31:0]
|
||||
uint32_t reserved_19a : 32; // [31:0]
|
||||
uint32_t reserved_20a : 32; // [31:0]
|
||||
uint32_t reserved_21a : 32; // [31:0]
|
||||
uint32_t reserved_22a : 32; // [31:0]
|
||||
uint32_t reserved_23a : 32; // [31:0]
|
||||
uint32_t reserved_24a : 32; // [31:0]
|
||||
uint32_t looping_count : 4, // [31:28]
|
||||
reserved_25a : 28; // [27:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description STATUS_HEADER
|
||||
|
||||
Consumer: SW
|
||||
Producer: REO
|
||||
|
||||
Details that can link this status with the original command.
|
||||
It also contains info on how long REO took to execute this
|
||||
command.
|
||||
*/
|
||||
|
||||
|
||||
/* Description REO_STATUS_NUMBER
|
||||
|
||||
Consumer: SW , DEBUG
|
||||
Producer: REO
|
||||
|
||||
The value in this field is equal to value of the 'REO_CMD_Number'
|
||||
field the REO command
|
||||
|
||||
This field helps to correlate the statuses with the REO
|
||||
commands.
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_OFFSET 0x0000000000000000
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_LSB 0
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_MSB 15
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_MASK 0x000000000000ffff
|
||||
|
||||
|
||||
/* Description CMD_EXECUTION_TIME
|
||||
|
||||
Consumer: DEBUG
|
||||
Producer: REO
|
||||
|
||||
The amount of time REO took to excecute the command. Note
|
||||
that this time does not include the duration of the command
|
||||
waiting in the command ring, before the execution started.
|
||||
|
||||
|
||||
In us.
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_OFFSET 0x0000000000000000
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_LSB 16
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_MSB 25
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_MASK 0x0000000003ff0000
|
||||
|
||||
|
||||
/* Description REO_CMD_EXECUTION_STATUS
|
||||
|
||||
Consumer: DEBUG
|
||||
Producer: REO
|
||||
|
||||
Execution status of the command.
|
||||
|
||||
<enum 0 reo_successful_execution> Command has successfully
|
||||
be executed
|
||||
<enum 1 reo_blocked_execution> Command could not be executed
|
||||
as the queue or cache was blocked
|
||||
<enum 2 reo_failed_execution> Command has encountered problems
|
||||
when executing, like the queue descriptor not being valid.
|
||||
None of the status fields in the entire STATUS TLV are valid.
|
||||
|
||||
<enum 3 reo_resource_blocked> Command is NOT executed because
|
||||
one or more descriptors were blocked. This is SW programming
|
||||
mistake.
|
||||
None of the status fields in the entire STATUS TLV are valid.
|
||||
|
||||
|
||||
<legal 0-3>
|
||||
*/
|
||||
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_OFFSET 0x0000000000000000
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_LSB 26
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MSB 27
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MASK 0x000000000c000000
|
||||
|
||||
|
||||
/* Description RESERVED_0A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_RESERVED_0A_OFFSET 0x0000000000000000
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_RESERVED_0A_LSB 28
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_RESERVED_0A_MSB 31
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_RESERVED_0A_MASK 0x00000000f0000000
|
||||
|
||||
|
||||
/* Description TIMESTAMP
|
||||
|
||||
Timestamp at the moment that this status report is written.
|
||||
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_TIMESTAMP_OFFSET 0x0000000000000000
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_TIMESTAMP_LSB 32
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_TIMESTAMP_MSB 63
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_TIMESTAMP_MASK 0xffffffff00000000
|
||||
|
||||
|
||||
/* Description THRESHOLD_INDEX
|
||||
|
||||
The index of the threshold register whose value got reached
|
||||
|
||||
|
||||
<enum 0 reo_desc_counter0_threshold>
|
||||
<enum 1 reo_desc_counter1_threshold>
|
||||
<enum 2 reo_desc_counter2_threshold>
|
||||
<enum 3 reo_desc_counter_sum_threshold>
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_THRESHOLD_INDEX_OFFSET 0x0000000000000008
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_THRESHOLD_INDEX_LSB 0
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_THRESHOLD_INDEX_MSB 1
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_THRESHOLD_INDEX_MASK 0x0000000000000003
|
||||
|
||||
|
||||
/* Description RESERVED_2
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_2_OFFSET 0x0000000000000008
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_2_LSB 2
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_2_MSB 31
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_2_MASK 0x00000000fffffffc
|
||||
|
||||
|
||||
/* Description LINK_DESCRIPTOR_COUNTER0
|
||||
|
||||
Value of this counter at generation of this message
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER0_OFFSET 0x0000000000000008
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER0_LSB 32
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER0_MSB 55
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER0_MASK 0x00ffffff00000000
|
||||
|
||||
|
||||
/* Description RESERVED_3
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_3_OFFSET 0x0000000000000008
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_3_LSB 56
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_3_MSB 63
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_3_MASK 0xff00000000000000
|
||||
|
||||
|
||||
/* Description LINK_DESCRIPTOR_COUNTER1
|
||||
|
||||
Value of this counter at generation of this message
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER1_OFFSET 0x0000000000000010
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER1_LSB 0
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER1_MSB 23
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER1_MASK 0x0000000000ffffff
|
||||
|
||||
|
||||
/* Description RESERVED_4
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_4_OFFSET 0x0000000000000010
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_4_LSB 24
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_4_MSB 31
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_4_MASK 0x00000000ff000000
|
||||
|
||||
|
||||
/* Description LINK_DESCRIPTOR_COUNTER2
|
||||
|
||||
Value of this counter at generation of this message
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER2_OFFSET 0x0000000000000010
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER2_LSB 32
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER2_MSB 55
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER2_MASK 0x00ffffff00000000
|
||||
|
||||
|
||||
/* Description RESERVED_5
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_5_OFFSET 0x0000000000000010
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_5_LSB 56
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_5_MSB 63
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_5_MASK 0xff00000000000000
|
||||
|
||||
|
||||
/* Description LINK_DESCRIPTOR_COUNTER_SUM
|
||||
|
||||
Value of this counter at generation of this message
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER_SUM_OFFSET 0x0000000000000018
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER_SUM_LSB 0
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER_SUM_MSB 25
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER_SUM_MASK 0x0000000003ffffff
|
||||
|
||||
|
||||
/* Description RESERVED_6
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_6_OFFSET 0x0000000000000018
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_6_LSB 26
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_6_MSB 31
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_6_MASK 0x00000000fc000000
|
||||
|
||||
|
||||
/* Description RESERVED_7
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_7_OFFSET 0x0000000000000018
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_7_LSB 32
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_7_MSB 63
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_7_MASK 0xffffffff00000000
|
||||
|
||||
|
||||
/* Description RESERVED_8
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_8_OFFSET 0x0000000000000020
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_8_LSB 0
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_8_MSB 31
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_8_MASK 0x00000000ffffffff
|
||||
|
||||
|
||||
/* Description RESERVED_9A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_9A_OFFSET 0x0000000000000020
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_9A_LSB 32
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_9A_MSB 63
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_9A_MASK 0xffffffff00000000
|
||||
|
||||
|
||||
/* Description RESERVED_10A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_10A_OFFSET 0x0000000000000028
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_10A_LSB 0
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_10A_MSB 31
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_10A_MASK 0x00000000ffffffff
|
||||
|
||||
|
||||
/* Description RESERVED_11A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_11A_OFFSET 0x0000000000000028
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_11A_LSB 32
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_11A_MSB 63
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_11A_MASK 0xffffffff00000000
|
||||
|
||||
|
||||
/* Description RESERVED_12A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_12A_OFFSET 0x0000000000000030
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_12A_LSB 0
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_12A_MSB 31
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_12A_MASK 0x00000000ffffffff
|
||||
|
||||
|
||||
/* Description RESERVED_13A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_13A_OFFSET 0x0000000000000030
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_13A_LSB 32
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_13A_MSB 63
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_13A_MASK 0xffffffff00000000
|
||||
|
||||
|
||||
/* Description RESERVED_14A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_14A_OFFSET 0x0000000000000038
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_14A_LSB 0
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_14A_MSB 31
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_14A_MASK 0x00000000ffffffff
|
||||
|
||||
|
||||
/* Description RESERVED_15A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_15A_OFFSET 0x0000000000000038
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_15A_LSB 32
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_15A_MSB 63
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_15A_MASK 0xffffffff00000000
|
||||
|
||||
|
||||
/* Description RESERVED_16A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_16A_OFFSET 0x0000000000000040
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_16A_LSB 0
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_16A_MSB 31
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_16A_MASK 0x00000000ffffffff
|
||||
|
||||
|
||||
/* Description RESERVED_17A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_17A_OFFSET 0x0000000000000040
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_17A_LSB 32
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_17A_MSB 63
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_17A_MASK 0xffffffff00000000
|
||||
|
||||
|
||||
/* Description RESERVED_18A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_18A_OFFSET 0x0000000000000048
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_18A_LSB 0
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_18A_MSB 31
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_18A_MASK 0x00000000ffffffff
|
||||
|
||||
|
||||
/* Description RESERVED_19A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_19A_OFFSET 0x0000000000000048
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_19A_LSB 32
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_19A_MSB 63
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_19A_MASK 0xffffffff00000000
|
||||
|
||||
|
||||
/* Description RESERVED_20A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_20A_OFFSET 0x0000000000000050
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_20A_LSB 0
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_20A_MSB 31
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_20A_MASK 0x00000000ffffffff
|
||||
|
||||
|
||||
/* Description RESERVED_21A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_21A_OFFSET 0x0000000000000050
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_21A_LSB 32
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_21A_MSB 63
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_21A_MASK 0xffffffff00000000
|
||||
|
||||
|
||||
/* Description RESERVED_22A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_22A_OFFSET 0x0000000000000058
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_22A_LSB 0
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_22A_MSB 31
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_22A_MASK 0x00000000ffffffff
|
||||
|
||||
|
||||
/* Description RESERVED_23A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_23A_OFFSET 0x0000000000000058
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_23A_LSB 32
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_23A_MSB 63
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_23A_MASK 0xffffffff00000000
|
||||
|
||||
|
||||
/* Description RESERVED_24A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_24A_OFFSET 0x0000000000000060
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_24A_LSB 0
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_24A_MSB 31
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_24A_MASK 0x00000000ffffffff
|
||||
|
||||
|
||||
/* Description RESERVED_25A
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_25A_OFFSET 0x0000000000000060
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_25A_LSB 32
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_25A_MSB 59
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_25A_MASK 0x0fffffff00000000
|
||||
|
||||
|
||||
/* Description LOOPING_COUNT
|
||||
|
||||
A count value that indicates the number of times the producer
|
||||
of entries into this Ring has looped around the ring.
|
||||
At initialization time, this value is set to 0. On the first
|
||||
loop, this value is set to 1. After the max value is reached
|
||||
allowed by the number of bits for this field, the count
|
||||
value continues with 0 again.
|
||||
|
||||
In case SW is the consumer of the ring entries, it can use
|
||||
this field to figure out up to where the producer of entries
|
||||
has created new entries. This eliminates the need to check
|
||||
where the "head pointer' of the ring is located once the
|
||||
SW starts processing an interrupt indicating that new entries
|
||||
have been put into this ring...
|
||||
|
||||
Also note that SW if it wants only needs to look at the
|
||||
LSB bit of this count value.
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LOOPING_COUNT_OFFSET 0x0000000000000060
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LOOPING_COUNT_LSB 60
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LOOPING_COUNT_MSB 63
|
||||
#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LOOPING_COUNT_MASK 0xf000000000000000
|
||||
|
||||
|
||||
|
||||
#endif // REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue