summaryrefslogtreecommitdiffstats
path: root/package/mac80211/patches/842-brcmsmac-add-some-conditions-for-the-bcm4716-again.patch
diff options
context:
space:
mode:
authorhauke <hauke@3c298f89-4303-0410-b956-a3cf2f4a3e73>2012-06-01 21:17:04 +0000
committerhauke <hauke@3c298f89-4303-0410-b956-a3cf2f4a3e73>2012-06-01 21:17:04 +0000
commit50498fcd76b20add8f641f15bbcfc6ef0934d096 (patch)
treefcdf28ad41c8ced448eed59014aa1fff616587c1 /package/mac80211/patches/842-brcmsmac-add-some-conditions-for-the-bcm4716-again.patch
parent539cdb71a65e590de571000fd526f406d8cda010 (diff)
mac80211: brcmsmac: add some patches starting to add support for some more chips
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@32020 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/mac80211/patches/842-brcmsmac-add-some-conditions-for-the-bcm4716-again.patch')
-rw-r--r--package/mac80211/patches/842-brcmsmac-add-some-conditions-for-the-bcm4716-again.patch202
1 files changed, 0 insertions, 202 deletions
diff --git a/package/mac80211/patches/842-brcmsmac-add-some-conditions-for-the-bcm4716-again.patch b/package/mac80211/patches/842-brcmsmac-add-some-conditions-for-the-bcm4716-again.patch
deleted file mode 100644
index 40ccde90b..000000000
--- a/package/mac80211/patches/842-brcmsmac-add-some-conditions-for-the-bcm4716-again.patch
+++ /dev/null
@@ -1,202 +0,0 @@
---- a/drivers/net/wireless/brcm80211/brcmsmac/main.c
-+++ b/drivers/net/wireless/brcm80211/brcmsmac/main.c
-@@ -1943,7 +1943,8 @@ static bool brcms_b_radio_read_hwdisable
- * accesses phyreg throughput mac. This can be skipped since
- * only mac reg is accessed below
- */
-- flags |= SICF_PCLKE;
-+ if (D11REV_GE(wlc_hw->corerev, 18))
-+ flags |= SICF_PCLKE;
-
- /*
- * TODO: test suspend/resume
-@@ -2024,7 +2025,8 @@ void brcms_b_corereset(struct brcms_hard
- * phyreg throughput mac, AND phy_reset is skipped at early stage when
- * band->pi is invalid. need to enable PHY CLK
- */
-- flags |= SICF_PCLKE;
-+ if (D11REV_GE(wlc_hw->corerev, 18))
-+ flags |= SICF_PCLKE;
-
- /*
- * reset the core
---- a/drivers/net/wireless/brcm80211/brcmsmac/phy/phy_n.c
-+++ b/drivers/net/wireless/brcm80211/brcmsmac/phy/phy_n.c
-@@ -17895,6 +17895,9 @@ static u32 *wlc_phy_get_ipa_gaintbl_nphy
- nphy_tpc_txgain_ipa_2g_2057rev7;
- } else if (NREV_IS(pi->pubpi.phy_rev, 6)) {
- tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev6;
-+ if (pi->sh->chip == BCM47162_CHIP_ID) {
-+ tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev5;
-+ }
- } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
- tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev5;
- } else {
-@@ -19256,8 +19259,14 @@ static void wlc_phy_spurwar_nphy(struct
- case 38:
- case 102:
- case 118:
-- nphy_adj_tone_id_buf[0] = 0;
-- nphy_adj_noise_var_buf[0] = 0x0;
-+ if ((pi->sh->chip == BCM4716_CHIP_ID) &&
-+ (pi->sh->chippkg == BCM4717_PKG_ID)) {
-+ nphy_adj_tone_id_buf[0] = 32;
-+ nphy_adj_noise_var_buf[0] = 0x21f;
-+ } else {
-+ nphy_adj_tone_id_buf[0] = 0;
-+ nphy_adj_noise_var_buf[0] = 0x0;
-+ }
- break;
- case 134:
- nphy_adj_tone_id_buf[0] = 32;
-@@ -20697,12 +20706,22 @@ wlc_phy_chanspec_radio2056_setup(struct
- write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 |
- RADIO_2056_SYN, 0x1f);
-
-- write_radio_reg(pi,
-- RADIO_2056_SYN_PLL_LOOPFILTER4 |
-- RADIO_2056_SYN, 0xb);
-- write_radio_reg(pi,
-- RADIO_2056_SYN_PLL_CP2 |
-- RADIO_2056_SYN, 0x14);
-+ if ((pi->sh->chip == BCM4716_CHIP_ID) ||
-+ (pi->sh->chip == BCM47162_CHIP_ID)) {
-+ write_radio_reg(pi,
-+ RADIO_2056_SYN_PLL_LOOPFILTER4 |
-+ RADIO_2056_SYN, 0x14);
-+ write_radio_reg(pi,
-+ RADIO_2056_SYN_PLL_CP2 |
-+ RADIO_2056_SYN, 0x00);
-+ } else {
-+ write_radio_reg(pi,
-+ RADIO_2056_SYN_PLL_LOOPFILTER4 |
-+ RADIO_2056_SYN, 0xb);
-+ write_radio_reg(pi,
-+ RADIO_2056_SYN_PLL_CP2 |
-+ RADIO_2056_SYN, 0x14);
-+ }
- }
- }
-
-@@ -20749,24 +20768,33 @@ wlc_phy_chanspec_radio2056_setup(struct
- WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
- PADG_IDAC, 0xcc);
-
-- bias = 0x25;
-- cascbias = 0x20;
-+ if ((pi->sh->chip == BCM4716_CHIP_ID) ||
-+ (pi->sh->chip ==
-+ BCM47162_CHIP_ID)) {
-+ bias = 0x40;
-+ cascbias = 0x45;
-+ pag_boost_tune = 0x5;
-+ pgag_boost_tune = 0x33;
-+ padg_boost_tune = 0x77;
-+ mixg_boost_tune = 0x55;
-+ } else {
-+ bias = 0x25;
-+ cascbias = 0x20;
-
-- if ((pi->sh->chip ==
-- BCM43224_CHIP_ID)
-- || (pi->sh->chip ==
-- BCM43225_CHIP_ID)) {
-- if (pi->sh->chippkg ==
-- BCM43224_FAB_SMIC) {
-- bias = 0x2a;
-- cascbias = 0x38;
-+ if ((pi->sh->chip == BCM43224_CHIP_ID)
-+ || (pi->sh->chip == BCM43225_CHIP_ID)) {
-+ if (pi->sh->chippkg ==
-+ BCM43224_FAB_SMIC) {
-+ bias = 0x2a;
-+ cascbias = 0x38;
-+ }
- }
-- }
-
-- pag_boost_tune = 0x4;
-- pgag_boost_tune = 0x03;
-- padg_boost_tune = 0x77;
-- mixg_boost_tune = 0x65;
-+ pag_boost_tune = 0x4;
-+ pgag_boost_tune = 0x03;
-+ padg_boost_tune = 0x77;
-+ mixg_boost_tune = 0x65;
-+ }
-
- WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
- INTPAG_IMAIN_STAT, bias);
-@@ -21180,19 +21208,27 @@ wlc_phy_chanspec_nphy_setup(struct brcms
- } else if (NREV_GE(pi->pubpi.phy_rev, 7)) {
- if (val == 54)
- spuravoid = 1;
-- } else {
-- if (pi->nphy_aband_spurwar_en &&
-- ((val == 38) || (val == 102)
-- || (val == 118)))
-+ } else if (pi->nphy_aband_spurwar_en &&
-+ ((val == 38) || (val == 102) || (val == 118))) {
-+ if ((pi->sh->chip == BCM4716_CHIP_ID)
-+ && (pi->sh->chippkg == BCM4717_PKG_ID)) {
-+ spuravoid = 0;
-+ } else {
- spuravoid = 1;
-+ }
- }
-
- if (pi->phy_spuravoid == SPURAVOID_FORCEON)
- spuravoid = 1;
-
-- wlapi_bmac_core_phypll_ctl(pi->sh->physhim, false);
-- si_pmu_spuravoid_pllupdate(pi->sh->sih, spuravoid);
-- wlapi_bmac_core_phypll_ctl(pi->sh->physhim, true);
-+ if ((pi->sh->chip == BCM4716_CHIP_ID) ||
-+ (pi->sh->chip == BCM47162_CHIP_ID)) {
-+ si_pmu_spuravoid_pllupdate(pi->sh->sih, spuravoid);
-+ } else {
-+ wlapi_bmac_core_phypll_ctl(pi->sh->physhim, false);
-+ si_pmu_spuravoid_pllupdate(pi->sh->sih, spuravoid);
-+ wlapi_bmac_core_phypll_ctl(pi->sh->physhim, true);
-+ }
-
- if ((pi->sh->chip == BCM43224_CHIP_ID) ||
- (pi->sh->chip == BCM43225_CHIP_ID)) {
-@@ -21211,7 +21247,10 @@ wlc_phy_chanspec_nphy_setup(struct brcms
- }
- }
-
-- wlapi_bmac_core_phypll_reset(pi->sh->physhim);
-+ if (!((pi->sh->chip == BCM4716_CHIP_ID) ||
-+ (pi->sh->chip == BCM47162_CHIP_ID))) {
-+ wlapi_bmac_core_phypll_reset(pi->sh->physhim);
-+ }
-
- mod_phy_reg(pi, 0x01, (0x1 << 15),
- ((spuravoid > 0) ? (0x1 << 15) : 0));
-@@ -24925,14 +24964,20 @@ wlc_phy_a2_nphy(struct brcms_phy *pi, st
- if (txgains->useindex) {
- phy_a4 = 15 - ((txgains->index) >> 3);
- if (CHSPEC_IS2G(pi->radio_chanspec)) {
-- if (NREV_GE(pi->pubpi.phy_rev, 6))
-+ if (NREV_GE(pi->pubpi.phy_rev, 6)) {
- phy_a5 = 0x00f7 | (phy_a4 << 8);
--
-- else
-- if (NREV_IS(pi->pubpi.phy_rev, 5))
-+ if (pi->sh->chip ==
-+ BCM47162_CHIP_ID) {
-+ phy_a5 =
-+ 0x10f7 | (phy_a4 <<
-+ 8);
-+ }
-+ } else
-+ if (NREV_IS(pi->pubpi.phy_rev, 5)) {
- phy_a5 = 0x10f7 | (phy_a4 << 8);
-- else
-+ } else {
- phy_a5 = 0x50f7 | (phy_a4 << 8);
-+ }
- } else {
- phy_a5 = 0x70f7 | (phy_a4 << 8);
- }