#ifndef __RTW_BF_H_
#define __RTW_BF_H_
#define REG_TXBF_CTRL …
#define REG_RRSR …
#define REG_NDPA_OPT_CTRL …
#define REG_ASSOCIATED_BFMER0_INFO …
#define REG_ASSOCIATED_BFMER1_INFO …
#define REG_TX_CSI_RPT_PARAM_BW20 …
#define REG_SND_PTCL_CTRL …
#define BIT_DIS_CHK_VHTSIGB_CRC …
#define BIT_DIS_CHK_VHTSIGA_CRC …
#define BIT_MASK_BEAMFORM …
#define REG_MU_TX_CTL …
#define REG_MU_STA_GID_VLD …
#define REG_MU_STA_USER_POS_INFO …
#define REG_CSI_RRSR …
#define REG_WMAC_MU_BF_OPTION …
#define REG_WMAC_MU_BF_CTL …
#define BIT_WMAC_USE_NDPARATE …
#define BIT_WMAC_TXMU_ACKPOLICY_EN …
#define BIT_USE_NDPA_PARAMETER …
#define BIT_MU_P1_WAIT_STATE_EN …
#define BIT_EN_MU_MIMO …
#define R_MU_RL …
#define BIT_SHIFT_R_MU_RL …
#define BIT_SHIFT_WMAC_TXMU_ACKPOLICY …
#define BIT_SHIFT_CSI_RATE …
#define BIT_MASK_R_MU_RL …
#define BIT_MASK_R_MU_TABLE_VALID …
#define BIT_MASK_CSI_RATE_VAL …
#define BIT_MASK_CSI_RATE …
#define BIT_RXFLTMAP0_ACTIONNOACK …
#define BIT_RXFLTMAP1_BF …
#define BIT_RXFLTMAP1_BF_REPORT_POLL …
#define BIT_RXFLTMAP4_BF_REPORT_POLL …
#define RTW_NDP_RX_STANDBY_TIME …
#define RTW_SND_CTRL_REMOVE …
#define RTW_SND_CTRL_SOUNDING …
enum csi_seg_len { … };
struct cfg_mumimo_para { … };
struct mu_bfer_init_para { … };
void rtw_bf_disassoc(struct rtw_dev *rtwdev, struct ieee80211_vif *vif,
struct ieee80211_bss_conf *bss_conf);
void rtw_bf_assoc(struct rtw_dev *rtwdev, struct ieee80211_vif *vif,
struct ieee80211_bss_conf *bss_conf);
void rtw_bf_init_bfer_entry_mu(struct rtw_dev *rtwdev,
struct mu_bfer_init_para *param);
void rtw_bf_cfg_sounding(struct rtw_dev *rtwdev, struct rtw_vif *vif,
enum rtw_trx_desc_rate rate);
void rtw_bf_cfg_mu_bfee(struct rtw_dev *rtwdev, struct cfg_mumimo_para *param);
void rtw_bf_del_bfer_entry_mu(struct rtw_dev *rtwdev);
void rtw_bf_del_sounding(struct rtw_dev *rtwdev);
void rtw_bf_enable_bfee_su(struct rtw_dev *rtwdev, struct rtw_vif *vif,
struct rtw_bfee *bfee);
void rtw_bf_enable_bfee_mu(struct rtw_dev *rtwdev, struct rtw_vif *vif,
struct rtw_bfee *bfee);
void rtw_bf_remove_bfee_su(struct rtw_dev *rtwdev, struct rtw_bfee *bfee);
void rtw_bf_remove_bfee_mu(struct rtw_dev *rtwdev, struct rtw_bfee *bfee);
void rtw_bf_set_gid_table(struct rtw_dev *rtwdev, struct ieee80211_vif *vif,
struct ieee80211_bss_conf *conf);
void rtw_bf_phy_init(struct rtw_dev *rtwdev);
void rtw_bf_cfg_csi_rate(struct rtw_dev *rtwdev, u8 rssi, u8 cur_rate,
u8 fixrate_en, u8 *new_rate);
static inline void rtw_chip_config_bfee(struct rtw_dev *rtwdev, struct rtw_vif *vif,
struct rtw_bfee *bfee, bool enable)
{ … }
static inline void rtw_chip_set_gid_table(struct rtw_dev *rtwdev,
struct ieee80211_vif *vif,
struct ieee80211_bss_conf *conf)
{ … }
static inline void rtw_chip_cfg_csi_rate(struct rtw_dev *rtwdev, u8 rssi, u8 cur_rate,
u8 fixrate_en, u8 *new_rate)
{ … }
#endif