Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 268718
b: refs/heads/master
c: 7ddaad7
h: refs/heads/master
v: v3
  • Loading branch information
Arend van Spriel authored and Greg Kroah-Hartman committed Oct 5, 2011
1 parent 1d42480 commit 6340879
Show file tree
Hide file tree
Showing 14 changed files with 191 additions and 197 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: f4e5c544d17cb2d4d9d2935024c4e629f4b2f619
refs/heads/master: 7ddaad7eb407f9ee90a8db2673a63541ec820285
18 changes: 8 additions & 10 deletions trunk/drivers/staging/brcm80211/brcmsmac/aiutils.c
Original file line number Diff line number Diff line change
Expand Up @@ -1012,7 +1012,7 @@ ai_buscore_setup(struct si_info *sii, u32 savewin, uint *origidx)
/*
* get boardtype and boardrev
*/
static __used void ai_nvram_process(struct si_info *sii, char *pvars)
static __used void ai_nvram_process(struct si_info *sii)
{
uint w = 0;

Expand All @@ -1021,7 +1021,7 @@ static __used void ai_nvram_process(struct si_info *sii, char *pvars)

sii->pub.boardvendor = w & 0xffff;
sii->pub.boardtype = (w >> 16) & 0xffff;
sii->pub.boardflags = getintvar(pvars, "boardflags");
sii->pub.boardflags = getintvar(&sii->pub, "boardflags");
}

static struct si_info *ai_doattach(struct si_info *sii,
Expand All @@ -1031,7 +1031,6 @@ static struct si_info *ai_doattach(struct si_info *sii,
struct si_pub *sih = &sii->pub;
u32 w, savewin;
struct chipcregs __iomem *cc;
char *pvars = NULL;
uint socitype;
uint origidx;

Expand Down Expand Up @@ -1095,8 +1094,9 @@ static struct si_info *ai_doattach(struct si_info *sii,
if (srom_var_init(&sii->pub, cc, vars, varsz))
goto exit;

pvars = vars ? *vars : NULL;
ai_nvram_process(sii, pvars);
sii->vars = vars ? *vars : NULL;
sii->varsz = varsz ? *varsz : 0;
ai_nvram_process(sii);

/* === NVRAM, clock is ready === */
cc = (struct chipcregs __iomem *) ai_setcore(sih, CC_CORE_ID, 0);
Expand All @@ -1109,7 +1109,7 @@ static struct si_info *ai_doattach(struct si_info *sii,
u32 xtalfreq;
si_pmu_init(sih);
si_pmu_chip_init(sih);
xtalfreq = getintvar(pvars, "xtalfreq");
xtalfreq = getintvar(sih, "xtalfreq");
/* If xtalfreq var not available, try to measure it */
if (xtalfreq == 0)
xtalfreq = si_pmu_measure_alpclk(sih);
Expand All @@ -1119,14 +1119,14 @@ static struct si_info *ai_doattach(struct si_info *sii,
}

/* setup the GPIO based LED powersave register */
w = getintvar(pvars, "leddc");
w = getintvar(sih, "leddc");
if (w == 0)
w = DEFAULT_GPIOTIMERVAL;
ai_corereg(sih, SI_CC_IDX, offsetof(struct chipcregs, gpiotimerval),
~0, w);

if (PCIE(sii))
pcicore_attach(sii->pch, pvars, SI_DOATTACH);
pcicore_attach(sii->pch, SI_DOATTACH);

if (sih->chip == BCM43224_CHIP_ID) {
/*
Expand Down Expand Up @@ -1191,8 +1191,6 @@ ai_attach(void __iomem *regs, struct pci_dev *sdh, char **vars, uint *varsz)
kfree(sii);
return NULL;
}
sii->vars = vars ? *vars : NULL;
sii->varsz = varsz ? *varsz : 0;

return (struct si_pub *) sii;
}
Expand Down
15 changes: 8 additions & 7 deletions trunk/drivers/staging/brcm80211/brcmsmac/antsel.c
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,7 @@ brcms_c_antsel_init_cfg(struct antsel_info *asi, struct brcms_antselcfg *antsel,
struct antsel_info *brcms_c_antsel_attach(struct brcms_c_info *wlc)
{
struct antsel_info *asi;
struct si_pub *sih = wlc->hw->sih;

asi = kzalloc(sizeof(struct antsel_info), GFP_ATOMIC);
if (!asi)
Expand All @@ -117,7 +118,7 @@ struct antsel_info *brcms_c_antsel_attach(struct brcms_c_info *wlc)
asi->pub = wlc->pub;
asi->antsel_type = ANTSEL_NA;
asi->antsel_avail = false;
asi->antsel_antswitch = (u8) getintvar(asi->pub->vars, "antswitch");
asi->antsel_antswitch = (u8) getintvar(sih, "antswitch");

if ((asi->pub->sromrev >= 4) && (asi->antsel_antswitch != 0)) {
switch (asi->antsel_antswitch) {
Expand All @@ -127,12 +128,12 @@ struct antsel_info *brcms_c_antsel_attach(struct brcms_c_info *wlc)
/* 4321/2 board with 2x3 switch logic */
asi->antsel_type = ANTSEL_2x3;
/* Antenna selection availability */
if (((u16) getintvar(asi->pub->vars, "aa2g") == 7) ||
((u16) getintvar(asi->pub->vars, "aa5g") == 7)) {
if (((u16) getintvar(sih, "aa2g") == 7) ||
((u16) getintvar(sih, "aa5g") == 7)) {
asi->antsel_avail = true;
} else if (
(u16) getintvar(asi->pub->vars, "aa2g") == 3 ||
(u16) getintvar(asi->pub->vars, "aa5g") == 3) {
(u16) getintvar(sih, "aa2g") == 3 ||
(u16) getintvar(sih, "aa5g") == 3) {
asi->antsel_avail = false;
} else {
asi->antsel_avail = false;
Expand All @@ -145,8 +146,8 @@ struct antsel_info *brcms_c_antsel_attach(struct brcms_c_info *wlc)
break;
}
} else if ((asi->pub->sromrev == 4) &&
((u16) getintvar(asi->pub->vars, "aa2g") == 7) &&
((u16) getintvar(asi->pub->vars, "aa5g") == 0)) {
((u16) getintvar(sih, "aa2g") == 7) &&
((u16) getintvar(sih, "aa5g") == 0)) {
/* hack to match old 4321CB2 cards with 2of3 antenna switch */
asi->antsel_type = ANTSEL_2x3;
asi->antsel_avail = true;
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/staging/brcm80211/brcmsmac/channel.c
Original file line number Diff line number Diff line change
Expand Up @@ -1088,7 +1088,7 @@ struct brcms_cm_info *brcms_c_channel_mgr_attach(struct brcms_c_info *wlc)
wlc->cmi = wlc_cm;

/* store the country code for passing up as a regulatory hint */
ccode = getvar(wlc->pub->vars, "ccode");
ccode = getvar(wlc->hw->sih, "ccode");
if (ccode)
strncpy(wlc->pub->srom_ccode, ccode, BRCM_CNTRY_BUF_SZ - 1);

Expand Down
29 changes: 15 additions & 14 deletions trunk/drivers/staging/brcm80211/brcmsmac/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -1990,7 +1990,7 @@ static char *brcms_c_get_macaddr(struct brcms_hardware *wlc_hw)
char *macaddr;

/* If macaddr exists, use it (Sromrev4, CIS, ...). */
macaddr = getvar(wlc_hw->vars, varname);
macaddr = getvar(wlc_hw->sih, varname);
if (macaddr != NULL)
return macaddr;

Expand All @@ -1999,7 +1999,7 @@ static char *brcms_c_get_macaddr(struct brcms_hardware *wlc_hw)
else
varname = "il0macaddr";

macaddr = getvar(wlc_hw->vars, varname);
macaddr = getvar(wlc_hw->sih, varname);
if (macaddr == NULL)
wiphy_err(wlc_hw->wlc->wiphy, "wl%d: wlc_get_macaddr: macaddr "
"getvar(%s) not found\n", wlc_hw->unit, varname);
Expand Down Expand Up @@ -4593,13 +4593,13 @@ static int brcms_b_attach(struct brcms_c_info *wlc, u16 vendor, u16 device,
* than those the BIOS recognizes for devices on PCMCIA_BUS,
* SDIO_BUS, and SROMless devices on PCI_BUS.
*/
var = getvar(vars, "vendid");
var = getvar(wlc_hw->sih, "vendid");
if (var && !kstrtoul(var, 0, &res)) {
vendor = (u16)res;
wiphy_err(wiphy, "Overriding vendor id = 0x%x\n",
vendor);
}
var = getvar(vars, "devid");
var = getvar(wlc_hw->sih, "devid");
if (var && !kstrtoul(var, 0, &res)) {
u16 devid = (u16)res;
if (devid != 0xffff) {
Expand Down Expand Up @@ -4656,7 +4656,7 @@ static int brcms_b_attach(struct brcms_c_info *wlc, u16 vendor, u16 device,
}

/* get the board rev, used just below */
j = getintvar(vars, "boardrev");
j = getintvar(wlc_hw->sih, "boardrev");
/* promote srom boardrev of 0xFF to 1 */
if (j == BOARDREV_PROMOTABLE)
j = BOARDREV_PROMOTED;
Expand All @@ -4668,9 +4668,9 @@ static int brcms_b_attach(struct brcms_c_info *wlc, u16 vendor, u16 device,
err = 15;
goto fail;
}
wlc_hw->sromrev = (u8) getintvar(vars, "sromrev");
wlc_hw->boardflags = (u32) getintvar(vars, "boardflags");
wlc_hw->boardflags2 = (u32) getintvar(vars, "boardflags2");
wlc_hw->sromrev = (u8) getintvar(wlc_hw->sih, "sromrev");
wlc_hw->boardflags = (u32) getintvar(wlc_hw->sih, "boardflags");
wlc_hw->boardflags2 = (u32) getintvar(wlc_hw->sih, "boardflags2");

if (wlc_hw->boardflags & BFL_NOPLLDOWN)
brcms_b_pllreq(wlc_hw, true, BRCMS_PLLREQ_SHARED);
Expand Down Expand Up @@ -4920,15 +4920,16 @@ static bool brcms_c_attach_stf_ant_init(struct brcms_c_info *wlc)
uint unit;
char *vars;
int bandtype;
struct si_pub *sih = wlc->hw->sih;

unit = wlc->pub->unit;
vars = wlc->pub->vars;
bandtype = wlc->band->bandtype;

/* get antennas available */
aa = (s8) getintvar(vars, bandtype == BRCM_BAND_5G ? "aa5g" : "aa2g");
aa = (s8) getintvar(sih, bandtype == BRCM_BAND_5G ? "aa5g" : "aa2g");
if (aa == 0)
aa = (s8) getintvar(vars,
aa = (s8) getintvar(sih,
bandtype == BRCM_BAND_5G ? "aa1" : "aa0");
if ((aa < 1) || (aa > 15)) {
wiphy_err(wlc->wiphy, "wl%d: %s: Invalid antennas available in"
Expand All @@ -4947,8 +4948,8 @@ static bool brcms_c_attach_stf_ant_init(struct brcms_c_info *wlc)
}

/* Compute Antenna Gain */
wlc->band->antgain =
(s8) getintvar(vars, bandtype == BRCM_BAND_5G ? "ag1" : "ag0");
wlc->band->antgain = (s8) getintvar(sih, bandtype == BRCM_BAND_5G ?
"ag1" : "ag0");
brcms_c_attach_antgain_init(wlc);

return true;
Expand Down Expand Up @@ -5114,9 +5115,9 @@ brcms_c_attach(struct brcms_info *wl, u16 vendor, u16 device, uint unit,

/* set maximum allowed duty cycle */
wlc->tx_duty_cycle_ofdm =
(u16) getintvar(pub->vars, "tx_duty_cycle_ofdm");
(u16) getintvar(wlc->hw->sih, "tx_duty_cycle_ofdm");
wlc->tx_duty_cycle_cck =
(u16) getintvar(pub->vars, "tx_duty_cycle_cck");
(u16) getintvar(wlc->hw->sih, "tx_duty_cycle_cck");

brcms_c_stf_phy_chain_calc(wlc);

Expand Down
4 changes: 2 additions & 2 deletions trunk/drivers/staging/brcm80211/brcmsmac/nicpci.c
Original file line number Diff line number Diff line change
Expand Up @@ -719,13 +719,13 @@ static void pcie_war_pci_setup(struct pcicore_info *pi)
}

/* ***** Functions called during driver state changes ***** */
void pcicore_attach(struct pcicore_info *pi, char *pvars, int state)
void pcicore_attach(struct pcicore_info *pi, int state)
{
struct si_pub *sih = pi->sih;

/* Determine if this board needs override */
if (PCIE_ASPM(sih)) {
if ((u32)getintvar(pvars, "boardflags2") & BFL2_PCIEWAR_OVR)
if ((u32)getintvar(sih, "boardflags2") & BFL2_PCIEWAR_OVR)
pi->pcie_war_aspm_ovr = PCIE_ASPM_DISAB;
else
pi->pcie_war_aspm_ovr = PCIE_ASPM_ENAB;
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/staging/brcm80211/brcmsmac/nicpci.h
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ extern struct pcicore_info *pcicore_init(struct si_pub *sih,
struct pci_dev *pdev,
void __iomem *regs);
extern void pcicore_deinit(struct pcicore_info *pch);
extern void pcicore_attach(struct pcicore_info *pch, char *pvars, int state);
extern void pcicore_attach(struct pcicore_info *pch, int state);
extern void pcicore_hwup(struct pcicore_info *pch);
extern void pcicore_up(struct pcicore_info *pch, int state);
extern void pcicore_sleep(struct pcicore_info *pch);
Expand Down
62 changes: 29 additions & 33 deletions trunk/drivers/staging/brcm80211/brcmsmac/phy/phy_lcn.c
Original file line number Diff line number Diff line change
Expand Up @@ -4817,27 +4817,25 @@ static bool wlc_phy_txpwr_srom_read_lcnphy(struct brcms_phy *pi)
s8 txpwr = 0;
int i;
struct brcms_phy_lcnphy *pi_lcn = pi->u.pi_lcnphy;
struct phy_shim_info *shim = pi->sh->physhim;

if (CHSPEC_IS2G(pi->radio_chanspec)) {
u16 cckpo = 0;
u32 offset_ofdm, offset_mcs;

pi_lcn->lcnphy_tr_isolation_mid =
(u8) wlapi_getintvar(pi->vars, "triso2g");
(u8)wlapi_getintvar(shim, "triso2g");

pi_lcn->lcnphy_rx_power_offset =
(u8) wlapi_getintvar(pi->vars, "rxpo2g");
(u8)wlapi_getintvar(shim, "rxpo2g");

pi->txpa_2g[0] = (s16) wlapi_getintvar(pi->vars, "pa0b0");
pi->txpa_2g[1] = (s16) wlapi_getintvar(pi->vars, "pa0b1");
pi->txpa_2g[2] = (s16) wlapi_getintvar(pi->vars, "pa0b2");
pi->txpa_2g[0] = (s16)wlapi_getintvar(shim, "pa0b0");
pi->txpa_2g[1] = (s16)wlapi_getintvar(shim, "pa0b1");
pi->txpa_2g[2] = (s16)wlapi_getintvar(shim, "pa0b2");

pi_lcn->lcnphy_rssi_vf =
(u8) wlapi_getintvar(pi->vars, "rssismf2g");
pi_lcn->lcnphy_rssi_vc =
(u8) wlapi_getintvar(pi->vars, "rssismc2g");
pi_lcn->lcnphy_rssi_gs =
(u8) wlapi_getintvar(pi->vars, "rssisav2g");
pi_lcn->lcnphy_rssi_vf = (u8)wlapi_getintvar(shim, "rssismf2g");
pi_lcn->lcnphy_rssi_vc = (u8)wlapi_getintvar(shim, "rssismc2g");
pi_lcn->lcnphy_rssi_gs = (u8)wlapi_getintvar(shim, "rssisav2g");

pi_lcn->lcnphy_rssi_vf_lowtemp = pi_lcn->lcnphy_rssi_vf;
pi_lcn->lcnphy_rssi_vc_lowtemp = pi_lcn->lcnphy_rssi_vc;
Expand All @@ -4847,15 +4845,15 @@ static bool wlc_phy_txpwr_srom_read_lcnphy(struct brcms_phy *pi)
pi_lcn->lcnphy_rssi_vc_hightemp = pi_lcn->lcnphy_rssi_vc;
pi_lcn->lcnphy_rssi_gs_hightemp = pi_lcn->lcnphy_rssi_gs;

txpwr = (s8) wlapi_getintvar(pi->vars, "maxp2ga0");
txpwr = (s8)wlapi_getintvar(shim, "maxp2ga0");
pi->tx_srom_max_2g = txpwr;

for (i = 0; i < PWRTBL_NUM_COEFF; i++) {
pi->txpa_2g_low_temp[i] = pi->txpa_2g[i];
pi->txpa_2g_high_temp[i] = pi->txpa_2g[i];
}

cckpo = (u16) wlapi_getintvar(pi->vars, "cck2gpo");
cckpo = (u16)wlapi_getintvar(shim, "cck2gpo");
if (cckpo) {
uint max_pwr_chan = txpwr;

Expand All @@ -4865,8 +4863,7 @@ static bool wlc_phy_txpwr_srom_read_lcnphy(struct brcms_phy *pi)
cckpo >>= 4;
}

offset_ofdm =
(u32) wlapi_getintvar(pi->vars, "ofdm2gpo");
offset_ofdm = (u32)wlapi_getintvar(shim, "ofdm2gpo");
for (i = TXP_FIRST_OFDM; i <= TXP_LAST_OFDM; i++) {
pi->tx_srom_max_rate_2g[i] =
max_pwr_chan -
Expand All @@ -4876,23 +4873,22 @@ static bool wlc_phy_txpwr_srom_read_lcnphy(struct brcms_phy *pi)
} else {
u8 opo = 0;

opo = (u8) wlapi_getintvar(pi->vars, "opo");
opo = (u8)wlapi_getintvar(shim, "opo");

for (i = TXP_FIRST_CCK; i <= TXP_LAST_CCK; i++)
pi->tx_srom_max_rate_2g[i] = txpwr;

offset_ofdm =
(u32) wlapi_getintvar(pi->vars, "ofdm2gpo");
offset_ofdm = (u32)wlapi_getintvar(shim, "ofdm2gpo");

for (i = TXP_FIRST_OFDM; i <= TXP_LAST_OFDM; i++) {
pi->tx_srom_max_rate_2g[i] = txpwr -
((offset_ofdm & 0xf) * 2);
offset_ofdm >>= 4;
}
offset_mcs =
wlapi_getintvar(pi->vars, "mcs2gpo1") << 16;
wlapi_getintvar(shim, "mcs2gpo1") << 16;
offset_mcs |=
(u16) wlapi_getintvar(pi->vars, "mcs2gpo0");
(u16) wlapi_getintvar(shim, "mcs2gpo0");
pi_lcn->lcnphy_mcs20_po = offset_mcs;
for (i = TXP_FIRST_SISO_MCS_20;
i <= TXP_LAST_SISO_MCS_20; i++) {
Expand All @@ -4903,30 +4899,30 @@ static bool wlc_phy_txpwr_srom_read_lcnphy(struct brcms_phy *pi)
}

pi_lcn->lcnphy_rawtempsense =
(u16) wlapi_getintvar(pi->vars, "rawtempsense");
(u16)wlapi_getintvar(shim, "rawtempsense");
pi_lcn->lcnphy_measPower =
(u8) wlapi_getintvar(pi->vars, "measpower");
(u8)wlapi_getintvar(shim, "measpower");
pi_lcn->lcnphy_tempsense_slope =
(u8) wlapi_getintvar(pi->vars, "tempsense_slope");
(u8)wlapi_getintvar(shim, "tempsense_slope");
pi_lcn->lcnphy_hw_iqcal_en =
(bool) wlapi_getintvar(pi->vars, "hw_iqcal_en");
(bool)wlapi_getintvar(shim, "hw_iqcal_en");
pi_lcn->lcnphy_iqcal_swp_dis =
(bool) wlapi_getintvar(pi->vars, "iqcal_swp_dis");
(bool)wlapi_getintvar(shim, "iqcal_swp_dis");
pi_lcn->lcnphy_tempcorrx =
(u8) wlapi_getintvar(pi->vars, "tempcorrx");
(u8)wlapi_getintvar(shim, "tempcorrx");
pi_lcn->lcnphy_tempsense_option =
(u8) wlapi_getintvar(pi->vars, "tempsense_option");
(u8)wlapi_getintvar(shim, "tempsense_option");
pi_lcn->lcnphy_freqoffset_corr =
(u8) wlapi_getintvar(pi->vars, "freqoffset_corr");
if ((u8) getintvar(pi->vars, "aa2g") > 1)
(u8)wlapi_getintvar(shim, "freqoffset_corr");
if ((u8)wlapi_getintvar(shim, "aa2g") > 1)
wlc_phy_ant_rxdiv_set((struct brcms_phy_pub *) pi,
(u8) getintvar(pi->vars,
"aa2g"));
(u8) wlapi_getintvar(shim,
"aa2g"));
}
pi_lcn->lcnphy_cck_dig_filt_type = -1;
if (wlapi_getvar(pi->vars, "cckdigfilttype")) {
if (wlapi_getvar(shim, "cckdigfilttype")) {
s16 temp;
temp = (s16) wlapi_getintvar(pi->vars, "cckdigfilttype");
temp = (s16)wlapi_getintvar(shim, "cckdigfilttype");
if (temp >= 0)
pi_lcn->lcnphy_cck_dig_filt_type = temp;
}
Expand Down
Loading

0 comments on commit 6340879

Please sign in to comment.