Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 02fcc753 authored by Arend van Spriel's avatar Arend van Spriel Committed by John W. Linville
Browse files

brcmsmac: rework switch control table init including iPA BT-combo



Rework the code path in lcnphy tbl_init() for switch control
table programming. This also takes the iPA BT-combo card into
account.

Tested-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
Reviewed-by: default avatarPieter-Paul Giesberts <pieterpg@broadcom.com>
Signed-off-by: default avatarArend van Spriel <arend@broadcom.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 3e72ef73
Loading
Loading
Loading
Loading
+16 −15
Original line number Diff line number Diff line
@@ -4573,6 +4573,7 @@ static void wlc_lcnphy_tbl_init(struct brcms_phy *pi)
	uint idx;
	u8 phybw40;
	struct phytbl_info tab;
	const struct phytbl_info *tb;
	u32 val;

	phybw40 = CHSPEC_IS40(pi->radio_chanspec);
@@ -4619,7 +4620,6 @@ static void wlc_lcnphy_tbl_init(struct brcms_phy *pi)
	}

	if (LCNREV_IS(pi->pubpi.phy_rev, 2)) {
		const struct phytbl_info *tb;
		int l;

		if (CHSPEC_IS2G(pi->radio_chanspec)) {
@@ -4640,21 +4640,22 @@ static void wlc_lcnphy_tbl_init(struct brcms_phy *pi)
			wlc_lcnphy_write_table(pi, &tb[idx]);
	}

	if ((pi->sh->boardflags & BFL_FEM)
	    && !(pi->sh->boardflags & BFL_FEM_BT))
		wlc_lcnphy_write_table(pi, &dot11lcn_sw_ctrl_tbl_info_4313_epa);
	else if (pi->sh->boardflags & BFL_FEM_BT) {
	if (pi->sh->boardflags & BFL_FEM) {
		if (pi->sh->boardflags & BFL_FEM_BT) {
			if (pi->sh->boardrev < 0x1250)
			wlc_lcnphy_write_table(
				pi,
				&dot11lcn_sw_ctrl_tbl_info_4313_bt_epa);
				tb = &dot11lcn_sw_ctrl_tbl_info_4313_bt_epa;
			else
			wlc_lcnphy_write_table(
				pi,
				&dot11lcn_sw_ctrl_tbl_info_4313_bt_epa_p250);
	} else
		wlc_lcnphy_write_table(pi, &dot11lcn_sw_ctrl_tbl_info_4313);

				tb = &dot11lcn_sw_ctrl_tbl_info_4313_bt_epa_p250;
		} else {
			tb = &dot11lcn_sw_ctrl_tbl_info_4313_epa;
		}
	} else {
		if (pi->sh->boardflags & BFL_FEM_BT)
			tb = &dot11lcn_sw_ctrl_tbl_info_4313_bt_ipa;
		else
			tb = &dot11lcn_sw_ctrl_tbl_info_4313;
	}
	wlc_lcnphy_write_table(pi, tb);
	wlc_lcnphy_load_rfpower(pi);

	wlc_lcnphy_clear_papd_comptable(pi);
+72 −0
Original line number Diff line number Diff line
@@ -2044,6 +2044,73 @@ static const u16 dot11lcn_sw_ctrl_tbl_4313_rev0[] = {
	0x0005,
};

static const u16 dot11lcn_sw_ctrl_tbl_4313_ipa_rev0_combo[] = {
	0x0005,
	0x0006,
	0x0009,
	0x000a,
	0x0005,
	0x0006,
	0x0009,
	0x000a,
	0x0005,
	0x0006,
	0x0009,
	0x000a,
	0x0005,
	0x0006,
	0x0009,
	0x000a,
	0x0005,
	0x0006,
	0x0009,
	0x000a,
	0x0005,
	0x0006,
	0x0009,
	0x000a,
	0x0005,
	0x0006,
	0x0009,
	0x000a,
	0x0005,
	0x0006,
	0x0009,
	0x000a,
	0x0005,
	0x0006,
	0x0009,
	0x000a,
	0x0005,
	0x0006,
	0x0009,
	0x000a,
	0x0005,
	0x0006,
	0x0009,
	0x000a,
	0x0005,
	0x0006,
	0x0009,
	0x000a,
	0x0005,
	0x0006,
	0x0009,
	0x000a,
	0x0005,
	0x0006,
	0x0009,
	0x000a,
	0x0005,
	0x0006,
	0x0009,
	0x000a,
	0x0005,
	0x0006,
	0x0009,
	0x000a,
};

static const u16 dot11lcn_sw_ctrl_tbl_rev0[] = {
	0x0004,
	0x0004,
@@ -2808,6 +2875,11 @@ const struct phytbl_info dot11lcn_sw_ctrl_tbl_info_4313 = {
	ARRAY_SIZE(dot11lcn_sw_ctrl_tbl_4313_rev0), 15, 0, 16
};

const struct phytbl_info dot11lcn_sw_ctrl_tbl_info_4313_bt_ipa = {
	&dot11lcn_sw_ctrl_tbl_4313_ipa_rev0_combo,
	ARRAY_SIZE(dot11lcn_sw_ctrl_tbl_4313_ipa_rev0_combo), 15, 0, 16
};

const struct phytbl_info dot11lcn_sw_ctrl_tbl_info_4313_epa = {
	&dot11lcn_sw_ctrl_tbl_4313_epa_rev0,
	ARRAY_SIZE(dot11lcn_sw_ctrl_tbl_4313_epa_rev0), 15, 0, 16
+1 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@
extern const struct phytbl_info dot11lcnphytbl_rx_gain_info_rev0[];
extern const u32 dot11lcnphytbl_rx_gain_info_sz_rev0;
extern const struct phytbl_info dot11lcn_sw_ctrl_tbl_info_4313;
extern const struct phytbl_info dot11lcn_sw_ctrl_tbl_info_4313_bt_ipa;
extern const struct phytbl_info dot11lcn_sw_ctrl_tbl_info_4313_epa;
extern const struct phytbl_info dot11lcn_sw_ctrl_tbl_info_4313_epa_combo;
extern const struct phytbl_info dot11lcn_sw_ctrl_tbl_info_4313_bt_epa;