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-22000-LAHAINA.QSSI12.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-22000-LAHAINA.QSSI12.0" * tag 'LA.UM.9.14.r1-22000-LAHAINA.QSSI12.0' of https://git.codelinaro.org/clo/la/platform/vendor/qcom-opensource/wlan/fw-api: fw-api: Add evm info headers for qcn9224 fw-api: CL 22994196 - update fw common interface files fw-api: CL 22946448 - update fw common interface files fw-api: CL 22928086 - update fw common interface files fw-api: CL 22895719 - update fw common interface files fw-api: CL 22882405 - update fw common interface files fw-api: CL 22860575 - update fw common interface files fw-api: CL 22845599 - update fw common interface files fw-api: CL 22832398 - update fw common interface files fw-api: CL 22832353 - update fw common interface files fw-api: CL 22808446 - update fw common interface files fw-api: CL 22808430 - update fw common interface files fw-api: CL 22791601 - update fw common interface files fw-api: CL 22788805 - update fw common interface files fw-api: CL 22765461 - update fw common interface files fw-api: CL 22691990 - update fw common interface files fw-api: CL 22674286 - update fw common interface files fw-api: CL 22650243 - update fw common interface files fw-api: CL 22641645 - update fw common interface files fw-api: CL 22630619 - update fw common interface files Revert "fw-api: Add evm info headers for qcn9224" fw-api: Add qcnn6432 target header files to fw-api project fw-api: CL 22585871 - update fw common interface files fw-api: CL 22585869 - update fw common interface files fw-api: CL 22545098 - update fw common interface files fw-api: CL 22522091 - update fw common interface files fw-api: CL 22520756 - update fw common interface files fw-api: CL 22520752 - update fw common interface files fw-api: Add evm info headers for qcn9224 Change-Id: Id8039f4e7e68a905241ace1b898e0d4e3ebcfc71
This commit is contained in:
commit
75e4a02651
216 changed files with 193415 additions and 15 deletions
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* Copyright (c) 2012, 2014-2017, 2020 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
* Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
|
||||
*
|
||||
|
|
@ -61,7 +61,10 @@ typedef enum {
|
|||
#define WMI_CONTROL_SVC_WMAC2 MAKE_SERVICE_ID(WMI_SERVICE_GROUP,6)
|
||||
#define WMI_CONTROL_DIAG_SVC MAKE_SERVICE_ID(WMI_SERVICE_GROUP,7)
|
||||
#define WMI_CONTROL_DBR_SVC MAKE_SERVICE_ID(WMI_SERVICE_GROUP,8)
|
||||
#define WMI_MAX_SERVICES 9
|
||||
/* WMI_CONTROL_SVC_WMAC3,4: WMI service for MACs 3 and 4 (where applicable) */
|
||||
#define WMI_CONTROL_SVC_WMAC3 MAKE_SERVICE_ID(WMI_SERVICE_GROUP,9)
|
||||
#define WMI_CONTROL_SVC_WMAC4 MAKE_SERVICE_ID(WMI_SERVICE_GROUP,10)
|
||||
#define WMI_MAX_SERVICES 11
|
||||
|
||||
#define NMI_CONTROL_SVC MAKE_SERVICE_ID(NMI_SERVICE_GROUP,0)
|
||||
#define NMI_DATA_SVC MAKE_SERVICE_ID(NMI_SERVICE_GROUP,1)
|
||||
|
|
|
|||
|
|
@ -802,6 +802,7 @@ typedef enum {
|
|||
HTT_STATS_MLO_UMAC_SSR_DBG_TAG = 184, /* htt_mlo_umac_ssr_dbg_tlv */
|
||||
HTT_STATS_MLO_UMAC_SSR_HANDSHAKE_TAG = 185, /* htt_mlo_umac_htt_handshake_stats_tlv */
|
||||
HTT_STATS_MLO_UMAC_SSR_MLO_TAG = 186, /* htt_mlo_umac_ssr_mlo_stats_tlv */
|
||||
HTT_STATS_PDEV_TDMA_TAG = 187, /* htt_pdev_tdma_stats_tlv */
|
||||
|
||||
|
||||
HTT_STATS_MAX_TAG,
|
||||
|
|
@ -21283,7 +21284,17 @@ struct htt_t2h_rx_data_msdu_info
|
|||
A_UINT32 /* word 1 */
|
||||
buffer_addr_high : 8,
|
||||
sw_buffer_cookie : 21,
|
||||
rsvd1 : 3;
|
||||
/* fw_offloads_inspected:
|
||||
* When reo_destination_indication is 6 in reo_entrance_ring
|
||||
* of the RXDMA2REO MPDU upload, all the MSDUs that are part
|
||||
* of the MPDU are inspected by FW offloads layer, subsequently
|
||||
* the MSDUs are qualified to be host interested.
|
||||
* In such case the fw_offloads_inspected is set to 1, else 0.
|
||||
* This will assist host to not consider such MSDUs for FISA
|
||||
* flow addition.
|
||||
*/
|
||||
fw_offloads_inspected : 1,
|
||||
rsvd1 : 2;
|
||||
A_UINT32 /* word 2 */
|
||||
mpdu_retry_bit : 1, /* used for stats maintenance */
|
||||
raw_mpdu_frame : 1, /* used for pkt drop and processing */
|
||||
|
|
@ -21404,6 +21415,17 @@ struct htt_t2h_rx_data_msdu_info
|
|||
#define HTT_RX_DATA_MSDU_INFO_SW_BUFFER_COOKIE_GET(word) \
|
||||
(((word) & HTT_RX_DATA_MSDU_INFO_SW_BUFFER_COOKIE_M) >> HTT_RX_DATA_MSDU_INFO_SW_BUFFER_COOKIE_S)
|
||||
|
||||
#define HTT_RX_DATA_MSDU_INFO_FW_OFFLOADS_INSPECTED_M 0x20000000
|
||||
#define HTT_RX_DATA_MSDU_INFO_FW_OFFLOADS_INSPECTED_S 29
|
||||
|
||||
#define HTT_RX_DATA_MSDU_INFO_FW_OFFLOADS_INSPECTED_SET(word, value) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_RX_DATA_MSDU_INFO_FW_OFFLOADS_INSPECTED, value); \
|
||||
(word) |= (value) << HTT_RX_DATA_MSDU_INFO_FW_OFFLOADS_INSPECTED_S; \
|
||||
} while (0)
|
||||
#define HTT_RX_DATA_MSDU_INFO_FW_OFFLOADS_INSPECTED_GET(word) \
|
||||
(((word) & HTT_RX_DATA_MSDU_INFO_FW_OFFLOADS_INSPECTED_M) >> HTT_RX_DATA_MSDU_INFO_FW_OFFLOADS_INSPECTED_S)
|
||||
|
||||
#define HTT_RX_DATA_MSDU_INFO_MPDU_RETRY_BIT_M 0x00000001
|
||||
#define HTT_RX_DATA_MSDU_INFO_MPDU_RETRY_BIT_S 0
|
||||
|
||||
|
|
|
|||
|
|
@ -538,6 +538,14 @@ enum htt_dbg_ext_stats_type {
|
|||
*/
|
||||
HTT_DBG_MLO_UMAC_SSR_STATS = 56,
|
||||
|
||||
/** HTT_DBG_PDEV_TDMA_STATS
|
||||
* PARAMS:
|
||||
* - No Params
|
||||
* RESP MSG:
|
||||
* - htt_pdev_tdma_stats_tlv
|
||||
*/
|
||||
HTT_DBG_PDEV_TDMA_STATS = 57,
|
||||
|
||||
|
||||
/* keep this last */
|
||||
HTT_DBG_NUM_EXT_STATS = 256,
|
||||
|
|
@ -6578,14 +6586,25 @@ 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 */
|
||||
/** Total times CV query happened for IBF case */
|
||||
A_UINT32 cv_total_query_ibf;
|
||||
/* A valid CV has been found for IBF case */
|
||||
/** 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 valid CV has not been found for IBF case */
|
||||
A_UINT32 cv_not_found_ibf;
|
||||
/* Expired CV found during query for IBF case */
|
||||
/** Expired CV found during query for IBF case */
|
||||
A_UINT32 cv_expired_during_query_ibf;
|
||||
/** Total number of times adaptive sounding logic has been queried */
|
||||
A_UINT32 adaptive_snd_total_query;
|
||||
/**
|
||||
* Total number of times adaptive sounding mcs drop has been computed
|
||||
* and recorded.
|
||||
*/
|
||||
A_UINT32 adaptive_snd_total_mcs_drop[HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS + HTT_TX_PDEV_STATS_NUM_EXTRA_MCS_COUNTERS];
|
||||
/** Total number of times adaptive sounding logic kicked in */
|
||||
A_UINT32 adaptive_snd_kicked_in;
|
||||
/** Total number of times we switched back to normal sounding interval */
|
||||
A_UINT32 adaptive_snd_back_to_default;
|
||||
} htt_tx_sounding_stats_tlv;
|
||||
|
||||
/* STATS_TYPE : HTT_DBG_EXT_STATS_TX_SOUNDING_INFO
|
||||
|
|
@ -8749,6 +8768,44 @@ typedef struct {
|
|||
A_UINT32 ul_mumimo_trigger_within_bss;
|
||||
} htt_pdev_mbssid_ctrl_frame_stats_tlv;
|
||||
|
||||
typedef struct {
|
||||
htt_tlv_hdr_t tlv_hdr;
|
||||
/**
|
||||
* BIT [ 7 : 0] :- mac_id
|
||||
* Use the HTT_STATS_TDMA_MAC_ID_GET macro to extract
|
||||
* this bitfield.
|
||||
* BIT [31 : 8] :- reserved
|
||||
*/
|
||||
union {
|
||||
struct {
|
||||
A_UINT32 mac_id: 8,
|
||||
reserved: 24;
|
||||
};
|
||||
A_UINT32 mac_id__word;
|
||||
};
|
||||
|
||||
/** Num of Active TDMA schedules */
|
||||
A_UINT32 num_tdma_active_schedules;
|
||||
/** Num of Reserved TDMA schedules */
|
||||
A_UINT32 num_tdma_reserved_schedules;
|
||||
/** Num of Restricted TDMA schedules */
|
||||
A_UINT32 num_tdma_restricted_schedules;
|
||||
/** Num of Unconfigured TDMA schedules */
|
||||
A_UINT32 num_tdma_unconfigured_schedules;
|
||||
/** Num of TDMA slot switches */
|
||||
A_UINT32 num_tdma_slot_switches;
|
||||
/** Num of TDMA EDCA switches */
|
||||
A_UINT32 num_tdma_edca_switches;
|
||||
} htt_pdev_tdma_stats_tlv;
|
||||
|
||||
#define HTT_STATS_TDMA_MAC_ID_M 0x000000ff
|
||||
#define HTT_STATS_TDMA_MAC_ID_S 0
|
||||
|
||||
#define HTT_STATS_TDMA_MAC_ID_GET(_var) \
|
||||
(((_var) & HTT_STATS_TDMA_MAC_ID_M) >> \
|
||||
HTT_STATS_TDMA_MAC_ID_S)
|
||||
|
||||
|
||||
/*======= Bandwidth Manager stats ====================*/
|
||||
|
||||
#define HTT_BW_MGR_STATS_MAC_ID_M 0x000000ff
|
||||
|
|
|
|||
|
|
@ -1747,8 +1747,15 @@ A_COMPILE_TIME_ASSERT(check_mlo_glb_link_info_8byte_size_quantum,
|
|||
|
||||
typedef enum {
|
||||
MLO_SHMEM_CRASH_PARTNER_CHIPS = 1,
|
||||
MLO_SHMEM_CRASH_SW_PANIC = 2,
|
||||
MLO_SHMEM_CRASH_SW_ASSERT = 3,
|
||||
} MLO_SHMEM_CHIP_CRASH_REASON;
|
||||
|
||||
typedef enum {
|
||||
MLO_SHMEM_RECOVERY_CRASH_PARTNER_CHIPS = 1,
|
||||
MLO_SHMEM_RECOVER_NON_MLO_MODE = 2,
|
||||
} MLO_SHMEM_CHIP_RECOVERY_MODE;
|
||||
|
||||
/* glb link info structures used for scratchpad memory (crash and recovery) */
|
||||
typedef struct {
|
||||
/* TLV tag and len; tag equals MLO_SHMEM_TLV_STRUCT_MLO_GLB_PER_CHIP_CRASH_INFO */
|
||||
|
|
@ -1757,6 +1764,12 @@ typedef struct {
|
|||
* crash reason, takes value in enum MLO_SHMEM_CHIP_CRASH_REASON
|
||||
*/
|
||||
A_UINT32 crash_reason;
|
||||
/**
|
||||
* crash reason, takes value in enum MLO_SHMEM_CHIP_RECOVERY_MODE
|
||||
*/
|
||||
A_UINT32 recovery_mode;
|
||||
/* reserved: added for padding to A_UINT64 size, available for future use */
|
||||
A_UINT32 reserved;
|
||||
} mlo_glb_per_chip_crash_info;
|
||||
|
||||
A_COMPILE_TIME_ASSERT(check_mlo_glb_per_chip_crash_info,
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
/*
|
||||
* Copyright (c) 2011-2021 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
|
||||
*
|
||||
|
|
@ -152,6 +153,7 @@ typedef enum {
|
|||
WLAN_MODULE_BAR, /* 0x70 */
|
||||
WLAN_MODULE_SMART_TX, /* 0x71 */
|
||||
WLAN_MODULE_BRIDGE_PEER, /* 0x72 */
|
||||
WLAN_MODULE_AUX_MAC_MGR, /* 0x73 */
|
||||
|
||||
|
||||
WLAN_MODULE_ID_MAX,
|
||||
|
|
|
|||
|
|
@ -628,6 +628,10 @@ typedef enum {
|
|||
WMI_SERVICE_RESTRICTED_TWT_REQUESTER = 375, /* Indicates FW supports Restricted TWT REQUESTER */
|
||||
WMI_SERVICE_RESTRICTED_TWT_RESPONDER = 376, /* Indicates FW supports Restricted TWT RESPONDER */
|
||||
WMI_SERVICE_AUX_MAC_SUPPORT = 377,
|
||||
WMI_SERVICE_NAN_PAIRING_PEER_CREATE_BY_HOST = 378, /* Indicate FW supports creation of PASN Peer by Host for NAN pairing usecase */
|
||||
WMI_SERVICE_MLO_TID_TO_LINK_MAPPING_SUPPORT = 379, /* Indicates FW supports TID-TO-LINK mapping */
|
||||
WMI_SERVICE_PER_LINK_STATS_SUPPORT = 380, /* Indicates FW supports per link stats for MLO */
|
||||
WMI_SERVICE_N_LINK_MLO_SUPPORT = 381, /* Indicate FW supports N MLO link & vdev re-purpose between links */
|
||||
|
||||
WMI_MAX_EXT2_SERVICE
|
||||
|
||||
|
|
|
|||
|
|
@ -1375,6 +1375,12 @@ typedef enum {
|
|||
WMITLV_TAG_STRUC_wmi_vdev_pause_cmd_fixed_param,
|
||||
WMITLV_TAG_STRUC_wmi_gpio_state_req_cmd_fixed_param,
|
||||
WMITLV_TAG_STRUC_wmi_gpio_state_res_event_fixed_param,
|
||||
WMITLV_TAG_STRUC_wmi_ctrl_path_vdev_stats_struct,
|
||||
WMITLV_TAG_STRUC_wmi_pdev_set_rf_path_event_fixed_param,
|
||||
WMITLV_TAG_STRUC_wmi_mlo_link_bss_param,
|
||||
WMITLV_TAG_STRUC_wmi_mlo_set_link_bss_params_cmd_fixed_param,
|
||||
WMITLV_TAG_STRUC_wmi_mlo_link_switch_req_evt_fixed_param,
|
||||
WMITLV_TAG_STRUC_wmi_mlo_link_switch_cnf_fixed_param,
|
||||
} WMITLV_TAG_ID;
|
||||
/*
|
||||
* IMPORTANT: Please add _ALL_ WMI Commands Here.
|
||||
|
|
@ -2214,6 +2220,7 @@ typedef enum {
|
|||
OP(WMI_VENDOR_PDEV_EVENTID) \
|
||||
OP(WMI_VENDOR_VDEV_EVENTID) \
|
||||
OP(WMI_VENDOR_PEER_EVENTID) \
|
||||
OP(WMI_PDEV_SET_RF_PATH_RESP_EVENTID) \
|
||||
/* add new EVT_LIST elements above this line */
|
||||
|
||||
|
||||
|
|
@ -5102,7 +5109,9 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_ENABLE_DURATION_BASED_TX_MODE_SELECTION_CMDID
|
|||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mlo_link_set_active_cmd_fixed_param, wmi_mlo_link_set_active_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_mlo_set_active_link_number_param, link_number_param, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, vdev_id_bitmap, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, vdev_id_bitmap2, WMITLV_SIZE_VAR)
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, vdev_id_bitmap2, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, ieee_link_id_bitmap, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, ieee_link_id_bitmap2, WMITLV_SIZE_VAR)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_MLO_LINK_SET_ACTIVE_CMDID);
|
||||
|
||||
/* Request DPD Status */
|
||||
|
|
@ -5394,6 +5403,17 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VENDOR_VDEV_CMDID);
|
|||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_vendor_cmd_fixed_param, wmi_peer_vendor_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_VENDOR_PEER_CMDID);
|
||||
|
||||
/* SET MLO link BSS param */
|
||||
#define WMITLV_TABLE_WMI_MLO_LINK_SET_BSS_PARAMS_CMDID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mlo_set_link_bss_params_cmd_fixed_param, wmi_mlo_set_link_bss_params_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_mlo_link_bss_param, link_bss_params, WMITLV_SIZE_VAR)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_MLO_LINK_SET_BSS_PARAMS_CMDID);
|
||||
|
||||
/* MLO link switch confirmation command to inform FW about host side status and reason code */
|
||||
#define WMITLV_TABLE_WMI_MLO_LINK_SWITCH_CONF_CMDID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mlo_link_switch_cnf_fixed_param, wmi_mlo_link_switch_cnf_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_MLO_LINK_SWITCH_CONF_CMDID);
|
||||
|
||||
|
||||
|
||||
/************************** TLV definitions of WMI events *******************************/
|
||||
|
|
@ -5817,9 +5837,15 @@ WMITLV_CREATE_PARAM_STRUC(WMI_GPIO_INPUT_EVENTID);
|
|||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_gpio_state_res_event_fixed_param, wmi_gpio_state_res_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_GPIO_STATE_RES_EVENTID);
|
||||
|
||||
/* RF Path Res Event */
|
||||
#define WMITLV_TABLE_WMI_PDEV_SET_RF_PATH_RESP_EVENTID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_rf_path_event_fixed_param, wmi_pdev_set_rf_path_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_RF_PATH_RESP_EVENTID);
|
||||
|
||||
/* CSA Handling Event */
|
||||
#define WMITLV_TABLE_WMI_CSA_HANDLING_EVENTID(id,op,buf,len)\
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_csa_event_fixed_param, wmi_csa_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_csa_event_fixed_param, wmi_csa_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, cs_wrap_ie, WMITLV_SIZE_VAR)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_CSA_HANDLING_EVENTID);
|
||||
|
||||
/* Rfkill state change Event */
|
||||
|
|
@ -6838,7 +6864,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_STATS_INFO_EVENTID);
|
|||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ctrl_path_cfr_stats_struct, ctrl_path_cfr_stats, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ctrl_path_t2lm_stats_struct, ctrl_path_t2lm_stats, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ctrl_path_blanking_stats_struct, ctrl_path_blanking_stats, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ctrl_path_peer_stats_struct, ctrl_path_peer_stats, WMITLV_SIZE_VAR)
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ctrl_path_peer_stats_struct, ctrl_path_peer_stats, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ctrl_path_vdev_stats_struct, ctrl_path_vdev_stats, WMITLV_SIZE_VAR)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_CTRL_PATH_STATS_EVENTID);
|
||||
|
||||
/*
|
||||
|
|
@ -7144,7 +7171,9 @@ WMITLV_CREATE_PARAM_STRUC(WMI_TWT_SESSION_STATS_EVENTID);
|
|||
#define WMITLV_TABLE_WMI_MLO_LINK_SET_ACTIVE_RESP_EVENTID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mlo_link_set_active_resp_event_fixed_param, wmi_mlo_link_set_active_resp_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, force_active_vdev_bitmap, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, force_inactive_vdev_bitmap, WMITLV_SIZE_VAR)
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, force_inactive_vdev_bitmap, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, force_active_ieee_link_id_bitmap, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, force_inactive_ieee_link_id_bitmap, WMITLV_SIZE_VAR)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_MLO_LINK_SET_ACTIVE_RESP_EVENTID);
|
||||
|
||||
/* Get DPD status Event */
|
||||
|
|
@ -7331,6 +7360,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VENDOR_VDEV_EVENTID);
|
|||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_vendor_event_fixed_param, wmi_peer_vendor_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_VENDOR_PEER_EVENTID);
|
||||
|
||||
/* link switch event */
|
||||
#define WMITLV_TABLE_WMI_MLO_LINK_SWITCH_REQUEST_EVENTID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mlo_link_switch_req_evt_fixed_param, wmi_mlo_link_switch_req_evt_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_MLO_LINK_SWITCH_REQUEST_EVENTID);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1563,6 +1563,10 @@ typedef enum {
|
|||
WMI_MLO_AP_VDEV_TID_TO_LINK_MAP_CMDID,
|
||||
/** WMI cmd used to get mlo link information */
|
||||
WMI_MLO_VDEV_GET_LINK_INFO_CMDID,
|
||||
/** WMI cmd used to set link BSS parameters */
|
||||
WMI_MLO_LINK_SET_BSS_PARAMS_CMDID,
|
||||
/** WMI cmd to confirm the status of link switch request handling */
|
||||
WMI_MLO_LINK_SWITCH_CONF_CMDID,
|
||||
|
||||
/** WMI commands specific to Service Aware WiFi (SAWF) */
|
||||
/** configure or reconfigure the parameters for a service class */
|
||||
|
|
@ -1743,6 +1747,9 @@ typedef enum {
|
|||
/* Event to send target rate to power table update status */
|
||||
WMI_PDEV_SET_TGTR2P_TABLE_EVENTID,
|
||||
|
||||
/* Event to indicate completion on RF path */
|
||||
WMI_PDEV_SET_RF_PATH_RESP_EVENTID,
|
||||
|
||||
|
||||
/* VDEV specific events */
|
||||
/** VDEV started event in response to VDEV_START request */
|
||||
|
|
@ -2395,6 +2402,8 @@ typedef enum {
|
|||
WMI_MLO_VDEV_LINK_INFO_EVENTID,
|
||||
/** request host to do T2LM neg to the un-disabled link */
|
||||
WMI_MLO_LINK_DISABLE_REQUEST_EVENTID,
|
||||
/** request host to switch to new link for specified vdev */
|
||||
WMI_MLO_LINK_SWITCH_REQUEST_EVENTID,
|
||||
|
||||
/* WMI event specific to Quiet handling */
|
||||
WMI_QUIET_HANDLING_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_QUIET_OFL),
|
||||
|
|
@ -3533,6 +3542,11 @@ typedef struct {
|
|||
*/
|
||||
A_UINT32 rx_aggr_ba_win_size_max;
|
||||
|
||||
/*
|
||||
* max link number per MLD FW supports.
|
||||
*/
|
||||
A_UINT32 num_max_mlo_link_per_ml_bss_supp;
|
||||
|
||||
/* Followed by next TLVs:
|
||||
* WMI_DMA_RING_CAPABILITIES dma_ring_caps[];
|
||||
* wmi_spectral_bin_scaling_params wmi_bin_scaling_params[];
|
||||
|
|
@ -4644,6 +4658,18 @@ typedef struct {
|
|||
* number of max active virtual devices (VAPs) to support
|
||||
*/
|
||||
A_UINT32 num_max_active_vdevs;
|
||||
|
||||
/**
|
||||
* @brief num_max_mlo_link_per_ml_bss
|
||||
* number of max partner links of a ML BSS
|
||||
*/
|
||||
A_UINT32 num_max_mlo_link_per_ml_bss;
|
||||
|
||||
/**
|
||||
* @brief num_max_active_mlo_link_per_ml_bss
|
||||
* number of max active partner links of a ML BSS
|
||||
*/
|
||||
A_UINT32 num_max_active_mlo_link_per_ml_bss;
|
||||
} wmi_resource_config;
|
||||
|
||||
#define WMI_MSDU_FLOW_AST_ENABLE_GET(msdu_flow_config0, ast_x) \
|
||||
|
|
@ -7938,6 +7964,7 @@ typedef enum {
|
|||
WMI_CSWARP_IE_PRESENT = WMI_CSWRAP_IE_PRESENT, /* deprecated: typo */
|
||||
WMI_QSBW_ISE_PRESENT = 0x00000010,
|
||||
WMI_CSWRAP_IE_EXTENDED_PRESENT = 0x00000020, /* Added bitmask to verify if the additional information is filled in */
|
||||
WMI_CSWRAP_IE_EXT_VER_2_PRESENT = 0x00000040 /* Added bitmask to see if additional info is present in CS wrap IE */
|
||||
} WMI_CSA_EVENT_IES_PRESENT_FLAG;
|
||||
|
||||
/* wmi CSA receive event from beacon frame */
|
||||
|
|
@ -7968,6 +7995,31 @@ typedef struct {
|
|||
* the second octet resides in bits 15:8 of cswrap_ie_extended[0] and so on.
|
||||
*/
|
||||
A_UINT32 cswrap_ie_extended[5];
|
||||
|
||||
/* num_bytes_valid_in_cswrap_ie_ext_ver2:
|
||||
* This fixed_param TLV can be followed by a VAR length TLV
|
||||
* variable-length byte-array TLV for CS WRAP IE.
|
||||
* Since the variable-length byte-array TLVs are always padded, if needed,
|
||||
* to contain a multiple of 4 bytes, this field shows how many of the bytes
|
||||
* contain valid data, versus how many are only for alignment padding.
|
||||
*/
|
||||
A_UINT32 num_bytes_valid_in_cswrap_ie_ext_ver2;
|
||||
|
||||
/*
|
||||
* Add link id, mld address and link address
|
||||
* fields for N link CSA support
|
||||
*/
|
||||
A_UINT32 link_id; /* Link id associated with AP */
|
||||
wmi_mac_addr mld_mac_address; /* AP mld mac address */
|
||||
wmi_mac_addr link_mac_address; /* AP link mac address */
|
||||
A_UINT32 mld_mac_address_present :1,
|
||||
link_mac_address_present :1,
|
||||
link_id_present :1,
|
||||
reserved :29;
|
||||
/*
|
||||
* This initial fixed_param TLV may be followed by the below TLVs:
|
||||
* - cs_wrap_ie variable-length byte-array TLV
|
||||
*/
|
||||
} wmi_csa_event_fixed_param;
|
||||
|
||||
#define WMI_GET_MLD_MAC_ADDRESS_PRESENT(mld_mac_address_present) \
|
||||
|
|
@ -9121,6 +9173,17 @@ typedef enum {
|
|||
* 1-31 | Reserved.
|
||||
*/
|
||||
WMI_PDEV_PARAM_LPL_SETTING,
|
||||
|
||||
/** Set Probe Resp retry limit */
|
||||
WMI_PDEV_PARAM_PROBE_RESP_RETRY_LIMIT,
|
||||
|
||||
/*
|
||||
* Parameter for configure PCIE
|
||||
*
|
||||
* 0 - Default Value(FW Control).
|
||||
* 1 - Force PCIE Gen Speed and Lane Width to maximum supported value.
|
||||
*/
|
||||
WMI_PDEV_PARAM_PCIE_CONFIG,
|
||||
} WMI_PDEV_PARAM;
|
||||
|
||||
#define WMI_PDEV_ONLY_BSR_TRIG_IS_ENABLED(trig_type) WMI_GET_BITS(trig_type, 0, 1)
|
||||
|
|
@ -14358,7 +14421,19 @@ typedef struct {
|
|||
* Refer to WMI_VDEV_STATS_FLAGS_ defs.
|
||||
*/
|
||||
A_UINT32 flags;
|
||||
A_INT32 vdev_tx_power; /* dBm units */
|
||||
} wmi_vdev_extd_stats;
|
||||
|
||||
/**
|
||||
* Vdev debug stats to be used for wmi control path stats.
|
||||
* This is an extension to vdev_extd_stats,
|
||||
* vdev_extd_stats display is part of apstats.
|
||||
*/
|
||||
typedef struct {
|
||||
/* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ctrl_path_vdev_stats_struct */
|
||||
A_UINT32 tlv_header;
|
||||
/* vdev id */
|
||||
A_UINT32 vdev_id;
|
||||
/** opaque_debug_wal_vdev_flags:
|
||||
* This will contain the value from wal_vdev wal vdev flags for vdev state
|
||||
*/
|
||||
|
|
@ -14797,7 +14872,7 @@ typedef struct {
|
|||
A_UINT32 opaque_debug_field_2;
|
||||
A_UINT32 opaque_debug_field_3;
|
||||
A_UINT32 opaque_debug_field_4;
|
||||
} wmi_vdev_extd_stats;
|
||||
} wmi_ctrl_path_vdev_stats_struct;
|
||||
|
||||
|
||||
#define WMI_VDEV_STATS_DIS_DYN_BW_RTS_SET(flag, val) \
|
||||
|
|
@ -15827,6 +15902,12 @@ typedef struct {
|
|||
#define WMI_MLO_FLAGS_SET_LINK_DEL(mlo_flags, value) WMI_SET_BITS(mlo_flags, 9, 1, value)
|
||||
#define WMI_MLO_FLAGS_GET_BRIDGE_PEER(mlo_flags) WMI_GET_BITS(mlo_flags, 10, 1)
|
||||
#define WMI_MLO_FLAGS_SET_BRIDGE_PEER(mlo_flags, value) WMI_SET_BITS(mlo_flags, 10, 1, value)
|
||||
#define WMI_MLO_FLAGS_GET_NSTR_BITMAP_PRESENT(mlo_flags) WMI_GET_BITS(mlo_flags, 11, 1)
|
||||
#define WMI_MLO_FLAGS_SET_NSTR_BITMAP_PRESENT(mlo_flags, value) WMI_SET_BITS(mlo_flags, 11, 1, value)
|
||||
#define WMI_MLO_FLAGS_GET_NSTR_BITMAP_SIZE(mlo_flags) WMI_GET_BITS(mlo_flags, 12, 1)
|
||||
#define WMI_MLO_FLAGS_SET_NSTR_BITMAP_SIZE(mlo_flags, value) WMI_SET_BITS(mlo_flags, 12, 1, value)
|
||||
#define WMI_MLO_FLAGS_GET_MLO_LINK_SWITCH(mlo_flags) WMI_GET_BITS(mlo_flags, 13, 1)
|
||||
#define WMI_MLO_FLAGS_SET_MLO_LINK_SWITCH(mlo_flags, value) WMI_SET_BITS(mlo_flags, 13, 1, value)
|
||||
|
||||
/* this structure used for pass mlo flags*/
|
||||
typedef struct {
|
||||
|
|
@ -15843,7 +15924,16 @@ typedef struct {
|
|||
mlo_link_add:1, /* Indicate dynamic link addition in an MLD VAP */
|
||||
mlo_link_del:1, /* Indicate dynamic link deletion in an MLD VAP */
|
||||
mlo_bridge_peer:1, /* Indicate if this link has bridge_peer */
|
||||
unused: 21;
|
||||
nstr_bitmap_present:1, /* Indicate if at least one NSTR link pair is present in the MLD */
|
||||
/* nstr_bitmap_size:
|
||||
* Set to 1 if the length of the corresponding NSTR
|
||||
* Indication Bitmap subfield is equal to 2 octets.
|
||||
* Set to 0 if the length of the corresponding NSTR
|
||||
* Indication Bitmap subfield is equal to 1 octet.
|
||||
*/
|
||||
nstr_bitmap_size:1,
|
||||
mlo_link_switch: 1, /* indicate the command is a part of link switch procedure */
|
||||
unused: 18;
|
||||
};
|
||||
A_UINT32 mlo_flags;
|
||||
};
|
||||
|
|
@ -18506,6 +18596,11 @@ typedef struct {
|
|||
* data is in TLV data[]
|
||||
*/
|
||||
A_UINT32 buf_len;
|
||||
/** bw:
|
||||
* Bandwidth to use for the injected frame, of type wmi_channel_width.
|
||||
* This bw spec shall be ignored unless the bw_valid flag is set.
|
||||
*/
|
||||
A_UINT32 bw;
|
||||
/*
|
||||
* The TLVs follows:
|
||||
* A_UINT8 data[]; <-- Variable length data
|
||||
|
|
@ -19943,6 +20038,8 @@ typedef struct {
|
|||
|
||||
#define WMI_PEER_SET_TX_POWER 0x28
|
||||
|
||||
#define WMI_PEER_FT_ROAMING_PEER_UPDATE 0x29
|
||||
|
||||
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 */
|
||||
|
|
@ -20154,6 +20251,8 @@ typedef struct {
|
|||
#define WMI_PEER_EXT_320MHZ 0x00000002 /* 320Mhz enabled */
|
||||
#define WMI_PEER_EXT_DMS_CAPABLE 0x00000004
|
||||
#define WMI_PEER_EXT_HE_CAPS_6GHZ_VALID 0x00000008 /* param he_caps_6ghz is valid or not */
|
||||
#define WMI_PEER_EXT_IS_QUALCOMM_NODE 0x00000010 /* Indicates if the peer connecting is a qualcomm node */
|
||||
#define WMI_PEER_EXT_IS_MESH_NODE 0x00000020 /* Indicates if the peer connecting is a mesh node */
|
||||
#define WMI_PEER_EXT_F_CRIT_PROTO_HINT_ENABLED 0x40000000
|
||||
|
||||
/**
|
||||
|
|
@ -20212,10 +20311,14 @@ enum WMI_PEER_STA_TYPE {
|
|||
|
||||
typedef struct {
|
||||
A_UINT32 tlv_header; /** TLV tag (MITLV_TAG_STRUC_wmi_peer_assoc_mlo_partner_link_params) and len */
|
||||
A_UINT32 vdev_id; /** unique id identifying the VDEV, generated by the caller */
|
||||
A_UINT32 vdev_id; /** unique id identifying the VDEV, generated by the caller. Set to 0xFFFFFFFF if no vdev is allocated. */
|
||||
A_UINT32 hw_mld_link_id; /** Unique link id across SOCs, got as part of QMI handshake. */
|
||||
wmi_mlo_flags mlo_flags; /** MLO flags */
|
||||
A_UINT32 logical_link_index; /** Unique index for links of the mlo. Starts with Zero */
|
||||
A_UINT32 ieee_link_id; /*link id in the 802.11 frames*/
|
||||
wmi_mac_addr bss_id;
|
||||
wmi_channel wmi_chan;
|
||||
wmi_mac_addr self_mac;
|
||||
} wmi_peer_assoc_mlo_partner_link_params;
|
||||
|
||||
/* This TLV structure used to pass mlo Parameters on peer assoc, only apply for mlo-peers */
|
||||
|
|
@ -20251,6 +20354,13 @@ typedef struct {
|
|||
A_UINT32 msd_ofdm_ed_thr;
|
||||
/** Medium Synchronization Max Num of TXOPs */
|
||||
A_UINT32 msd_max_num_txops;
|
||||
/** max_num_simultaneous_links:
|
||||
* The maximum number of affiliated STAs in the non-AP MLD that
|
||||
* support simultaneous transmission or reception of frames.
|
||||
*/
|
||||
A_UINT32 max_num_simultaneous_links;
|
||||
/** NSTR indication bitmap received in assoc req */
|
||||
A_UINT32 nstr_indication_bitmap;
|
||||
} wmi_peer_assoc_mlo_params;
|
||||
|
||||
typedef struct {
|
||||
|
|
@ -20463,6 +20573,8 @@ typedef struct {
|
|||
/* deprecated but maintained as aliases: old names containing typo */
|
||||
#define WMI_CHAN_InFO_START_RESP WMI_CHAN_INFO_START_RESP
|
||||
#define WMI_CHAN_InFO_END_RESP WMI_CHAN_INFO_END_RESP
|
||||
/* end deprecated */
|
||||
#define WMI_CHAN_INFO_ENTRY_RESP 2
|
||||
|
||||
typedef struct {
|
||||
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_remove_wds_entry_cmd_fixed_param */
|
||||
|
|
@ -21505,6 +21617,17 @@ typedef struct {
|
|||
/* Scoring for security mode */
|
||||
A_INT32 security_weightage_pcnt;
|
||||
wmi_roam_cnd_security_scoring security_scoring;
|
||||
/* mlo_etp_weightage_pcnt:
|
||||
* Give etp weightage to candidate based on MLO support.
|
||||
* In host INI configuration, it will give boost(+) or reduction(-)
|
||||
* percentage value and host will deliver actual weighted number
|
||||
* based on 100. For example:
|
||||
* If percentage value in INI is 20, then host will give 120 (100 * 1.2)
|
||||
* as mlo_etp_weightage_pcnt.
|
||||
* If percentage value in INI is -20, then host will give 80 (100 * 0.8)
|
||||
* as mlo_etp_weightage_pcnt.
|
||||
*/
|
||||
A_UINT32 mlo_etp_weightage_pcnt;
|
||||
} wmi_roam_cnd_scoring_param;
|
||||
|
||||
typedef struct {
|
||||
|
|
@ -27491,6 +27614,8 @@ typedef struct {
|
|||
A_UINT32 tlv_header;
|
||||
/** Maximum number of ndp sessions supported by the Firmware */
|
||||
A_UINT32 max_ndp_sessions;
|
||||
/** Maximum number of nan pairing sessions supported by the Firmware */
|
||||
A_UINT32 max_pairing_sessions;
|
||||
} wmi_nan_capabilities;
|
||||
|
||||
/** NAN DATA CMD's */
|
||||
|
|
@ -27595,6 +27720,10 @@ typedef struct {
|
|||
A_UINT32 nan_passphrase_len;
|
||||
/** Actual number of bytes in TLV nan_servicename */
|
||||
A_UINT32 nan_servicename_len;
|
||||
/** NAN Cipher Suite Capability field */
|
||||
A_UINT32 nan_csid_cap;
|
||||
/** GTK protection is required for the NDP */
|
||||
A_UINT32 nan_gtk_required;
|
||||
/**
|
||||
* TLV (tag length value) parameters follow the ndp_initiator_req
|
||||
* structure. The TLV's are:
|
||||
|
|
@ -27640,6 +27769,10 @@ typedef struct {
|
|||
A_UINT32 nan_passphrase_len;
|
||||
/** Actual number of bytes in TLV nan_servicename */
|
||||
A_UINT32 nan_servicename_len;
|
||||
/** NAN Cipher Suite Capability field */
|
||||
A_UINT32 nan_csid_cap;
|
||||
/** GTK protection is required for the NDP */
|
||||
A_UINT32 nan_gtk_required;
|
||||
/**
|
||||
* TLV (tag length value) parameters follow the ndp_responder_req
|
||||
* structure. The TLV's are:
|
||||
|
|
@ -27910,6 +28043,10 @@ typedef struct {
|
|||
wmi_mac_addr self_ndi_mac_addr;
|
||||
/** Number of bytes in TLV service_id */
|
||||
A_UINT32 service_id_len;
|
||||
/** NAN Cipher Suite Capability field */
|
||||
A_UINT32 nan_csid_cap;
|
||||
/** GTK protection is required for the NDP */
|
||||
A_UINT32 nan_gtk_required;
|
||||
/**
|
||||
* TLV (tag length value) parameters follow the ndp_indication
|
||||
* structure. The TLV's are:
|
||||
|
|
@ -34168,6 +34305,7 @@ typedef enum {
|
|||
WMI_REQUEST_CTRL_PATH_T2LM_STAT = 14,
|
||||
WMI_REQUEST_CTRL_PATH_BLANKING_STAT = 15,
|
||||
WMI_REQUEST_CTRL_PATH_PEER_STAT = 16,
|
||||
WMI_REQUEST_CTRL_PATH_VDEV_DEBUG_STAT = 17,
|
||||
} wmi_ctrl_path_stats_id;
|
||||
|
||||
typedef enum {
|
||||
|
|
@ -34653,6 +34791,18 @@ typedef enum wmi_hw_mode_config_type {
|
|||
#define WMI_EXT_MLD_OPERATION_PARAMETER_UPDATE_SUPP_GET(ext_mld_capability) WMI_GET_BITS(ext_mld_capability, 0, 1)
|
||||
#define WMI_EXT_MLD_OPERATION_PARAMETER_UPDATE_SUPP_SET(ext_mld_capability, value) WMI_SET_BITS(ext_mld_capability, 0, 1, value)
|
||||
|
||||
/*
|
||||
* 11BE MSD Capability Set and Get macros
|
||||
*/
|
||||
#define WMI_MEDIUM_SYNC_DURATION_GET(msd_capability) WMI_GET_BITS(msd_capability, 0, 8)
|
||||
#define WMI_MEDIUM_SYNC_DURATION_SET(msd_capability,value) WMI_SET_BITS(msd_capability, 0, 8, value)
|
||||
|
||||
#define WMI_MEDIUM_SYNC_OFDM_ED_THRESHOLD_GET(msd_capability) WMI_GET_BITS(msd_capability, 8, 4)
|
||||
#define WMI_MEDIUM_SYNC_OFDM_ED_THRESHOLD_SET(msd_capability, value) WMI_SET_BITS(msd_capability, 8, 4, value)
|
||||
|
||||
#define WMI_MEDIUM_SYNC_MAX_NO_TXOPS_GET(msd_capability) WMI_GET_BITS(msd_capability, 12, 4)
|
||||
#define WMI_MEDIUM_SYNC_MAX_NO_TXOPS_SET(msd_capability, value) WMI_SET_BITS(msd_capability, 12, 4, value)
|
||||
|
||||
typedef struct {
|
||||
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_MAC_PHY_CAPABILITIES */
|
||||
/* hw_mode_id - identify a particular set of HW characteristics, as specified
|
||||
|
|
@ -34936,6 +35086,15 @@ typedef struct {
|
|||
};
|
||||
A_UINT32 ext_mld_capability;
|
||||
};
|
||||
union {
|
||||
struct {
|
||||
A_UINT32 medium_sync_duration:8,
|
||||
medium_sync_ofdm_ed_threshold:4,
|
||||
medium_sync_max_no_txops:4,
|
||||
reserved4: 16;
|
||||
};
|
||||
A_UINT32 msd_capability;
|
||||
};
|
||||
} WMI_MAC_PHY_CAPABILITIES_EXT;
|
||||
|
||||
typedef struct {
|
||||
|
|
@ -37617,6 +37776,16 @@ typedef struct {
|
|||
#define TWT_EN_DIS_FLAGS_GET_B_R_TWT(flag) WMI_GET_BITS(flag, 6, 1)
|
||||
#define TWT_EN_DIS_FLAGS_SET_B_R_TWT(flag, val) WMI_SET_BITS(flag, 6, 1, val)
|
||||
|
||||
/*
|
||||
* disable autonomous bTWT session delete feature
|
||||
* This feature will delete client triggered session when number of clients
|
||||
* joined decreases to 0.
|
||||
*/
|
||||
#define TWT_EN_DIS_FLAGS_GET_DIS_BTWT_AUTO_DELETE(flag) \
|
||||
WMI_GET_BITS(flag, 7, 1)
|
||||
#define TWT_EN_DIS_FLAGS_SET_DIS_BTWT_AUTO_DELETE(flag, val) \
|
||||
WMI_SET_BITS(flag, 7, 1, val)
|
||||
|
||||
typedef struct {
|
||||
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_twt_enable_cmd_fixed_param */
|
||||
/** pdev_id for identifying the MAC. See macros starting with WMI_PDEV_ID_ for values. In non-DBDC case host should set it to 0
|
||||
|
|
@ -43455,6 +43624,28 @@ typedef enum {
|
|||
WMI_MLO_LINK_FORCE_REASON_TDLS = 4, /* Set force specific links because of 11BE MLO TDLS setup/teardown */
|
||||
} WMI_MLO_LINK_FORCE_REASON;
|
||||
|
||||
#define WMI_MLO_CONTROL_FLAGS_GET_OVERWRITE_FORCE_ACTIVE(mlo_flags) WMI_GET_BITS(control_flags, 0, 1)
|
||||
#define WMI_MLO_CONTROL_FLAGS_SET_OVERWRITE_FORCE_ACTIVE(mlo_flags, value) WMI_SET_BITS(control_flags, 0, 1, value)
|
||||
#define WMI_MLO_CONTROL_FLAGS_GET_OVERWRITE_FORCE_INACTIVE(mlo_flags) WMI_GET_BITS(control_flags, 1, 1)
|
||||
#define WMI_MLO_CONTROL_FLAGS_SET_OVERWRITE_FORCE_INACTIVE(mlo_flags, value) WMI_SET_BITS(control_flags, 1, 1, value)
|
||||
|
||||
/*
|
||||
* This structure is used for passing wmi_mlo_control_flags.
|
||||
* When force_mode is WMI_MLO_LINK_FORCE_ACTIVE or WMI_MLO_LINK_FORCE_INACTIVE
|
||||
* host can pass below control flags, to indicate if FW need to clear earlier
|
||||
* force bitmap config.
|
||||
*/
|
||||
typedef struct {
|
||||
union {
|
||||
struct {
|
||||
A_UINT32 overwrite_force_active_bitmap:1, /* indicate overwrite all earlier force_active bitmaps */
|
||||
overwrite_force_inactive_bitmap:1, /* indicate overwrite all earlier force_inactive bitmaps */
|
||||
unused: 30;
|
||||
};
|
||||
A_UINT32 control_flags;
|
||||
};
|
||||
} wmi_mlo_control_flags;
|
||||
|
||||
typedef struct wmi_mlo_link_set_active_cmd
|
||||
{
|
||||
/** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_mlo_link_set_active_cmd_fixed_param; */
|
||||
|
|
@ -43463,12 +43654,21 @@ typedef struct wmi_mlo_link_set_active_cmd
|
|||
A_UINT32 force_mode;
|
||||
/** reason of force link active / inactive, enum WMI_MLO_LINK_FORCE_REASON */
|
||||
A_UINT32 reason;
|
||||
/* indicate use vdev_id bitmap or link_id_bitmap */
|
||||
A_UINT32 use_ieee_link_id_bitmap;
|
||||
|
||||
wmi_mac_addr ap_mld_mac_addr;
|
||||
|
||||
wmi_mlo_control_flags ctrl_flags;
|
||||
/* The TLVs follows this structure:
|
||||
* wmi_mlo_set_active_link_number_param link_number_param[];
|
||||
* Link number parameters, optional TLV.
|
||||
* Present when force type is WMI_MLO_LINK_FORCE_ACTIVE_LINK_NUM or
|
||||
* WMI_MLO_LINK_FORCE_INACTIVE_LINK_NUM.
|
||||
* In other cases the length of array should be 0.
|
||||
*---
|
||||
* If use_ieee_link_id_bitmap equals 0 vdev_id_bitmap[] & vdev_id_bitmap2[]
|
||||
* are valid.
|
||||
* A_UINT32 vdev_id_bitmap[];
|
||||
* Optional TLV, present when force type is WMI_MLO_LINK_FORCE_ACTIVE
|
||||
* or WMI_MLO_LINK_FORCE_INACTIVE or WMI_MLO_LINK_NO_FORCE,
|
||||
|
|
@ -43480,6 +43680,18 @@ typedef struct wmi_mlo_link_set_active_cmd
|
|||
* For force mode WMI_MLO_LINK_FORCE_ACTIVE_INACTIVE vdev_id_bitmap2[]
|
||||
* carry the inactive vdev bitmap.
|
||||
* In other cases the length of the array should be 0.
|
||||
*---
|
||||
* If use_ieee_link_id_bitmap equals 1 ieee_link_id_bitmap[] &
|
||||
* ieee_link_id_bitmap2[] are valid.
|
||||
* A_UINT32 ieee_link_id_bitmap[];
|
||||
* present for WMI_MLO_LINK_FORCE_ACTIVE
|
||||
* or WMI_MLO_LINK_FORCE_INACTIVE or WMI_MLO_LINK_NO_FORCE
|
||||
* or WMI_MLO_LINK_FORCE_ACTIVE_LINK_NUM or
|
||||
* WMI_MLO_LINK_FORCE_INACTIVE_LINK_NUM
|
||||
* A_UINT32 ieee_link_id_bitmap2[];
|
||||
* For force mode WMI_MLO_LINK_FORCE_ACTIVE_INACTIVE ieee_link_id_bitmap2[]
|
||||
* carry the inactive linkid bitmap.
|
||||
* In other cases the length of the array should be 0.
|
||||
*/
|
||||
} wmi_mlo_link_set_active_cmd_fixed_param;
|
||||
|
||||
|
|
@ -43509,9 +43721,20 @@ typedef struct wmi_mlo_link_set_active_resp_event
|
|||
/** Return status. 0 for success, non-zero otherwise */
|
||||
A_UINT32 status;
|
||||
|
||||
/* indicate use vdev_id bitmap or link_id_bitmap */
|
||||
A_UINT32 use_ieee_link_id_bitmap;
|
||||
|
||||
wmi_mac_addr ap_mld_mac_addr;
|
||||
|
||||
/* The TLVs follows this structure:
|
||||
*---
|
||||
* If use_ieee_link_id_bitmap equals 0, vdev_bitmap[] are valid.
|
||||
* A_UINT32 force_active_vdev_bitmap[]; <-- current force active vdev.
|
||||
* A_UINT32 force_inactive_vdev_bitmap[]; <-- current force inactive vdevs
|
||||
*---
|
||||
* If use_ieee_link_id_bitmap equals 1, ieee_link_id_bitmap[] are valid.
|
||||
* A_UINT32 force_active_ieee_link_id_bitmap[];
|
||||
* A_UINT32 force_inactive_ieee_link_id_bitmap[];
|
||||
*/
|
||||
} wmi_mlo_link_set_active_resp_event_fixed_param;
|
||||
|
||||
|
|
@ -43556,6 +43779,8 @@ typedef struct {
|
|||
A_UINT32 pdev_id;
|
||||
/** reason_code: of type WMI_TEARDOWN_REASON_TYPE */
|
||||
A_UINT32 reason_code;
|
||||
/* trigger_umac_reset : of type A_BOOL to indicate the umac reset for the partner chip. */
|
||||
A_UINT32 trigger_umac_reset;
|
||||
} wmi_mlo_teardown_fixed_param;
|
||||
|
||||
typedef struct {
|
||||
|
|
@ -43704,6 +43929,12 @@ typedef struct {
|
|||
/** MLO Peer's current link MAC address */
|
||||
wmi_mac_addr link_macaddr;
|
||||
|
||||
/** mapping_switch_time from the T2LM IE */
|
||||
A_UINT32 mapping_switch_time;
|
||||
|
||||
/** expected_duration from the T2LM IE, in units of TUs */
|
||||
A_UINT32 expected_duration;
|
||||
|
||||
/**
|
||||
* Following this structure is the TLV:
|
||||
* - struct wmi_tid_to_link_map tid_to_link_map[];
|
||||
|
|
@ -45174,6 +45405,29 @@ typedef struct {
|
|||
A_UINT32 rf_path;
|
||||
} wmi_pdev_set_rf_path_cmd_fixed_param;
|
||||
|
||||
typedef struct {
|
||||
/*
|
||||
* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_set_rf_path_event_fixed_param
|
||||
*/
|
||||
A_UINT32 tlv_header;
|
||||
/* pdev_id for identifying the MAC */
|
||||
A_UINT32 pdev_id;
|
||||
/*
|
||||
* rf_path :
|
||||
* 0 - primary RF path
|
||||
* 1 - secondary RF path
|
||||
*/
|
||||
A_UINT32 rf_path;
|
||||
/*
|
||||
* status :
|
||||
* TRUE (0) - for recieved and cache the value in FW
|
||||
* FALSE (1) :
|
||||
* a. pdev_id for which secondary RF path is not available
|
||||
* b. caching of the rf_path got failed in FW
|
||||
*/
|
||||
A_UINT32 status;
|
||||
} wmi_pdev_set_rf_path_event_fixed_param;
|
||||
|
||||
#define WMI_SET_RX_PEER_STATS_RESP_TYPE(rx_params, value) \
|
||||
WMI_SET_BITS(rx_params, 0, 1, value)
|
||||
#define WMI_GET_RX_PEER_STATS_RESP_TYPE(rx_params) \
|
||||
|
|
@ -45280,6 +45534,62 @@ typedef struct {
|
|||
A_UINT32 pause_dur_ms;
|
||||
} wmi_vdev_pause_cmd_fixed_param;
|
||||
|
||||
typedef struct {
|
||||
A_UINT32 tlv_header;
|
||||
A_UINT32 ieee_link_id; /* key to identify a link */
|
||||
wmi_channel wmi_chan;
|
||||
} wmi_mlo_link_bss_param;
|
||||
|
||||
typedef struct {
|
||||
A_UINT32 tlv_header;
|
||||
wmi_mac_addr ap_mld_macaddr;
|
||||
|
||||
/*
|
||||
* The TLVs listed below follow this fixed_param TLV:
|
||||
* wmi_mlo_link_bss_param link_bss_params[]:
|
||||
* an array of links to be updated
|
||||
*/
|
||||
} wmi_mlo_set_link_bss_params_cmd_fixed_param;
|
||||
|
||||
typedef enum _WMI_LINK_SWITCH_REASON{
|
||||
WMI_MLO_LINK_SWITCH_REASON_RSSI_CHANGE = 1,
|
||||
WMI_MLO_LINK_SWITCH_REASON_LOW_QUALITY = 2,
|
||||
WMI_MLO_LINK_SWITCH_REASON_C2_CHANGE = 3,
|
||||
WMI_MLO_LINK_SWITCH_REASON_HOST_FORCE = 4,
|
||||
WMI_MLO_LINK_SWITCH_REASON_T2LM = 5,
|
||||
WMI_MLO_LINK_SWITCH_REASON_MAX,
|
||||
} WMI_LINK_SWITCH_REASON;
|
||||
|
||||
typedef struct {
|
||||
A_UINT32 tlv_header;
|
||||
|
||||
A_UINT32 vdev_id; /*the vdev id assigned to curr_ieee_link_id*/
|
||||
A_UINT32 curr_ieee_link_id; /*current link id on above vdev_id*/
|
||||
A_UINT32 new_ieee_link_id; /*new link id on above vdev_id*/
|
||||
A_UINT32 new_primary_freq; /*primay_freq for the new link on the vdev, in units of MHZ*/
|
||||
A_UINT32 new_phymode; /*phymode for the new link on the vdev, see WLAN_PHY_MODE for definitions*/
|
||||
A_UINT32 reason; /*see WMI_LINK_SWITCH_REASON for definition*/
|
||||
} wmi_mlo_link_switch_req_evt_fixed_param;
|
||||
|
||||
typedef enum _WMI_LINK_SWITCH_CNF_REASON{
|
||||
WMI_MLO_LINK_SWITCH_CNF_REASON_BSS_PARAMS_CHANGED = 1,
|
||||
WMI_MLO_LINK_SWITCH_CNF_REASON_CONCURRECNY_CONFLICT = 2,
|
||||
WMI_MLO_LINK_SWITCH_CNF_REASON_HOST_INTERNAL_ERROR = 3,
|
||||
WMI_MLO_LINK_SWITCH_CNF_REASON_MAX,
|
||||
} WMI_LINK_SWITCH_CNF_REASON;
|
||||
|
||||
typedef enum _WMI_LINK_SWITCH_CNF_STATUS{
|
||||
WMI_MLO_LINK_SWITCH_CNF_STATUS_ACCEPT = 0,
|
||||
WMI_MLO_LINK_SWITCH_CNF_STATUS_REJECT = 1,
|
||||
} WMI_LINK_SWITCH_CNF_STATUS;
|
||||
|
||||
typedef struct {
|
||||
A_UINT32 tlv_header;
|
||||
|
||||
A_UINT32 vdev_id;
|
||||
A_UINT32 status; /*see definition of WMI_LINK_SWITCH_CNF_STATUS*/
|
||||
A_UINT32 reason; /*see definition of WMI_LINK_SWITCH_CNF_REASON*/
|
||||
} wmi_mlo_link_switch_cnf_fixed_param;
|
||||
|
||||
|
||||
/* ADD NEW DEFS HERE */
|
||||
|
|
|
|||
|
|
@ -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_ 1319
|
||||
#define __WMI_REVISION_ 1336
|
||||
|
||||
/** 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/qcn6432/HALcomdef.h
Normal file
106
drivers/staging/fw-api/hw/qcn6432/HALcomdef.h
Normal file
|
|
@ -0,0 +1,106 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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 */
|
||||
|
||||
488
drivers/staging/fw-api/hw/qcn6432/HALhwio.h
Normal file
488
drivers/staging/fw-api/hw/qcn6432/HALhwio.h
Normal file
|
|
@ -0,0 +1,488 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
|
||||
/*
|
||||
* 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
|
||||
|
||||
#ifdef WCSS_IE_EN
|
||||
extern uint32 registerRead(unsigned long addr);
|
||||
extern void registerWrite(unsigned long addr, uint32 value);
|
||||
#define __inp(port) registerRead(port)
|
||||
#define __inpw(port) registerRead(port)
|
||||
#define __inpdw(port) registerRead(port)
|
||||
#define __outp(port, val) registerWrite(port, val)
|
||||
#define __outpw(port, val) registerWrite(port, val)
|
||||
#define __outpdw(port, val) registerWrite(port, val)
|
||||
#else
|
||||
#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
|
||||
|
||||
|
||||
#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 */
|
||||
|
||||
164
drivers/staging/fw-api/hw/qcn6432/ack_report.h
Normal file
164
drivers/staging/fw-api/hw/qcn6432/ack_report.h
Normal file
|
|
@ -0,0 +1,164 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
|
||||
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
|
||||
176
drivers/staging/fw-api/hw/qcn6432/buffer_addr_info.h
Normal file
176
drivers/staging/fw-api/hw/qcn6432/buffer_addr_info.h
Normal file
|
|
@ -0,0 +1,176 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
281
drivers/staging/fw-api/hw/qcn6432/ce_src_desc.h
Normal file
281
drivers/staging/fw-api/hw/qcn6432/ce_src_desc.h
Normal file
|
|
@ -0,0 +1,281 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
252
drivers/staging/fw-api/hw/qcn6432/ce_stat_desc.h
Normal file
252
drivers/staging/fw-api/hw/qcn6432/ce_stat_desc.h
Normal file
|
|
@ -0,0 +1,252 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
375
drivers/staging/fw-api/hw/qcn6432/coex_rx_status.h
Normal file
375
drivers/staging/fw-api/hw/qcn6432/coex_rx_status.h
Normal file
|
|
@ -0,0 +1,375 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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.
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
481
drivers/staging/fw-api/hw/qcn6432/coex_tx_req.h
Normal file
481
drivers/staging/fw-api/hw/qcn6432/coex_tx_req.h
Normal file
|
|
@ -0,0 +1,481 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
340
drivers/staging/fw-api/hw/qcn6432/coex_tx_status.h
Normal file
340
drivers/staging/fw-api/hw/qcn6432/coex_tx_status.h
Normal file
|
|
@ -0,0 +1,340 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
240
drivers/staging/fw-api/hw/qcn6432/com_dtypes.h
Normal file
240
drivers/staging/fw-api/hw/qcn6432/com_dtypes.h
Normal file
|
|
@ -0,0 +1,240 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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 */
|
||||
219
drivers/staging/fw-api/hw/qcn6432/eht_sig_usr_mu_mimo_info.h
Normal file
219
drivers/staging/fw-api/hw/qcn6432/eht_sig_usr_mu_mimo_info.h
Normal file
|
|
@ -0,0 +1,219 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
250
drivers/staging/fw-api/hw/qcn6432/eht_sig_usr_ofdma_info.h
Normal file
250
drivers/staging/fw-api/hw/qcn6432/eht_sig_usr_ofdma_info.h
Normal file
|
|
@ -0,0 +1,250 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
159
drivers/staging/fw-api/hw/qcn6432/eht_sig_usr_su_info.h
Normal file
159
drivers/staging/fw-api/hw/qcn6432/eht_sig_usr_su_info.h
Normal file
|
|
@ -0,0 +1,159 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
700
drivers/staging/fw-api/hw/qcn6432/expected_response.h
Normal file
700
drivers/staging/fw-api/hw/qcn6432/expected_response.h
Normal file
|
|
@ -0,0 +1,700 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
418
drivers/staging/fw-api/hw/qcn6432/he_sig_a_mu_dl_info.h
Normal file
418
drivers/staging/fw-api/hw/qcn6432/he_sig_a_mu_dl_info.h
Normal file
|
|
@ -0,0 +1,418 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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")
|
||||
<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
|
||||
|
||||
|
||||
|
||||
#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
|
||||
215
drivers/staging/fw-api/hw/qcn6432/he_sig_a_mu_ul_info.h
Normal file
215
drivers/staging/fw-api/hw/qcn6432/he_sig_a_mu_ul_info.h
Normal file
|
|
@ -0,0 +1,215 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
540
drivers/staging/fw-api/hw/qcn6432/he_sig_a_su_info.h
Normal file
540
drivers/staging/fw-api/hw/qcn6432/he_sig_a_su_info.h
Normal file
|
|
@ -0,0 +1,540 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
81
drivers/staging/fw-api/hw/qcn6432/he_sig_b1_mu_info.h
Normal file
81
drivers/staging/fw-api/hw/qcn6432/he_sig_b1_mu_info.h
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
210
drivers/staging/fw-api/hw/qcn6432/he_sig_b2_mu_info.h
Normal file
210
drivers/staging/fw-api/hw/qcn6432/he_sig_b2_mu_info.h
Normal file
|
|
@ -0,0 +1,210 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
|
||||
|
||||
|
||||
#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
|
||||
216
drivers/staging/fw-api/hw/qcn6432/he_sig_b2_ofdma_info.h
Normal file
216
drivers/staging/fw-api/hw/qcn6432/he_sig_b2_ofdma_info.h
Normal file
|
|
@ -0,0 +1,216 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
292
drivers/staging/fw-api/hw/qcn6432/ht_sig_info.h
Normal file
292
drivers/staging/fw-api/hw/qcn6432/ht_sig_info.h
Normal file
|
|
@ -0,0 +1,292 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
200
drivers/staging/fw-api/hw/qcn6432/l_sig_a_info.h
Normal file
200
drivers/staging/fw-api/hw/qcn6432/l_sig_a_info.h
Normal file
|
|
@ -0,0 +1,200 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
98
drivers/staging/fw-api/hw/qcn6432/l_sig_b_info.h
Normal file
98
drivers/staging/fw-api/hw/qcn6432/l_sig_b_info.h
Normal file
|
|
@ -0,0 +1,98 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
82
drivers/staging/fw-api/hw/qcn6432/macrx_abort_request_info.h
Normal file
82
drivers/staging/fw-api/hw/qcn6432/macrx_abort_request_info.h
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
208
drivers/staging/fw-api/hw/qcn6432/mactx_eht_sig_usr_mu_mimo.h
Normal file
208
drivers/staging/fw-api/hw/qcn6432/mactx_eht_sig_usr_mu_mimo.h
Normal file
|
|
@ -0,0 +1,208 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
235
drivers/staging/fw-api/hw/qcn6432/mactx_eht_sig_usr_ofdma.h
Normal file
235
drivers/staging/fw-api/hw/qcn6432/mactx_eht_sig_usr_ofdma.h
Normal file
|
|
@ -0,0 +1,235 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
169
drivers/staging/fw-api/hw/qcn6432/mactx_eht_sig_usr_su.h
Normal file
169
drivers/staging/fw-api/hw/qcn6432/mactx_eht_sig_usr_su.h
Normal file
|
|
@ -0,0 +1,169 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
390
drivers/staging/fw-api/hw/qcn6432/mactx_he_sig_a_mu_dl.h
Normal file
390
drivers/staging/fw-api/hw/qcn6432/mactx_he_sig_a_mu_dl.h
Normal file
|
|
@ -0,0 +1,390 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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")
|
||||
<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
|
||||
202
drivers/staging/fw-api/hw/qcn6432/mactx_he_sig_a_mu_ul.h
Normal file
202
drivers/staging/fw-api/hw/qcn6432/mactx_he_sig_a_mu_ul.h
Normal file
|
|
@ -0,0 +1,202 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
497
drivers/staging/fw-api/hw/qcn6432/mactx_he_sig_a_su.h
Normal file
497
drivers/staging/fw-api/hw/qcn6432/mactx_he_sig_a_su.h
Normal file
|
|
@ -0,0 +1,497 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
101
drivers/staging/fw-api/hw/qcn6432/mactx_he_sig_b1_mu.h
Normal file
101
drivers/staging/fw-api/hw/qcn6432/mactx_he_sig_b1_mu.h
Normal file
|
|
@ -0,0 +1,101 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
199
drivers/staging/fw-api/hw/qcn6432/mactx_he_sig_b2_mu.h
Normal file
199
drivers/staging/fw-api/hw/qcn6432/mactx_he_sig_b2_mu.h
Normal file
|
|
@ -0,0 +1,199 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
|
||||
|
||||
|
||||
#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
|
||||
205
drivers/staging/fw-api/hw/qcn6432/mactx_he_sig_b2_ofdma.h
Normal file
205
drivers/staging/fw-api/hw/qcn6432/mactx_he_sig_b2_ofdma.h
Normal file
|
|
@ -0,0 +1,205 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
271
drivers/staging/fw-api/hw/qcn6432/mactx_ht_sig.h
Normal file
271
drivers/staging/fw-api/hw/qcn6432/mactx_ht_sig.h
Normal file
|
|
@ -0,0 +1,271 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
208
drivers/staging/fw-api/hw/qcn6432/mactx_l_sig_a.h
Normal file
208
drivers/staging/fw-api/hw/qcn6432/mactx_l_sig_a.h
Normal file
|
|
@ -0,0 +1,208 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
116
drivers/staging/fw-api/hw/qcn6432/mactx_l_sig_b.h
Normal file
116
drivers/staging/fw-api/hw/qcn6432/mactx_l_sig_b.h
Normal file
|
|
@ -0,0 +1,116 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
1079
drivers/staging/fw-api/hw/qcn6432/mactx_phy_desc.h
Normal file
1079
drivers/staging/fw-api/hw/qcn6432/mactx_phy_desc.h
Normal file
File diff suppressed because it is too large
Load diff
109
drivers/staging/fw-api/hw/qcn6432/mactx_service.h
Normal file
109
drivers/staging/fw-api/hw/qcn6432/mactx_service.h
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
347
drivers/staging/fw-api/hw/qcn6432/mactx_u_sig_eht_su_mu.h
Normal file
347
drivers/staging/fw-api/hw/qcn6432/mactx_u_sig_eht_su_mu.h
Normal file
|
|
@ -0,0 +1,347 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
249
drivers/staging/fw-api/hw/qcn6432/mactx_u_sig_eht_tb.h
Normal file
249
drivers/staging/fw-api/hw/qcn6432/mactx_u_sig_eht_tb.h
Normal file
|
|
@ -0,0 +1,249 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
1305
drivers/staging/fw-api/hw/qcn6432/mactx_user_desc_common.h
Normal file
1305
drivers/staging/fw-api/hw/qcn6432/mactx_user_desc_common.h
Normal file
File diff suppressed because it is too large
Load diff
473
drivers/staging/fw-api/hw/qcn6432/mactx_user_desc_per_user.h
Normal file
473
drivers/staging/fw-api/hw/qcn6432/mactx_user_desc_per_user.h
Normal file
|
|
@ -0,0 +1,473 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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 (frequency order) 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
|
||||
361
drivers/staging/fw-api/hw/qcn6432/mactx_vht_sig_a.h
Normal file
361
drivers/staging/fw-api/hw/qcn6432/mactx_vht_sig_a.h
Normal file
|
|
@ -0,0 +1,361 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
437
drivers/staging/fw-api/hw/qcn6432/mactx_vht_sig_b_mu160.h
Normal file
437
drivers/staging/fw-api/hw/qcn6432/mactx_vht_sig_b_mu160.h
Normal file
|
|
@ -0,0 +1,437 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
123
drivers/staging/fw-api/hw/qcn6432/mactx_vht_sig_b_mu20.h
Normal file
123
drivers/staging/fw-api/hw/qcn6432/mactx_vht_sig_b_mu20.h
Normal file
|
|
@ -0,0 +1,123 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
156
drivers/staging/fw-api/hw/qcn6432/mactx_vht_sig_b_mu40.h
Normal file
156
drivers/staging/fw-api/hw/qcn6432/mactx_vht_sig_b_mu40.h
Normal file
|
|
@ -0,0 +1,156 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
241
drivers/staging/fw-api/hw/qcn6432/mactx_vht_sig_b_mu80.h
Normal file
241
drivers/staging/fw-api/hw/qcn6432/mactx_vht_sig_b_mu80.h
Normal file
|
|
@ -0,0 +1,241 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
506
drivers/staging/fw-api/hw/qcn6432/mactx_vht_sig_b_su160.h
Normal file
506
drivers/staging/fw-api/hw/qcn6432/mactx_vht_sig_b_su160.h
Normal file
|
|
@ -0,0 +1,506 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
123
drivers/staging/fw-api/hw/qcn6432/mactx_vht_sig_b_su20.h
Normal file
123
drivers/staging/fw-api/hw/qcn6432/mactx_vht_sig_b_su20.h
Normal file
|
|
@ -0,0 +1,123 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
164
drivers/staging/fw-api/hw/qcn6432/mactx_vht_sig_b_su40.h
Normal file
164
drivers/staging/fw-api/hw/qcn6432/mactx_vht_sig_b_su40.h
Normal file
|
|
@ -0,0 +1,164 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
278
drivers/staging/fw-api/hw/qcn6432/mactx_vht_sig_b_su80.h
Normal file
278
drivers/staging/fw-api/hw/qcn6432/mactx_vht_sig_b_su80.h
Normal file
|
|
@ -0,0 +1,278 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
105
drivers/staging/fw-api/hw/qcn6432/mlo_sta_id_details.h
Normal file
105
drivers/staging/fw-api/hw/qcn6432/mlo_sta_id_details.h
Normal file
|
|
@ -0,0 +1,105 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
155
drivers/staging/fw-api/hw/qcn6432/mon_buffer_addr.h
Normal file
155
drivers/staging/fw-api/hw/qcn6432/mon_buffer_addr.h
Normal file
|
|
@ -0,0 +1,155 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
224
drivers/staging/fw-api/hw/qcn6432/mon_destination_ring.h
Normal file
224
drivers/staging/fw-api/hw/qcn6432/mon_destination_ring.h
Normal file
|
|
@ -0,0 +1,224 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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,250 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
137
drivers/staging/fw-api/hw/qcn6432/mon_drop.h
Normal file
137
drivers/staging/fw-api/hw/qcn6432/mon_drop.h
Normal file
|
|
@ -0,0 +1,137 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
212
drivers/staging/fw-api/hw/qcn6432/mon_ingress_ring.h
Normal file
212
drivers/staging/fw-api/hw/qcn6432/mon_ingress_ring.h
Normal file
|
|
@ -0,0 +1,212 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
308
drivers/staging/fw-api/hw/qcn6432/no_ack_report.h
Normal file
308
drivers/staging/fw-api/hw/qcn6432/no_ack_report.h
Normal file
|
|
@ -0,0 +1,308 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
|
||||
<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
|
||||
2619
drivers/staging/fw-api/hw/qcn6432/ofdma_trigger_details.h
Normal file
2619
drivers/staging/fw-api/hw/qcn6432/ofdma_trigger_details.h
Normal file
File diff suppressed because it is too large
Load diff
7454
drivers/staging/fw-api/hw/qcn6432/pcu_ppdu_setup_init.h
Normal file
7454
drivers/staging/fw-api/hw/qcn6432/pcu_ppdu_setup_init.h
Normal file
File diff suppressed because it is too large
Load diff
1399
drivers/staging/fw-api/hw/qcn6432/pdg_response.h
Normal file
1399
drivers/staging/fw-api/hw/qcn6432/pdg_response.h
Normal file
File diff suppressed because it is too large
Load diff
1033
drivers/staging/fw-api/hw/qcn6432/pdg_response_rate_setting.h
Normal file
1033
drivers/staging/fw-api/hw/qcn6432/pdg_response_rate_setting.h
Normal file
File diff suppressed because it is too large
Load diff
204
drivers/staging/fw-api/hw/qcn6432/pdg_tx_req.h
Normal file
204
drivers/staging/fw-api/hw/qcn6432/pdg_tx_req.h
Normal file
|
|
@ -0,0 +1,204 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
|
||||
|
||||
|
||||
#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
|
||||
|
||||
|
||||
#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
|
||||
214
drivers/staging/fw-api/hw/qcn6432/phyrx_abort_request_info.h
Normal file
214
drivers/staging/fw-api/hw/qcn6432/phyrx_abort_request_info.h
Normal file
|
|
@ -0,0 +1,214 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
403
drivers/staging/fw-api/hw/qcn6432/phyrx_common_user_info.h
Normal file
403
drivers/staging/fw-api/hw/qcn6432/phyrx_common_user_info.h
Normal file
|
|
@ -0,0 +1,403 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
390
drivers/staging/fw-api/hw/qcn6432/phyrx_he_sig_a_mu_dl.h
Normal file
390
drivers/staging/fw-api/hw/qcn6432/phyrx_he_sig_a_mu_dl.h
Normal file
|
|
@ -0,0 +1,390 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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")
|
||||
<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
|
||||
202
drivers/staging/fw-api/hw/qcn6432/phyrx_he_sig_a_mu_ul.h
Normal file
202
drivers/staging/fw-api/hw/qcn6432/phyrx_he_sig_a_mu_ul.h
Normal file
|
|
@ -0,0 +1,202 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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_UL_H_
|
||||
#define _PHYRX_HE_SIG_A_MU_UL_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#include "he_sig_a_mu_ul_info.h"
|
||||
#define NUM_OF_DWORDS_PHYRX_HE_SIG_A_MU_UL 2
|
||||
|
||||
#define NUM_OF_QWORDS_PHYRX_HE_SIG_A_MU_UL 1
|
||||
|
||||
|
||||
struct phyrx_he_sig_a_mu_ul {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
struct he_sig_a_mu_ul_info phyrx_he_sig_a_mu_ul_info_details;
|
||||
#else
|
||||
struct he_sig_a_mu_ul_info phyrx_he_sig_a_mu_ul_info_details;
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description PHYRX_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 PHYRX_HE_SIG_A_MU_UL_PHYRX_HE_SIG_A_MU_UL_INFO_DETAILS_FORMAT_INDICATION_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_MU_UL_PHYRX_HE_SIG_A_MU_UL_INFO_DETAILS_FORMAT_INDICATION_LSB 0
|
||||
#define PHYRX_HE_SIG_A_MU_UL_PHYRX_HE_SIG_A_MU_UL_INFO_DETAILS_FORMAT_INDICATION_MSB 0
|
||||
#define PHYRX_HE_SIG_A_MU_UL_PHYRX_HE_SIG_A_MU_UL_INFO_DETAILS_FORMAT_INDICATION_MASK 0x0000000000000001
|
||||
|
||||
|
||||
/* Description BSS_COLOR_ID
|
||||
|
||||
BSS color ID
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_MU_UL_PHYRX_HE_SIG_A_MU_UL_INFO_DETAILS_BSS_COLOR_ID_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_MU_UL_PHYRX_HE_SIG_A_MU_UL_INFO_DETAILS_BSS_COLOR_ID_LSB 1
|
||||
#define PHYRX_HE_SIG_A_MU_UL_PHYRX_HE_SIG_A_MU_UL_INFO_DETAILS_BSS_COLOR_ID_MSB 6
|
||||
#define PHYRX_HE_SIG_A_MU_UL_PHYRX_HE_SIG_A_MU_UL_INFO_DETAILS_BSS_COLOR_ID_MASK 0x000000000000007e
|
||||
|
||||
|
||||
/* Description SPATIAL_REUSE
|
||||
|
||||
Spatial reuse
|
||||
|
||||
<legal all>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_MU_UL_PHYRX_HE_SIG_A_MU_UL_INFO_DETAILS_SPATIAL_REUSE_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_MU_UL_PHYRX_HE_SIG_A_MU_UL_INFO_DETAILS_SPATIAL_REUSE_LSB 7
|
||||
#define PHYRX_HE_SIG_A_MU_UL_PHYRX_HE_SIG_A_MU_UL_INFO_DETAILS_SPATIAL_REUSE_MSB 22
|
||||
#define PHYRX_HE_SIG_A_MU_UL_PHYRX_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 PHYRX_HE_SIG_A_MU_UL_PHYRX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_0A_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_MU_UL_PHYRX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_0A_LSB 23
|
||||
#define PHYRX_HE_SIG_A_MU_UL_PHYRX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_0A_MSB 23
|
||||
#define PHYRX_HE_SIG_A_MU_UL_PHYRX_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 PHYRX_HE_SIG_A_MU_UL_PHYRX_HE_SIG_A_MU_UL_INFO_DETAILS_TRANSMIT_BW_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_MU_UL_PHYRX_HE_SIG_A_MU_UL_INFO_DETAILS_TRANSMIT_BW_LSB 24
|
||||
#define PHYRX_HE_SIG_A_MU_UL_PHYRX_HE_SIG_A_MU_UL_INFO_DETAILS_TRANSMIT_BW_MSB 25
|
||||
#define PHYRX_HE_SIG_A_MU_UL_PHYRX_HE_SIG_A_MU_UL_INFO_DETAILS_TRANSMIT_BW_MASK 0x0000000003000000
|
||||
|
||||
|
||||
/* Description RESERVED_0B
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_MU_UL_PHYRX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_0B_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_MU_UL_PHYRX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_0B_LSB 26
|
||||
#define PHYRX_HE_SIG_A_MU_UL_PHYRX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_0B_MSB 31
|
||||
#define PHYRX_HE_SIG_A_MU_UL_PHYRX_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 PHYRX_HE_SIG_A_MU_UL_PHYRX_HE_SIG_A_MU_UL_INFO_DETAILS_TXOP_DURATION_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_MU_UL_PHYRX_HE_SIG_A_MU_UL_INFO_DETAILS_TXOP_DURATION_LSB 32
|
||||
#define PHYRX_HE_SIG_A_MU_UL_PHYRX_HE_SIG_A_MU_UL_INFO_DETAILS_TXOP_DURATION_MSB 38
|
||||
#define PHYRX_HE_SIG_A_MU_UL_PHYRX_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 PHYRX_HE_SIG_A_MU_UL_PHYRX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_1A_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_MU_UL_PHYRX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_1A_LSB 39
|
||||
#define PHYRX_HE_SIG_A_MU_UL_PHYRX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_1A_MSB 47
|
||||
#define PHYRX_HE_SIG_A_MU_UL_PHYRX_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 PHYRX_HE_SIG_A_MU_UL_PHYRX_HE_SIG_A_MU_UL_INFO_DETAILS_CRC_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_MU_UL_PHYRX_HE_SIG_A_MU_UL_INFO_DETAILS_CRC_LSB 48
|
||||
#define PHYRX_HE_SIG_A_MU_UL_PHYRX_HE_SIG_A_MU_UL_INFO_DETAILS_CRC_MSB 51
|
||||
#define PHYRX_HE_SIG_A_MU_UL_PHYRX_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 PHYRX_HE_SIG_A_MU_UL_PHYRX_HE_SIG_A_MU_UL_INFO_DETAILS_TAIL_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_MU_UL_PHYRX_HE_SIG_A_MU_UL_INFO_DETAILS_TAIL_LSB 52
|
||||
#define PHYRX_HE_SIG_A_MU_UL_PHYRX_HE_SIG_A_MU_UL_INFO_DETAILS_TAIL_MSB 57
|
||||
#define PHYRX_HE_SIG_A_MU_UL_PHYRX_HE_SIG_A_MU_UL_INFO_DETAILS_TAIL_MASK 0x03f0000000000000
|
||||
|
||||
|
||||
/* Description RESERVED_1B
|
||||
|
||||
<legal 0>
|
||||
*/
|
||||
|
||||
#define PHYRX_HE_SIG_A_MU_UL_PHYRX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_1B_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_MU_UL_PHYRX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_1B_LSB 58
|
||||
#define PHYRX_HE_SIG_A_MU_UL_PHYRX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_1B_MSB 62
|
||||
#define PHYRX_HE_SIG_A_MU_UL_PHYRX_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 PHYRX_HE_SIG_A_MU_UL_PHYRX_HE_SIG_A_MU_UL_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
|
||||
#define PHYRX_HE_SIG_A_MU_UL_PHYRX_HE_SIG_A_MU_UL_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 63
|
||||
#define PHYRX_HE_SIG_A_MU_UL_PHYRX_HE_SIG_A_MU_UL_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 63
|
||||
#define PHYRX_HE_SIG_A_MU_UL_PHYRX_HE_SIG_A_MU_UL_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x8000000000000000
|
||||
|
||||
|
||||
|
||||
#endif // PHYRX_HE_SIG_A_MU_UL
|
||||
497
drivers/staging/fw-api/hw/qcn6432/phyrx_he_sig_a_su.h
Normal file
497
drivers/staging/fw-api/hw/qcn6432/phyrx_he_sig_a_su.h
Normal file
|
|
@ -0,0 +1,497 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
101
drivers/staging/fw-api/hw/qcn6432/phyrx_he_sig_b1_mu.h
Normal file
101
drivers/staging/fw-api/hw/qcn6432/phyrx_he_sig_b1_mu.h
Normal file
|
|
@ -0,0 +1,101 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
198
drivers/staging/fw-api/hw/qcn6432/phyrx_he_sig_b2_mu.h
Normal file
198
drivers/staging/fw-api/hw/qcn6432/phyrx_he_sig_b2_mu.h
Normal file
|
|
@ -0,0 +1,198 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
|
||||
|
||||
#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
|
||||
205
drivers/staging/fw-api/hw/qcn6432/phyrx_he_sig_b2_ofdma.h
Normal file
205
drivers/staging/fw-api/hw/qcn6432/phyrx_he_sig_b2_ofdma.h
Normal file
|
|
@ -0,0 +1,205 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
271
drivers/staging/fw-api/hw/qcn6432/phyrx_ht_sig.h
Normal file
271
drivers/staging/fw-api/hw/qcn6432/phyrx_ht_sig.h
Normal file
|
|
@ -0,0 +1,271 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
208
drivers/staging/fw-api/hw/qcn6432/phyrx_l_sig_a.h
Normal file
208
drivers/staging/fw-api/hw/qcn6432/phyrx_l_sig_a.h
Normal file
|
|
@ -0,0 +1,208 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
116
drivers/staging/fw-api/hw/qcn6432/phyrx_l_sig_b.h
Normal file
116
drivers/staging/fw-api/hw/qcn6432/phyrx_l_sig_b.h
Normal file
|
|
@ -0,0 +1,116 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
911
drivers/staging/fw-api/hw/qcn6432/phyrx_location.h
Normal file
911
drivers/staging/fw-api/hw/qcn6432/phyrx_location.h
Normal file
|
|
@ -0,0 +1,911 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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,98 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
1135
drivers/staging/fw-api/hw/qcn6432/phyrx_pkt_end.h
Normal file
1135
drivers/staging/fw-api/hw/qcn6432/phyrx_pkt_end.h
Normal file
File diff suppressed because it is too large
Load diff
1159
drivers/staging/fw-api/hw/qcn6432/phyrx_pkt_end_info.h
Normal file
1159
drivers/staging/fw-api/hw/qcn6432/phyrx_pkt_end_info.h
Normal file
File diff suppressed because it is too large
Load diff
2243
drivers/staging/fw-api/hw/qcn6432/phyrx_rssi_legacy.h
Normal file
2243
drivers/staging/fw-api/hw/qcn6432/phyrx_rssi_legacy.h
Normal file
File diff suppressed because it is too large
Load diff
361
drivers/staging/fw-api/hw/qcn6432/phyrx_vht_sig_a.h
Normal file
361
drivers/staging/fw-api/hw/qcn6432/phyrx_vht_sig_a.h
Normal file
|
|
@ -0,0 +1,361 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
242
drivers/staging/fw-api/hw/qcn6432/phytx_abort_request_info.h
Normal file
242
drivers/staging/fw-api/hw/qcn6432/phytx_abort_request_info.h
Normal file
|
|
@ -0,0 +1,242 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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,89 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
993
drivers/staging/fw-api/hw/qcn6432/receive_rssi_info.h
Normal file
993
drivers/staging/fw-api/hw/qcn6432/receive_rssi_info.h
Normal file
|
|
@ -0,0 +1,993 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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_RSSI_INFO_H_
|
||||
#define _RECEIVE_RSSI_INFO_H_
|
||||
#if !defined(__ASSEMBLER__)
|
||||
#endif
|
||||
|
||||
#define NUM_OF_DWORDS_RECEIVE_RSSI_INFO 16
|
||||
|
||||
|
||||
struct receive_rssi_info {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
uint32_t rssi_pri20_chain0 : 8, // [7:0]
|
||||
rssi_ext20_chain0 : 8, // [15:8]
|
||||
rssi_ext40_low20_chain0 : 8, // [23:16]
|
||||
rssi_ext40_high20_chain0 : 8; // [31:24]
|
||||
uint32_t rssi_ext80_low20_chain0 : 8, // [7:0]
|
||||
rssi_ext80_low_high20_chain0 : 8, // [15:8]
|
||||
rssi_ext80_high_low20_chain0 : 8, // [23:16]
|
||||
rssi_ext80_high20_chain0 : 8; // [31:24]
|
||||
uint32_t rssi_ext160_0_chain0 : 8, // [7:0]
|
||||
rssi_ext160_1_chain0 : 8, // [15:8]
|
||||
rssi_ext160_2_chain0 : 8, // [23:16]
|
||||
rssi_ext160_3_chain0 : 8; // [31:24]
|
||||
uint32_t rssi_ext160_4_chain0 : 8, // [7:0]
|
||||
rssi_ext160_5_chain0 : 8, // [15:8]
|
||||
rssi_ext160_6_chain0 : 8, // [23:16]
|
||||
rssi_ext160_7_chain0 : 8; // [31:24]
|
||||
uint32_t rssi_pri20_chain1 : 8, // [7:0]
|
||||
rssi_ext20_chain1 : 8, // [15:8]
|
||||
rssi_ext40_low20_chain1 : 8, // [23:16]
|
||||
rssi_ext40_high20_chain1 : 8; // [31:24]
|
||||
uint32_t rssi_ext80_low20_chain1 : 8, // [7:0]
|
||||
rssi_ext80_low_high20_chain1 : 8, // [15:8]
|
||||
rssi_ext80_high_low20_chain1 : 8, // [23:16]
|
||||
rssi_ext80_high20_chain1 : 8; // [31:24]
|
||||
uint32_t rssi_ext160_0_chain1 : 8, // [7:0]
|
||||
rssi_ext160_1_chain1 : 8, // [15:8]
|
||||
rssi_ext160_2_chain1 : 8, // [23:16]
|
||||
rssi_ext160_3_chain1 : 8; // [31:24]
|
||||
uint32_t rssi_ext160_4_chain1 : 8, // [7:0]
|
||||
rssi_ext160_5_chain1 : 8, // [15:8]
|
||||
rssi_ext160_6_chain1 : 8, // [23:16]
|
||||
rssi_ext160_7_chain1 : 8; // [31:24]
|
||||
uint32_t rssi_pri20_chain2 : 8, // [7:0]
|
||||
rssi_ext20_chain2 : 8, // [15:8]
|
||||
rssi_ext40_low20_chain2 : 8, // [23:16]
|
||||
rssi_ext40_high20_chain2 : 8; // [31:24]
|
||||
uint32_t rssi_ext80_low20_chain2 : 8, // [7:0]
|
||||
rssi_ext80_low_high20_chain2 : 8, // [15:8]
|
||||
rssi_ext80_high_low20_chain2 : 8, // [23:16]
|
||||
rssi_ext80_high20_chain2 : 8; // [31:24]
|
||||
uint32_t rssi_ext160_0_chain2 : 8, // [7:0]
|
||||
rssi_ext160_1_chain2 : 8, // [15:8]
|
||||
rssi_ext160_2_chain2 : 8, // [23:16]
|
||||
rssi_ext160_3_chain2 : 8; // [31:24]
|
||||
uint32_t rssi_ext160_4_chain2 : 8, // [7:0]
|
||||
rssi_ext160_5_chain2 : 8, // [15:8]
|
||||
rssi_ext160_6_chain2 : 8, // [23:16]
|
||||
rssi_ext160_7_chain2 : 8; // [31:24]
|
||||
uint32_t rssi_pri20_chain3 : 8, // [7:0]
|
||||
rssi_ext20_chain3 : 8, // [15:8]
|
||||
rssi_ext40_low20_chain3 : 8, // [23:16]
|
||||
rssi_ext40_high20_chain3 : 8; // [31:24]
|
||||
uint32_t rssi_ext80_low20_chain3 : 8, // [7:0]
|
||||
rssi_ext80_low_high20_chain3 : 8, // [15:8]
|
||||
rssi_ext80_high_low20_chain3 : 8, // [23:16]
|
||||
rssi_ext80_high20_chain3 : 8; // [31:24]
|
||||
uint32_t rssi_ext160_0_chain3 : 8, // [7:0]
|
||||
rssi_ext160_1_chain3 : 8, // [15:8]
|
||||
rssi_ext160_2_chain3 : 8, // [23:16]
|
||||
rssi_ext160_3_chain3 : 8; // [31:24]
|
||||
uint32_t rssi_ext160_4_chain3 : 8, // [7:0]
|
||||
rssi_ext160_5_chain3 : 8, // [15:8]
|
||||
rssi_ext160_6_chain3 : 8, // [23:16]
|
||||
rssi_ext160_7_chain3 : 8; // [31:24]
|
||||
#else
|
||||
uint32_t rssi_ext40_high20_chain0 : 8, // [31:24]
|
||||
rssi_ext40_low20_chain0 : 8, // [23:16]
|
||||
rssi_ext20_chain0 : 8, // [15:8]
|
||||
rssi_pri20_chain0 : 8; // [7:0]
|
||||
uint32_t rssi_ext80_high20_chain0 : 8, // [31:24]
|
||||
rssi_ext80_high_low20_chain0 : 8, // [23:16]
|
||||
rssi_ext80_low_high20_chain0 : 8, // [15:8]
|
||||
rssi_ext80_low20_chain0 : 8; // [7:0]
|
||||
uint32_t rssi_ext160_3_chain0 : 8, // [31:24]
|
||||
rssi_ext160_2_chain0 : 8, // [23:16]
|
||||
rssi_ext160_1_chain0 : 8, // [15:8]
|
||||
rssi_ext160_0_chain0 : 8; // [7:0]
|
||||
uint32_t rssi_ext160_7_chain0 : 8, // [31:24]
|
||||
rssi_ext160_6_chain0 : 8, // [23:16]
|
||||
rssi_ext160_5_chain0 : 8, // [15:8]
|
||||
rssi_ext160_4_chain0 : 8; // [7:0]
|
||||
uint32_t rssi_ext40_high20_chain1 : 8, // [31:24]
|
||||
rssi_ext40_low20_chain1 : 8, // [23:16]
|
||||
rssi_ext20_chain1 : 8, // [15:8]
|
||||
rssi_pri20_chain1 : 8; // [7:0]
|
||||
uint32_t rssi_ext80_high20_chain1 : 8, // [31:24]
|
||||
rssi_ext80_high_low20_chain1 : 8, // [23:16]
|
||||
rssi_ext80_low_high20_chain1 : 8, // [15:8]
|
||||
rssi_ext80_low20_chain1 : 8; // [7:0]
|
||||
uint32_t rssi_ext160_3_chain1 : 8, // [31:24]
|
||||
rssi_ext160_2_chain1 : 8, // [23:16]
|
||||
rssi_ext160_1_chain1 : 8, // [15:8]
|
||||
rssi_ext160_0_chain1 : 8; // [7:0]
|
||||
uint32_t rssi_ext160_7_chain1 : 8, // [31:24]
|
||||
rssi_ext160_6_chain1 : 8, // [23:16]
|
||||
rssi_ext160_5_chain1 : 8, // [15:8]
|
||||
rssi_ext160_4_chain1 : 8; // [7:0]
|
||||
uint32_t rssi_ext40_high20_chain2 : 8, // [31:24]
|
||||
rssi_ext40_low20_chain2 : 8, // [23:16]
|
||||
rssi_ext20_chain2 : 8, // [15:8]
|
||||
rssi_pri20_chain2 : 8; // [7:0]
|
||||
uint32_t rssi_ext80_high20_chain2 : 8, // [31:24]
|
||||
rssi_ext80_high_low20_chain2 : 8, // [23:16]
|
||||
rssi_ext80_low_high20_chain2 : 8, // [15:8]
|
||||
rssi_ext80_low20_chain2 : 8; // [7:0]
|
||||
uint32_t rssi_ext160_3_chain2 : 8, // [31:24]
|
||||
rssi_ext160_2_chain2 : 8, // [23:16]
|
||||
rssi_ext160_1_chain2 : 8, // [15:8]
|
||||
rssi_ext160_0_chain2 : 8; // [7:0]
|
||||
uint32_t rssi_ext160_7_chain2 : 8, // [31:24]
|
||||
rssi_ext160_6_chain2 : 8, // [23:16]
|
||||
rssi_ext160_5_chain2 : 8, // [15:8]
|
||||
rssi_ext160_4_chain2 : 8; // [7:0]
|
||||
uint32_t rssi_ext40_high20_chain3 : 8, // [31:24]
|
||||
rssi_ext40_low20_chain3 : 8, // [23:16]
|
||||
rssi_ext20_chain3 : 8, // [15:8]
|
||||
rssi_pri20_chain3 : 8; // [7:0]
|
||||
uint32_t rssi_ext80_high20_chain3 : 8, // [31:24]
|
||||
rssi_ext80_high_low20_chain3 : 8, // [23:16]
|
||||
rssi_ext80_low_high20_chain3 : 8, // [15:8]
|
||||
rssi_ext80_low20_chain3 : 8; // [7:0]
|
||||
uint32_t rssi_ext160_3_chain3 : 8, // [31:24]
|
||||
rssi_ext160_2_chain3 : 8, // [23:16]
|
||||
rssi_ext160_1_chain3 : 8, // [15:8]
|
||||
rssi_ext160_0_chain3 : 8; // [7:0]
|
||||
uint32_t rssi_ext160_7_chain3 : 8, // [31:24]
|
||||
rssi_ext160_6_chain3 : 8, // [23:16]
|
||||
rssi_ext160_5_chain3 : 8, // [15:8]
|
||||
rssi_ext160_4_chain3 : 8; // [7:0]
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* Description RSSI_PRI20_CHAIN0
|
||||
|
||||
RSSI of RX PPDU on chain 0 of primary 20 MHz bandwidth.
|
||||
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN0_OFFSET 0x00000000
|
||||
#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN0_LSB 0
|
||||
#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN0_MSB 7
|
||||
#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN0_MASK 0x000000ff
|
||||
|
||||
|
||||
/* Description RSSI_EXT20_CHAIN0
|
||||
|
||||
RSSI of RX PPDU on chain 0 of extension 20 MHz bandwidth.
|
||||
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN0_OFFSET 0x00000000
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN0_LSB 8
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN0_MSB 15
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN0_MASK 0x0000ff00
|
||||
|
||||
|
||||
/* Description RSSI_EXT40_LOW20_CHAIN0
|
||||
|
||||
RSSI of RX PPDU on chain 0 of extension 40, low 20 MHz bandwidth.
|
||||
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN0_OFFSET 0x00000000
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN0_LSB 16
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN0_MSB 23
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN0_MASK 0x00ff0000
|
||||
|
||||
|
||||
/* Description RSSI_EXT40_HIGH20_CHAIN0
|
||||
|
||||
RSSI of RX PPDU on chain 0 of extension 40, high 20 MHz
|
||||
bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN0_OFFSET 0x00000000
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN0_LSB 24
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN0_MSB 31
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN0_MASK 0xff000000
|
||||
|
||||
|
||||
/* Description RSSI_EXT80_LOW20_CHAIN0
|
||||
|
||||
RSSI of RX PPDU on chain 0 of extension 80, low 20 MHz bandwidth.
|
||||
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN0_OFFSET 0x00000004
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN0_LSB 0
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN0_MSB 7
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN0_MASK 0x000000ff
|
||||
|
||||
|
||||
/* Description RSSI_EXT80_LOW_HIGH20_CHAIN0
|
||||
|
||||
RSSI of RX PPDU on chain 0 of extension 80, low-high 20
|
||||
MHz bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN0_OFFSET 0x00000004
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN0_LSB 8
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN0_MSB 15
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN0_MASK 0x0000ff00
|
||||
|
||||
|
||||
/* Description RSSI_EXT80_HIGH_LOW20_CHAIN0
|
||||
|
||||
RSSI of RX PPDU on chain 0 of extension 80, high-low 20
|
||||
MHz bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN0_OFFSET 0x00000004
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN0_LSB 16
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN0_MSB 23
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN0_MASK 0x00ff0000
|
||||
|
||||
|
||||
/* Description RSSI_EXT80_HIGH20_CHAIN0
|
||||
|
||||
RSSI of RX PPDU on chain 0 of extension 80, high 20 MHz
|
||||
bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN0_OFFSET 0x00000004
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN0_LSB 24
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN0_MSB 31
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN0_MASK 0xff000000
|
||||
|
||||
|
||||
/* Description RSSI_EXT160_0_CHAIN0
|
||||
|
||||
RSSI of RX PPDU on chain 0 of extension 160, lowest 20 MHz
|
||||
bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN0_OFFSET 0x00000008
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN0_LSB 0
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN0_MSB 7
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN0_MASK 0x000000ff
|
||||
|
||||
|
||||
/* Description RSSI_EXT160_1_CHAIN0
|
||||
|
||||
RSSI of RX PPDU on chain 0 of extension 160, next 20 MHz
|
||||
bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN0_OFFSET 0x00000008
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN0_LSB 8
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN0_MSB 15
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN0_MASK 0x0000ff00
|
||||
|
||||
|
||||
/* Description RSSI_EXT160_2_CHAIN0
|
||||
|
||||
RSSI of RX PPDU on chain 0 of extension 160, next 20 MHz
|
||||
bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN0_OFFSET 0x00000008
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN0_LSB 16
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN0_MSB 23
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN0_MASK 0x00ff0000
|
||||
|
||||
|
||||
/* Description RSSI_EXT160_3_CHAIN0
|
||||
|
||||
RSSI of RX PPDU on chain 0 of extension 160, next 20 MHz
|
||||
bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN0_OFFSET 0x00000008
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN0_LSB 24
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN0_MSB 31
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN0_MASK 0xff000000
|
||||
|
||||
|
||||
/* Description RSSI_EXT160_4_CHAIN0
|
||||
|
||||
RSSI of RX PPDU on chain 0 of extension 160, next 20 MHz
|
||||
bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN0_OFFSET 0x0000000c
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN0_LSB 0
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN0_MSB 7
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN0_MASK 0x000000ff
|
||||
|
||||
|
||||
/* Description RSSI_EXT160_5_CHAIN0
|
||||
|
||||
RSSI of RX PPDU on chain 0 of extension 160, next 20 MHz
|
||||
bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN0_OFFSET 0x0000000c
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN0_LSB 8
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN0_MSB 15
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN0_MASK 0x0000ff00
|
||||
|
||||
|
||||
/* Description RSSI_EXT160_6_CHAIN0
|
||||
|
||||
RSSI of RX PPDU on chain 0 of extension 160, next 20 MHz
|
||||
bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN0_OFFSET 0x0000000c
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN0_LSB 16
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN0_MSB 23
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN0_MASK 0x00ff0000
|
||||
|
||||
|
||||
/* Description RSSI_EXT160_7_CHAIN0
|
||||
|
||||
RSSI of RX PPDU on chain 0 of extension 160, highest 20
|
||||
MHz bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN0_OFFSET 0x0000000c
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN0_LSB 24
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN0_MSB 31
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN0_MASK 0xff000000
|
||||
|
||||
|
||||
/* Description RSSI_PRI20_CHAIN1
|
||||
|
||||
RSSI of RX PPDU on chain 1 of primary 20 MHz bandwidth.
|
||||
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN1_OFFSET 0x00000010
|
||||
#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN1_LSB 0
|
||||
#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN1_MSB 7
|
||||
#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN1_MASK 0x000000ff
|
||||
|
||||
|
||||
/* Description RSSI_EXT20_CHAIN1
|
||||
|
||||
RSSI of RX PPDU on chain 1 of extension 20 MHz bandwidth.
|
||||
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN1_OFFSET 0x00000010
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN1_LSB 8
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN1_MSB 15
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN1_MASK 0x0000ff00
|
||||
|
||||
|
||||
/* Description RSSI_EXT40_LOW20_CHAIN1
|
||||
|
||||
RSSI of RX PPDU on chain 1 of extension 40, low 20 MHz bandwidth.
|
||||
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN1_OFFSET 0x00000010
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN1_LSB 16
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN1_MSB 23
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN1_MASK 0x00ff0000
|
||||
|
||||
|
||||
/* Description RSSI_EXT40_HIGH20_CHAIN1
|
||||
|
||||
RSSI of RX PPDU on chain 1 of extension 40, high 20 MHz
|
||||
bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN1_OFFSET 0x00000010
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN1_LSB 24
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN1_MSB 31
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN1_MASK 0xff000000
|
||||
|
||||
|
||||
/* Description RSSI_EXT80_LOW20_CHAIN1
|
||||
|
||||
RSSI of RX PPDU on chain 1 of extension 80, low 20 MHz bandwidth.
|
||||
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN1_OFFSET 0x00000014
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN1_LSB 0
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN1_MSB 7
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN1_MASK 0x000000ff
|
||||
|
||||
|
||||
/* Description RSSI_EXT80_LOW_HIGH20_CHAIN1
|
||||
|
||||
RSSI of RX PPDU on chain 1 of extension 80, low-high 20
|
||||
MHz bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN1_OFFSET 0x00000014
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN1_LSB 8
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN1_MSB 15
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN1_MASK 0x0000ff00
|
||||
|
||||
|
||||
/* Description RSSI_EXT80_HIGH_LOW20_CHAIN1
|
||||
|
||||
RSSI of RX PPDU on chain 1 of extension 80, high-low 20
|
||||
MHz bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN1_OFFSET 0x00000014
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN1_LSB 16
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN1_MSB 23
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN1_MASK 0x00ff0000
|
||||
|
||||
|
||||
/* Description RSSI_EXT80_HIGH20_CHAIN1
|
||||
|
||||
RSSI of RX PPDU on chain 1 of extension 80, high 20 MHz
|
||||
bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN1_OFFSET 0x00000014
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN1_LSB 24
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN1_MSB 31
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN1_MASK 0xff000000
|
||||
|
||||
|
||||
/* Description RSSI_EXT160_0_CHAIN1
|
||||
|
||||
RSSI of RX PPDU on chain 1 of extension 160, lowest 20 MHz
|
||||
bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN1_OFFSET 0x00000018
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN1_LSB 0
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN1_MSB 7
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN1_MASK 0x000000ff
|
||||
|
||||
|
||||
/* Description RSSI_EXT160_1_CHAIN1
|
||||
|
||||
RSSI of RX PPDU on chain 1 of extension 160, next 20 MHz
|
||||
bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN1_OFFSET 0x00000018
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN1_LSB 8
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN1_MSB 15
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN1_MASK 0x0000ff00
|
||||
|
||||
|
||||
/* Description RSSI_EXT160_2_CHAIN1
|
||||
|
||||
RSSI of RX PPDU on chain 1 of extension 160, next 20 MHz
|
||||
bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN1_OFFSET 0x00000018
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN1_LSB 16
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN1_MSB 23
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN1_MASK 0x00ff0000
|
||||
|
||||
|
||||
/* Description RSSI_EXT160_3_CHAIN1
|
||||
|
||||
RSSI of RX PPDU on chain 1 of extension 160, next 20 MHz
|
||||
bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN1_OFFSET 0x00000018
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN1_LSB 24
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN1_MSB 31
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN1_MASK 0xff000000
|
||||
|
||||
|
||||
/* Description RSSI_EXT160_4_CHAIN1
|
||||
|
||||
RSSI of RX PPDU on chain 1 of extension 160, next 20 MHz
|
||||
bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN1_OFFSET 0x0000001c
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN1_LSB 0
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN1_MSB 7
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN1_MASK 0x000000ff
|
||||
|
||||
|
||||
/* Description RSSI_EXT160_5_CHAIN1
|
||||
|
||||
RSSI of RX PPDU on chain 1 of extension 160, next 20 MHz
|
||||
bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN1_OFFSET 0x0000001c
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN1_LSB 8
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN1_MSB 15
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN1_MASK 0x0000ff00
|
||||
|
||||
|
||||
/* Description RSSI_EXT160_6_CHAIN1
|
||||
|
||||
RSSI of RX PPDU on chain 1 of extension 160, next 20 MHz
|
||||
bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN1_OFFSET 0x0000001c
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN1_LSB 16
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN1_MSB 23
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN1_MASK 0x00ff0000
|
||||
|
||||
|
||||
/* Description RSSI_EXT160_7_CHAIN1
|
||||
|
||||
RSSI of RX PPDU on chain 1 of extension 160, highest 20
|
||||
MHz bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN1_OFFSET 0x0000001c
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN1_LSB 24
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN1_MSB 31
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN1_MASK 0xff000000
|
||||
|
||||
|
||||
/* Description RSSI_PRI20_CHAIN2
|
||||
|
||||
RSSI of RX PPDU on chain 2 of primary 20 MHz bandwidth.
|
||||
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN2_OFFSET 0x00000020
|
||||
#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN2_LSB 0
|
||||
#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN2_MSB 7
|
||||
#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN2_MASK 0x000000ff
|
||||
|
||||
|
||||
/* Description RSSI_EXT20_CHAIN2
|
||||
|
||||
RSSI of RX PPDU on chain 2 of extension 20 MHz bandwidth.
|
||||
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN2_OFFSET 0x00000020
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN2_LSB 8
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN2_MSB 15
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN2_MASK 0x0000ff00
|
||||
|
||||
|
||||
/* Description RSSI_EXT40_LOW20_CHAIN2
|
||||
|
||||
RSSI of RX PPDU on chain 2 of extension 40, low 20 MHz bandwidth.
|
||||
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN2_OFFSET 0x00000020
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN2_LSB 16
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN2_MSB 23
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN2_MASK 0x00ff0000
|
||||
|
||||
|
||||
/* Description RSSI_EXT40_HIGH20_CHAIN2
|
||||
|
||||
RSSI of RX PPDU on chain 2 of extension 40, high 20 MHz
|
||||
bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN2_OFFSET 0x00000020
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN2_LSB 24
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN2_MSB 31
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN2_MASK 0xff000000
|
||||
|
||||
|
||||
/* Description RSSI_EXT80_LOW20_CHAIN2
|
||||
|
||||
RSSI of RX PPDU on chain 2 of extension 80, low 20 MHz bandwidth.
|
||||
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN2_OFFSET 0x00000024
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN2_LSB 0
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN2_MSB 7
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN2_MASK 0x000000ff
|
||||
|
||||
|
||||
/* Description RSSI_EXT80_LOW_HIGH20_CHAIN2
|
||||
|
||||
RSSI of RX PPDU on chain 2 of extension 80, low-high 20
|
||||
MHz bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN2_OFFSET 0x00000024
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN2_LSB 8
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN2_MSB 15
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN2_MASK 0x0000ff00
|
||||
|
||||
|
||||
/* Description RSSI_EXT80_HIGH_LOW20_CHAIN2
|
||||
|
||||
RSSI of RX PPDU on chain 2 of extension 80, high-low 20
|
||||
MHz bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN2_OFFSET 0x00000024
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN2_LSB 16
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN2_MSB 23
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN2_MASK 0x00ff0000
|
||||
|
||||
|
||||
/* Description RSSI_EXT80_HIGH20_CHAIN2
|
||||
|
||||
RSSI of RX PPDU on chain 2 of extension 80, high 20 MHz
|
||||
bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN2_OFFSET 0x00000024
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN2_LSB 24
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN2_MSB 31
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN2_MASK 0xff000000
|
||||
|
||||
|
||||
/* Description RSSI_EXT160_0_CHAIN2
|
||||
|
||||
RSSI of RX PPDU on chain 2 of extension 160, lowest 20 MHz
|
||||
bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN2_OFFSET 0x00000028
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN2_LSB 0
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN2_MSB 7
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN2_MASK 0x000000ff
|
||||
|
||||
|
||||
/* Description RSSI_EXT160_1_CHAIN2
|
||||
|
||||
RSSI of RX PPDU on chain 2 of extension 160, next 20 MHz
|
||||
bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN2_OFFSET 0x00000028
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN2_LSB 8
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN2_MSB 15
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN2_MASK 0x0000ff00
|
||||
|
||||
|
||||
/* Description RSSI_EXT160_2_CHAIN2
|
||||
|
||||
RSSI of RX PPDU on chain 2 of extension 160, next 20 MHz
|
||||
bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN2_OFFSET 0x00000028
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN2_LSB 16
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN2_MSB 23
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN2_MASK 0x00ff0000
|
||||
|
||||
|
||||
/* Description RSSI_EXT160_3_CHAIN2
|
||||
|
||||
RSSI of RX PPDU on chain 2 of extension 160, next 20 MHz
|
||||
bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN2_OFFSET 0x00000028
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN2_LSB 24
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN2_MSB 31
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN2_MASK 0xff000000
|
||||
|
||||
|
||||
/* Description RSSI_EXT160_4_CHAIN2
|
||||
|
||||
RSSI of RX PPDU on chain 2 of extension 160, next 20 MHz
|
||||
bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN2_OFFSET 0x0000002c
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN2_LSB 0
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN2_MSB 7
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN2_MASK 0x000000ff
|
||||
|
||||
|
||||
/* Description RSSI_EXT160_5_CHAIN2
|
||||
|
||||
RSSI of RX PPDU on chain 2 of extension 160, next 20 MHz
|
||||
bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN2_OFFSET 0x0000002c
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN2_LSB 8
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN2_MSB 15
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN2_MASK 0x0000ff00
|
||||
|
||||
|
||||
/* Description RSSI_EXT160_6_CHAIN2
|
||||
|
||||
RSSI of RX PPDU on chain 2 of extension 160, next 20 MHz
|
||||
bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN2_OFFSET 0x0000002c
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN2_LSB 16
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN2_MSB 23
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN2_MASK 0x00ff0000
|
||||
|
||||
|
||||
/* Description RSSI_EXT160_7_CHAIN2
|
||||
|
||||
RSSI of RX PPDU on chain 2 of extension 80, highest 20 MHz
|
||||
bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN2_OFFSET 0x0000002c
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN2_LSB 24
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN2_MSB 31
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN2_MASK 0xff000000
|
||||
|
||||
|
||||
/* Description RSSI_PRI20_CHAIN3
|
||||
|
||||
RSSI of RX PPDU on chain 3 of primary 20 MHz bandwidth.
|
||||
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN3_OFFSET 0x00000030
|
||||
#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN3_LSB 0
|
||||
#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN3_MSB 7
|
||||
#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN3_MASK 0x000000ff
|
||||
|
||||
|
||||
/* Description RSSI_EXT20_CHAIN3
|
||||
|
||||
RSSI of RX PPDU on chain 3 of extension 20 MHz bandwidth.
|
||||
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN3_OFFSET 0x00000030
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN3_LSB 8
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN3_MSB 15
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN3_MASK 0x0000ff00
|
||||
|
||||
|
||||
/* Description RSSI_EXT40_LOW20_CHAIN3
|
||||
|
||||
RSSI of RX PPDU on chain 3 of extension 40, low 20 MHz bandwidth.
|
||||
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN3_OFFSET 0x00000030
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN3_LSB 16
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN3_MSB 23
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN3_MASK 0x00ff0000
|
||||
|
||||
|
||||
/* Description RSSI_EXT40_HIGH20_CHAIN3
|
||||
|
||||
RSSI of RX PPDU on chain 3 of extension 40, high 20 MHz
|
||||
bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN3_OFFSET 0x00000030
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN3_LSB 24
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN3_MSB 31
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN3_MASK 0xff000000
|
||||
|
||||
|
||||
/* Description RSSI_EXT80_LOW20_CHAIN3
|
||||
|
||||
RSSI of RX PPDU on chain 3 of extension 80, low 20 MHz bandwidth.
|
||||
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN3_OFFSET 0x00000034
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN3_LSB 0
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN3_MSB 7
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN3_MASK 0x000000ff
|
||||
|
||||
|
||||
/* Description RSSI_EXT80_LOW_HIGH20_CHAIN3
|
||||
|
||||
RSSI of RX PPDU on chain 3 of extension 80, low-high 20
|
||||
MHz bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN3_OFFSET 0x00000034
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN3_LSB 8
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN3_MSB 15
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN3_MASK 0x0000ff00
|
||||
|
||||
|
||||
/* Description RSSI_EXT80_HIGH_LOW20_CHAIN3
|
||||
|
||||
RSSI of RX PPDU on chain 3 of extension 80, high-low 20
|
||||
MHz bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN3_OFFSET 0x00000034
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN3_LSB 16
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN3_MSB 23
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN3_MASK 0x00ff0000
|
||||
|
||||
|
||||
/* Description RSSI_EXT80_HIGH20_CHAIN3
|
||||
|
||||
RSSI of RX PPDU on chain 3 of extension 80, high 20 MHz
|
||||
bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN3_OFFSET 0x00000034
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN3_LSB 24
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN3_MSB 31
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN3_MASK 0xff000000
|
||||
|
||||
|
||||
/* Description RSSI_EXT160_0_CHAIN3
|
||||
|
||||
RSSI of RX PPDU on chain 3 of extension 160, lowest 20 MHz
|
||||
bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN3_OFFSET 0x00000038
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN3_LSB 0
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN3_MSB 7
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN3_MASK 0x000000ff
|
||||
|
||||
|
||||
/* Description RSSI_EXT160_1_CHAIN3
|
||||
|
||||
RSSI of RX PPDU on chain 3 of extension 160, next 20 MHz
|
||||
bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN3_OFFSET 0x00000038
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN3_LSB 8
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN3_MSB 15
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN3_MASK 0x0000ff00
|
||||
|
||||
|
||||
/* Description RSSI_EXT160_2_CHAIN3
|
||||
|
||||
RSSI of RX PPDU on chain 3 of extension 160, next 20 MHz
|
||||
bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN3_OFFSET 0x00000038
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN3_LSB 16
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN3_MSB 23
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN3_MASK 0x00ff0000
|
||||
|
||||
|
||||
/* Description RSSI_EXT160_3_CHAIN3
|
||||
|
||||
RSSI of RX PPDU on chain 3 of extension 160, next 20 MHz
|
||||
bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN3_OFFSET 0x00000038
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN3_LSB 24
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN3_MSB 31
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN3_MASK 0xff000000
|
||||
|
||||
|
||||
/* Description RSSI_EXT160_4_CHAIN3
|
||||
|
||||
RSSI of RX PPDU on chain 3 of extension 160, next 20 MHz
|
||||
bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN3_OFFSET 0x0000003c
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN3_LSB 0
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN3_MSB 7
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN3_MASK 0x000000ff
|
||||
|
||||
|
||||
/* Description RSSI_EXT160_5_CHAIN3
|
||||
|
||||
RSSI of RX PPDU on chain 3 of extension 160, next 20 MHz
|
||||
bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN3_OFFSET 0x0000003c
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN3_LSB 8
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN3_MSB 15
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN3_MASK 0x0000ff00
|
||||
|
||||
|
||||
/* Description RSSI_EXT160_6_CHAIN3
|
||||
|
||||
RSSI of RX PPDU on chain 3 of extension 160, next 20 MHz
|
||||
bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN3_OFFSET 0x0000003c
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN3_LSB 16
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN3_MSB 23
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN3_MASK 0x00ff0000
|
||||
|
||||
|
||||
/* Description RSSI_EXT160_7_CHAIN3
|
||||
|
||||
RSSI of RX PPDU on chain 3 of extension 160, highest 20
|
||||
MHz bandwidth.
|
||||
Value of 0x80 indicates invalid.
|
||||
*/
|
||||
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN3_OFFSET 0x0000003c
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN3_LSB 24
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN3_MSB 31
|
||||
#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN3_MASK 0xff000000
|
||||
|
||||
|
||||
|
||||
#endif // RECEIVE_RSSI_INFO
|
||||
704
drivers/staging/fw-api/hw/qcn6432/receive_user_info.h
Normal file
704
drivers/staging/fw-api/hw/qcn6432/receive_user_info.h
Normal file
|
|
@ -0,0 +1,704 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
|
||||
<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
|
||||
3075
drivers/staging/fw-api/hw/qcn6432/received_response_user_15_8.h
Normal file
3075
drivers/staging/fw-api/hw/qcn6432/received_response_user_15_8.h
Normal file
File diff suppressed because it is too large
Load diff
3074
drivers/staging/fw-api/hw/qcn6432/received_response_user_23_16.h
Normal file
3074
drivers/staging/fw-api/hw/qcn6432/received_response_user_23_16.h
Normal file
File diff suppressed because it is too large
Load diff
3077
drivers/staging/fw-api/hw/qcn6432/received_response_user_31_24.h
Normal file
3077
drivers/staging/fw-api/hw/qcn6432/received_response_user_31_24.h
Normal file
File diff suppressed because it is too large
Load diff
1936
drivers/staging/fw-api/hw/qcn6432/received_response_user_36_32.h
Normal file
1936
drivers/staging/fw-api/hw/qcn6432/received_response_user_36_32.h
Normal file
File diff suppressed because it is too large
Load diff
3076
drivers/staging/fw-api/hw/qcn6432/received_response_user_7_0.h
Normal file
3076
drivers/staging/fw-api/hw/qcn6432/received_response_user_7_0.h
Normal file
File diff suppressed because it is too large
Load diff
458
drivers/staging/fw-api/hw/qcn6432/received_response_user_info.h
Normal file
458
drivers/staging/fw-api/hw/qcn6432/received_response_user_info.h
Normal file
|
|
@ -0,0 +1,458 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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.
|
||||
|
||||
<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.
|
||||
<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
|
||||
|
||||
<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
|
||||
335
drivers/staging/fw-api/hw/qcn6432/received_trigger_info.h
Normal file
335
drivers/staging/fw-api/hw/qcn6432/received_trigger_info.h
Normal file
|
|
@ -0,0 +1,335 @@
|
|||
/*
|
||||
* Copyright (c) 2023 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
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue