diff options
Diffstat (limited to 'sys/contrib/dev/rtw89/phy.h')
| -rw-r--r-- | sys/contrib/dev/rtw89/phy.h | 40 | 
1 files changed, 33 insertions, 7 deletions
| diff --git a/sys/contrib/dev/rtw89/phy.h b/sys/contrib/dev/rtw89/phy.h index 08b635c93ac3..dc156376d951 100644 --- a/sys/contrib/dev/rtw89/phy.h +++ b/sys/contrib/dev/rtw89/phy.h @@ -164,6 +164,7 @@ enum rtw89_phy_c2h_dm_func {  	RTW89_PHY_C2H_DM_FUNC_SIGB,  	RTW89_PHY_C2H_DM_FUNC_LOWRT_RTY,  	RTW89_PHY_C2H_DM_FUNC_MCC_DIG, +	RTW89_PHY_C2H_DM_FUNC_FW_SCAN = 0xc,  	RTW89_PHY_C2H_DM_FUNC_NUM,  }; @@ -251,6 +252,7 @@ enum rtw89_phy_status_bitmap {  	RTW89_HT_PKT          = 13,  	RTW89_VHT_PKT         = 14,  	RTW89_HE_PKT          = 15, +	RTW89_EHT_PKT         = 16,  	RTW89_PHYSTS_BITMAP_NUM  }; @@ -835,8 +837,8 @@ s8 rtw89_phy_read_txpwr_byrate(struct rtw89_dev *rtwdev, u8 band, u8 bw,  void rtw89_phy_ant_gain_init(struct rtw89_dev *rtwdev);  s16 rtw89_phy_ant_gain_pwr_offset(struct rtw89_dev *rtwdev,  				  const struct rtw89_chan *chan); -void rtw89_print_ant_gain(struct seq_file *m, struct rtw89_dev *rtwdev, -			  const struct rtw89_chan *chan); +int rtw89_print_ant_gain(struct rtw89_dev *rtwdev, char *buf, size_t bufsz, +			 const struct rtw89_chan *chan);  void rtw89_phy_load_txpwr_byrate(struct rtw89_dev *rtwdev,  				 const struct rtw89_txpwr_table *tbl);  s8 rtw89_phy_read_txpwr_limit(struct rtw89_dev *rtwdev, u8 band, @@ -914,6 +916,13 @@ static inline s8 rtw89_phy_txpwr_rf_to_bb(struct rtw89_dev *rtwdev, s8 txpwr_rf)  	return txpwr_rf << (chip->txpwr_factor_bb - chip->txpwr_factor_rf);  } +static inline s8 rtw89_phy_txpwr_bb_to_rf(struct rtw89_dev *rtwdev, s8 txpwr_bb) +{ +	const struct rtw89_chip_info *chip = rtwdev->chip; + +	return txpwr_bb >> (chip->txpwr_factor_bb - chip->txpwr_factor_rf); +} +  static inline s8 rtw89_phy_txpwr_rf_to_mac(struct rtw89_dev *rtwdev, s8 txpwr_rf)  {  	const struct rtw89_chip_info *chip = rtwdev->chip; @@ -928,6 +937,20 @@ static inline s8 rtw89_phy_txpwr_dbm_to_mac(struct rtw89_dev *rtwdev, s8 dbm)  	return clamp_t(s16, dbm << chip->txpwr_factor_mac, -64, 63);  } +static inline s16 rtw89_phy_txpwr_mac_to_rf(struct rtw89_dev *rtwdev, s8 txpwr_mac) +{ +	const struct rtw89_chip_info *chip = rtwdev->chip; + +	return txpwr_mac << (chip->txpwr_factor_rf - chip->txpwr_factor_mac); +} + +static inline s16 rtw89_phy_txpwr_mac_to_bb(struct rtw89_dev *rtwdev, s8 txpwr_mac) +{ +	const struct rtw89_chip_info *chip = rtwdev->chip; + +	return txpwr_mac << (chip->txpwr_factor_bb - chip->txpwr_factor_mac); +} +  void rtw89_phy_ra_assoc(struct rtw89_dev *rtwdev, struct rtw89_sta_link *rtwsta_link);  void rtw89_phy_ra_update(struct rtw89_dev *rtwdev);  void rtw89_phy_ra_update_sta(struct rtw89_dev *rtwdev, struct ieee80211_sta *sta, @@ -978,20 +1001,22 @@ void rtw89_phy_rfk_tssi_fill_fwcmd_tmeter_tbl(struct rtw89_dev *rtwdev,  					      const struct rtw89_chan *chan,  					      struct rtw89_h2c_rf_tssi *h2c);  void rtw89_phy_cfo_track(struct rtw89_dev *rtwdev); -void rtw89_phy_cfo_track_work(struct work_struct *work); +void rtw89_phy_cfo_track_work(struct wiphy *wiphy, struct wiphy_work *work);  void rtw89_phy_cfo_parse(struct rtw89_dev *rtwdev, s16 cfo_val,  			 struct rtw89_rx_phy_ppdu *phy_ppdu);  void rtw89_phy_stat_track(struct rtw89_dev *rtwdev);  void rtw89_phy_env_monitor_track(struct rtw89_dev *rtwdev);  void rtw89_phy_set_phy_regs(struct rtw89_dev *rtwdev, u32 addr, u32 mask,  			    u32 val); -void rtw89_phy_dig_reset(struct rtw89_dev *rtwdev); +void rtw89_phy_dig_reset(struct rtw89_dev *rtwdev, struct rtw89_bb_ctx *bb);  void rtw89_phy_dig(struct rtw89_dev *rtwdev); +void rtw89_phy_dig_suspend(struct rtw89_dev *rtwdev); +void rtw89_phy_dig_resume(struct rtw89_dev *rtwdev, bool restore);  void rtw89_phy_tx_path_div_track(struct rtw89_dev *rtwdev);  void rtw89_phy_antdiv_parse(struct rtw89_dev *rtwdev,  			    struct rtw89_rx_phy_ppdu *phy_ppdu);  void rtw89_phy_antdiv_track(struct rtw89_dev *rtwdev); -void rtw89_phy_antdiv_work(struct work_struct *work); +void rtw89_phy_antdiv_work(struct wiphy *wiphy, struct wiphy_work *work);  void rtw89_phy_set_bss_color(struct rtw89_dev *rtwdev,  			     struct rtw89_vif_link *rtwvif_link);  void rtw89_phy_tssi_ctrl_set_bandedge_cfg(struct rtw89_dev *rtwdev, @@ -1002,9 +1027,10 @@ void rtw89_phy_ul_tb_ctrl_track(struct rtw89_dev *rtwdev);  u8 rtw89_encode_chan_idx(struct rtw89_dev *rtwdev, u8 central_ch, u8 band);  void rtw89_decode_chan_idx(struct rtw89_dev *rtwdev, u8 chan_idx,  			   u8 *ch, enum nl80211_band *band); -void rtw89_phy_config_edcca(struct rtw89_dev *rtwdev, bool scan); +void rtw89_phy_config_edcca(struct rtw89_dev *rtwdev, +			    struct rtw89_bb_ctx *bb, bool scan);  void rtw89_phy_edcca_track(struct rtw89_dev *rtwdev); -void rtw89_phy_edcca_thre_calc(struct rtw89_dev *rtwdev); +void rtw89_phy_edcca_thre_calc(struct rtw89_dev *rtwdev, struct rtw89_bb_ctx *bb);  enum rtw89_rf_path_bit rtw89_phy_get_kpath(struct rtw89_dev *rtwdev,  					   enum rtw89_phy_idx phy_idx);  enum rtw89_rf_path rtw89_phy_get_syn_sel(struct rtw89_dev *rtwdev, | 
