brcmsmac: move PHY functions
Move functions in preparation for 4313iPA changes Reviewed-by: Arend Van Spriel <arend@broadcom.com> Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com> Reviewed-by: Hante Meuleman <meuleman@broadcom.com> Signed-off-by: Piotr Haber <phaber@broadcom.com> Signed-off-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
Родитель
8e21df2389
Коммит
b835763416
|
@ -1860,41 +1860,6 @@ wlc_lcnphy_load_tx_iir_filter(struct brcms_phy *pi, bool is_ofdm, s16 filt_type)
|
|||
return (filt_index != -1) ? 0 : -1;
|
||||
}
|
||||
|
||||
void wlc_phy_chanspec_set_lcnphy(struct brcms_phy *pi, u16 chanspec)
|
||||
{
|
||||
u8 channel = CHSPEC_CHANNEL(chanspec);
|
||||
|
||||
wlc_phy_chanspec_radio_set((struct brcms_phy_pub *) pi, chanspec);
|
||||
|
||||
wlc_lcnphy_set_chanspec_tweaks(pi, pi->radio_chanspec);
|
||||
|
||||
or_phy_reg(pi, 0x44a, 0x44);
|
||||
write_phy_reg(pi, 0x44a, 0x80);
|
||||
|
||||
wlc_lcnphy_radio_2064_channel_tune_4313(pi, channel);
|
||||
udelay(1000);
|
||||
|
||||
wlc_lcnphy_toggle_afe_pwdn(pi);
|
||||
|
||||
write_phy_reg(pi, 0x657, lcnphy_sfo_cfg[channel - 1].ptcentreTs20);
|
||||
write_phy_reg(pi, 0x658, lcnphy_sfo_cfg[channel - 1].ptcentreFactor);
|
||||
|
||||
if (CHSPEC_CHANNEL(pi->radio_chanspec) == 14) {
|
||||
mod_phy_reg(pi, 0x448, (0x3 << 8), (2) << 8);
|
||||
|
||||
wlc_lcnphy_load_tx_iir_filter(pi, false, 3);
|
||||
} else {
|
||||
mod_phy_reg(pi, 0x448, (0x3 << 8), (1) << 8);
|
||||
|
||||
wlc_lcnphy_load_tx_iir_filter(pi, false, 2);
|
||||
}
|
||||
|
||||
wlc_lcnphy_load_tx_iir_filter(pi, true, 0);
|
||||
|
||||
mod_phy_reg(pi, 0x4eb, (0x7 << 3), (1) << 3);
|
||||
|
||||
}
|
||||
|
||||
static u16 wlc_lcnphy_get_pa_gain(struct brcms_phy *pi)
|
||||
{
|
||||
u16 pa_gain;
|
||||
|
@ -1936,6 +1901,21 @@ static void wlc_lcnphy_set_tx_gain(struct brcms_phy *pi,
|
|||
wlc_lcnphy_enable_tx_gain_override(pi);
|
||||
}
|
||||
|
||||
static u8 wlc_lcnphy_get_bbmult(struct brcms_phy *pi)
|
||||
{
|
||||
u16 m0m1;
|
||||
struct phytbl_info tab;
|
||||
|
||||
tab.tbl_ptr = &m0m1;
|
||||
tab.tbl_len = 1;
|
||||
tab.tbl_id = LCNPHY_TBL_ID_IQLOCAL;
|
||||
tab.tbl_offset = 87;
|
||||
tab.tbl_width = 16;
|
||||
wlc_lcnphy_read_table(pi, &tab);
|
||||
|
||||
return (u8) ((m0m1 & 0xff00) >> 8);
|
||||
}
|
||||
|
||||
static void wlc_lcnphy_set_bbmult(struct brcms_phy *pi, u8 m0)
|
||||
{
|
||||
u16 m0m1 = (u16) m0 << 8;
|
||||
|
@ -3075,21 +3055,6 @@ static void wlc_lcnphy_tx_pwr_ctrl_init(struct brcms_phy_pub *ppi)
|
|||
wlapi_enable_mac(pi->sh->physhim);
|
||||
}
|
||||
|
||||
static u8 wlc_lcnphy_get_bbmult(struct brcms_phy *pi)
|
||||
{
|
||||
u16 m0m1;
|
||||
struct phytbl_info tab;
|
||||
|
||||
tab.tbl_ptr = &m0m1;
|
||||
tab.tbl_len = 1;
|
||||
tab.tbl_id = LCNPHY_TBL_ID_IQLOCAL;
|
||||
tab.tbl_offset = 87;
|
||||
tab.tbl_width = 16;
|
||||
wlc_lcnphy_read_table(pi, &tab);
|
||||
|
||||
return (u8) ((m0m1 & 0xff00) >> 8);
|
||||
}
|
||||
|
||||
static void wlc_lcnphy_set_pa_gain(struct brcms_phy *pi, u16 gain)
|
||||
{
|
||||
mod_phy_reg(pi, 0x4fb,
|
||||
|
@ -4946,6 +4911,43 @@ void wlc_phy_txpower_recalc_target_lcnphy(struct brcms_phy *pi)
|
|||
}
|
||||
}
|
||||
|
||||
void wlc_phy_chanspec_set_lcnphy(struct brcms_phy *pi, u16 chanspec)
|
||||
{
|
||||
u8 channel = CHSPEC_CHANNEL(chanspec);
|
||||
|
||||
wlc_phy_chanspec_radio_set((struct brcms_phy_pub *)pi, chanspec);
|
||||
|
||||
wlc_lcnphy_set_chanspec_tweaks(pi, pi->radio_chanspec);
|
||||
|
||||
or_phy_reg(pi, 0x44a, 0x44);
|
||||
write_phy_reg(pi, 0x44a, 0x80);
|
||||
|
||||
wlc_lcnphy_radio_2064_channel_tune_4313(pi, channel);
|
||||
udelay(1000);
|
||||
|
||||
wlc_lcnphy_toggle_afe_pwdn(pi);
|
||||
|
||||
write_phy_reg(pi, 0x657, lcnphy_sfo_cfg[channel - 1].ptcentreTs20);
|
||||
write_phy_reg(pi, 0x658, lcnphy_sfo_cfg[channel - 1].ptcentreFactor);
|
||||
|
||||
if (CHSPEC_CHANNEL(pi->radio_chanspec) == 14) {
|
||||
mod_phy_reg(pi, 0x448, (0x3 << 8), (2) << 8);
|
||||
|
||||
wlc_lcnphy_load_tx_iir_filter(pi, false, 3);
|
||||
} else {
|
||||
mod_phy_reg(pi, 0x448, (0x3 << 8), (1) << 8);
|
||||
|
||||
wlc_lcnphy_load_tx_iir_filter(pi, false, 2);
|
||||
}
|
||||
|
||||
if (pi->sh->boardflags & BFL_FEM)
|
||||
wlc_lcnphy_load_tx_iir_filter(pi, true, 0);
|
||||
else
|
||||
wlc_lcnphy_load_tx_iir_filter(pi, true, 3);
|
||||
|
||||
mod_phy_reg(pi, 0x4eb, (0x7 << 3), (1) << 3);
|
||||
}
|
||||
|
||||
void wlc_phy_detach_lcnphy(struct brcms_phy *pi)
|
||||
{
|
||||
kfree(pi->u.pi_lcnphy);
|
||||
|
|
Загрузка…
Ссылка в новой задаче