/** @file */
|
/******************************************************************************
|
*
|
* Copyright(c) 2019 Realtek Corporation. All rights reserved.
|
*
|
* This program is free software; you can redistribute it and/or modify it
|
* under the terms of version 2 of the GNU General Public License as
|
* published by the Free Software Foundation.
|
*
|
* This program is distributed in the hope that it will be useful, but WITHOUT
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
* more details.
|
*
|
******************************************************************************/
|
|
#ifndef _MAC_AX_TRX_DESC_H_
|
#define _MAC_AX_TRX_DESC_H_
|
|
#include "../type.h"
|
#include "role.h"
|
#if MAC_AX_8852C_SUPPORT
|
#include "mac_8852c/trx_desc_8852c.h"
|
#endif
|
#if MAC_AX_8192XB_SUPPORT
|
#include "mac_8192xb/trx_desc_8192xb.h"
|
#endif
|
|
/* VHT/HE nss = rx_rate[6:4] */
|
#define GET_NSS_FROM_RX_RATE(rate) (((rate) & 0x70) >> 4)
|
#define SET_NSS_TO_RX_RATE(rate, nss) (((rate) & 0xFF8F) | (((nss) & 0x7) << 4))
|
/**
|
* 0000: WIFI packet
|
* 0001: PPDU status
|
* 0010: channel info
|
* 0011: BB scope mode
|
* 0100: F2P TX CMD report
|
* 0101: SS2FW report
|
* 0110: TX report
|
* 0111: TX payload release to host
|
* 1000: DFS report
|
* 1001: TX payload release to WLCPU
|
* 1010: C2H packet
|
*/
|
#define RX_8852A_DESC_PKT_T_WIFI 0
|
#define RX_8852A_DESC_PKT_T_PPDU_STATUS 1
|
#define RX_8852A_DESC_PKT_T_CHANNEL_INFO 2
|
#define RX_8852A_DESC_PKT_T_BB_SCOPE 3
|
#define RX_8852A_DESC_PKT_T_F2P_TX_CMD_RPT 4
|
#define RX_8852A_DESC_PKT_T_SS2FW_RPT 5
|
#define RX_8852A_DESC_PKT_T_TX_RPT 6
|
#define RX_8852A_DESC_PKT_T_TX_PD_RELEASE_HOST 7
|
#define RX_8852A_DESC_PKT_T_DFS_RPT 8
|
#define RX_8852A_DESC_PKT_T_TX_PD_RELEASE_WLCPU 9
|
#define RX_8852A_DESC_PKT_T_C2H 10
|
|
#define RX_8852A_DESC_PPDU_T_LCCK 0
|
#define RX_8852A_DESC_PPDU_T_SCCK 1
|
#define RX_8852A_DESC_PPDU_T_OFDM 2
|
#define RX_8852A_DESC_PPDU_T_HT 3
|
#define RX_8852A_DESC_PPDU_T_HTGF 4
|
#define RX_8852A_DESC_PPDU_T_VHT_SU 5
|
#define RX_8852A_DESC_PPDU_T_VHT_MU 6
|
#define RX_8852A_DESC_PPDU_T_HE_SU 7
|
#define RX_8852A_DESC_PPDU_T_HE_ERSU 8
|
#define RX_8852A_DESC_PPDU_T_HE_MU 9
|
#define RX_8852A_DESC_PPDU_T_HE_TB 10
|
#define RX_8852A_DESC_PPDU_T_UNKNOWN 15
|
|
#define RX_8852A_DESC_RX_GI_LTF_4X_3_2 0
|
#define RX_8852A_DESC_RX_GI_LTF_4X_0_8 1
|
#define RX_8852A_DESC_RX_GI_LTF_2X_1_6 2
|
#define RX_8852A_DESC_RX_GI_LTF_2X_0_8 3
|
#define RX_8852A_DESC_RX_GI_LTF_1X_1_6 4
|
#define RX_8852A_DESC_RX_GI_LTF_1X_0_8 5
|
|
#define NSS_8 7
|
#define NSS_7 6
|
#define NSS_6 5
|
#define NSS_5 4
|
#define NSS_4 3
|
#define NSS_3 2
|
#define NSS_2 1
|
#define NSS_1 0
|
|
/**
|
* @addtogroup Basic_TRX
|
* @{
|
* @addtogroup TX_Config
|
* @{
|
*/
|
/**
|
* @brief mac_txdesc_len
|
*
|
* @param *adapter
|
* @param *info
|
* @return Please Place Description here.
|
* @retval u32
|
*/
|
u32 mac_txdesc_len(struct mac_ax_adapter *adapter,
|
struct rtw_t_meta_data *info);
|
/**
|
* @}
|
* @}
|
*/
|
|
/**
|
* @addtogroup Basic_TRX
|
* @{
|
* @addtogroup TX_Config
|
* @{
|
*/
|
|
/**
|
* @brief mac_build_txdesc
|
*
|
* @param *adapter
|
* @param *info
|
* @param *buf
|
* @param len
|
* @return Please Place Description here.
|
* @retval u32
|
*/
|
u32 mac_build_txdesc(struct mac_ax_adapter *adapter,
|
struct rtw_t_meta_data *info, u8 *buf, u32 len);
|
/**
|
* @}
|
* @}
|
*/
|
|
/**
|
* @addtogroup Basic_TRX
|
* @{
|
* @addtogroup TX_Config
|
* @{
|
*/
|
|
/**
|
* @brief mac_refill_txdesc
|
*
|
* @param *adapter
|
* @param *txpkt_info
|
* @param *mask
|
* @param *info
|
* @return Please Place Description here.
|
* @retval u32
|
*/
|
u32 mac_refill_txdesc(struct mac_ax_adapter *adapter,
|
struct rtw_t_meta_data *txpkt_info,
|
struct mac_ax_refill_info *mask,
|
struct mac_ax_refill_info *info);
|
/**
|
* @}
|
* @}
|
*/
|
|
/**
|
* @addtogroup Basic_TRX
|
* @{
|
* @addtogroup TX_Config
|
* @{
|
*/
|
|
/**
|
* @brief mac_parse_rxdesc
|
*
|
* @param *adapter
|
* @param *info
|
* @param *buf
|
* @param len
|
* @return Please Place Description here.
|
* @retval u32
|
*/
|
u32 mac_parse_rxdesc(struct mac_ax_adapter *adapter,
|
struct mac_ax_rxpkt_info *info, u8 *buf, u32 len);
|
/**
|
* @}
|
* @}
|
*/
|
|
/**
|
* @addtogroup Basic_TRX
|
* @{
|
* @addtogroup TX_Config
|
* @{
|
*/
|
|
/**
|
* @brief mac_wd_checksum
|
*
|
* @param *adapter
|
* @param *info
|
* @param *wddesc
|
* @return Please Place Description here.
|
* @retval u32
|
*/
|
u32 mac_wd_checksum(struct mac_ax_adapter *adapter,
|
struct rtw_t_meta_data *info, u8 *wddesc);
|
/**
|
* @}
|
* @}
|
*/
|
|
/**
|
* @addtogroup Basic_TRX
|
* @{
|
* @addtogroup TX_Config
|
* @{
|
*/
|
|
/**
|
* @brief mac_patch_rx_rate
|
*
|
* @param *adapter
|
* @param *rtw_r_meta_data
|
* @return For RMAC rate patch func
|
* @retval u32
|
*/
|
u32 mac_patch_rx_rate(struct mac_ax_adapter *adapter,
|
struct rtw_r_meta_data *info);
|
/**
|
* @}
|
* @}
|
*/
|
|
#endif
|