#include "acpi.h"
#include "debug.h"
#include "phy.h"
#include "reg.h"
#include "sar.h"
#define RTW89_TAS_FACTOR …
#define RTW89_TAS_DPR_GAP …
#define RTW89_TAS_DELTA …
static enum rtw89_sar_subband rtw89_sar_get_subband(struct rtw89_dev *rtwdev,
u32 center_freq)
{ … }
struct rtw89_sar_span { … };
#define RTW89_SAR_SPAN_VALID(span) …
#define RTW89_SAR_6GHZ_SPAN_HEAD …
#define RTW89_SAR_6GHZ_SPAN_IDX(center_freq) …
#define RTW89_DECL_SAR_6GHZ_SPAN(center_freq, subband_l, subband_h) …
static const struct rtw89_sar_span rtw89_sar_overlapping_6ghz[] = …;
static int rtw89_query_sar_config_common(struct rtw89_dev *rtwdev,
u32 center_freq, s32 *cfg)
{ … }
static const
struct rtw89_sar_handler rtw89_sar_handlers[RTW89_SAR_SOURCE_NR] = …;
#define rtw89_sar_set_src(_dev, _src, _cfg_name, _cfg_data) …
static s8 rtw89_txpwr_sar_to_mac(struct rtw89_dev *rtwdev, u8 fct, s32 cfg)
{ … }
static s8 rtw89_txpwr_tas_to_sar(const struct rtw89_sar_handler *sar_hdl,
s8 cfg)
{ … }
static s8 rtw89_txpwr_sar_to_tas(const struct rtw89_sar_handler *sar_hdl,
s8 cfg)
{ … }
s8 rtw89_query_sar(struct rtw89_dev *rtwdev, u32 center_freq)
{ … }
void rtw89_print_sar(struct seq_file *m, struct rtw89_dev *rtwdev, u32 center_freq)
{ … }
void rtw89_print_tas(struct seq_file *m, struct rtw89_dev *rtwdev)
{ … }
static int rtw89_apply_sar_common(struct rtw89_dev *rtwdev,
const struct rtw89_sar_cfg_common *sar)
{ … }
static const struct cfg80211_sar_freq_ranges rtw89_common_sar_freq_ranges[] = …;
static_assert(…);
const struct cfg80211_sar_capa rtw89_sar_capa = …;
int rtw89_ops_set_sar_specs(struct ieee80211_hw *hw,
const struct cfg80211_sar_specs *sar)
{ … }
static void rtw89_tas_state_update(struct rtw89_dev *rtwdev)
{ … }
void rtw89_tas_init(struct rtw89_dev *rtwdev)
{ … }
void rtw89_tas_reset(struct rtw89_dev *rtwdev)
{ … }
static const struct rtw89_reg_def txpwr_regs[] = …;
void rtw89_tas_track(struct rtw89_dev *rtwdev)
{ … }