Commit 47eef483 authored by Roland Vossen's avatar Roland Vossen Committed by Greg Kroah-Hartman

staging: brcm80211: macro cleanup in softmac aiutils.h

Moved, deleted or substituted macro's.
Reported-by: default avatarJohannes Berg <johannes@sipsolutions.net>
Reviewed-by: default avatarArend van Spriel <arend@broadcom.com>
Reviewed-by: default avatarPieter-Paul Giesberts <pieterpg@broadcom.com>
Signed-off-by: default avatarRoland Vossen <rvossen@broadcom.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent b9b1ce79
...@@ -23,18 +23,6 @@ ...@@ -23,18 +23,6 @@
* SOC Interconnect Address Map. * SOC Interconnect Address Map.
* All regions may not exist on all chips. * All regions may not exist on all chips.
*/ */
/* Physical SDRAM */
#define SI_SDRAM_BASE 0x00000000
/* Host Mode sb2pcitranslation0 (64 MB) */
#define SI_PCI_MEM 0x08000000
#define SI_PCI_MEM_SZ (64 * 1024 * 1024)
/* Host Mode sb2pcitranslation1 (64 MB) */
#define SI_PCI_CFG 0x0c000000
/* Region 2 for sdram (512 MB) */
#define SI_SDRAM_R2 0x80000000
/* Wrapper space base */
#define SI_WRAP_BASE 0x18100000
/* each core gets 4Kbytes for registers */ /* each core gets 4Kbytes for registers */
#define SI_CORE_SIZE 0x1000 #define SI_CORE_SIZE 0x1000
/* /*
...@@ -44,39 +32,9 @@ ...@@ -44,39 +32,9 @@
*/ */
#define SI_MAXCORES 16 #define SI_MAXCORES 16
/* On-chip RAM on chips that also have DDR */
#define SI_FASTRAM 0x19000000
#define SI_FASTRAM_SWAPPED 0x19800000
/* Flash Region 2 (region 1 shadowed here) */
#define SI_FLASH2 0x1c000000
/* Size of Flash Region 2 */
#define SI_FLASH2_SZ 0x02000000
/* ARM Cortex-M3 ROM */
#define SI_ARMCM3_ROM 0x1e000000
/* MIPS Flash Region 1 */
#define SI_FLASH1 0x1fc00000
/* MIPS Size of Flash Region 1 */
#define SI_FLASH1_SZ 0x00400000
/* ARM7TDMI-S ROM */
#define SI_ARM7S_ROM 0x20000000
/* ARM Cortex-M3 SRAM Region 2 */
#define SI_ARMCM3_SRAM2 0x60000000
/* ARM7TDMI-S SRAM Region 2 */
#define SI_ARM7S_SRAM2 0x80000000
/* ARM Flash Region 1 */
#define SI_ARM_FLASH1 0xffff0000
/* ARM Size of Flash Region 1 */
#define SI_ARM_FLASH1_SZ 0x00010000
/* Client Mode sb2pcitranslation2 (1 GB) */
#define SI_PCI_DMA 0x40000000
/* Client Mode sb2pcitranslation2 (1 GB) */
#define SI_PCI_DMA2 0x80000000
/* Client Mode sb2pcitranslation2 size in bytes */ /* Client Mode sb2pcitranslation2 size in bytes */
#define SI_PCI_DMA_SZ 0x40000000 #define SI_PCI_DMA_SZ 0x40000000
/* PCIE Client Mode sb2pcitranslation2 (2 ZettaBytes), low 32 bits */
#define SI_PCIE_DMA_L32 0x00000000
/* PCIE Client Mode sb2pcitranslation2 (2 ZettaBytes), high 32 bits */ /* PCIE Client Mode sb2pcitranslation2 (2 ZettaBytes), high 32 bits */
#define SI_PCIE_DMA_H32 0x80000000 #define SI_PCIE_DMA_H32 0x80000000
...@@ -195,18 +153,6 @@ ...@@ -195,18 +153,6 @@
/* Minumum amount of flash we support */ /* Minumum amount of flash we support */
#define FLASH_MIN 0x00020000 /* Minimum flash size */ #define FLASH_MIN 0x00020000 /* Minimum flash size */
/* A boot/binary may have an embedded block that describes its size */
#define BISZ_OFFSET 0x3e0 /* At this offset into the binary */
#define BISZ_MAGIC 0x4249535a /* Marked with value: 'BISZ' */
#define BISZ_MAGIC_IDX 0 /* Word 0: magic */
#define BISZ_TXTST_IDX 1 /* 1: text start */
#define BISZ_TXTEND_IDX 2 /* 2: text end */
#define BISZ_DATAST_IDX 3 /* 3: data start */
#define BISZ_DATAEND_IDX 4 /* 4: data end */
#define BISZ_BSSST_IDX 5 /* 5: bss start */
#define BISZ_BSSEND_IDX 6 /* 6: bss end */
#define BISZ_SIZE 7 /* descriptor size in 32-bit integers */
#define CC_SROM_OTP 0x800 /* SROM/OTP address space */ #define CC_SROM_OTP 0x800 /* SROM/OTP address space */
/* gpiotimerval */ /* gpiotimerval */
...@@ -216,23 +162,6 @@ ...@@ -216,23 +162,6 @@
#define CLKD_OTP 0x000f0000 #define CLKD_OTP 0x000f0000
#define CLKD_OTP_SHIFT 16 #define CLKD_OTP_SHIFT 16
/* When Srom support present, fields in sromcontrol */
#define SRC_START 0x80000000
#define SRC_BUSY 0x80000000
#define SRC_OPCODE 0x60000000
#define SRC_OP_READ 0x00000000
#define SRC_OP_WRITE 0x20000000
#define SRC_OP_WRDIS 0x40000000
#define SRC_OP_WREN 0x60000000
#define SRC_OTPSEL 0x00000010
#define SRC_LOCK 0x00000008
#define SRC_SIZE_MASK 0x00000006
#define SRC_SIZE_1K 0x00000000
#define SRC_SIZE_4K 0x00000002
#define SRC_SIZE_16K 0x00000004
#define SRC_SIZE_SHIFT 1
#define SRC_PRESENT 0x00000001
/* Package IDs */ /* Package IDs */
#define BCM4717_PKG_ID 9 /* 4717 package id */ #define BCM4717_PKG_ID 9 /* 4717 package id */
#define BCM4718_PKG_ID 10 /* 4718 package id */ #define BCM4718_PKG_ID 10 /* 4718 package id */
...@@ -243,38 +172,6 @@ ...@@ -243,38 +172,6 @@
#define BCM47162_CHIP_ID 47162 /* 47162 chipcommon chipid */ #define BCM47162_CHIP_ID 47162 /* 47162 chipcommon chipid */
#define BCM4748_CHIP_ID 0x4748 /* 4716 chipcommon chipid (OTP, RBBU) */ #define BCM4748_CHIP_ID 0x4748 /* 4716 chipcommon chipid (OTP, RBBU) */
#define GOODCOREADDR(x, b) \
(((x) >= (b)) && ((x) < ((b) + SI_MAXCORES * SI_CORE_SIZE)) && \
IS_ALIGNED((x), SI_CORE_SIZE))
#define GOODREGS(regs) \
((regs) != NULL && IS_ALIGNED((unsigned long)(regs), SI_CORE_SIZE))
#define BADCOREADDR 0
#define GOODIDX(idx) (((uint)idx) < SI_MAXCORES)
#define NOREV -1 /* Invalid rev */
/* Newer chips can access PCI/PCIE and CC core without requiring to change
* PCI BAR0 WIN
*/
#define SI_FAST(si) (((si)->pub.buscoretype == PCIE_CORE_ID) || \
(((si)->pub.buscoretype == PCI_CORE_ID) && \
(si)->pub.buscorerev >= 13))
#define PCIEREGS(si) (((char *)((si)->curmap) + PCI_16KB0_PCIREGS_OFFSET))
#define CCREGS_FAST(si) (((char *)((si)->curmap) + PCI_16KB0_CCREGS_OFFSET))
/*
* Macros to disable/restore function core(D11, ENET, ILINE20, etc) interrupts
* before after core switching to avoid invalid register accesss inside ISR.
*/
#define INTR_OFF(si, intr_val) \
if ((si)->intrsoff_fn && \
(si)->coreid[(si)->curidx] == (si)->dev_coreid) \
intr_val = (*(si)->intrsoff_fn)((si)->intr_arg)
#define INTR_RESTORE(si, intr_val) \
if ((si)->intrsrestore_fn && \
(si)->coreid[(si)->curidx] == (si)->dev_coreid) \
(*(si)->intrsrestore_fn)((si)->intr_arg, intr_val)
/* dynamic clock control defines */ /* dynamic clock control defines */
#define LPOMINFREQ 25000 /* low power oscillator min */ #define LPOMINFREQ 25000 /* low power oscillator min */
#define LPOMAXFREQ 43000 /* low power oscillator max */ #define LPOMAXFREQ 43000 /* low power oscillator max */
...@@ -286,55 +183,6 @@ ...@@ -286,55 +183,6 @@
#define ILP_DIV_5MHZ 0 /* ILP = 5 MHz */ #define ILP_DIV_5MHZ 0 /* ILP = 5 MHz */
#define ILP_DIV_1MHZ 4 /* ILP = 1 MHz */ #define ILP_DIV_1MHZ 4 /* ILP = 1 MHz */
#define PCI(si) ((si)->pub.buscoretype == PCI_CORE_ID)
#define PCIE(si) ((si)->pub.buscoretype == PCIE_CORE_ID)
#define PCI_FORCEHT(si) \
(PCIE(si) && (si->pub.chip == BCM4716_CHIP_ID))
/* GPIO Based LED powersave defines */
#define DEFAULT_GPIO_ONTIME 10 /* Default: 10% on */
#define DEFAULT_GPIO_OFFTIME 90 /* Default: 10% on */
#define DEFAULT_GPIOTIMERVAL \
((DEFAULT_GPIO_ONTIME << GPIO_ONTIME_SHIFT) | DEFAULT_GPIO_OFFTIME)
/*
* Data structure to export all chip specific common variables
* public (read-only) portion of aiutils handle returned by si_attach()
*/
struct si_pub {
uint buscoretype; /* PCI_CORE_ID, PCIE_CORE_ID, PCMCIA_CORE_ID */
uint buscorerev; /* buscore rev */
uint buscoreidx; /* buscore index */
int ccrev; /* chip common core rev */
u32 cccaps; /* chip common capabilities */
u32 cccaps_ext; /* chip common capabilities extension */
int pmurev; /* pmu core rev */
u32 pmucaps; /* pmu capabilities */
uint boardtype; /* board type */
uint boardvendor; /* board vendor */
uint boardflags; /* board flags */
uint boardflags2; /* board flags2 */
uint chip; /* chip number */
uint chiprev; /* chip revision */
uint chippkg; /* chip package option */
u32 chipst; /* chip status */
bool issim; /* chip is in simulation or emulation */
uint socirev; /* SOC interconnect rev */
bool pci_pr32414;
};
/*
* Many of the routines below take an 'sih' handle as their first arg.
* Allocate this by calling si_attach(). Free it by calling si_detach().
* At any one time, the sih is logically focused on one particular si core
* (the "current core").
* Use si_setcore() or si_setcoreidx() to change the association to another core
*/
#define BADIDX (SI_MAXCORES + 1)
/* clkctl xtal what flags */ /* clkctl xtal what flags */
#define XTAL 0x1 /* primary crystal oscillator (2050) */ #define XTAL 0x1 /* primary crystal oscillator (2050) */
#define PLL 0x2 /* main chip pll */ #define PLL 0x2 /* main chip pll */
...@@ -367,26 +215,32 @@ struct si_pub { ...@@ -367,26 +215,32 @@ struct si_pub {
#define SI_PCIDOWN 2 #define SI_PCIDOWN 2
#define SI_PCIUP 3 #define SI_PCIUP 3
/* PMU clock/power control */ /*
#define PMUCTL_ENAB(sih) ((sih)->cccaps & CC_CAP_PMU) * Data structure to export all chip specific common variables
* public (read-only) portion of aiutils handle returned by si_attach()
/* chipcommon clock/power control (exclusive with PMU's) */ */
#define CCCTL_ENAB(sih) ((sih)->cccaps & CC_CAP_PWR_CTL) struct si_pub {
#define CCPLL_ENAB(sih) ((sih)->cccaps & CC_CAP_PLL_MASK) uint buscoretype; /* PCI_CORE_ID, PCIE_CORE_ID, PCMCIA_CORE_ID */
uint buscorerev; /* buscore rev */
/* External PA enable mask */ uint buscoreidx; /* buscore index */
#define GPIO_CTRL_EPA_EN_MASK 0x40 int ccrev; /* chip common core rev */
u32 cccaps; /* chip common capabilities */
#define SI_ERROR(args) u32 cccaps_ext; /* chip common capabilities extension */
int pmurev; /* pmu core rev */
#ifdef BCMDBG u32 pmucaps; /* pmu capabilities */
#define SI_MSG(args) printk args uint boardtype; /* board type */
#else uint boardvendor; /* board vendor */
#define SI_MSG(args) uint boardflags; /* board flags */
#endif /* BCMDBG */ uint boardflags2; /* board flags2 */
uint chip; /* chip number */
uint chiprev; /* chip revision */
uint chippkg; /* chip package option */
u32 chipst; /* chip status */
bool issim; /* chip is in simulation or emulation */
uint socirev; /* SOC interconnect rev */
bool pci_pr32414;
/* Define SI_VMSG to printf for verbose debugging, but don't check it in */ };
#define SI_VMSG(args)
struct pci_dev; struct pci_dev;
...@@ -436,6 +290,15 @@ struct si_info { ...@@ -436,6 +290,15 @@ struct si_info {
u32 oob_router; /* oob router registers for axi */ u32 oob_router; /* oob router registers for axi */
}; };
/*
* Many of the routines below take an 'sih' handle as their first arg.
* Allocate this by calling si_attach(). Free it by calling si_detach().
* At any one time, the sih is logically focused on one particular si core
* (the "current core").
* Use si_setcore() or si_setcoreidx() to change the association to another core
*/
/* AMBA Interconnect exported externs */ /* AMBA Interconnect exported externs */
extern uint ai_flag(struct si_pub *sih); extern uint ai_flag(struct si_pub *sih);
extern void ai_setint(struct si_pub *sih, int siflag); extern void ai_setint(struct si_pub *sih, int siflag);
......
...@@ -168,6 +168,8 @@ ...@@ -168,6 +168,8 @@
#define AC_VI 2 #define AC_VI 2
#define AC_VO 3 #define AC_VO 3
#define BCN_TMPL_LEN 512 /* length of the BCN template area */
/* /*
* driver maintains internal 'tick'(wlc->pub->now) which increments in 1s * driver maintains internal 'tick'(wlc->pub->now) which increments in 1s
* OS timer(soft watchdog) it is not a wall clock and won't increment when * OS timer(soft watchdog) it is not a wall clock and won't increment when
...@@ -927,7 +929,7 @@ static int brcms_b_bandtype(struct brcms_hardware *wlc_hw) ...@@ -927,7 +929,7 @@ static int brcms_b_bandtype(struct brcms_hardware *wlc_hw)
/* control chip clock to save power, enable dynamic clock or force fast clock */ /* control chip clock to save power, enable dynamic clock or force fast clock */
static void brcms_b_clkctl_clk(struct brcms_hardware *wlc_hw, uint mode) static void brcms_b_clkctl_clk(struct brcms_hardware *wlc_hw, uint mode)
{ {
if (PMUCTL_ENAB(wlc_hw->sih)) { if (wlc_hw->sih->cccaps & CC_CAP_PMU) {
/* new chips with PMU, CCS_FORCEHT will distribute the HT clock /* new chips with PMU, CCS_FORCEHT will distribute the HT clock
* on backplane, but mac core will still run on ALP(not HT) when * on backplane, but mac core will still run on ALP(not HT) when
* it enters powersave mode, which means the FCA bit may not be * it enters powersave mode, which means the FCA bit may not be
...@@ -1642,7 +1644,7 @@ static char *brcms_c_get_macaddr(struct brcms_hardware *wlc_hw) ...@@ -1642,7 +1644,7 @@ static char *brcms_c_get_macaddr(struct brcms_hardware *wlc_hw)
if (macaddr != NULL) if (macaddr != NULL)
return macaddr; return macaddr;
if (NBANDS_HW(wlc_hw) > 1) if (wlc_hw->_nbands > 1)
varname = "et1macaddr"; varname = "et1macaddr";
else else
varname = "il0macaddr"; varname = "il0macaddr";
...@@ -1806,7 +1808,7 @@ void brcms_b_corereset(struct brcms_hardware *wlc_hw, u32 flags) ...@@ -1806,7 +1808,7 @@ void brcms_b_corereset(struct brcms_hardware *wlc_hw, u32 flags)
brcms_c_mctrl_reset(wlc_hw); brcms_c_mctrl_reset(wlc_hw);
if (PMUCTL_ENAB(wlc_hw->sih)) if (wlc_hw->sih->cccaps & CC_CAP_PMU)
brcms_b_clkctl_clk(wlc_hw, CLK_FAST); brcms_b_clkctl_clk(wlc_hw, CLK_FAST);
brcms_b_phy_reset(wlc_hw); brcms_b_phy_reset(wlc_hw);
...@@ -3204,7 +3206,7 @@ static void brcms_c_bandinit_ordered(struct brcms_c_info *wlc, ...@@ -3204,7 +3206,7 @@ static void brcms_c_bandinit_ordered(struct brcms_c_info *wlc,
* We might have been bandlocked during down and the chip * We might have been bandlocked during down and the chip
* power-cycled (hibernate). Figure out the right band to park on * power-cycled (hibernate). Figure out the right band to park on
*/ */
if (wlc->bandlocked || NBANDS(wlc) == 1) { if (wlc->bandlocked || wlc->pub->_nbands == 1) {
/* updated in brcms_c_bandlock() */ /* updated in brcms_c_bandlock() */
parkband = wlc->band->bandunit; parkband = wlc->band->bandunit;
band_order[0] = band_order[1] = parkband; band_order[0] = band_order[1] = parkband;
...@@ -3218,7 +3220,7 @@ static void brcms_c_bandinit_ordered(struct brcms_c_info *wlc, ...@@ -3218,7 +3220,7 @@ static void brcms_c_bandinit_ordered(struct brcms_c_info *wlc,
} }
/* make each band operational, software state init */ /* make each band operational, software state init */
for (i = 0; i < NBANDS(wlc); i++) { for (i = 0; i < wlc->pub->_nbands; i++) {
uint j = band_order[i]; uint j = band_order[i];
wlc->band = wlc->bandstate[j]; wlc->band = wlc->bandstate[j];
...@@ -3659,7 +3661,7 @@ brcms_b_set_chanspec(struct brcms_hardware *wlc_hw, u16 chanspec, ...@@ -3659,7 +3661,7 @@ brcms_b_set_chanspec(struct brcms_hardware *wlc_hw, u16 chanspec,
wlc_hw->chanspec = chanspec; wlc_hw->chanspec = chanspec;
/* Switch bands if necessary */ /* Switch bands if necessary */
if (NBANDS_HW(wlc_hw) > 1) { if (wlc_hw->_nbands > 1) {
bandunit = CHSPEC_BANDUNIT(chanspec); bandunit = CHSPEC_BANDUNIT(chanspec);
if (wlc_hw->band->bandunit != bandunit) { if (wlc_hw->band->bandunit != bandunit) {
/* brcms_b_setband disables other bandunit, /* brcms_b_setband disables other bandunit,
...@@ -3729,7 +3731,7 @@ void brcms_c_set_chanspec(struct brcms_c_info *wlc, u16 chanspec) ...@@ -3729,7 +3731,7 @@ void brcms_c_set_chanspec(struct brcms_c_info *wlc, u16 chanspec)
} }
/* Switch bands if necessary */ /* Switch bands if necessary */
if (NBANDS(wlc) > 1) { if (wlc->pub->_nbands > 1) {
bandunit = CHSPEC_BANDUNIT(chanspec); bandunit = CHSPEC_BANDUNIT(chanspec);
if (wlc->band->bandunit != bandunit || wlc->bandinit_pending) { if (wlc->band->bandunit != bandunit || wlc->bandinit_pending) {
switchband = true; switchband = true;
...@@ -4594,16 +4596,12 @@ static int brcms_b_attach(struct brcms_c_info *wlc, u16 vendor, u16 device, ...@@ -4594,16 +4596,12 @@ static int brcms_b_attach(struct brcms_c_info *wlc, u16 vendor, u16 device,
} }
/* initialize software state for each core and band */ /* initialize software state for each core and band */
for (j = 0; j < NBANDS_HW(wlc_hw); j++) { for (j = 0; j < wlc_hw->_nbands; j++) {
/* /*
* band0 is always 2.4Ghz * band0 is always 2.4Ghz
* band1, if present, is 5Ghz * band1, if present, is 5Ghz
*/ */
/* So if this is a single band 11a card, use band 1 */
if (IS_SINGLEBAND_5G(wlc_hw->deviceid))
j = BAND_5G_INDEX;
brcms_c_setxband(wlc_hw, j); brcms_c_setxband(wlc_hw, j);
wlc_hw->band->bandunit = j; wlc_hw->band->bandunit = j;
...@@ -4836,7 +4834,8 @@ static void brcms_c_bss_default_init(struct brcms_c_info *wlc) ...@@ -4836,7 +4834,8 @@ static void brcms_c_bss_default_init(struct brcms_c_info *wlc)
/* find the band of our default channel */ /* find the band of our default channel */
band = wlc->band; band = wlc->band;
if (NBANDS(wlc) > 1 && band->bandunit != CHSPEC_BANDUNIT(chanspec)) if (wlc->pub->_nbands > 1 &&
band->bandunit != CHSPEC_BANDUNIT(chanspec))
band = wlc->bandstate[OTHERBANDUNIT(wlc)]; band = wlc->bandstate[OTHERBANDUNIT(wlc)];
/* init bss rates to the band specific default rate set */ /* init bss rates to the band specific default rate set */
...@@ -4905,9 +4904,7 @@ static void brcms_c_update_mimo_band_bwcap(struct brcms_c_info *wlc, u8 bwcap) ...@@ -4905,9 +4904,7 @@ static void brcms_c_update_mimo_band_bwcap(struct brcms_c_info *wlc, u8 bwcap)
uint i; uint i;
struct brcms_band *band; struct brcms_band *band;
for (i = 0; i < NBANDS(wlc); i++) { for (i = 0; i < wlc->pub->_nbands; i++) {
if (IS_SINGLEBAND_5G(wlc->deviceid))
i = BAND_5G_INDEX;
band = wlc->bandstate[i]; band = wlc->bandstate[i];
if (band->bandtype == BRCM_BAND_5G) { if (band->bandtype == BRCM_BAND_5G) {
if ((bwcap == BRCMS_N_BW_40ALL) if ((bwcap == BRCMS_N_BW_40ALL)
...@@ -5016,11 +5013,7 @@ brcms_c_attach(struct brcms_info *wl, u16 vendor, u16 device, uint unit, ...@@ -5016,11 +5013,7 @@ brcms_c_attach(struct brcms_info *wl, u16 vendor, u16 device, uint unit,
memcpy(&pub->cur_etheraddr, &wlc->perm_etheraddr, ETH_ALEN); memcpy(&pub->cur_etheraddr, &wlc->perm_etheraddr, ETH_ALEN);
for (j = 0; j < NBANDS(wlc); j++) { for (j = 0; j < wlc->pub->_nbands; j++) {
/* Use band 1 for single band 11a */
if (IS_SINGLEBAND_5G(wlc->deviceid))
j = BAND_5G_INDEX;
wlc->band = wlc->bandstate[j]; wlc->band = wlc->bandstate[j];
if (!brcms_c_attach_stf_ant_init(wlc)) { if (!brcms_c_attach_stf_ant_init(wlc)) {
...@@ -5233,7 +5226,7 @@ static int brcms_b_detach(struct brcms_c_info *wlc) ...@@ -5233,7 +5226,7 @@ static int brcms_b_detach(struct brcms_c_info *wlc)
brcms_b_detach_dmapio(wlc_hw); brcms_b_detach_dmapio(wlc_hw);
band = wlc_hw->band; band = wlc_hw->band;
for (i = 0; i < NBANDS_HW(wlc_hw); i++) { for (i = 0; i < wlc_hw->_nbands; i++) {
if (band->pi) { if (band->pi) {
/* Detach this band's phy */ /* Detach this band's phy */
wlc_phy_detach(band->pi); wlc_phy_detach(band->pi);
...@@ -5780,7 +5773,7 @@ int brcms_c_set_gmode(struct brcms_c_info *wlc, u8 gmode, bool config) ...@@ -5780,7 +5773,7 @@ int brcms_c_set_gmode(struct brcms_c_info *wlc, u8 gmode, bool config)
/* verify that we are dealing with 2G band and grab the band pointer */ /* verify that we are dealing with 2G band and grab the band pointer */
if (wlc->band->bandtype == BRCM_BAND_2G) if (wlc->band->bandtype == BRCM_BAND_2G)
band = wlc->band; band = wlc->band;
else if ((NBANDS(wlc) > 1) && else if ((wlc->pub->_nbands > 1) &&
(wlc->bandstate[OTHERBANDUNIT(wlc)]->bandtype == BRCM_BAND_2G)) (wlc->bandstate[OTHERBANDUNIT(wlc)]->bandtype == BRCM_BAND_2G))
band = wlc->bandstate[OTHERBANDUNIT(wlc)]; band = wlc->bandstate[OTHERBANDUNIT(wlc)];
else else
...@@ -5942,7 +5935,7 @@ int brcms_c_set_nmode(struct brcms_c_info *wlc, s32 nmode) ...@@ -5942,7 +5935,7 @@ int brcms_c_set_nmode(struct brcms_c_info *wlc, s32 nmode)
wlc->default_bss->flags &= ~BRCMS_BSS_HT; wlc->default_bss->flags &= ~BRCMS_BSS_HT;
/* delete the mcs rates from the default and hw ratesets */ /* delete the mcs rates from the default and hw ratesets */
brcms_c_rateset_mcs_clear(&wlc->default_bss->rateset); brcms_c_rateset_mcs_clear(&wlc->default_bss->rateset);
for (i = 0; i < NBANDS(wlc); i++) { for (i = 0; i < wlc->pub->_nbands; i++) {
memset(wlc->bandstate[i]->hw_rateset.mcs, 0, memset(wlc->bandstate[i]->hw_rateset.mcs, 0,
MCSSET_LEN); MCSSET_LEN);
if (IS_MCS(wlc->band->rspec_override)) { if (IS_MCS(wlc->band->rspec_override)) {
...@@ -5971,7 +5964,7 @@ int brcms_c_set_nmode(struct brcms_c_info *wlc, s32 nmode) ...@@ -5971,7 +5964,7 @@ int brcms_c_set_nmode(struct brcms_c_info *wlc, s32 nmode)
/* add the mcs rates to the default and hw ratesets */ /* add the mcs rates to the default and hw ratesets */
brcms_c_rateset_mcs_build(&wlc->default_bss->rateset, brcms_c_rateset_mcs_build(&wlc->default_bss->rateset,
wlc->stf->txstreams); wlc->stf->txstreams);
for (i = 0; i < NBANDS(wlc); i++) for (i = 0; i < wlc->pub->_nbands; i++)
memcpy(wlc->bandstate[i]->hw_rateset.mcs, memcpy(wlc->bandstate[i]->hw_rateset.mcs,
wlc->default_bss->rateset.mcs, MCSSET_LEN); wlc->default_bss->rateset.mcs, MCSSET_LEN);
break; break;
...@@ -8886,7 +8879,7 @@ bool brcms_c_valid_rate(struct brcms_c_info *wlc, u32 rspec, int band, ...@@ -8886,7 +8879,7 @@ bool brcms_c_valid_rate(struct brcms_c_info *wlc, u32 rspec, int band,
if ((band == BRCM_BAND_AUTO) || (band == wlc->band->bandtype)) if ((band == BRCM_BAND_AUTO) || (band == wlc->band->bandtype))
hw_rateset = &wlc->band->hw_rateset; hw_rateset = &wlc->band->hw_rateset;
else if (NBANDS(wlc) > 1) else if (wlc->pub->_nbands > 1)
hw_rateset = &wlc->bandstate[OTHERBANDUNIT(wlc)]->hw_rateset; hw_rateset = &wlc->bandstate[OTHERBANDUNIT(wlc)]->hw_rateset;
else else
/* other band specified and we are a single band device */ /* other band specified and we are a single band device */
......
...@@ -206,7 +206,7 @@ u32 si_pmu_ilp_clock(struct si_pub *sih) ...@@ -206,7 +206,7 @@ u32 si_pmu_ilp_clock(struct si_pub *sih)
{ {
static u32 ilpcycles_per_sec; static u32 ilpcycles_per_sec;
if (!PMUCTL_ENAB(sih)) if (!(sih->cccaps & CC_CAP_PMU))
return ILP_CLOCK; return ILP_CLOCK;
if (ilpcycles_per_sec == 0) { if (ilpcycles_per_sec == 0) {
...@@ -297,7 +297,7 @@ u32 si_pmu_alp_clock(struct si_pub *sih) ...@@ -297,7 +297,7 @@ u32 si_pmu_alp_clock(struct si_pub *sih)
u32 clock = ALP_CLOCK; u32 clock = ALP_CLOCK;
/* bail out with default */ /* bail out with default */
if (!PMUCTL_ENAB(sih)) if (!(sih->cccaps & CC_CAP_PMU))
return clock; return clock;
switch (sih->chip) { switch (sih->chip) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment