#define pr_fmt(fmt) …
#include <linux/kernel.h>
#include <linux/delay.h>
#include <linux/cordic.h>
#include <brcm_hw_ids.h>
#include <aiutils.h>
#include <chipcommon.h>
#include <pmu.h>
#include <d11.h>
#include <phy_shim.h>
#include "phy_int.h"
#include "phy_hal.h"
#include "phy_radio.h"
#include "phyreg_n.h"
#include "phytbl_n.h"
#include "soc.h"
#define READ_RADIO_REG2(pi, radio_type, jspace, core, reg_name) …
#define WRITE_RADIO_REG2(pi, radio_type, jspace, core, reg_name, value) …
#define WRITE_RADIO_SYN(pi, radio_type, reg_name, value) …
#define READ_RADIO_REG3(pi, radio_type, jspace, core, reg_name) …
#define WRITE_RADIO_REG3(pi, radio_type, jspace, core, reg_name, value) …
#define READ_RADIO_REG4(pi, radio_type, jspace, core, reg_name) …
#define WRITE_RADIO_REG4(pi, radio_type, jspace, core, reg_name, value) …
#define NPHY_ACI_MAX_UNDETECT_WINDOW_SZ …
#define NPHY_ACI_CHANNEL_DELTA …
#define NPHY_ACI_CHANNEL_SKIP …
#define NPHY_ACI_40MHZ_CHANNEL_DELTA …
#define NPHY_ACI_40MHZ_CHANNEL_SKIP …
#define NPHY_ACI_40MHZ_CHANNEL_DELTA_GE_REV3 …
#define NPHY_ACI_40MHZ_CHANNEL_SKIP_GE_REV3 …
#define NPHY_ACI_CHANNEL_DELTA_GE_REV3 …
#define NPHY_ACI_CHANNEL_SKIP_GE_REV3 …
#define NPHY_NOISE_NOASSOC_GLITCH_TH_UP …
#define NPHY_NOISE_NOASSOC_GLITCH_TH_DN …
#define NPHY_NOISE_ASSOC_GLITCH_TH_UP …
#define NPHY_NOISE_ASSOC_GLITCH_TH_DN …
#define NPHY_NOISE_ASSOC_ACI_GLITCH_TH_UP …
#define NPHY_NOISE_ASSOC_ACI_GLITCH_TH_DN …
#define NPHY_NOISE_NOASSOC_ENTER_TH …
#define NPHY_NOISE_ASSOC_ENTER_TH …
#define NPHY_NOISE_ASSOC_RX_GLITCH_BADPLCP_ENTER_TH …
#define NPHY_NOISE_CRSMINPWR_ARRAY_MAX_INDEX …
#define NPHY_NOISE_CRSMINPWR_ARRAY_MAX_INDEX_REV_7 …
#define NPHY_NOISE_NOASSOC_CRSIDX_INCR …
#define NPHY_NOISE_ASSOC_CRSIDX_INCR …
#define NPHY_IS_SROM_REINTERPRET …
#define NPHY_RSSICAL_MAXREAD …
#define NPHY_RSSICAL_NPOLL …
#define NPHY_RSSICAL_MAXD …
#define NPHY_MIN_RXIQ_PWR …
#define NPHY_RSSICAL_W1_TARGET …
#define NPHY_RSSICAL_W2_TARGET …
#define NPHY_RSSICAL_NB_TARGET …
#define NPHY_RSSICAL_W1_TARGET_REV3 …
#define NPHY_RSSICAL_W2_TARGET_REV3 …
#define NPHY_CALSANITY_RSSI_NB_MAX_POS …
#define NPHY_CALSANITY_RSSI_NB_MAX_NEG …
#define NPHY_CALSANITY_RSSI_W1_MAX_POS …
#define NPHY_CALSANITY_RSSI_W1_MAX_NEG …
#define NPHY_CALSANITY_RSSI_W2_MAX_POS …
#define NPHY_CALSANITY_RSSI_W2_MAX_NEG …
#define NPHY_RSSI_SXT(x) …
#define NPHY_RSSI_NB_VIOL(x) …
#define NPHY_RSSI_W1_VIOL(x) …
#define NPHY_RSSI_W2_VIOL(x) …
#define NPHY_IQCAL_NUMGAINS …
#define NPHY_N_GCTL …
#define NPHY_PAPD_EPS_TBL_SIZE …
#define NPHY_PAPD_SCL_TBL_SIZE …
#define NPHY_NUM_DIG_FILT_COEFFS …
#define NPHY_PAPD_COMP_OFF …
#define NPHY_PAPD_COMP_ON …
#define NPHY_SROM_TEMPSHIFT …
#define NPHY_SROM_MAXTEMPOFFSET …
#define NPHY_SROM_MINTEMPOFFSET …
#define NPHY_CAL_MAXTEMPDELTA …
#define NPHY_NOISEVAR_TBLLEN40 …
#define NPHY_NOISEVAR_TBLLEN20 …
#define NPHY_ANARXLPFBW_REDUCTIONFACT …
#define NPHY_ADJUSTED_MINCRSPOWER …
#define CCTRL5357_EXTPA …
#define CCTRL5357_ANT_MUX_2o3 …
#define NPHY_CAL_TSSISAMPS …
#define NPHY_TEST_TONE_FREQ_40MHz …
#define NPHY_TEST_TONE_FREQ_20MHz …
#define MAX_205x_RCAL_WAITLOOPS …
#define NPHY_RXCAL_TONEAMP …
#define NPHY_RXCAL_TONEFREQ_40MHz …
#define NPHY_RXCAL_TONEFREQ_20MHz …
#define TXFILT_SHAPING_OFDM20 …
#define TXFILT_SHAPING_OFDM40 …
#define TXFILT_SHAPING_CCK …
#define TXFILT_DEFAULT_OFDM20 …
#define TXFILT_DEFAULT_OFDM40 …
struct nphy_iqcal_params { … };
struct nphy_txiqcal_ladder { … };
struct nphy_ipa_txcalgains { … };
struct nphy_papd_restore_state { … };
struct nphy_ipa_txrxgain { … };
#define NPHY_IPA_RXCAL_MAXGAININDEX …
static const struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_5GHz[] = …;
static const struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_2GHz[] = …;
static const struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_5GHz_rev7[] = …;
static const struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_2GHz_rev7[] = …;
enum { … };
#define wlc_phy_get_papd_nphy(pi) …
static const u16 NPHY_IPA_REV4_txdigi_filtcoeffs[][NPHY_NUM_DIG_FILT_COEFFS] = …;
struct chan_info_nphy_2055 { … };
struct chan_info_nphy_radio205x { … };
struct chan_info_nphy_radio2057 { … };
struct chan_info_nphy_radio2057_rev5 { … };
struct nphy_sfo_cfg { … };
static const struct chan_info_nphy_2055 chan_info_nphy_2055[] = …;
static const struct chan_info_nphy_radio205x chan_info_nphyrev3_2056[] = …;
static const struct chan_info_nphy_radio205x chan_info_nphyrev4_2056_A1[] = …;
static const struct chan_info_nphy_radio205x chan_info_nphyrev5_2056v5[] = …;
static const struct chan_info_nphy_radio205x chan_info_nphyrev6_2056v6[] = …;
static const struct chan_info_nphy_radio205x chan_info_nphyrev5n6_2056v7[] = …;
static const struct chan_info_nphy_radio205x chan_info_nphyrev6_2056v8[] = …;
static const struct chan_info_nphy_radio205x chan_info_nphyrev6_2056v11[] = …;
static const struct chan_info_nphy_radio2057 chan_info_nphyrev7_2057_rev4[] = …;
static const struct chan_info_nphy_radio2057_rev5
chan_info_nphyrev8_2057_rev5[] = …static const struct chan_info_nphy_radio2057_rev5
chan_info_nphyrev9_2057_rev5v1[] = …static const struct chan_info_nphy_radio2057 chan_info_nphyrev8_2057_rev7[] = …static const struct chan_info_nphy_radio2057 chan_info_nphyrev8_2057_rev8[] = …static struct radio_regs regs_2055[] = …static struct radio_regs regs_SYN_2056[] = …static struct radio_regs regs_TX_2056[] = …static struct radio_regs regs_RX_2056[] = …static struct radio_regs regs_SYN_2056_A1[] = …static struct radio_regs regs_TX_2056_A1[] = …static struct radio_regs regs_RX_2056_A1[] = …static struct radio_regs regs_SYN_2056_rev5[] = …static struct radio_regs regs_TX_2056_rev5[] = …static struct radio_regs regs_RX_2056_rev5[] = …static struct radio_regs regs_SYN_2056_rev6[] = …static struct radio_regs regs_TX_2056_rev6[] = …static struct radio_regs regs_RX_2056_rev6[] = …static struct radio_regs regs_SYN_2056_rev7[] = …static struct radio_regs regs_TX_2056_rev7[] = …static struct radio_regs regs_RX_2056_rev7[] = …static struct radio_regs regs_SYN_2056_rev8[] = …static struct radio_regs regs_TX_2056_rev8[] = …static struct radio_regs regs_RX_2056_rev8[] = …static const struct radio_regs regs_SYN_2056_rev11[] = …static const struct radio_regs regs_TX_2056_rev11[] = …static const struct radio_regs regs_RX_2056_rev11[] = …static struct radio_20xx_regs regs_2057_rev4[] = …static struct radio_20xx_regs regs_2057_rev5[] = …static struct radio_20xx_regs regs_2057_rev5v1[] = …static struct radio_20xx_regs regs_2057_rev7[] = …static struct radio_20xx_regs regs_2057_rev8[] = …static s16 nphy_def_lnagains[] = …static s32 nphy_lnagain_est0[] = …static s32 nphy_lnagain_est1[] = …static const u16 tbl_iqcal_gainparams_nphy[2][NPHY_IQCAL_NUMGAINS][8] = …static const u32 nphy_tpc_txgain[] = …static const u16 nphy_tpc_loscale[] = …static u32 nphy_tpc_txgain_ipa[] = …static u32 nphy_tpc_txgain_ipa_rev5[] = …static u32 nphy_tpc_txgain_ipa_rev6[] = …static u32 nphy_tpc_txgain_ipa_2g_2057rev3[] = …static u32 nphy_tpc_txgain_ipa_2g_2057rev4n6[] = …static u32 nphy_tpc_txgain_ipa_2g_2057rev5[] = …static u32 nphy_tpc_txgain_ipa_2g_2057rev7[] = …static u32 nphy_tpc_txgain_ipa_5g[] = …static u32 nphy_tpc_txgain_ipa_5g_2057[] = …static u32 nphy_tpc_txgain_ipa_5g_2057rev7[] = …static s8 nphy_papd_pga_gain_delta_ipa_2g[] = …static s8 nphy_papd_pga_gain_delta_ipa_5g[] = …static s16 nphy_papd_padgain_dlt_2g_2057rev3n4[] = …static s16 nphy_papd_padgain_dlt_2g_2057rev5[] = …static s16 nphy_papd_padgain_dlt_2g_2057rev7[] = …static s8 nphy_papd_pgagain_dlt_5g_2057[] = …static s8 nphy_papd_pgagain_dlt_5g_2057rev7[] = …static u8 pad_gain_codes_used_2057rev5[] = …static u8 pad_gain_codes_used_2057rev7[] = …static u8 pad_all_gain_codes_2057[] = …static u8 pga_all_gain_codes_2057[] = …static u32 nphy_papd_scaltbl[] = …static u32 nphy_tpc_txgain_rev3[] = …static u32 nphy_tpc_txgain_HiPwrEPA[] = …static u32 nphy_tpc_txgain_epa_2057rev3[] = …static u32 nphy_tpc_txgain_epa_2057rev5[] = …static u32 nphy_tpc_5GHz_txgain_rev3[] = …static u32 nphy_tpc_5GHz_txgain_rev4[] = …static u32 nphy_tpc_5GHz_txgain_rev5[] = …static u32 nphy_tpc_5GHz_txgain_HiPwrEPA[] = …static u8 ant_sw_ctrl_tbl_rev8_2o3[] = …static u8 ant_sw_ctrl_tbl_rev8[] = …static u8 ant_sw_ctrl_tbl_rev8_2057v7_core0[] = …static u8 ant_sw_ctrl_tbl_rev8_2057v7_core1[] = …bool wlc_phy_bist_check_phy(struct brcms_phy_pub *pih)
{ … }static void wlc_phy_bphy_init_nphy(struct brcms_phy *pi)
{ … }void
wlc_phy_table_write_nphy(struct brcms_phy *pi, u32 id, u32 len, u32 offset,
u32 width, const void *data)
{ … }void
wlc_phy_table_read_nphy(struct brcms_phy *pi, u32 id, u32 len, u32 offset,
u32 width, void *data)
{ … }static void
wlc_phy_static_table_download_nphy(struct brcms_phy *pi)
{ … }static void wlc_phy_tbl_init_nphy(struct brcms_phy *pi)
{ … }static void
wlc_phy_write_txmacreg_nphy(struct brcms_phy *pi, u16 holdoff, u16 delay)
{ … }void wlc_phy_nphy_tkip_rifs_war(struct brcms_phy *pi, u8 rifs)
{ … }static void wlc_phy_txpwrctrl_config_nphy(struct brcms_phy *pi)
{ … }static void wlc_phy_txpwr_srom_read_ppr_nphy(struct brcms_phy *pi)
{ … }static void wlc_phy_txpwr_srom_read_nphy(struct brcms_phy *pi)
{ … }void wlc_phy_attach_nphy(struct brcms_phy *pi)
{ … }static s32 get_rf_pwr_offset(struct brcms_phy *pi, s16 pga_gn, s16 pad_gn)
{ … }static void wlc_phy_update_mimoconfig_nphy(struct brcms_phy *pi, s32 preamble)
{ … }static void wlc_phy_ipa_set_tx_digi_filts_nphy(struct brcms_phy *pi)
{ … }static void wlc_phy_ipa_restore_tx_digi_filts_nphy(struct brcms_phy *pi)
{ … }static void
wlc_phy_set_rfseq_nphy(struct brcms_phy *pi, u8 cmd, const u8 *events,
const u8 *dlys, u8 len)
{ … }static u16 wlc_phy_read_lpf_bw_ctl_nphy(struct brcms_phy *pi, u16 offset)
{ … }static void
wlc_phy_rfctrl_override_nphy_rev7(struct brcms_phy *pi, u16 field, u16 value,
u8 core_mask, u8 off, u8 override_id)
{ … }static void wlc_phy_adjust_lnagaintbl_nphy(struct brcms_phy *pi)
{ … }static void
wlc_phy_war_force_trsw_to_R_cliplo_nphy(struct brcms_phy *pi, u8 core)
{ … }static void wlc_phy_war_txchain_upd_nphy(struct brcms_phy *pi, u8 txchain)
{ … }static void wlc_phy_workarounds_nphy_gainctrl_2057_rev5(struct brcms_phy *pi)
{ … }static void wlc_phy_workarounds_nphy_gainctrl_2057_rev6(struct brcms_phy *pi)
{ … }static void wlc_phy_workarounds_nphy_gainctrl(struct brcms_phy *pi)
{ … }static void wlc_phy_workarounds_nphy_rev7(struct brcms_phy *pi)
{ … }static void wlc_phy_workarounds_nphy_rev3(struct brcms_phy *pi)
{ … }static void wlc_phy_workarounds_nphy_rev1(struct brcms_phy *pi)
{ … }static void wlc_phy_workarounds_nphy(struct brcms_phy *pi)
{ … }static void wlc_phy_extpa_set_tx_digi_filts_nphy(struct brcms_phy *pi)
{ … }static void wlc_phy_clip_det_nphy(struct brcms_phy *pi, u8 write, u16 *vals)
{ … }static void wlc_phy_ipa_internal_tssi_setup_nphy(struct brcms_phy *pi)
{ … }static void
wlc_phy_rfctrl_override_nphy(struct brcms_phy *pi, u16 field, u16 value,
u8 core_mask, u8 off)
{ … }static void wlc_phy_txpwrctrl_idle_tssi_nphy(struct brcms_phy *pi)
{ … }static void wlc_phy_txpwr_limit_to_tbl_nphy(struct brcms_phy *pi)
{ … }static void wlc_phy_txpwrctrl_pwr_setup_nphy(struct brcms_phy *pi)
{ … }static u32 *wlc_phy_get_ipa_gaintbl_nphy(struct brcms_phy *pi)
{ … }static void wlc_phy_restore_rssical_nphy(struct brcms_phy *pi)
{ … }static void wlc_phy_internal_cal_txgain_nphy(struct brcms_phy *pi)
{ … }static void wlc_phy_precal_txgain_nphy(struct brcms_phy *pi)
{ … }static void
wlc_phy_rfctrlintc_override_nphy(struct brcms_phy *pi, u8 field, u16 value,
u8 core_code)
{ … }void
wlc_phy_cal_txgainctrl_nphy(struct brcms_phy *pi, s32 dBm_targetpower,
bool debug)
{ … }static void wlc_phy_savecal_nphy(struct brcms_phy *pi)
{ … }static void wlc_phy_tx_iq_war_nphy(struct brcms_phy *pi)
{ … }static void wlc_phy_restorecal_nphy(struct brcms_phy *pi)
{ … }static void wlc_phy_txpwrctrl_coeff_setup_nphy(struct brcms_phy *pi)
{ … }static void wlc_phy_txlpfbw_nphy(struct brcms_phy *pi)
{ … }static void
wlc_phy_adjust_rx_analpfbw_nphy(struct brcms_phy *pi, u16 reduction_factr)
{ … }static void
wlc_phy_adjust_min_noisevar_nphy(struct brcms_phy *pi, int ntones,
int *tone_id_buf, u32 *noise_var_buf)
{ … }static void wlc_phy_adjust_crsminpwr_nphy(struct brcms_phy *pi, u8 minpwr)
{ … }static void wlc_phy_spurwar_nphy(struct brcms_phy *pi)
{ … }void wlc_phy_init_nphy(struct brcms_phy *pi)
{ … }static void wlc_phy_resetcca_nphy(struct brcms_phy *pi)
{ … }void wlc_phy_pa_override_nphy(struct brcms_phy *pi, bool en)
{ … }void wlc_phy_stf_chain_upd_nphy(struct brcms_phy *pi)
{ … }void wlc_phy_rxcore_setstate_nphy(struct brcms_phy_pub *pih, u8 rxcore_bitmask)
{ … }u8 wlc_phy_rxcore_getstate_nphy(struct brcms_phy_pub *pih)
{ … }bool wlc_phy_n_txpower_ipa_ison(struct brcms_phy *pi)
{ … }void wlc_phy_cal_init_nphy(struct brcms_phy *pi)
{ … }static void wlc_phy_radio_preinit_205x(struct brcms_phy *pi)
{ … }static void wlc_phy_radio_init_2057(struct brcms_phy *pi)
{ … }static u16 wlc_phy_radio205x_rcal(struct brcms_phy *pi)
{ … }static u16 wlc_phy_radio2057_rccal(struct brcms_phy *pi)
{ … }static void wlc_phy_radio_postinit_2057(struct brcms_phy *pi)
{ … }static void wlc_phy_radio_init_2056(struct brcms_phy *pi)
{ … }static void wlc_phy_radio_postinit_2056(struct brcms_phy *pi)
{ … }static void wlc_phy_radio_preinit_2055(struct brcms_phy *pi)
{ … }static void wlc_phy_radio_init_2055(struct brcms_phy *pi)
{ … }static void wlc_phy_radio_postinit_2055(struct brcms_phy *pi)
{ … }void wlc_phy_switch_radio_nphy(struct brcms_phy *pi, bool on)
{ … }static bool
wlc_phy_chan2freq_nphy(struct brcms_phy *pi, uint channel, int *f,
const struct chan_info_nphy_radio2057 **t0,
const struct chan_info_nphy_radio205x **t1,
const struct chan_info_nphy_radio2057_rev5 **t2,
const struct chan_info_nphy_2055 **t3)
{ … }u8 wlc_phy_get_chan_freq_range_nphy(struct brcms_phy *pi, uint channel)
{ … }static void
wlc_phy_chanspec_radio2055_setup(struct brcms_phy *pi,
const struct chan_info_nphy_2055 *ci)
{ … }static void
wlc_phy_chanspec_radio2056_setup(struct brcms_phy *pi,
const struct chan_info_nphy_radio205x *ci)
{ … }void wlc_phy_radio205x_vcocal_nphy(struct brcms_phy *pi)
{ … }static void
wlc_phy_chanspec_radio2057_setup(
struct brcms_phy *pi,
const struct chan_info_nphy_radio2057 *ci,
const struct chan_info_nphy_radio2057_rev5 *
ci2)
{ … }static void
wlc_phy_chanspec_nphy_setup(struct brcms_phy *pi, u16 chanspec,
const struct nphy_sfo_cfg *ci)
{ … }void wlc_phy_chanspec_set_nphy(struct brcms_phy *pi, u16 chanspec)
{ … }void wlc_phy_antsel_init(struct brcms_phy_pub *ppi, bool lut_init)
{ … }u16 wlc_phy_classifier_nphy(struct brcms_phy *pi, u16 mask, u16 val)
{ … }void wlc_phy_force_rfseq_nphy(struct brcms_phy *pi, u8 cmd)
{ … }static void
wlc_phy_rfctrl_override_1tomany_nphy(struct brcms_phy *pi, u16 cmd, u16 value,
u8 core_mask, u8 off)
{ … }static void
wlc_phy_scale_offset_rssi_nphy(struct brcms_phy *pi, u16 scale, s8 offset,
u8 coresel, u8 rail, u8 rssi_type)
{ … }static void brcms_phy_wr_tx_mux(struct brcms_phy *pi, u8 core)
{ … }void wlc_phy_rssisel_nphy(struct brcms_phy *pi, u8 core_code, u8 rssi_type)
{ … }int
wlc_phy_poll_rssi_nphy(struct brcms_phy *pi, u8 rssi_type, s32 *rssi_buf,
u8 nsamps)
{ … }s16 wlc_phy_tempsense_nphy(struct brcms_phy *pi)
{ … }static void
wlc_phy_set_rssi_2055_vcm(struct brcms_phy *pi, u8 rssi_type, u8 *vcm_buf)
{ … }static void wlc_phy_rssi_cal_nphy_rev3(struct brcms_phy *pi)
{ … }static void wlc_phy_rssi_cal_nphy_rev2(struct brcms_phy *pi, u8 rssi_type)
{ … }void wlc_phy_rssi_cal_nphy(struct brcms_phy *pi)
{ … }int
wlc_phy_rssi_compute_nphy(struct brcms_phy *pi, struct d11rxhdr *rxh)
{ … }static void
wlc_phy_loadsampletable_nphy(struct brcms_phy *pi, struct cordic_iq *tone_buf,
u16 num_samps)
{ … }static u16
wlc_phy_gen_load_samples_nphy(struct brcms_phy *pi, u32 f_kHz, u16 max_val,
u8 dac_test_mode)
{ … }static void
wlc_phy_runsamples_nphy(struct brcms_phy *pi, u16 num_samps, u16 loops,
u16 wait, u8 iqmode, u8 dac_test_mode,
bool modify_bbmult)
{ … }int
wlc_phy_tx_tone_nphy(struct brcms_phy *pi, u32 f_kHz, u16 max_val,
u8 iqmode, u8 dac_test_mode, bool modify_bbmult)
{ … }void wlc_phy_stopplayback_nphy(struct brcms_phy *pi)
{ … }static u32 *brcms_phy_get_tx_pwrctrl_tbl(struct brcms_phy *pi)
{ … }struct nphy_txgains wlc_phy_get_tx_gain_nphy(struct brcms_phy *pi)
{ … }static void
wlc_phy_iqcal_gainparams_nphy(struct brcms_phy *pi, u16 core_no,
struct nphy_txgains target_gain,
struct nphy_iqcal_params *params)
{ … }static void wlc_phy_txcal_radio_setup_nphy(struct brcms_phy *pi)
{ … }static void wlc_phy_txcal_radio_cleanup_nphy(struct brcms_phy *pi)
{ … }static void wlc_phy_txcal_physetup_nphy(struct brcms_phy *pi)
{ … }static void wlc_phy_txcal_phycleanup_nphy(struct brcms_phy *pi)
{ … }void
wlc_phy_est_tonepwr_nphy(struct brcms_phy *pi, s32 *qdBm_pwrbuf, u8 num_samps)
{ … }static void wlc_phy_update_txcal_ladder_nphy(struct brcms_phy *pi, u16 core)
{ … }static u8 wlc_phy_txpwr_idx_cur_get_nphy(struct brcms_phy *pi, u8 core)
{ … }static void
wlc_phy_txpwr_idx_cur_set_nphy(struct brcms_phy *pi, u8 idx0, u8 idx1)
{ … }static u16 wlc_phy_ipa_get_bbmult_nphy(struct brcms_phy *pi)
{ … }static void wlc_phy_ipa_set_bbmult_nphy(struct brcms_phy *pi, u8 m0, u8 m1)
{ … }static void
wlc_phy_papd_cal_setup_nphy(struct brcms_phy *pi,
struct nphy_papd_restore_state *state, u8 core)
{ … }static void
wlc_phy_papd_cal_cleanup_nphy(struct brcms_phy *pi,
struct nphy_papd_restore_state *state)
{ … }static void
wlc_phy_a1_nphy(struct brcms_phy *pi, u8 core, u32 winsz, u32 start,
u32 end)
{ … }static void
wlc_phy_a2_nphy(struct brcms_phy *pi, struct nphy_ipa_txcalgains *txgains,
enum phy_cal_mode cal_mode, u8 core)
{ … }static u8 wlc_phy_a3_nphy(struct brcms_phy *pi, u8 start_gain, u8 core)
{ … }static void wlc_phy_a4(struct brcms_phy *pi, bool full_cal)
{ … }void wlc_phy_cal_perical_nphy_run(struct brcms_phy *pi, u8 caltype)
{ … }int
wlc_phy_cal_txiqlo_nphy(struct brcms_phy *pi, struct nphy_txgains target_gain,
bool fullcal, bool mphase)
{ … }static void wlc_phy_reapply_txcal_coeffs_nphy(struct brcms_phy *pi)
{ … }void
wlc_phy_rx_iq_coeffs_nphy(struct brcms_phy *pi, u8 write,
struct nphy_iq_comp *pcomp)
{ … }void
wlc_phy_rx_iq_est_nphy(struct brcms_phy *pi, struct phy_iq_est *est,
u16 num_samps, u8 wait_time, u8 wait_for_crs)
{ … }#define CAL_RETRY_CNT …static void wlc_phy_calc_rx_iq_comp_nphy(struct brcms_phy *pi, u8 core_mask)
{ … }static void wlc_phy_rxcal_radio_setup_nphy(struct brcms_phy *pi, u8 rx_core)
{ … }static void wlc_phy_rxcal_radio_cleanup_nphy(struct brcms_phy *pi, u8 rx_core)
{ … }static void wlc_phy_rxcal_physetup_nphy(struct brcms_phy *pi, u8 rx_core)
{ … }static void wlc_phy_rxcal_phycleanup_nphy(struct brcms_phy *pi, u8 rx_core)
{ … }static void
wlc_phy_rxcal_gainctrl_nphy_rev5(struct brcms_phy *pi, u8 rx_core,
u16 *rxgain, u8 cal_type)
{ … }static void
wlc_phy_rxcal_gainctrl_nphy(struct brcms_phy *pi, u8 rx_core, u16 *rxgain,
u8 cal_type)
{ … }static u8
wlc_phy_rc_sweep_nphy(struct brcms_phy *pi, u8 core_idx, u8 loopback_type)
{ … }#define WAIT_FOR_SCOPE …static int wlc_phy_cal_rxiq_nphy_rev3(struct brcms_phy *pi,
struct nphy_txgains target_gain,
u8 cal_type, bool debug)
{ … }static int
wlc_phy_cal_rxiq_nphy_rev2(struct brcms_phy *pi,
struct nphy_txgains target_gain, bool debug)
{ … }int
wlc_phy_cal_rxiq_nphy(struct brcms_phy *pi, struct nphy_txgains target_gain,
u8 cal_type, bool debug)
{ … }void wlc_phy_txpwr_fixpower_nphy(struct brcms_phy *pi)
{ … }static void
wlc_phy_txpwr_nphy_srom_convert(u8 *srom_max, u16 *pwr_offset,
u8 tmp_max_pwr, u8 rate_start,
u8 rate_end)
{ … }static void
wlc_phy_txpwr_nphy_po_apply(u8 *srom_max, u8 pwr_offset,
u8 rate_start, u8 rate_end)
{ … }void
wlc_phy_ofdm_to_mcs_powers_nphy(u8 *power, u8 rate_mcs_start,
u8 rate_mcs_end, u8 rate_ofdm_start)
{ … }void
wlc_phy_mcs_to_ofdm_powers_nphy(u8 *power, u8 rate_ofdm_start,
u8 rate_ofdm_end, u8 rate_mcs_start)
{ … }void wlc_phy_txpwr_apply_nphy(struct brcms_phy *pi)
{ … }void wlc_phy_txpower_recalc_target_nphy(struct brcms_phy *pi)
{ … }static bool wlc_phy_txpwr_ison_nphy(struct brcms_phy *pi)
{ … }u16 wlc_phy_txpwr_idx_get_nphy(struct brcms_phy *pi)
{ … }void wlc_phy_txpwr_papd_cal_nphy(struct brcms_phy *pi)
{ … }void wlc_phy_txpwrctrl_enable_nphy(struct brcms_phy *pi, u8 ctrl_type)
{ … }void
wlc_phy_txpwr_index_nphy(struct brcms_phy *pi, u8 core_mask, s8 txpwrindex,
bool restore_cals)
{ … }void
wlc_phy_txpower_sromlimit_get_nphy(struct brcms_phy *pi, uint chan, u8 *max_pwr,
u8 txp_rate_idx)
{ … }void wlc_phy_stay_in_carriersearch_nphy(struct brcms_phy *pi, bool enable)
{ … }void wlc_nphy_deaf_mode(struct brcms_phy *pi, bool mode)
{ … }