提交 cc87568a 编写于 作者: R Roland Vossen 提交者: Greg Kroah-Hartman

staging: brcm80211: replaced various typedefs in softmac

typedefs are undesirable according to documentation/CodingStyle.
Signed-off-by: NArend van Spriel <arend@broadcom.com>
Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
上级 2d4684a5
...@@ -239,7 +239,7 @@ ...@@ -239,7 +239,7 @@
/* resetctrl */ /* resetctrl */
#define AIRC_RESET 1 #define AIRC_RESET 1
typedef volatile struct _aidmp { struct aidmp {
u32 oobselina30; /* 0x000 */ u32 oobselina30; /* 0x000 */
u32 oobselina74; /* 0x004 */ u32 oobselina74; /* 0x004 */
u32 PAD[6]; u32 PAD[6];
...@@ -355,7 +355,7 @@ typedef volatile struct _aidmp { ...@@ -355,7 +355,7 @@ typedef volatile struct _aidmp {
u32 componentid1; /* 0xff4 */ u32 componentid1; /* 0xff4 */
u32 componentid2; /* 0xff8 */ u32 componentid2; /* 0xff8 */
u32 componentid3; /* 0xffc */ u32 componentid3; /* 0xffc */
} aidmp_t; };
/* EROM parsing */ /* EROM parsing */
...@@ -429,14 +429,14 @@ get_asd(struct si_pub *sih, u32 **eromptr, uint sp, uint ad, uint st, ...@@ -429,14 +429,14 @@ get_asd(struct si_pub *sih, u32 **eromptr, uint sp, uint ad, uint st,
return asd; return asd;
} }
static void ai_hwfixup(si_info_t *sii) static void ai_hwfixup(struct si_info *sii)
{ {
} }
/* parse the enumeration rom to identify all cores */ /* parse the enumeration rom to identify all cores */
void ai_scan(struct si_pub *sih, void *regs) void ai_scan(struct si_pub *sih, void *regs)
{ {
si_info_t *sii = SI_INFO(sih); struct si_info *sii = SI_INFO(sih);
chipcregs_t *cc = (chipcregs_t *) regs; chipcregs_t *cc = (chipcregs_t *) regs;
u32 erombase, *eromptr, *eromlim; u32 erombase, *eromptr, *eromlim;
...@@ -639,7 +639,7 @@ void ai_scan(struct si_pub *sih, void *regs) ...@@ -639,7 +639,7 @@ void ai_scan(struct si_pub *sih, void *regs)
*/ */
void *ai_setcoreidx(struct si_pub *sih, uint coreidx) void *ai_setcoreidx(struct si_pub *sih, uint coreidx)
{ {
si_info_t *sii = SI_INFO(sih); struct si_info *sii = SI_INFO(sih);
u32 addr = sii->coresba[coreidx]; u32 addr = sii->coresba[coreidx];
u32 wrap = sii->wrapba[coreidx]; u32 wrap = sii->wrapba[coreidx];
void *regs; void *regs;
...@@ -694,7 +694,7 @@ int ai_numaddrspaces(struct si_pub *sih) ...@@ -694,7 +694,7 @@ int ai_numaddrspaces(struct si_pub *sih)
/* Return the address of the nth address space in the current core */ /* Return the address of the nth address space in the current core */
u32 ai_addrspace(struct si_pub *sih, uint asidx) u32 ai_addrspace(struct si_pub *sih, uint asidx)
{ {
si_info_t *sii; struct si_info *sii;
uint cidx; uint cidx;
sii = SI_INFO(sih); sii = SI_INFO(sih);
...@@ -713,7 +713,7 @@ u32 ai_addrspace(struct si_pub *sih, uint asidx) ...@@ -713,7 +713,7 @@ u32 ai_addrspace(struct si_pub *sih, uint asidx)
/* Return the size of the nth address space in the current core */ /* Return the size of the nth address space in the current core */
u32 ai_addrspacesize(struct si_pub *sih, uint asidx) u32 ai_addrspacesize(struct si_pub *sih, uint asidx)
{ {
si_info_t *sii; struct si_info *sii;
uint cidx; uint cidx;
sii = SI_INFO(sih); sii = SI_INFO(sih);
...@@ -731,8 +731,8 @@ u32 ai_addrspacesize(struct si_pub *sih, uint asidx) ...@@ -731,8 +731,8 @@ u32 ai_addrspacesize(struct si_pub *sih, uint asidx)
uint ai_flag(struct si_pub *sih) uint ai_flag(struct si_pub *sih)
{ {
si_info_t *sii; struct si_info *sii;
aidmp_t *ai; struct aidmp *ai;
sii = SI_INFO(sih); sii = SI_INFO(sih);
if (BCM47162_DMP()) { if (BCM47162_DMP()) {
...@@ -750,7 +750,7 @@ void ai_setint(struct si_pub *sih, int siflag) ...@@ -750,7 +750,7 @@ void ai_setint(struct si_pub *sih, int siflag)
uint ai_corevendor(struct si_pub *sih) uint ai_corevendor(struct si_pub *sih)
{ {
si_info_t *sii; struct si_info *sii;
u32 cia; u32 cia;
sii = SI_INFO(sih); sii = SI_INFO(sih);
...@@ -760,7 +760,7 @@ uint ai_corevendor(struct si_pub *sih) ...@@ -760,7 +760,7 @@ uint ai_corevendor(struct si_pub *sih)
uint ai_corerev(struct si_pub *sih) uint ai_corerev(struct si_pub *sih)
{ {
si_info_t *sii; struct si_info *sii;
u32 cib; u32 cib;
sii = SI_INFO(sih); sii = SI_INFO(sih);
...@@ -770,8 +770,8 @@ uint ai_corerev(struct si_pub *sih) ...@@ -770,8 +770,8 @@ uint ai_corerev(struct si_pub *sih)
bool ai_iscoreup(struct si_pub *sih) bool ai_iscoreup(struct si_pub *sih)
{ {
si_info_t *sii; struct si_info *sii;
aidmp_t *ai; struct aidmp *ai;
sii = SI_INFO(sih); sii = SI_INFO(sih);
ai = sii->curwrap; ai = sii->curwrap;
...@@ -783,8 +783,8 @@ bool ai_iscoreup(struct si_pub *sih) ...@@ -783,8 +783,8 @@ bool ai_iscoreup(struct si_pub *sih)
void ai_core_cflags_wo(struct si_pub *sih, u32 mask, u32 val) void ai_core_cflags_wo(struct si_pub *sih, u32 mask, u32 val)
{ {
si_info_t *sii; struct si_info *sii;
aidmp_t *ai; struct aidmp *ai;
u32 w; u32 w;
sii = SI_INFO(sih); sii = SI_INFO(sih);
...@@ -805,8 +805,8 @@ void ai_core_cflags_wo(struct si_pub *sih, u32 mask, u32 val) ...@@ -805,8 +805,8 @@ void ai_core_cflags_wo(struct si_pub *sih, u32 mask, u32 val)
u32 ai_core_cflags(struct si_pub *sih, u32 mask, u32 val) u32 ai_core_cflags(struct si_pub *sih, u32 mask, u32 val)
{ {
si_info_t *sii; struct si_info *sii;
aidmp_t *ai; struct aidmp *ai;
u32 w; u32 w;
sii = SI_INFO(sih); sii = SI_INFO(sih);
...@@ -828,8 +828,8 @@ u32 ai_core_cflags(struct si_pub *sih, u32 mask, u32 val) ...@@ -828,8 +828,8 @@ u32 ai_core_cflags(struct si_pub *sih, u32 mask, u32 val)
u32 ai_core_sflags(struct si_pub *sih, u32 mask, u32 val) u32 ai_core_sflags(struct si_pub *sih, u32 mask, u32 val)
{ {
si_info_t *sii; struct si_info *sii;
aidmp_t *ai; struct aidmp *ai;
u32 w; u32 w;
sii = SI_INFO(sih); sii = SI_INFO(sih);
...@@ -850,19 +850,19 @@ u32 ai_core_sflags(struct si_pub *sih, u32 mask, u32 val) ...@@ -850,19 +850,19 @@ u32 ai_core_sflags(struct si_pub *sih, u32 mask, u32 val)
/* *************** from siutils.c ************** */ /* *************** from siutils.c ************** */
/* local prototypes */ /* local prototypes */
static si_info_t *ai_doattach(si_info_t *sii, void *regs, static struct si_info *ai_doattach(struct si_info *sii, void *regs,
uint bustype, void *sdh, char **vars, uint bustype, void *sdh, char **vars,
uint *varsz); uint *varsz);
static bool ai_buscore_prep(si_info_t *sii, uint bustype); static bool ai_buscore_prep(struct si_info *sii, uint bustype);
static bool ai_buscore_setup(si_info_t *sii, chipcregs_t *cc, uint bustype, static bool ai_buscore_setup(struct si_info *sii, chipcregs_t *cc, uint bustype,
u32 savewin, uint *origidx, void *regs); u32 savewin, uint *origidx, void *regs);
static void ai_nvram_process(si_info_t *sii, char *pvars); static void ai_nvram_process(struct si_info *sii, char *pvars);
/* dev path concatenation util */ /* dev path concatenation util */
static char *ai_devpathvar(struct si_pub *sih, char *var, int len, static char *ai_devpathvar(struct si_pub *sih, char *var, int len,
const char *name); const char *name);
static bool _ai_clkctl_cc(si_info_t *sii, uint mode); static bool _ai_clkctl_cc(struct si_info *sii, uint mode);
static bool ai_ispcie(si_info_t *sii); static bool ai_ispcie(struct si_info *sii);
/* global variable to indicate reservation/release of gpio's */ /* global variable to indicate reservation/release of gpio's */
static u32 ai_gpioreservation; static u32 ai_gpioreservation;
...@@ -879,10 +879,10 @@ static u32 ai_gpioreservation; ...@@ -879,10 +879,10 @@ static u32 ai_gpioreservation;
struct si_pub *ai_attach(void *regs, uint bustype, struct si_pub *ai_attach(void *regs, uint bustype,
void *sdh, char **vars, uint *varsz) void *sdh, char **vars, uint *varsz)
{ {
si_info_t *sii; struct si_info *sii;
/* alloc si_info_t */ /* alloc struct si_info */
sii = kmalloc(sizeof(si_info_t), GFP_ATOMIC); sii = kmalloc(sizeof(struct si_info), GFP_ATOMIC);
if (sii == NULL) { if (sii == NULL) {
SI_ERROR(("si_attach: malloc failed!\n")); SI_ERROR(("si_attach: malloc failed!\n"));
return NULL; return NULL;
...@@ -900,9 +900,9 @@ struct si_pub *ai_attach(void *regs, uint bustype, ...@@ -900,9 +900,9 @@ struct si_pub *ai_attach(void *regs, uint bustype,
} }
/* global kernel resource */ /* global kernel resource */
static si_info_t ksii; static struct si_info ksii;
static bool ai_buscore_prep(si_info_t *sii, uint bustype) static bool ai_buscore_prep(struct si_info *sii, uint bustype)
{ {
/* kludge to enable the clock on the 4306 which lacks a slowclock */ /* kludge to enable the clock on the 4306 which lacks a slowclock */
if (bustype == PCI_BUS && !ai_ispcie(sii)) if (bustype == PCI_BUS && !ai_ispcie(sii))
...@@ -910,7 +910,7 @@ static bool ai_buscore_prep(si_info_t *sii, uint bustype) ...@@ -910,7 +910,7 @@ static bool ai_buscore_prep(si_info_t *sii, uint bustype)
return true; return true;
} }
static bool ai_buscore_setup(si_info_t *sii, chipcregs_t *cc, uint bustype, static bool ai_buscore_setup(struct si_info *sii, chipcregs_t *cc, uint bustype,
u32 savewin, uint *origidx, void *regs) u32 savewin, uint *origidx, void *regs)
{ {
bool pci, pcie; bool pci, pcie;
...@@ -1019,7 +1019,7 @@ static bool ai_buscore_setup(si_info_t *sii, chipcregs_t *cc, uint bustype, ...@@ -1019,7 +1019,7 @@ static bool ai_buscore_setup(si_info_t *sii, chipcregs_t *cc, uint bustype,
return true; return true;
} }
static __used void ai_nvram_process(si_info_t *sii, char *pvars) static __used void ai_nvram_process(struct si_info *sii, char *pvars)
{ {
uint w = 0; uint w = 0;
...@@ -1068,7 +1068,7 @@ static __used void ai_nvram_process(si_info_t *sii, char *pvars) ...@@ -1068,7 +1068,7 @@ static __used void ai_nvram_process(si_info_t *sii, char *pvars)
sii->pub.boardflags = getintvar(pvars, "boardflags"); sii->pub.boardflags = getintvar(pvars, "boardflags");
} }
static si_info_t *ai_doattach(si_info_t *sii, static struct si_info *ai_doattach(struct si_info *sii,
void *regs, uint bustype, void *pbus, void *regs, uint bustype, void *pbus,
char **vars, uint *varsz) char **vars, uint *varsz)
{ {
...@@ -1079,7 +1079,7 @@ static si_info_t *ai_doattach(si_info_t *sii, ...@@ -1079,7 +1079,7 @@ static si_info_t *ai_doattach(si_info_t *sii,
uint socitype; uint socitype;
uint origidx; uint origidx;
memset((unsigned char *) sii, 0, sizeof(si_info_t)); memset((unsigned char *) sii, 0, sizeof(struct si_info));
savewin = 0; savewin = 0;
...@@ -1241,7 +1241,7 @@ static si_info_t *ai_doattach(si_info_t *sii, ...@@ -1241,7 +1241,7 @@ static si_info_t *ai_doattach(si_info_t *sii,
/* may be called with core in reset */ /* may be called with core in reset */
void ai_detach(struct si_pub *sih) void ai_detach(struct si_pub *sih)
{ {
si_info_t *sii; struct si_info *sii;
uint idx; uint idx;
struct si_pub *si_local = NULL; struct si_pub *si_local = NULL;
...@@ -1275,7 +1275,7 @@ ai_register_intr_callback(struct si_pub *sih, void *intrsoff_fn, ...@@ -1275,7 +1275,7 @@ ai_register_intr_callback(struct si_pub *sih, void *intrsoff_fn,
void *intrsrestore_fn, void *intrsrestore_fn,
void *intrsenabled_fn, void *intr_arg) void *intrsenabled_fn, void *intr_arg)
{ {
si_info_t *sii; struct si_info *sii;
sii = SI_INFO(sih); sii = SI_INFO(sih);
sii->intr_arg = intr_arg; sii->intr_arg = intr_arg;
...@@ -1290,7 +1290,7 @@ ai_register_intr_callback(struct si_pub *sih, void *intrsoff_fn, ...@@ -1290,7 +1290,7 @@ ai_register_intr_callback(struct si_pub *sih, void *intrsoff_fn,
void ai_deregister_intr_callback(struct si_pub *sih) void ai_deregister_intr_callback(struct si_pub *sih)
{ {
si_info_t *sii; struct si_info *sii;
sii = SI_INFO(sih); sii = SI_INFO(sih);
sii->intrsoff_fn = NULL; sii->intrsoff_fn = NULL;
...@@ -1298,7 +1298,7 @@ void ai_deregister_intr_callback(struct si_pub *sih) ...@@ -1298,7 +1298,7 @@ void ai_deregister_intr_callback(struct si_pub *sih)
uint ai_coreid(struct si_pub *sih) uint ai_coreid(struct si_pub *sih)
{ {
si_info_t *sii; struct si_info *sii;
sii = SI_INFO(sih); sii = SI_INFO(sih);
return sii->coreid[sii->curidx]; return sii->coreid[sii->curidx];
...@@ -1306,7 +1306,7 @@ uint ai_coreid(struct si_pub *sih) ...@@ -1306,7 +1306,7 @@ uint ai_coreid(struct si_pub *sih)
uint ai_coreidx(struct si_pub *sih) uint ai_coreidx(struct si_pub *sih)
{ {
si_info_t *sii; struct si_info *sii;
sii = SI_INFO(sih); sii = SI_INFO(sih);
return sii->curidx; return sii->curidx;
...@@ -1320,7 +1320,7 @@ bool ai_backplane64(struct si_pub *sih) ...@@ -1320,7 +1320,7 @@ bool ai_backplane64(struct si_pub *sih)
/* return index of coreid or BADIDX if not found */ /* return index of coreid or BADIDX if not found */
uint ai_findcoreidx(struct si_pub *sih, uint coreid, uint coreunit) uint ai_findcoreidx(struct si_pub *sih, uint coreid, uint coreunit)
{ {
si_info_t *sii; struct si_info *sii;
uint found; uint found;
uint i; uint i;
...@@ -1360,7 +1360,7 @@ void *ai_switch_core(struct si_pub *sih, uint coreid, uint *origidx, ...@@ -1360,7 +1360,7 @@ void *ai_switch_core(struct si_pub *sih, uint coreid, uint *origidx,
uint *intr_val) uint *intr_val)
{ {
void *cc; void *cc;
si_info_t *sii; struct si_info *sii;
sii = SI_INFO(sih); sii = SI_INFO(sih);
...@@ -1384,7 +1384,7 @@ void *ai_switch_core(struct si_pub *sih, uint coreid, uint *origidx, ...@@ -1384,7 +1384,7 @@ void *ai_switch_core(struct si_pub *sih, uint coreid, uint *origidx,
/* restore coreidx and restore interrupt */ /* restore coreidx and restore interrupt */
void ai_restore_core(struct si_pub *sih, uint coreid, uint intr_val) void ai_restore_core(struct si_pub *sih, uint coreid, uint intr_val)
{ {
si_info_t *sii; struct si_info *sii;
sii = SI_INFO(sih); sii = SI_INFO(sih);
if (SI_FAST(sii) if (SI_FAST(sii)
...@@ -1397,7 +1397,7 @@ void ai_restore_core(struct si_pub *sih, uint coreid, uint intr_val) ...@@ -1397,7 +1397,7 @@ void ai_restore_core(struct si_pub *sih, uint coreid, uint intr_val)
void ai_write_wrapperreg(struct si_pub *sih, u32 offset, u32 val) void ai_write_wrapperreg(struct si_pub *sih, u32 offset, u32 val)
{ {
si_info_t *sii = SI_INFO(sih); struct si_info *sii = SI_INFO(sih);
u32 *w = (u32 *) sii->curwrap; u32 *w = (u32 *) sii->curwrap;
W_REG(w + (offset / 4), val); W_REG(w + (offset / 4), val);
return; return;
...@@ -1421,7 +1421,7 @@ uint ai_corereg(struct si_pub *sih, uint coreidx, uint regoff, uint mask, ...@@ -1421,7 +1421,7 @@ uint ai_corereg(struct si_pub *sih, uint coreidx, uint regoff, uint mask,
uint w; uint w;
uint intr_val = 0; uint intr_val = 0;
bool fast = false; bool fast = false;
si_info_t *sii; struct si_info *sii;
sii = SI_INFO(sih); sii = SI_INFO(sih);
...@@ -1500,9 +1500,9 @@ uint ai_corereg(struct si_pub *sih, uint coreidx, uint regoff, uint mask, ...@@ -1500,9 +1500,9 @@ uint ai_corereg(struct si_pub *sih, uint coreidx, uint regoff, uint mask,
void ai_core_disable(struct si_pub *sih, u32 bits) void ai_core_disable(struct si_pub *sih, u32 bits)
{ {
si_info_t *sii; struct si_info *sii;
u32 dummy; u32 dummy;
aidmp_t *ai; struct aidmp *ai;
sii = SI_INFO(sih); sii = SI_INFO(sih);
...@@ -1527,8 +1527,8 @@ void ai_core_disable(struct si_pub *sih, u32 bits) ...@@ -1527,8 +1527,8 @@ void ai_core_disable(struct si_pub *sih, u32 bits)
*/ */
void ai_core_reset(struct si_pub *sih, u32 bits, u32 resetbits) void ai_core_reset(struct si_pub *sih, u32 bits, u32 resetbits)
{ {
si_info_t *sii; struct si_info *sii;
aidmp_t *ai; struct aidmp *ai;
u32 dummy; u32 dummy;
sii = SI_INFO(sih); sii = SI_INFO(sih);
...@@ -1554,7 +1554,7 @@ void ai_core_reset(struct si_pub *sih, u32 bits, u32 resetbits) ...@@ -1554,7 +1554,7 @@ void ai_core_reset(struct si_pub *sih, u32 bits, u32 resetbits)
} }
/* return the slow clock source - LPO, XTAL, or PCI */ /* return the slow clock source - LPO, XTAL, or PCI */
static uint ai_slowclk_src(si_info_t *sii) static uint ai_slowclk_src(struct si_info *sii)
{ {
chipcregs_t *cc; chipcregs_t *cc;
u32 val; u32 val;
...@@ -1578,7 +1578,7 @@ static uint ai_slowclk_src(si_info_t *sii) ...@@ -1578,7 +1578,7 @@ static uint ai_slowclk_src(si_info_t *sii)
* return the ILP (slowclock) min or max frequency * return the ILP (slowclock) min or max frequency
* precondition: we've established the chip has dynamic clk control * precondition: we've established the chip has dynamic clk control
*/ */
static uint ai_slowclk_freq(si_info_t *sii, bool max_freq, chipcregs_t *cc) static uint ai_slowclk_freq(struct si_info *sii, bool max_freq, chipcregs_t *cc)
{ {
u32 slowclk; u32 slowclk;
uint div; uint div;
...@@ -1612,7 +1612,7 @@ static uint ai_slowclk_freq(si_info_t *sii, bool max_freq, chipcregs_t *cc) ...@@ -1612,7 +1612,7 @@ static uint ai_slowclk_freq(si_info_t *sii, bool max_freq, chipcregs_t *cc)
return 0; return 0;
} }
static void ai_clkctl_setdelay(si_info_t *sii, void *chipcregs) static void ai_clkctl_setdelay(struct si_info *sii, void *chipcregs)
{ {
chipcregs_t *cc = (chipcregs_t *) chipcregs; chipcregs_t *cc = (chipcregs_t *) chipcregs;
uint slowmaxfreq, pll_delay, slowclk; uint slowmaxfreq, pll_delay, slowclk;
...@@ -1644,7 +1644,7 @@ static void ai_clkctl_setdelay(si_info_t *sii, void *chipcregs) ...@@ -1644,7 +1644,7 @@ static void ai_clkctl_setdelay(si_info_t *sii, void *chipcregs)
/* initialize power control delay registers */ /* initialize power control delay registers */
void ai_clkctl_init(struct si_pub *sih) void ai_clkctl_init(struct si_pub *sih)
{ {
si_info_t *sii; struct si_info *sii;
uint origidx = 0; uint origidx = 0;
chipcregs_t *cc; chipcregs_t *cc;
bool fast; bool fast;
...@@ -1682,7 +1682,7 @@ void ai_clkctl_init(struct si_pub *sih) ...@@ -1682,7 +1682,7 @@ void ai_clkctl_init(struct si_pub *sih)
*/ */
u16 ai_clkctl_fast_pwrup_delay(struct si_pub *sih) u16 ai_clkctl_fast_pwrup_delay(struct si_pub *sih)
{ {
si_info_t *sii; struct si_info *sii;
uint origidx = 0; uint origidx = 0;
chipcregs_t *cc; chipcregs_t *cc;
uint slowminfreq; uint slowminfreq;
...@@ -1730,7 +1730,7 @@ u16 ai_clkctl_fast_pwrup_delay(struct si_pub *sih) ...@@ -1730,7 +1730,7 @@ u16 ai_clkctl_fast_pwrup_delay(struct si_pub *sih)
/* turn primary xtal and/or pll off/on */ /* turn primary xtal and/or pll off/on */
int ai_clkctl_xtal(struct si_pub *sih, uint what, bool on) int ai_clkctl_xtal(struct si_pub *sih, uint what, bool on)
{ {
si_info_t *sii; struct si_info *sii;
u32 in, out, outen; u32 in, out, outen;
sii = SI_INFO(sih); sii = SI_INFO(sih);
...@@ -1807,7 +1807,7 @@ int ai_clkctl_xtal(struct si_pub *sih, uint what, bool on) ...@@ -1807,7 +1807,7 @@ int ai_clkctl_xtal(struct si_pub *sih, uint what, bool on)
*/ */
bool ai_clkctl_cc(struct si_pub *sih, uint mode) bool ai_clkctl_cc(struct si_pub *sih, uint mode)
{ {
si_info_t *sii; struct si_info *sii;
sii = SI_INFO(sih); sii = SI_INFO(sih);
...@@ -1822,7 +1822,7 @@ bool ai_clkctl_cc(struct si_pub *sih, uint mode) ...@@ -1822,7 +1822,7 @@ bool ai_clkctl_cc(struct si_pub *sih, uint mode)
} }
/* clk control mechanism through chipcommon, no policy checking */ /* clk control mechanism through chipcommon, no policy checking */
static bool _ai_clkctl_cc(si_info_t *sii, uint mode) static bool _ai_clkctl_cc(struct si_info *sii, uint mode)
{ {
uint origidx = 0; uint origidx = 0;
chipcregs_t *cc; chipcregs_t *cc;
...@@ -2001,7 +2001,7 @@ static char *ai_devpathvar(struct si_pub *sih, char *var, int len, ...@@ -2001,7 +2001,7 @@ static char *ai_devpathvar(struct si_pub *sih, char *var, int len,
} }
/* return true if PCIE capability exists in the pci config space */ /* return true if PCIE capability exists in the pci config space */
static bool ai_ispcie(si_info_t *sii) static bool ai_ispcie(struct si_info *sii)
{ {
u8 cap_ptr; u8 cap_ptr;
...@@ -2019,7 +2019,7 @@ static bool ai_ispcie(si_info_t *sii) ...@@ -2019,7 +2019,7 @@ static bool ai_ispcie(si_info_t *sii)
bool ai_pci_war16165(struct si_pub *sih) bool ai_pci_war16165(struct si_pub *sih)
{ {
si_info_t *sii; struct si_info *sii;
sii = SI_INFO(sih); sii = SI_INFO(sih);
...@@ -2028,7 +2028,7 @@ bool ai_pci_war16165(struct si_pub *sih) ...@@ -2028,7 +2028,7 @@ bool ai_pci_war16165(struct si_pub *sih)
void ai_pci_up(struct si_pub *sih) void ai_pci_up(struct si_pub *sih)
{ {
si_info_t *sii; struct si_info *sii;
sii = SI_INFO(sih); sii = SI_INFO(sih);
...@@ -2047,7 +2047,7 @@ void ai_pci_up(struct si_pub *sih) ...@@ -2047,7 +2047,7 @@ void ai_pci_up(struct si_pub *sih)
/* Unconfigure and/or apply various WARs when system is going to sleep mode */ /* Unconfigure and/or apply various WARs when system is going to sleep mode */
void ai_pci_sleep(struct si_pub *sih) void ai_pci_sleep(struct si_pub *sih)
{ {
si_info_t *sii; struct si_info *sii;
sii = SI_INFO(sih); sii = SI_INFO(sih);
...@@ -2057,7 +2057,7 @@ void ai_pci_sleep(struct si_pub *sih) ...@@ -2057,7 +2057,7 @@ void ai_pci_sleep(struct si_pub *sih)
/* Unconfigure and/or apply various WARs when going down */ /* Unconfigure and/or apply various WARs when going down */
void ai_pci_down(struct si_pub *sih) void ai_pci_down(struct si_pub *sih)
{ {
si_info_t *sii; struct si_info *sii;
sii = SI_INFO(sih); sii = SI_INFO(sih);
...@@ -2078,7 +2078,7 @@ void ai_pci_down(struct si_pub *sih) ...@@ -2078,7 +2078,7 @@ void ai_pci_down(struct si_pub *sih)
*/ */
void ai_pci_setup(struct si_pub *sih, uint coremask) void ai_pci_setup(struct si_pub *sih, uint coremask)
{ {
si_info_t *sii; struct si_info *sii;
void *regs = NULL; void *regs = NULL;
u32 siflag = 0, w; u32 siflag = 0, w;
uint idx = 0; uint idx = 0;
...@@ -2130,7 +2130,7 @@ int ai_pci_fixcfg(struct si_pub *sih) ...@@ -2130,7 +2130,7 @@ int ai_pci_fixcfg(struct si_pub *sih)
uint origidx; uint origidx;
void *regs = NULL; void *regs = NULL;
si_info_t *sii = SI_INFO(sih); struct si_info *sii = SI_INFO(sih);
/* Fixup PI in SROM shadow area to enable the correct PCI core access */ /* Fixup PI in SROM shadow area to enable the correct PCI core access */
/* save the current index */ /* save the current index */
...@@ -2170,7 +2170,7 @@ u32 ai_gpiocontrol(struct si_pub *sih, u32 mask, u32 val, u8 priority) ...@@ -2170,7 +2170,7 @@ u32 ai_gpiocontrol(struct si_pub *sih, u32 mask, u32 val, u8 priority)
void ai_chipcontrl_epa4331(struct si_pub *sih, bool on) void ai_chipcontrl_epa4331(struct si_pub *sih, bool on)
{ {
si_info_t *sii; struct si_info *sii;
chipcregs_t *cc; chipcregs_t *cc;
uint origidx; uint origidx;
u32 val; u32 val;
...@@ -2204,7 +2204,7 @@ void ai_chipcontrl_epa4331(struct si_pub *sih, bool on) ...@@ -2204,7 +2204,7 @@ void ai_chipcontrl_epa4331(struct si_pub *sih, bool on)
/* Enable BT-COEX & Ex-PA for 4313 */ /* Enable BT-COEX & Ex-PA for 4313 */
void ai_epa_4313war(struct si_pub *sih) void ai_epa_4313war(struct si_pub *sih)
{ {
si_info_t *sii; struct si_info *sii;
chipcregs_t *cc; chipcregs_t *cc;
uint origidx; uint origidx;
...@@ -2224,7 +2224,7 @@ void ai_epa_4313war(struct si_pub *sih) ...@@ -2224,7 +2224,7 @@ void ai_epa_4313war(struct si_pub *sih)
bool ai_deviceremoved(struct si_pub *sih) bool ai_deviceremoved(struct si_pub *sih)
{ {
u32 w; u32 w;
si_info_t *sii; struct si_info *sii;
sii = SI_INFO(sih); sii = SI_INFO(sih);
...@@ -2241,7 +2241,7 @@ bool ai_deviceremoved(struct si_pub *sih) ...@@ -2241,7 +2241,7 @@ bool ai_deviceremoved(struct si_pub *sih)
bool ai_is_sprom_available(struct si_pub *sih) bool ai_is_sprom_available(struct si_pub *sih)
{ {
if (sih->ccrev >= 31) { if (sih->ccrev >= 31) {
si_info_t *sii; struct si_info *sii;
uint origidx; uint origidx;
chipcregs_t *cc; chipcregs_t *cc;
u32 sromctrl; u32 sromctrl;
......
...@@ -278,7 +278,7 @@ ...@@ -278,7 +278,7 @@
#define BCM5357_CHIP_ID 0x5357 /* 5357 chipcommon chipid */ #define BCM5357_CHIP_ID 0x5357 /* 5357 chipcommon chipid */
#define SI_INFO(sih) ((si_info_t *)sih) #define SI_INFO(sih) ((struct si_info *)sih)
#define GOODCOREADDR(x, b) \ #define GOODCOREADDR(x, b) \
(((x) >= (b)) && ((x) < ((b) + SI_MAXCORES * SI_CORE_SIZE)) && \ (((x) >= (b)) && ((x) < ((b) + SI_MAXCORES * SI_CORE_SIZE)) && \
......
...@@ -22,12 +22,12 @@ ...@@ -22,12 +22,12 @@
static struct brcms_c_bsscfg *brcms_c_bsscfg_malloc(uint unit); static struct brcms_c_bsscfg *brcms_c_bsscfg_malloc(uint unit);
static void brcms_c_bsscfg_mfree(struct brcms_c_bsscfg *cfg); static void brcms_c_bsscfg_mfree(struct brcms_c_bsscfg *cfg);
static struct wlc_pub *brcms_c_pub_malloc(uint unit, static struct brcms_pub *brcms_c_pub_malloc(uint unit,
uint *err, uint devid); uint *err, uint devid);
static void brcms_c_pub_mfree(struct wlc_pub *pub); static void brcms_c_pub_mfree(struct brcms_pub *pub);
static void brcms_c_tunables_init(wlc_tunables_t *tunables, uint devid); static void brcms_c_tunables_init(struct brcms_tunables *tunables, uint devid);
static void brcms_c_tunables_init(wlc_tunables_t *tunables, uint devid) static void brcms_c_tunables_init(struct brcms_tunables *tunables, uint devid)
{ {
tunables->ntxd = NTXD; tunables->ntxd = NTXD;
tunables->nrxd = NRXD; tunables->nrxd = NRXD;
...@@ -45,17 +45,17 @@ static void brcms_c_tunables_init(wlc_tunables_t *tunables, uint devid) ...@@ -45,17 +45,17 @@ static void brcms_c_tunables_init(wlc_tunables_t *tunables, uint devid)
tunables->txsbnd = TXSBND; tunables->txsbnd = TXSBND;
} }
static struct wlc_pub *brcms_c_pub_malloc(uint unit, uint *err, uint devid) static struct brcms_pub *brcms_c_pub_malloc(uint unit, uint *err, uint devid)
{ {
struct wlc_pub *pub; struct brcms_pub *pub;
pub = kzalloc(sizeof(struct wlc_pub), GFP_ATOMIC); pub = kzalloc(sizeof(struct brcms_pub), GFP_ATOMIC);
if (pub == NULL) { if (pub == NULL) {
*err = 1001; *err = 1001;
goto fail; goto fail;
} }
pub->tunables = kzalloc(sizeof(wlc_tunables_t), GFP_ATOMIC); pub->tunables = kzalloc(sizeof(struct brcms_tunables), GFP_ATOMIC);
if (pub->tunables == NULL) { if (pub->tunables == NULL) {
*err = 1028; *err = 1028;
goto fail; goto fail;
...@@ -77,7 +77,7 @@ static struct wlc_pub *brcms_c_pub_malloc(uint unit, uint *err, uint devid) ...@@ -77,7 +77,7 @@ static struct wlc_pub *brcms_c_pub_malloc(uint unit, uint *err, uint devid)
return NULL; return NULL;
} }
static void brcms_c_pub_mfree(struct wlc_pub *pub) static void brcms_c_pub_mfree(struct brcms_pub *pub)
{ {
if (pub == NULL) if (pub == NULL)
return; return;
...@@ -95,7 +95,7 @@ static struct brcms_c_bsscfg *brcms_c_bsscfg_malloc(uint unit) ...@@ -95,7 +95,7 @@ static struct brcms_c_bsscfg *brcms_c_bsscfg_malloc(uint unit)
if (cfg == NULL) if (cfg == NULL)
goto fail; goto fail;
cfg->current_bss = kzalloc(sizeof(wlc_bss_info_t), GFP_ATOMIC); cfg->current_bss = kzalloc(sizeof(struct brcms_bss_info), GFP_ATOMIC);
if (cfg->current_bss == NULL) if (cfg->current_bss == NULL)
goto fail; goto fail;
...@@ -175,7 +175,7 @@ struct brcms_c_info *brcms_c_attach_malloc(uint unit, uint *err, uint devid) ...@@ -175,7 +175,7 @@ struct brcms_c_info *brcms_c_attach_malloc(uint unit, uint *err, uint devid)
goto fail; goto fail;
} }
wlc->default_bss = kzalloc(sizeof(wlc_bss_info_t), GFP_ATOMIC); wlc->default_bss = kzalloc(sizeof(struct brcms_bss_info), GFP_ATOMIC);
if (wlc->default_bss == NULL) { if (wlc->default_bss == NULL) {
*err = 1010; *err = 1010;
goto fail; goto fail;
...@@ -189,16 +189,16 @@ struct brcms_c_info *brcms_c_attach_malloc(uint unit, uint *err, uint devid) ...@@ -189,16 +189,16 @@ struct brcms_c_info *brcms_c_attach_malloc(uint unit, uint *err, uint devid)
brcms_c_bsscfg_ID_assign(wlc, wlc->cfg); brcms_c_bsscfg_ID_assign(wlc, wlc->cfg);
wlc->wsec_def_keys[0] = wlc->wsec_def_keys[0] =
kzalloc(sizeof(wsec_key_t) * WLC_DEFAULT_KEYS, GFP_ATOMIC); kzalloc(sizeof(struct wsec_key) * WLC_DEFAULT_KEYS, GFP_ATOMIC);
if (wlc->wsec_def_keys[0] == NULL) { if (wlc->wsec_def_keys[0] == NULL) {
*err = 1015; *err = 1015;
goto fail; goto fail;
} else { } else {
int i; int i;
for (i = 1; i < WLC_DEFAULT_KEYS; i++) { for (i = 1; i < WLC_DEFAULT_KEYS; i++) {
wlc->wsec_def_keys[i] = (wsec_key_t *) wlc->wsec_def_keys[i] = (struct wsec_key *)
((unsigned long)wlc->wsec_def_keys[0] + ((unsigned long)wlc->wsec_def_keys[0] +
(sizeof(wsec_key_t) * i)); (sizeof(struct wsec_key) * i));
} }
} }
...@@ -237,7 +237,7 @@ struct brcms_c_info *brcms_c_attach_malloc(uint unit, uint *err, uint devid) ...@@ -237,7 +237,7 @@ struct brcms_c_info *brcms_c_attach_malloc(uint unit, uint *err, uint devid)
} }
wlc->corestate->macstat_snapshot = wlc->corestate->macstat_snapshot =
kzalloc(sizeof(macstat_t), GFP_ATOMIC); kzalloc(sizeof(struct macstat), GFP_ATOMIC);
if (wlc->corestate->macstat_snapshot == NULL) { if (wlc->corestate->macstat_snapshot == NULL) {
*err = 1027; *err = 1027;
goto fail; goto fail;
......
...@@ -60,7 +60,7 @@ ...@@ -60,7 +60,7 @@
* This allows to maintain a specific state independently of * This allows to maintain a specific state independently of
* how often and/or when the wlc counters are updated. * how often and/or when the wlc counters are updated.
*/ */
typedef struct wlc_fifo_info { struct brcms_fifo_info {
u16 ampdu_pld_size; /* number of bytes to be pre-loaded */ u16 ampdu_pld_size; /* number of bytes to be pre-loaded */
u8 mcs2ampdu_table[FFPLD_MAX_MCS + 1]; /* per-mcs max # of mpdus in an ampdu */ u8 mcs2ampdu_table[FFPLD_MAX_MCS + 1]; /* per-mcs max # of mpdus in an ampdu */
u16 prev_txfunfl; /* num of underflows last read from the HW macstats counter */ u16 prev_txfunfl; /* num of underflows last read from the HW macstats counter */
...@@ -68,7 +68,7 @@ typedef struct wlc_fifo_info { ...@@ -68,7 +68,7 @@ typedef struct wlc_fifo_info {
u32 accum_txampdu; /* num of tx ampdu since we modified pld params */ u32 accum_txampdu; /* num of tx ampdu since we modified pld params */
u32 prev_txampdu; /* previous reading of tx ampdu */ u32 prev_txampdu; /* previous reading of tx ampdu */
u32 dmaxferrate; /* estimated dma avg xfer rate in kbits/sec */ u32 dmaxferrate; /* estimated dma avg xfer rate in kbits/sec */
} wlc_fifo_info_t; };
/* AMPDU module specific state */ /* AMPDU module specific state */
struct ampdu_info { struct ampdu_info {
...@@ -94,7 +94,8 @@ struct ampdu_info { ...@@ -94,7 +94,8 @@ struct ampdu_info {
u32 tx_max_funl; /* underflows should be kept such that u32 tx_max_funl; /* underflows should be kept such that
* (tx_max_funfl*underflows) < tx frames * (tx_max_funfl*underflows) < tx frames
*/ */
wlc_fifo_info_t fifo_tb[NUM_FFPLD_FIFO]; /* table of fifo infos */ /* table of fifo infos */
struct brcms_fifo_info fifo_tb[NUM_FFPLD_FIFO];
}; };
...@@ -122,10 +123,12 @@ static void brcms_c_scb_ampdu_update_config_all(struct ampdu_info *ampdu); ...@@ -122,10 +123,12 @@ static void brcms_c_scb_ampdu_update_config_all(struct ampdu_info *ampdu);
#define brcms_c_ampdu_txflowcontrol(a, b, c) do {} while (0) #define brcms_c_ampdu_txflowcontrol(a, b, c) do {} while (0)
static void brcms_c_ampdu_dotxstatus_complete(struct ampdu_info *ampdu, static void
struct scb *scb, brcms_c_ampdu_dotxstatus_complete(struct ampdu_info *ampdu,
struct sk_buff *p, tx_status_t *txs, struct scb *scb,
u32 frmtxstatus, u32 frmtxstatus2); struct sk_buff *p, struct tx_status *txs,
u32 frmtxstatus, u32 frmtxstatus2);
static bool brcms_c_ampdu_cap(struct ampdu_info *ampdu); static bool brcms_c_ampdu_cap(struct ampdu_info *ampdu);
static int brcms_c_ampdu_set(struct ampdu_info *ampdu, bool on); static int brcms_c_ampdu_set(struct ampdu_info *ampdu, bool on);
...@@ -203,7 +206,7 @@ void brcms_c_ampdu_detach(struct ampdu_info *ampdu) ...@@ -203,7 +206,7 @@ void brcms_c_ampdu_detach(struct ampdu_info *ampdu)
static void brcms_c_scb_ampdu_update_config(struct ampdu_info *ampdu, static void brcms_c_scb_ampdu_update_config(struct ampdu_info *ampdu,
struct scb *scb) struct scb *scb)
{ {
scb_ampdu_t *scb_ampdu = SCB_AMPDU_CUBBY(ampdu, scb); struct scb_ampdu *scb_ampdu = SCB_AMPDU_CUBBY(ampdu, scb);
int i; int i;
scb_ampdu->max_pdu = (u8) ampdu->wlc->pub->tunables->ampdunummpdu; scb_ampdu->max_pdu = (u8) ampdu->wlc->pub->tunables->ampdunummpdu;
...@@ -237,7 +240,7 @@ static void brcms_c_scb_ampdu_update_config_all(struct ampdu_info *ampdu) ...@@ -237,7 +240,7 @@ static void brcms_c_scb_ampdu_update_config_all(struct ampdu_info *ampdu)
static void brcms_c_ffpld_init(struct ampdu_info *ampdu) static void brcms_c_ffpld_init(struct ampdu_info *ampdu)
{ {
int i, j; int i, j;
wlc_fifo_info_t *fifo; struct brcms_fifo_info *fifo;
for (j = 0; j < NUM_FFPLD_FIFO; j++) { for (j = 0; j < NUM_FFPLD_FIFO; j++) {
fifo = (ampdu->fifo_tb + j); fifo = (ampdu->fifo_tb + j);
...@@ -267,14 +270,14 @@ static int brcms_c_ffpld_check_txfunfl(struct brcms_c_info *wlc, int fid) ...@@ -267,14 +270,14 @@ static int brcms_c_ffpld_check_txfunfl(struct brcms_c_info *wlc, int fid)
u32 current_ampdu_cnt = 0; u32 current_ampdu_cnt = 0;
u16 max_pld_size; u16 max_pld_size;
u32 new_txunfl; u32 new_txunfl;
wlc_fifo_info_t *fifo = (ampdu->fifo_tb + fid); struct brcms_fifo_info *fifo = (ampdu->fifo_tb + fid);
uint xmtfifo_sz; uint xmtfifo_sz;
u16 cur_txunfl; u16 cur_txunfl;
/* return if we got here for a different reason than underflows */ /* return if we got here for a different reason than underflows */
cur_txunfl = cur_txunfl = brcms_c_read_shm(wlc,
brcms_c_read_shm(wlc, M_UCODE_MACSTAT +
M_UCODE_MACSTAT + offsetof(macstat_t, txfunfl[fid])); offsetof(struct macstat, txfunfl[fid]));
new_txunfl = (u16) (cur_txunfl - fifo->prev_txfunfl); new_txunfl = (u16) (cur_txunfl - fifo->prev_txfunfl);
if (new_txunfl == 0) { if (new_txunfl == 0) {
BCMMSG(wlc->wiphy, "TX status FRAG set but no tx underflows\n"); BCMMSG(wlc->wiphy, "TX status FRAG set but no tx underflows\n");
...@@ -381,7 +384,7 @@ static void brcms_c_ffpld_calc_mcs2ampdu_table(struct ampdu_info *ampdu, int f) ...@@ -381,7 +384,7 @@ static void brcms_c_ffpld_calc_mcs2ampdu_table(struct ampdu_info *ampdu, int f)
int i; int i;
u32 phy_rate, dma_rate, tmp; u32 phy_rate, dma_rate, tmp;
u8 max_mpdu; u8 max_mpdu;
wlc_fifo_info_t *fifo = (ampdu->fifo_tb + f); struct brcms_fifo_info *fifo = (ampdu->fifo_tb + f);
/* recompute the dma rate */ /* recompute the dma rate */
/* note : we divide/multiply by 100 to avoid integer overflows */ /* note : we divide/multiply by 100 to avoid integer overflows */
...@@ -413,8 +416,8 @@ brcms_c_ampdu_tx_operational(struct brcms_c_info *wlc, u8 tid, ...@@ -413,8 +416,8 @@ brcms_c_ampdu_tx_operational(struct brcms_c_info *wlc, u8 tid,
u8 ba_wsize, /* negotiated ba window size (in pdu) */ u8 ba_wsize, /* negotiated ba window size (in pdu) */
uint max_rx_ampdu_bytes) /* from ht_cap in beacon */ uint max_rx_ampdu_bytes) /* from ht_cap in beacon */
{ {
scb_ampdu_t *scb_ampdu; struct scb_ampdu *scb_ampdu;
scb_ampdu_tid_ini_t *ini; struct scb_ampdu_tid_ini *ini;
struct ampdu_info *ampdu = wlc->ampdu; struct ampdu_info *ampdu = wlc->ampdu;
struct scb *scb = wlc->pub->global_scb; struct scb *scb = wlc->pub->global_scb;
scb_ampdu = SCB_AMPDU_CUBBY(ampdu, scb); scb_ampdu = SCB_AMPDU_CUBBY(ampdu, scb);
...@@ -449,12 +452,12 @@ brcms_c_sendampdu(struct ampdu_info *ampdu, struct brcms_c_txq_info *qi, ...@@ -449,12 +452,12 @@ brcms_c_sendampdu(struct ampdu_info *ampdu, struct brcms_c_txq_info *qi,
uint i, count = 0, fifo, seg_cnt = 0; uint i, count = 0, fifo, seg_cnt = 0;
u16 plen, len, seq = 0, mcl, mch, index, frameid, dma_len = 0; u16 plen, len, seq = 0, mcl, mch, index, frameid, dma_len = 0;
u32 ampdu_len, max_ampdu_bytes = 0; u32 ampdu_len, max_ampdu_bytes = 0;
d11txh_t *txh = NULL; struct d11txh *txh = NULL;
u8 *plcp; u8 *plcp;
struct ieee80211_hdr *h; struct ieee80211_hdr *h;
struct scb *scb; struct scb *scb;
scb_ampdu_t *scb_ampdu; struct scb_ampdu *scb_ampdu;
scb_ampdu_tid_ini_t *ini; struct scb_ampdu_tid_ini *ini;
u8 mcs = 0; u8 mcs = 0;
bool use_rts = false, use_cts = false; bool use_rts = false, use_cts = false;
ratespec_t rspec = 0, rspec_fallback = 0; ratespec_t rspec = 0, rspec_fallback = 0;
...@@ -462,7 +465,7 @@ brcms_c_sendampdu(struct ampdu_info *ampdu, struct brcms_c_txq_info *qi, ...@@ -462,7 +465,7 @@ brcms_c_sendampdu(struct ampdu_info *ampdu, struct brcms_c_txq_info *qi,
u16 mimo_ctlchbw = PHY_TXC1_BW_20MHZ; u16 mimo_ctlchbw = PHY_TXC1_BW_20MHZ;
struct ieee80211_rts *rts; struct ieee80211_rts *rts;
u8 rr_retry_limit; u8 rr_retry_limit;
wlc_fifo_info_t *f; struct brcms_fifo_info *f;
bool fbr_iscck; bool fbr_iscck;
struct ieee80211_tx_info *tx_info; struct ieee80211_tx_info *tx_info;
u16 qlen; u16 qlen;
...@@ -524,7 +527,7 @@ brcms_c_sendampdu(struct ampdu_info *ampdu, struct brcms_c_txq_info *qi, ...@@ -524,7 +527,7 @@ brcms_c_sendampdu(struct ampdu_info *ampdu, struct brcms_c_txq_info *qi,
} }
/* pkt is good to be aggregated */ /* pkt is good to be aggregated */
txh = (d11txh_t *) p->data; txh = (struct d11txh *) p->data;
plcp = (u8 *) (txh + 1); plcp = (u8 *) (txh + 1);
h = (struct ieee80211_hdr *)(plcp + D11_PHY_HDR_LEN); h = (struct ieee80211_hdr *)(plcp + D11_PHY_HDR_LEN);
seq = le16_to_cpu(h->seq_ctrl) >> SEQNUM_SHIFT; seq = le16_to_cpu(h->seq_ctrl) >> SEQNUM_SHIFT;
...@@ -701,7 +704,7 @@ brcms_c_sendampdu(struct ampdu_info *ampdu, struct brcms_c_txq_info *qi, ...@@ -701,7 +704,7 @@ brcms_c_sendampdu(struct ampdu_info *ampdu, struct brcms_c_txq_info *qi,
if (count) { if (count) {
/* patch up the last txh */ /* patch up the last txh */
txh = (d11txh_t *) pkt[count - 1]->data; txh = (struct d11txh *) pkt[count - 1]->data;
mcl = le16_to_cpu(txh->MacTxControlLow); mcl = le16_to_cpu(txh->MacTxControlLow);
mcl &= ~TXC_AMPDU_MASK; mcl &= ~TXC_AMPDU_MASK;
mcl |= (TXC_AMPDU_LAST << TXC_AMPDU_SHIFT); mcl |= (TXC_AMPDU_LAST << TXC_AMPDU_SHIFT);
...@@ -719,7 +722,7 @@ brcms_c_sendampdu(struct ampdu_info *ampdu, struct brcms_c_txq_info *qi, ...@@ -719,7 +722,7 @@ brcms_c_sendampdu(struct ampdu_info *ampdu, struct brcms_c_txq_info *qi,
ampdu_len -= roundup(len, 4) - len; ampdu_len -= roundup(len, 4) - len;
/* patch up the first txh & plcp */ /* patch up the first txh & plcp */
txh = (d11txh_t *) pkt[0]->data; txh = (struct d11txh *) pkt[0]->data;
plcp = (u8 *) (txh + 1); plcp = (u8 *) (txh + 1);
WLC_SET_MIMO_PLCP_LEN(plcp, ampdu_len); WLC_SET_MIMO_PLCP_LEN(plcp, ampdu_len);
...@@ -809,11 +812,11 @@ brcms_c_sendampdu(struct ampdu_info *ampdu, struct brcms_c_txq_info *qi, ...@@ -809,11 +812,11 @@ brcms_c_sendampdu(struct ampdu_info *ampdu, struct brcms_c_txq_info *qi,
void void
brcms_c_ampdu_dotxstatus(struct ampdu_info *ampdu, struct scb *scb, brcms_c_ampdu_dotxstatus(struct ampdu_info *ampdu, struct scb *scb,
struct sk_buff *p, tx_status_t *txs) struct sk_buff *p, struct tx_status *txs)
{ {
scb_ampdu_t *scb_ampdu; struct scb_ampdu *scb_ampdu;
struct brcms_c_info *wlc = ampdu->wlc; struct brcms_c_info *wlc = ampdu->wlc;
scb_ampdu_tid_ini_t *ini; struct scb_ampdu_tid_ini *ini;
u32 s1 = 0, s2 = 0; u32 s1 = 0, s2 = 0;
struct ieee80211_tx_info *tx_info; struct ieee80211_tx_info *tx_info;
...@@ -845,11 +848,11 @@ brcms_c_ampdu_dotxstatus(struct ampdu_info *ampdu, struct scb *scb, ...@@ -845,11 +848,11 @@ brcms_c_ampdu_dotxstatus(struct ampdu_info *ampdu, struct scb *scb,
} else { } else {
/* loop through all pkts and free */ /* loop through all pkts and free */
u8 queue = txs->frameid & TXFID_QUEUE_MASK; u8 queue = txs->frameid & TXFID_QUEUE_MASK;
d11txh_t *txh; struct d11txh *txh;
u16 mcl; u16 mcl;
while (p) { while (p) {
tx_info = IEEE80211_SKB_CB(p); tx_info = IEEE80211_SKB_CB(p);
txh = (d11txh_t *) p->data; txh = (struct d11txh *) p->data;
mcl = le16_to_cpu(txh->MacTxControlLow); mcl = le16_to_cpu(txh->MacTxControlLow);
brcmu_pkt_buf_free_skb(p); brcmu_pkt_buf_free_skb(p);
/* break out if last packet of ampdu */ /* break out if last packet of ampdu */
...@@ -866,7 +869,7 @@ brcms_c_ampdu_dotxstatus(struct ampdu_info *ampdu, struct scb *scb, ...@@ -866,7 +869,7 @@ brcms_c_ampdu_dotxstatus(struct ampdu_info *ampdu, struct scb *scb,
static void static void
brcms_c_ampdu_rate_status(struct brcms_c_info *wlc, brcms_c_ampdu_rate_status(struct brcms_c_info *wlc,
struct ieee80211_tx_info *tx_info, struct ieee80211_tx_info *tx_info,
tx_status_t *txs, u8 mcs) struct tx_status *txs, u8 mcs)
{ {
struct ieee80211_tx_rate *txrate = tx_info->status.rates; struct ieee80211_tx_rate *txrate = tx_info->status.rates;
int i; int i;
...@@ -882,14 +885,14 @@ brcms_c_ampdu_rate_status(struct brcms_c_info *wlc, ...@@ -882,14 +885,14 @@ brcms_c_ampdu_rate_status(struct brcms_c_info *wlc,
static void static void
brcms_c_ampdu_dotxstatus_complete(struct ampdu_info *ampdu, struct scb *scb, brcms_c_ampdu_dotxstatus_complete(struct ampdu_info *ampdu, struct scb *scb,
struct sk_buff *p, tx_status_t *txs, struct sk_buff *p, struct tx_status *txs,
u32 s1, u32 s2) u32 s1, u32 s2)
{ {
scb_ampdu_t *scb_ampdu; struct scb_ampdu *scb_ampdu;
struct brcms_c_info *wlc = ampdu->wlc; struct brcms_c_info *wlc = ampdu->wlc;
scb_ampdu_tid_ini_t *ini; struct scb_ampdu_tid_ini *ini;
u8 bitmap[8], queue, tid; u8 bitmap[8], queue, tid;
d11txh_t *txh; struct d11txh *txh;
u8 *plcp; u8 *plcp;
struct ieee80211_hdr *h; struct ieee80211_hdr *h;
u16 seq, start_seq = 0, bindex, index, mcl; u16 seq, start_seq = 0, bindex, index, mcl;
...@@ -982,7 +985,7 @@ brcms_c_ampdu_dotxstatus_complete(struct ampdu_info *ampdu, struct scb *scb, ...@@ -982,7 +985,7 @@ brcms_c_ampdu_dotxstatus_complete(struct ampdu_info *ampdu, struct scb *scb,
if (WL_ERROR_ON()) { if (WL_ERROR_ON()) {
brcmu_prpkt("txpkt (AMPDU)", p); brcmu_prpkt("txpkt (AMPDU)", p);
brcms_c_print_txdesc((d11txh_t *) p->data); brcms_c_print_txdesc((struct d11txh *) p->data);
} }
brcms_c_print_txstatus(txs); brcms_c_print_txstatus(txs);
} }
...@@ -991,7 +994,7 @@ brcms_c_ampdu_dotxstatus_complete(struct ampdu_info *ampdu, struct scb *scb, ...@@ -991,7 +994,7 @@ brcms_c_ampdu_dotxstatus_complete(struct ampdu_info *ampdu, struct scb *scb,
/* loop through all pkts and retry if not acked */ /* loop through all pkts and retry if not acked */
while (p) { while (p) {
tx_info = IEEE80211_SKB_CB(p); tx_info = IEEE80211_SKB_CB(p);
txh = (d11txh_t *) p->data; txh = (struct d11txh *) p->data;
mcl = le16_to_cpu(txh->MacTxControlLow); mcl = le16_to_cpu(txh->MacTxControlLow);
plcp = (u8 *) (txh + 1); plcp = (u8 *) (txh + 1);
h = (struct ieee80211_hdr *)(plcp + D11_PHY_HDR_LEN); h = (struct ieee80211_hdr *)(plcp + D11_PHY_HDR_LEN);
......
...@@ -23,7 +23,7 @@ extern int brcms_c_sendampdu(struct ampdu_info *ampdu, ...@@ -23,7 +23,7 @@ extern int brcms_c_sendampdu(struct ampdu_info *ampdu,
struct brcms_c_txq_info *qi, struct brcms_c_txq_info *qi,
struct sk_buff **aggp, int prec); struct sk_buff **aggp, int prec);
extern void brcms_c_ampdu_dotxstatus(struct ampdu_info *ampdu, struct scb *scb, extern void brcms_c_ampdu_dotxstatus(struct ampdu_info *ampdu, struct scb *scb,
struct sk_buff *p, tx_status_t *txs); struct sk_buff *p, struct tx_status *txs);
extern void brcms_c_ampdu_macaddr_upd(struct brcms_c_info *wlc); extern void brcms_c_ampdu_macaddr_upd(struct brcms_c_info *wlc);
extern void brcms_c_ampdu_shm_upd(struct ampdu_info *ampdu); extern void brcms_c_ampdu_shm_upd(struct ampdu_info *ampdu);
......
...@@ -51,11 +51,11 @@ ...@@ -51,11 +51,11 @@
/* static functions */ /* static functions */
static int brcms_c_antsel_cfgupd(struct antsel_info *asi, static int brcms_c_antsel_cfgupd(struct antsel_info *asi,
wlc_antselcfg_t *antsel); struct brcms_antselcfg *antsel);
static u8 brcms_c_antsel_id2antcfg(struct antsel_info *asi, u8 id); static u8 brcms_c_antsel_id2antcfg(struct antsel_info *asi, u8 id);
static u16 brcms_c_antsel_antcfg2antsel(struct antsel_info *asi, u8 ant_cfg); static u16 brcms_c_antsel_antcfg2antsel(struct antsel_info *asi, u8 ant_cfg);
static void brcms_c_antsel_init_cfg(struct antsel_info *asi, static void brcms_c_antsel_init_cfg(struct antsel_info *asi,
wlc_antselcfg_t *antsel, struct brcms_antselcfg *antsel,
bool auto_sel); bool auto_sel);
const u16 mimo_2x4_div_antselpat_tbl[] = { const u16 mimo_2x4_div_antselpat_tbl[] = {
...@@ -160,7 +160,7 @@ void brcms_c_antsel_init(struct antsel_info *asi) ...@@ -160,7 +160,7 @@ void brcms_c_antsel_init(struct antsel_info *asi)
/* boardlevel antenna selection: init antenna selection structure */ /* boardlevel antenna selection: init antenna selection structure */
static void static void
brcms_c_antsel_init_cfg(struct antsel_info *asi, wlc_antselcfg_t *antsel, brcms_c_antsel_init_cfg(struct antsel_info *asi, struct brcms_antselcfg *antsel,
bool auto_sel) bool auto_sel)
{ {
if (asi->antsel_type == ANTSEL_2x3) { if (asi->antsel_type == ANTSEL_2x3) {
...@@ -282,7 +282,7 @@ static u16 brcms_c_antsel_antcfg2antsel(struct antsel_info *asi, u8 ant_cfg) ...@@ -282,7 +282,7 @@ static u16 brcms_c_antsel_antcfg2antsel(struct antsel_info *asi, u8 ant_cfg)
/* boardlevel antenna selection: ucode interface control */ /* boardlevel antenna selection: ucode interface control */
static int brcms_c_antsel_cfgupd(struct antsel_info *asi, static int brcms_c_antsel_cfgupd(struct antsel_info *asi,
wlc_antselcfg_t *antsel) struct brcms_antselcfg *antsel)
{ {
struct brcms_c_info *wlc = asi->wlc; struct brcms_c_info *wlc = asi->wlc;
u8 ant_cfg; u8 ant_cfg;
......
...@@ -83,8 +83,8 @@ static void brcms_ucode_download(struct brcms_c_hw_info *wlc); ...@@ -83,8 +83,8 @@ static void brcms_ucode_download(struct brcms_c_hw_info *wlc);
static void brcms_c_ucode_txant_set(struct brcms_c_hw_info *wlc_hw); static void brcms_c_ucode_txant_set(struct brcms_c_hw_info *wlc_hw);
/* used by brcms_c_dpc() */ /* used by brcms_c_dpc() */
static bool brcms_b_dotxstatus(struct brcms_c_hw_info *wlc, tx_status_t *txs, static bool brcms_b_dotxstatus(struct brcms_c_hw_info *wlc,
u32 s2); struct tx_status *txs, u32 s2);
static bool brcms_b_txstatus(struct brcms_c_hw_info *wlc, bool bound, static bool brcms_b_txstatus(struct brcms_c_hw_info *wlc, bool bound,
bool *fatal); bool *fatal);
static bool brcms_b_recv(struct brcms_c_hw_info *wlc_hw, uint fifo, bool bound); static bool brcms_b_recv(struct brcms_c_hw_info *wlc_hw, uint fifo, bool bound);
...@@ -246,7 +246,7 @@ brcms_b_recv(struct brcms_c_hw_info *wlc_hw, uint fifo, bool bound) ...@@ -246,7 +246,7 @@ brcms_b_recv(struct brcms_c_hw_info *wlc_hw, uint fifo, bool bound)
struct sk_buff *tail = NULL; struct sk_buff *tail = NULL;
uint n = 0; uint n = 0;
uint bound_limit = bound ? wlc_hw->wlc->pub->tunables->rxbnd : -1; uint bound_limit = bound ? wlc_hw->wlc->pub->tunables->rxbnd : -1;
wlc_d11rxhdr_t *wlc_rxhdr = NULL; struct brcms_d11rxhdr *wlc_rxhdr = NULL;
BCMMSG(wlc_hw->wlc->wiphy, "wl%d\n", wlc_hw->unit); BCMMSG(wlc_hw->wlc->wiphy, "wl%d\n", wlc_hw->unit);
/* gather received frames */ /* gather received frames */
...@@ -272,7 +272,7 @@ brcms_b_recv(struct brcms_c_hw_info *wlc_hw, uint fifo, bool bound) ...@@ -272,7 +272,7 @@ brcms_b_recv(struct brcms_c_hw_info *wlc_hw, uint fifo, bool bound)
head = head->prev; head = head->prev;
p->prev = NULL; p->prev = NULL;
wlc_rxhdr = (wlc_d11rxhdr_t *) p->data; wlc_rxhdr = (struct brcms_d11rxhdr *) p->data;
/* compute the RSSI from d11rxhdr and record it in wlc_rxd11hr */ /* compute the RSSI from d11rxhdr and record it in wlc_rxd11hr */
wlc_phy_rssi_compute(wlc_hw->band->pi, wlc_rxhdr); wlc_phy_rssi_compute(wlc_hw->band->pi, wlc_rxhdr);
...@@ -457,7 +457,8 @@ brcms_b_set_chanspec(struct brcms_c_hw_info *wlc_hw, chanspec_t chanspec, ...@@ -457,7 +457,8 @@ brcms_b_set_chanspec(struct brcms_c_hw_info *wlc_hw, chanspec_t chanspec,
} }
} }
int brcms_b_state_get(struct brcms_c_hw_info *wlc_hw, brcms_b_state_t *state) int brcms_b_state_get(struct brcms_c_hw_info *wlc_hw,
struct brcms_b_state *state)
{ {
state->machwcap = wlc_hw->machwcap; state->machwcap = wlc_hw->machwcap;
...@@ -472,7 +473,7 @@ static bool brcms_b_attach_dmapio(struct brcms_c_info *wlc, uint j, bool wme) ...@@ -472,7 +473,7 @@ static bool brcms_b_attach_dmapio(struct brcms_c_info *wlc, uint j, bool wme)
u16 pio_mhf2 = 0; u16 pio_mhf2 = 0;
struct brcms_c_hw_info *wlc_hw = wlc->hw; struct brcms_c_hw_info *wlc_hw = wlc->hw;
uint unit = wlc_hw->unit; uint unit = wlc_hw->unit;
wlc_tunables_t *tune = wlc->pub->tunables; struct brcms_tunables *tune = wlc->pub->tunables;
struct wiphy *wiphy = wlc->wiphy; struct wiphy *wiphy = wlc->wiphy;
/* name and offsets for dma_attach */ /* name and offsets for dma_attach */
...@@ -589,7 +590,7 @@ int brcms_b_attach(struct brcms_c_info *wlc, u16 vendor, u16 device, uint unit, ...@@ -589,7 +590,7 @@ int brcms_b_attach(struct brcms_c_info *wlc, u16 vendor, u16 device, uint unit,
uint err = 0; uint err = 0;
uint j; uint j;
bool wme = false; bool wme = false;
shared_phy_params_t sha_params; struct shared_phy_params sha_params;
struct wiphy *wiphy = wlc->wiphy; struct wiphy *wiphy = wlc->wiphy;
BCMMSG(wlc->wiphy, "wl%d: vendor 0x%x device 0x%x\n", unit, vendor, BCMMSG(wlc->wiphy, "wl%d: vendor 0x%x device 0x%x\n", unit, vendor,
...@@ -2959,7 +2960,8 @@ bool brcms_c_isr(struct brcms_c_info *wlc, bool *wantdpc) ...@@ -2959,7 +2960,8 @@ bool brcms_c_isr(struct brcms_c_info *wlc, bool *wantdpc)
} }
static bool static bool
brcms_b_dotxstatus(struct brcms_c_hw_info *wlc_hw, tx_status_t *txs, u32 s2) brcms_b_dotxstatus(struct brcms_c_hw_info *wlc_hw, struct tx_status *txs,
u32 s2)
{ {
/* discard intermediate indications for ucode with one legitimate case: /* discard intermediate indications for ucode with one legitimate case:
* e.g. if "useRTS" is set. ucode did a successful rts/cts exchange, but the subsequent * e.g. if "useRTS" is set. ucode did a successful rts/cts exchange, but the subsequent
...@@ -2983,7 +2985,7 @@ brcms_b_txstatus(struct brcms_c_hw_info *wlc_hw, bool bound, bool *fatal) ...@@ -2983,7 +2985,7 @@ brcms_b_txstatus(struct brcms_c_hw_info *wlc_hw, bool bound, bool *fatal)
bool morepending = false; bool morepending = false;
struct brcms_c_info *wlc = wlc_hw->wlc; struct brcms_c_info *wlc = wlc_hw->wlc;
d11regs_t *regs; d11regs_t *regs;
tx_status_t txstatus, *txs; struct tx_status txstatus, *txs;
u32 s1, s2; u32 s1, s2;
uint n = 0; uint n = 0;
/* /*
......
...@@ -119,7 +119,7 @@ extern u16 brcms_b_get_txant(struct brcms_c_hw_info *wlc_hw); ...@@ -119,7 +119,7 @@ extern u16 brcms_b_get_txant(struct brcms_c_hw_info *wlc_hw);
extern void brcms_b_antsel_type_set(struct brcms_c_hw_info *wlc_hw, extern void brcms_b_antsel_type_set(struct brcms_c_hw_info *wlc_hw,
u8 antsel_type); u8 antsel_type);
extern int brcms_b_state_get(struct brcms_c_hw_info *wlc_hw, extern int brcms_b_state_get(struct brcms_c_hw_info *wlc_hw,
brcms_b_state_t *state); struct brcms_b_state *state);
extern void brcms_b_write_shm(struct brcms_c_hw_info *wlc_hw, uint offset, extern void brcms_b_write_shm(struct brcms_c_hw_info *wlc_hw, uint offset,
u16 v); u16 v);
extern u16 brcms_b_read_shm(struct brcms_c_hw_info *wlc_hw, uint offset); extern u16 brcms_b_read_shm(struct brcms_c_hw_info *wlc_hw, uint offset);
......
...@@ -30,69 +30,77 @@ ...@@ -30,69 +30,77 @@
brcms_c_valid_channel20_in_band((wlc)->cmi, bandunit, val) brcms_c_valid_channel20_in_band((wlc)->cmi, bandunit, val)
#define VALID_CHANNEL20(wlc, val) brcms_c_valid_channel20((wlc)->cmi, val) #define VALID_CHANNEL20(wlc, val) brcms_c_valid_channel20((wlc)->cmi, val)
typedef struct wlc_cm_band { struct brcms_cm_band {
u8 locale_flags; /* locale_info_t flags */ u8 locale_flags; /* struct locale_info flags */
chanvec_t valid_channels; /* List of valid channels in the country */ chanvec_t valid_channels; /* List of valid channels in the country */
const chanvec_t *restricted_channels; /* List of restricted use channels */ const chanvec_t *restricted_channels; /* List of restricted use channels */
const chanvec_t *radar_channels; /* List of radar sensitive channels */ const chanvec_t *radar_channels; /* List of radar sensitive channels */
u8 PAD[8]; u8 PAD[8];
} wlc_cm_band_t; };
struct wlc_cm_info { struct brcms_cm_info {
struct wlc_pub *pub; struct brcms_pub *pub;
struct brcms_c_info *wlc; struct brcms_c_info *wlc;
char srom_ccode[WLC_CNTRY_BUF_SZ]; /* Country Code in SROM */ char srom_ccode[WLC_CNTRY_BUF_SZ]; /* Country Code in SROM */
uint srom_regrev; /* Regulatory Rev for the SROM ccode */ uint srom_regrev; /* Regulatory Rev for the SROM ccode */
const country_info_t *country; /* current country def */ const struct country_info *country; /* current country def */
char ccode[WLC_CNTRY_BUF_SZ]; /* current internal Country Code */ char ccode[WLC_CNTRY_BUF_SZ]; /* current internal Country Code */
uint regrev; /* current Regulatory Revision */ uint regrev; /* current Regulatory Revision */
char country_abbrev[WLC_CNTRY_BUF_SZ]; /* current advertised ccode */ char country_abbrev[WLC_CNTRY_BUF_SZ]; /* current advertised ccode */
wlc_cm_band_t bandstate[MAXBANDS]; /* per-band state (one per phy/radio) */ /* per-band state (one per phy/radio) */
struct brcms_cm_band bandstate[MAXBANDS];
/* quiet channels currently for radar sensitivity or 11h support */ /* quiet channels currently for radar sensitivity or 11h support */
chanvec_t quiet_channels; /* channels on which we cannot transmit */ chanvec_t quiet_channels; /* channels on which we cannot transmit */
}; };
static int brcms_c_channels_init(wlc_cm_info_t *wlc_cm, static int brcms_c_channels_init(struct brcms_cm_info *wlc_cm,
const country_info_t *country); const struct country_info *country);
static void brcms_c_set_country_common(wlc_cm_info_t *wlc_cm, static void brcms_c_set_country_common(struct brcms_cm_info *wlc_cm,
const char *country_abbrev, const char *country_abbrev,
const char *ccode, uint regrev, const char *ccode, uint regrev,
const country_info_t *country); const struct country_info *country);
static int brcms_c_set_countrycode(wlc_cm_info_t *wlc_cm, const char *ccode); static int brcms_c_set_countrycode(struct brcms_cm_info *wlc_cm,
static int brcms_c_set_countrycode_rev(wlc_cm_info_t *wlc_cm, const char *ccode);
static int brcms_c_set_countrycode_rev(struct brcms_cm_info *wlc_cm,
const char *country_abbrev, const char *country_abbrev,
const char *ccode, int regrev); const char *ccode, int regrev);
static int brcms_c_country_aggregate_map(wlc_cm_info_t *wlc_cm, static int brcms_c_country_aggregate_map(struct brcms_cm_info *wlc_cm,
const char *ccode, const char *ccode,
char *mapped_ccode, uint *mapped_regrev); char *mapped_ccode, uint *mapped_regrev);
static const country_info_t *brcms_c_country_lookup_direct(const char *ccode,
uint regrev); static const struct country_info *
static const country_info_t *brcms_c_countrycode_map(wlc_cm_info_t *wlc_cm, brcms_c_country_lookup_direct(const char *ccode, uint regrev);
const char *ccode,
char *mapped_ccode, static const struct country_info *
uint *mapped_regrev); brcms_c_countrycode_map(struct brcms_cm_info *wlc_cm,
static void brcms_c_channels_commit(wlc_cm_info_t *wlc_cm); const char *ccode, char *mapped_ccode,
static void brcms_c_quiet_channels_reset(wlc_cm_info_t *wlc_cm); uint *mapped_regrev);
static bool brcms_c_quiet_chanspec(wlc_cm_info_t *wlc_cm, chanspec_t chspec);
static bool brcms_c_valid_channel20_db(wlc_cm_info_t *wlc_cm, uint val); static void brcms_c_channels_commit(struct brcms_cm_info *wlc_cm);
static bool brcms_c_valid_channel20_in_band(wlc_cm_info_t *wlc_cm, static void brcms_c_quiet_channels_reset(struct brcms_cm_info *wlc_cm);
static bool brcms_c_quiet_chanspec(struct brcms_cm_info *wlc_cm,
chanspec_t chspec);
static bool brcms_c_valid_channel20_db(struct brcms_cm_info *wlc_cm, uint val);
static bool brcms_c_valid_channel20_in_band(struct brcms_cm_info *wlc_cm,
uint bandunit, uint val); uint bandunit, uint val);
static bool brcms_c_valid_channel20(wlc_cm_info_t *wlc_cm, uint val); static bool brcms_c_valid_channel20(struct brcms_cm_info *wlc_cm, uint val);
static const country_info_t *brcms_c_country_lookup(struct brcms_c_info *wlc,
const char *ccode); static const struct country_info *
static void brcms_c_locale_get_channels(const locale_info_t *locale, brcms_c_country_lookup(struct brcms_c_info *wlc, const char *ccode);
static void brcms_c_locale_get_channels(const struct locale_info *locale,
chanvec_t *valid_channels); chanvec_t *valid_channels);
static const locale_info_t *brcms_c_get_locale_2g(u8 locale_idx); static const struct locale_info *brcms_c_get_locale_2g(u8 locale_idx);
static const locale_info_t *brcms_c_get_locale_5g(u8 locale_idx); static const struct locale_info *brcms_c_get_locale_5g(u8 locale_idx);
static bool brcms_c_japan(struct brcms_c_info *wlc); static bool brcms_c_japan(struct brcms_c_info *wlc);
static bool brcms_c_japan_ccode(const char *ccode); static bool brcms_c_japan_ccode(const char *ccode);
static void brcms_c_channel_min_txpower_limits_with_local_constraint( static void brcms_c_channel_min_txpower_limits_with_local_constraint(
wlc_cm_info_t *wlc_cm, struct txpwr_limits *txpwr, struct brcms_cm_info *wlc_cm, struct txpwr_limits *txpwr,
u8 local_constraint_qdbm); u8 local_constraint_qdbm);
static void brcms_c_locale_add_channels(chanvec_t *target, static void brcms_c_locale_add_channels(chanvec_t *target,
const chanvec_t *channels); const chanvec_t *channels);
static const locale_mimo_info_t *brcms_c_get_mimo_2g(u8 locale_idx); static const struct locale_mimo_info *brcms_c_get_mimo_2g(u8 locale_idx);
static const locale_mimo_info_t *brcms_c_get_mimo_5g(u8 locale_idx); static const struct locale_mimo_info *brcms_c_get_mimo_5g(u8 locale_idx);
/* QDB() macro takes a dB value and converts to a quarter dB value */ /* QDB() macro takes a dB value and converts to a quarter dB value */
#ifdef QDB #ifdef QDB
...@@ -389,7 +397,7 @@ static void brcms_c_locale_add_channels(chanvec_t *target, ...@@ -389,7 +397,7 @@ static void brcms_c_locale_add_channels(chanvec_t *target,
} }
} }
static void brcms_c_locale_get_channels(const locale_info_t *locale, static void brcms_c_locale_get_channels(const struct locale_info *locale,
chanvec_t *channels) chanvec_t *channels)
{ {
u8 i; u8 i;
...@@ -407,7 +415,7 @@ static void brcms_c_locale_get_channels(const locale_info_t *locale, ...@@ -407,7 +415,7 @@ static void brcms_c_locale_get_channels(const locale_info_t *locale,
/* /*
* Locale Definitions - 2.4 GHz * Locale Definitions - 2.4 GHz
*/ */
static const locale_info_t locale_i = { /* locale i. channel 1 - 13 */ static const struct locale_info locale_i = { /* locale i. channel 1 - 13 */
LOCALE_CHAN_01_11 | LOCALE_CHAN_12_13, LOCALE_CHAN_01_11 | LOCALE_CHAN_12_13,
LOCALE_RADAR_SET_NONE, LOCALE_RADAR_SET_NONE,
LOCALE_RESTRICTED_SET_2G_SHORT, LOCALE_RESTRICTED_SET_2G_SHORT,
...@@ -420,7 +428,7 @@ static const locale_info_t locale_i = { /* locale i. channel 1 - 13 */ ...@@ -420,7 +428,7 @@ static const locale_info_t locale_i = { /* locale i. channel 1 - 13 */
/* /*
* Locale Definitions - 5 GHz * Locale Definitions - 5 GHz
*/ */
static const locale_info_t locale_11 = { static const struct locale_info locale_11 = {
/* locale 11. channel 36 - 48, 52 - 64, 100 - 140, 149 - 165 */ /* locale 11. channel 36 - 48, 52 - 64, 100 - 140, 149 - 165 */
LOCALE_CHAN_36_64 | LOCALE_CHAN_100_140 | LOCALE_CHAN_149_165, LOCALE_CHAN_36_64 | LOCALE_CHAN_100_140 | LOCALE_CHAN_149_165,
LOCALE_RADAR_SET_1, LOCALE_RADAR_SET_1,
...@@ -431,19 +439,19 @@ static const locale_info_t locale_11 = { ...@@ -431,19 +439,19 @@ static const locale_info_t locale_11 = {
}; };
#define LOCALE_2G_IDX_i 0 #define LOCALE_2G_IDX_i 0
static const locale_info_t *g_locale_2g_table[] = { static const struct locale_info *g_locale_2g_table[] = {
&locale_i &locale_i
}; };
#define LOCALE_5G_IDX_11 0 #define LOCALE_5G_IDX_11 0
static const locale_info_t *g_locale_5g_table[] = { static const struct locale_info *g_locale_5g_table[] = {
&locale_11 &locale_11
}; };
/* /*
* MIMO Locale Definitions - 2.4 GHz * MIMO Locale Definitions - 2.4 GHz
*/ */
static const locale_mimo_info_t locale_bn = { static const struct locale_mimo_info locale_bn = {
{QDB(13), QDB(13), QDB(13), QDB(13), QDB(13), {QDB(13), QDB(13), QDB(13), QDB(13), QDB(13),
QDB(13), QDB(13), QDB(13), QDB(13), QDB(13), QDB(13), QDB(13), QDB(13), QDB(13), QDB(13),
QDB(13), QDB(13), QDB(13)}, QDB(13), QDB(13), QDB(13)},
...@@ -456,21 +464,21 @@ static const locale_mimo_info_t locale_bn = { ...@@ -456,21 +464,21 @@ static const locale_mimo_info_t locale_bn = {
/* locale mimo 2g indexes */ /* locale mimo 2g indexes */
#define LOCALE_MIMO_IDX_bn 0 #define LOCALE_MIMO_IDX_bn 0
static const locale_mimo_info_t *g_mimo_2g_table[] = { static const struct locale_mimo_info *g_mimo_2g_table[] = {
&locale_bn &locale_bn
}; };
/* /*
* MIMO Locale Definitions - 5 GHz * MIMO Locale Definitions - 5 GHz
*/ */
static const locale_mimo_info_t locale_11n = { static const struct locale_mimo_info locale_11n = {
{ /* 12.5 dBm */ 50, 50, 50, QDB(15), QDB(15)}, { /* 12.5 dBm */ 50, 50, 50, QDB(15), QDB(15)},
{QDB(14), QDB(15), QDB(15), QDB(15), QDB(15)}, {QDB(14), QDB(15), QDB(15), QDB(15), QDB(15)},
0 0
}; };
#define LOCALE_MIMO_IDX_11n 0 #define LOCALE_MIMO_IDX_11n 0
static const locale_mimo_info_t *g_mimo_5g_table[] = { static const struct locale_mimo_info *g_mimo_5g_table[] = {
&locale_11n &locale_11n
}; };
...@@ -493,7 +501,7 @@ static const locale_mimo_info_t *g_mimo_5g_table[] = { ...@@ -493,7 +501,7 @@ static const locale_mimo_info_t *g_mimo_5g_table[] = {
static const struct { static const struct {
char abbrev[WLC_CNTRY_BUF_SZ]; /* country abbreviation */ char abbrev[WLC_CNTRY_BUF_SZ]; /* country abbreviation */
country_info_t country; struct country_info country;
} cntry_locales[] = { } cntry_locales[] = {
{ {
"X2", LOCALES(i, 11, bn, 11n)}, /* Worldwide RoW 2 */ "X2", LOCALES(i, 11, bn, 11n)}, /* Worldwide RoW 2 */
...@@ -576,7 +584,7 @@ struct chan20_info chan20_info[] = { ...@@ -576,7 +584,7 @@ struct chan20_info chan20_info[] = {
}; };
#endif /* SUPPORT_40MHZ */ #endif /* SUPPORT_40MHZ */
static const locale_info_t *brcms_c_get_locale_2g(u8 locale_idx) static const struct locale_info *brcms_c_get_locale_2g(u8 locale_idx)
{ {
if (locale_idx >= ARRAY_SIZE(g_locale_2g_table)) { if (locale_idx >= ARRAY_SIZE(g_locale_2g_table)) {
return NULL; /* error condition */ return NULL; /* error condition */
...@@ -584,7 +592,7 @@ static const locale_info_t *brcms_c_get_locale_2g(u8 locale_idx) ...@@ -584,7 +592,7 @@ static const locale_info_t *brcms_c_get_locale_2g(u8 locale_idx)
return g_locale_2g_table[locale_idx]; return g_locale_2g_table[locale_idx];
} }
static const locale_info_t *brcms_c_get_locale_5g(u8 locale_idx) static const struct locale_info *brcms_c_get_locale_5g(u8 locale_idx)
{ {
if (locale_idx >= ARRAY_SIZE(g_locale_5g_table)) { if (locale_idx >= ARRAY_SIZE(g_locale_5g_table)) {
return NULL; /* error condition */ return NULL; /* error condition */
...@@ -592,7 +600,7 @@ static const locale_info_t *brcms_c_get_locale_5g(u8 locale_idx) ...@@ -592,7 +600,7 @@ static const locale_info_t *brcms_c_get_locale_5g(u8 locale_idx)
return g_locale_5g_table[locale_idx]; return g_locale_5g_table[locale_idx];
} }
static const locale_mimo_info_t *brcms_c_get_mimo_2g(u8 locale_idx) static const struct locale_mimo_info *brcms_c_get_mimo_2g(u8 locale_idx)
{ {
if (locale_idx >= ARRAY_SIZE(g_mimo_2g_table)) { if (locale_idx >= ARRAY_SIZE(g_mimo_2g_table)) {
return NULL; return NULL;
...@@ -600,7 +608,7 @@ static const locale_mimo_info_t *brcms_c_get_mimo_2g(u8 locale_idx) ...@@ -600,7 +608,7 @@ static const locale_mimo_info_t *brcms_c_get_mimo_2g(u8 locale_idx)
return g_mimo_2g_table[locale_idx]; return g_mimo_2g_table[locale_idx];
} }
static const locale_mimo_info_t *brcms_c_get_mimo_5g(u8 locale_idx) static const struct locale_mimo_info *brcms_c_get_mimo_5g(u8 locale_idx)
{ {
if (locale_idx >= ARRAY_SIZE(g_mimo_5g_table)) { if (locale_idx >= ARRAY_SIZE(g_mimo_5g_table)) {
return NULL; return NULL;
...@@ -608,17 +616,17 @@ static const locale_mimo_info_t *brcms_c_get_mimo_5g(u8 locale_idx) ...@@ -608,17 +616,17 @@ static const locale_mimo_info_t *brcms_c_get_mimo_5g(u8 locale_idx)
return g_mimo_5g_table[locale_idx]; return g_mimo_5g_table[locale_idx];
} }
wlc_cm_info_t *brcms_c_channel_mgr_attach(struct brcms_c_info *wlc) struct brcms_cm_info *brcms_c_channel_mgr_attach(struct brcms_c_info *wlc)
{ {
wlc_cm_info_t *wlc_cm; struct brcms_cm_info *wlc_cm;
char country_abbrev[WLC_CNTRY_BUF_SZ]; char country_abbrev[WLC_CNTRY_BUF_SZ];
const country_info_t *country; const struct country_info *country;
struct wlc_pub *pub = wlc->pub; struct brcms_pub *pub = wlc->pub;
char *ccode; char *ccode;
BCMMSG(wlc->wiphy, "wl%d\n", wlc->pub->unit); BCMMSG(wlc->wiphy, "wl%d\n", wlc->pub->unit);
wlc_cm = kzalloc(sizeof(wlc_cm_info_t), GFP_ATOMIC); wlc_cm = kzalloc(sizeof(struct brcms_cm_info), GFP_ATOMIC);
if (wlc_cm == NULL) { if (wlc_cm == NULL) {
wiphy_err(wlc->wiphy, "wl%d: %s: out of memory", pub->unit, wiphy_err(wlc->wiphy, "wl%d: %s: out of memory", pub->unit,
__func__); __func__);
...@@ -650,12 +658,14 @@ wlc_cm_info_t *brcms_c_channel_mgr_attach(struct brcms_c_info *wlc) ...@@ -650,12 +658,14 @@ wlc_cm_info_t *brcms_c_channel_mgr_attach(struct brcms_c_info *wlc)
return wlc_cm; return wlc_cm;
} }
void brcms_c_channel_mgr_detach(wlc_cm_info_t *wlc_cm) void brcms_c_channel_mgr_detach(struct brcms_cm_info *wlc_cm)
{ {
kfree(wlc_cm); kfree(wlc_cm);
} }
u8 brcms_c_channel_locale_flags_in_band(wlc_cm_info_t *wlc_cm, uint bandunit) u8
brcms_c_channel_locale_flags_in_band(struct brcms_cm_info *wlc_cm,
uint bandunit)
{ {
return wlc_cm->bandstate[bandunit].locale_flags; return wlc_cm->bandstate[bandunit].locale_flags;
} }
...@@ -663,7 +673,8 @@ u8 brcms_c_channel_locale_flags_in_band(wlc_cm_info_t *wlc_cm, uint bandunit) ...@@ -663,7 +673,8 @@ u8 brcms_c_channel_locale_flags_in_band(wlc_cm_info_t *wlc_cm, uint bandunit)
/* set the driver's current country and regulatory information using a country code /* set the driver's current country and regulatory information using a country code
* as the source. Lookup built in country information found with the country code. * as the source. Lookup built in country information found with the country code.
*/ */
static int brcms_c_set_countrycode(wlc_cm_info_t *wlc_cm, const char *ccode) static int
brcms_c_set_countrycode(struct brcms_cm_info *wlc_cm, const char *ccode)
{ {
char country_abbrev[WLC_CNTRY_BUF_SZ]; char country_abbrev[WLC_CNTRY_BUF_SZ];
strncpy(country_abbrev, ccode, WLC_CNTRY_BUF_SZ); strncpy(country_abbrev, ccode, WLC_CNTRY_BUF_SZ);
...@@ -671,11 +682,11 @@ static int brcms_c_set_countrycode(wlc_cm_info_t *wlc_cm, const char *ccode) ...@@ -671,11 +682,11 @@ static int brcms_c_set_countrycode(wlc_cm_info_t *wlc_cm, const char *ccode)
} }
static int static int
brcms_c_set_countrycode_rev(wlc_cm_info_t *wlc_cm, brcms_c_set_countrycode_rev(struct brcms_cm_info *wlc_cm,
const char *country_abbrev, const char *country_abbrev,
const char *ccode, int regrev) const char *ccode, int regrev)
{ {
const country_info_t *country; const struct country_info *country;
char mapped_ccode[WLC_CNTRY_BUF_SZ]; char mapped_ccode[WLC_CNTRY_BUF_SZ];
uint mapped_regrev; uint mapped_regrev;
...@@ -708,13 +719,13 @@ brcms_c_set_countrycode_rev(wlc_cm_info_t *wlc_cm, ...@@ -708,13 +719,13 @@ brcms_c_set_countrycode_rev(wlc_cm_info_t *wlc_cm,
* as the source. Look up built in country information found with the country code. * as the source. Look up built in country information found with the country code.
*/ */
static void static void
brcms_c_set_country_common(wlc_cm_info_t *wlc_cm, brcms_c_set_country_common(struct brcms_cm_info *wlc_cm,
const char *country_abbrev, const char *country_abbrev,
const char *ccode, uint regrev, const char *ccode, uint regrev,
const country_info_t *country) const struct country_info *country)
{ {
const locale_mimo_info_t *li_mimo; const struct locale_mimo_info *li_mimo;
const locale_info_t *locale; const struct locale_info *locale;
struct brcms_c_info *wlc = wlc_cm->wlc; struct brcms_c_info *wlc = wlc_cm->wlc;
char prev_country_abbrev[WLC_CNTRY_BUF_SZ]; char prev_country_abbrev[WLC_CNTRY_BUF_SZ];
...@@ -758,10 +769,10 @@ brcms_c_set_country_common(wlc_cm_info_t *wlc_cm, ...@@ -758,10 +769,10 @@ brcms_c_set_country_common(wlc_cm_info_t *wlc_cm,
/* Lookup a country info structure from a null terminated country code /* Lookup a country info structure from a null terminated country code
* The lookup is case sensitive. * The lookup is case sensitive.
*/ */
static const country_info_t *brcms_c_country_lookup(struct brcms_c_info *wlc, static const struct country_info *
const char *ccode) brcms_c_country_lookup(struct brcms_c_info *wlc, const char *ccode)
{ {
const country_info_t *country; const struct country_info *country;
char mapped_ccode[WLC_CNTRY_BUF_SZ]; char mapped_ccode[WLC_CNTRY_BUF_SZ];
uint mapped_regrev; uint mapped_regrev;
...@@ -772,13 +783,12 @@ static const country_info_t *brcms_c_country_lookup(struct brcms_c_info *wlc, ...@@ -772,13 +783,12 @@ static const country_info_t *brcms_c_country_lookup(struct brcms_c_info *wlc,
return country; return country;
} }
static const country_info_t *brcms_c_countrycode_map(wlc_cm_info_t *wlc_cm, static const struct country_info *
const char *ccode, brcms_c_countrycode_map(struct brcms_cm_info *wlc_cm, const char *ccode,
char *mapped_ccode, char *mapped_ccode, uint *mapped_regrev)
uint *mapped_regrev)
{ {
struct brcms_c_info *wlc = wlc_cm->wlc; struct brcms_c_info *wlc = wlc_cm->wlc;
const country_info_t *country; const struct country_info *country;
uint srom_regrev = wlc_cm->srom_regrev; uint srom_regrev = wlc_cm->srom_regrev;
const char *srom_ccode = wlc_cm->srom_ccode; const char *srom_ccode = wlc_cm->srom_ccode;
int mapped; int mapped;
...@@ -822,7 +832,7 @@ static const country_info_t *brcms_c_countrycode_map(wlc_cm_info_t *wlc_cm, ...@@ -822,7 +832,7 @@ static const country_info_t *brcms_c_countrycode_map(wlc_cm_info_t *wlc_cm,
} }
static int static int
brcms_c_country_aggregate_map(wlc_cm_info_t *wlc_cm, const char *ccode, brcms_c_country_aggregate_map(struct brcms_cm_info *wlc_cm, const char *ccode,
char *mapped_ccode, uint *mapped_regrev) char *mapped_ccode, uint *mapped_regrev)
{ {
return false; return false;
...@@ -831,8 +841,8 @@ brcms_c_country_aggregate_map(wlc_cm_info_t *wlc_cm, const char *ccode, ...@@ -831,8 +841,8 @@ brcms_c_country_aggregate_map(wlc_cm_info_t *wlc_cm, const char *ccode,
/* Lookup a country info structure from a null terminated country /* Lookup a country info structure from a null terminated country
* abbreviation and regrev directly with no translation. * abbreviation and regrev directly with no translation.
*/ */
static const country_info_t *brcms_c_country_lookup_direct(const char *ccode, static const struct country_info *
uint regrev) brcms_c_country_lookup_direct(const char *ccode, uint regrev)
{ {
uint size, i; uint size, i;
...@@ -854,14 +864,15 @@ static const country_info_t *brcms_c_country_lookup_direct(const char *ccode, ...@@ -854,14 +864,15 @@ static const country_info_t *brcms_c_country_lookup_direct(const char *ccode,
} }
static int static int
brcms_c_channels_init(wlc_cm_info_t *wlc_cm, const country_info_t *country) brcms_c_channels_init(struct brcms_cm_info *wlc_cm,
const struct country_info *country)
{ {
struct brcms_c_info *wlc = wlc_cm->wlc; struct brcms_c_info *wlc = wlc_cm->wlc;
uint i, j; uint i, j;
struct brcms_c_band *band; struct brcms_c_band *band;
const locale_info_t *li; const struct locale_info *li;
chanvec_t sup_chan; chanvec_t sup_chan;
const locale_mimo_info_t *li_mimo; const struct locale_mimo_info *li_mimo;
band = wlc->band; band = wlc->band;
for (i = 0; i < NBANDS(wlc); for (i = 0; i < NBANDS(wlc);
...@@ -906,7 +917,7 @@ brcms_c_channels_init(wlc_cm_info_t *wlc_cm, const country_info_t *country) ...@@ -906,7 +917,7 @@ brcms_c_channels_init(wlc_cm_info_t *wlc_cm, const country_info_t *country)
/* Update the radio state (enable/disable) and tx power targets /* Update the radio state (enable/disable) and tx power targets
* based on a new set of channel/regulatory information * based on a new set of channel/regulatory information
*/ */
static void brcms_c_channels_commit(wlc_cm_info_t *wlc_cm) static void brcms_c_channels_commit(struct brcms_cm_info *wlc_cm)
{ {
struct brcms_c_info *wlc = wlc_cm->wlc; struct brcms_c_info *wlc = wlc_cm->wlc;
uint chan; uint chan;
...@@ -955,7 +966,7 @@ static void brcms_c_channels_commit(wlc_cm_info_t *wlc_cm) ...@@ -955,7 +966,7 @@ static void brcms_c_channels_commit(wlc_cm_info_t *wlc_cm)
} }
/* reset the quiet channels vector to the union of the restricted and radar channel sets */ /* reset the quiet channels vector to the union of the restricted and radar channel sets */
static void brcms_c_quiet_channels_reset(wlc_cm_info_t *wlc_cm) static void brcms_c_quiet_channels_reset(struct brcms_cm_info *wlc_cm)
{ {
struct brcms_c_info *wlc = wlc_cm->wlc; struct brcms_c_info *wlc = wlc_cm->wlc;
uint i, j; uint i, j;
...@@ -976,7 +987,8 @@ static void brcms_c_quiet_channels_reset(wlc_cm_info_t *wlc_cm) ...@@ -976,7 +987,8 @@ static void brcms_c_quiet_channels_reset(wlc_cm_info_t *wlc_cm)
} }
} }
static bool brcms_c_quiet_chanspec(wlc_cm_info_t *wlc_cm, chanspec_t chspec) static bool
brcms_c_quiet_chanspec(struct brcms_cm_info *wlc_cm, chanspec_t chspec)
{ {
return N_ENAB(wlc_cm->wlc->pub) && CHSPEC_IS40(chspec) ? return N_ENAB(wlc_cm->wlc->pub) && CHSPEC_IS40(chspec) ?
(isset (isset
...@@ -993,7 +1005,7 @@ static bool brcms_c_quiet_chanspec(wlc_cm_info_t *wlc_cm, chanspec_t chspec) ...@@ -993,7 +1005,7 @@ static bool brcms_c_quiet_chanspec(wlc_cm_info_t *wlc_cm, chanspec_t chspec)
/* Is the channel valid for the current locale? (but don't consider channels not /* Is the channel valid for the current locale? (but don't consider channels not
* available due to bandlocking) * available due to bandlocking)
*/ */
static bool brcms_c_valid_channel20_db(wlc_cm_info_t *wlc_cm, uint val) static bool brcms_c_valid_channel20_db(struct brcms_cm_info *wlc_cm, uint val)
{ {
struct brcms_c_info *wlc = wlc_cm->wlc; struct brcms_c_info *wlc = wlc_cm->wlc;
...@@ -1003,15 +1015,15 @@ static bool brcms_c_valid_channel20_db(wlc_cm_info_t *wlc_cm, uint val) ...@@ -1003,15 +1015,15 @@ static bool brcms_c_valid_channel20_db(wlc_cm_info_t *wlc_cm, uint val)
} }
/* Is the channel valid for the current locale and specified band? */ /* Is the channel valid for the current locale and specified band? */
static bool static bool brcms_c_valid_channel20_in_band(struct brcms_cm_info *wlc_cm,
brcms_c_valid_channel20_in_band(wlc_cm_info_t *wlc_cm, uint bandunit, uint val) uint bandunit, uint val)
{ {
return ((val < MAXCHANNEL) return ((val < MAXCHANNEL)
&& isset(wlc_cm->bandstate[bandunit].valid_channels.vec, val)); && isset(wlc_cm->bandstate[bandunit].valid_channels.vec, val));
} }
/* Is the channel valid for the current locale and current band? */ /* Is the channel valid for the current locale and current band? */
static bool brcms_c_valid_channel20(wlc_cm_info_t *wlc_cm, uint val) static bool brcms_c_valid_channel20(struct brcms_cm_info *wlc_cm, uint val)
{ {
struct brcms_c_info *wlc = wlc_cm->wlc; struct brcms_c_info *wlc = wlc_cm->wlc;
...@@ -1021,10 +1033,9 @@ static bool brcms_c_valid_channel20(wlc_cm_info_t *wlc_cm, uint val) ...@@ -1021,10 +1033,9 @@ static bool brcms_c_valid_channel20(wlc_cm_info_t *wlc_cm, uint val)
} }
static void static void
brcms_c_channel_min_txpower_limits_with_local_constraint(wlc_cm_info_t *wlc_cm, brcms_c_channel_min_txpower_limits_with_local_constraint(
struct txpwr_limits *txpwr, struct brcms_cm_info *wlc_cm, struct txpwr_limits *txpwr,
u8 u8 local_constraint_qdbm)
local_constraint_qdbm)
{ {
int j; int j;
...@@ -1108,7 +1119,7 @@ brcms_c_channel_min_txpower_limits_with_local_constraint(wlc_cm_info_t *wlc_cm, ...@@ -1108,7 +1119,7 @@ brcms_c_channel_min_txpower_limits_with_local_constraint(wlc_cm_info_t *wlc_cm,
} }
void void
brcms_c_channel_set_chanspec(wlc_cm_info_t *wlc_cm, chanspec_t chanspec, brcms_c_channel_set_chanspec(struct brcms_cm_info *wlc_cm, chanspec_t chanspec,
u8 local_constraint_qdbm) u8 local_constraint_qdbm)
{ {
struct brcms_c_info *wlc = wlc_cm->wlc; struct brcms_c_info *wlc = wlc_cm->wlc;
...@@ -1125,7 +1136,7 @@ brcms_c_channel_set_chanspec(wlc_cm_info_t *wlc_cm, chanspec_t chanspec, ...@@ -1125,7 +1136,7 @@ brcms_c_channel_set_chanspec(wlc_cm_info_t *wlc_cm, chanspec_t chanspec,
} }
#ifdef POWER_DBG #ifdef POWER_DBG
static void wlc_phy_txpower_limits_dump(txpwr_limits_t *txpwr) static void wlc_phy_txpower_limits_dump(struct txpwr_limits *txpwr)
{ {
int i; int i;
char buf[80]; char buf[80];
...@@ -1242,25 +1253,25 @@ static void wlc_phy_txpower_limits_dump(txpwr_limits_t *txpwr) ...@@ -1242,25 +1253,25 @@ static void wlc_phy_txpower_limits_dump(txpwr_limits_t *txpwr)
#endif /* POWER_DBG */ #endif /* POWER_DBG */
void void
brcms_c_channel_reg_limits(wlc_cm_info_t *wlc_cm, chanspec_t chanspec, brcms_c_channel_reg_limits(struct brcms_cm_info *wlc_cm, chanspec_t chanspec,
txpwr_limits_t *txpwr) struct txpwr_limits *txpwr)
{ {
struct brcms_c_info *wlc = wlc_cm->wlc; struct brcms_c_info *wlc = wlc_cm->wlc;
uint i; uint i;
uint chan; uint chan;
int maxpwr; int maxpwr;
int delta; int delta;
const country_info_t *country; const struct country_info *country;
struct brcms_c_band *band; struct brcms_c_band *band;
const locale_info_t *li; const struct locale_info *li;
int conducted_max; int conducted_max;
int conducted_ofdm_max; int conducted_ofdm_max;
const locale_mimo_info_t *li_mimo; const struct locale_mimo_info *li_mimo;
int maxpwr20, maxpwr40; int maxpwr20, maxpwr40;
int maxpwr_idx; int maxpwr_idx;
uint j; uint j;
memset(txpwr, 0, sizeof(txpwr_limits_t)); memset(txpwr, 0, sizeof(struct txpwr_limits));
if (!brcms_c_valid_chanspec_db(wlc_cm, chanspec)) { if (!brcms_c_valid_chanspec_db(wlc_cm, chanspec)) {
country = brcms_c_country_lookup(wlc, wlc->autocountry_default); country = brcms_c_country_lookup(wlc, wlc->autocountry_default);
...@@ -1472,7 +1483,7 @@ static bool brcms_c_japan_ccode(const char *ccode) ...@@ -1472,7 +1483,7 @@ static bool brcms_c_japan_ccode(const char *ccode)
* are valid 20MZH channels in this locale and they are also a legal HT combination * are valid 20MZH channels in this locale and they are also a legal HT combination
*/ */
static bool static bool
brcms_c_valid_chanspec_ext(wlc_cm_info_t *wlc_cm, chanspec_t chspec, brcms_c_valid_chanspec_ext(struct brcms_cm_info *wlc_cm, chanspec_t chspec,
bool dualband) bool dualband)
{ {
struct brcms_c_info *wlc = wlc_cm->wlc; struct brcms_c_info *wlc = wlc_cm->wlc;
...@@ -1534,7 +1545,7 @@ brcms_c_valid_chanspec_ext(wlc_cm_info_t *wlc_cm, chanspec_t chspec, ...@@ -1534,7 +1545,7 @@ brcms_c_valid_chanspec_ext(wlc_cm_info_t *wlc_cm, chanspec_t chspec,
return false; return false;
} }
bool brcms_c_valid_chanspec_db(wlc_cm_info_t *wlc_cm, chanspec_t chspec) bool brcms_c_valid_chanspec_db(struct brcms_cm_info *wlc_cm, chanspec_t chspec)
{ {
return brcms_c_valid_chanspec_ext(wlc_cm, chspec, true); return brcms_c_valid_chanspec_ext(wlc_cm, chspec, true);
} }
...@@ -103,18 +103,21 @@ struct country_info { ...@@ -103,18 +103,21 @@ struct country_info {
const u8 locale_mimo_5G; /* 5G mimo info */ const u8 locale_mimo_5G; /* 5G mimo info */
}; };
extern wlc_cm_info_t *brcms_c_channel_mgr_attach(struct brcms_c_info *wlc); extern struct brcms_cm_info *
extern void brcms_c_channel_mgr_detach(wlc_cm_info_t *wlc_cm); brcms_c_channel_mgr_attach(struct brcms_c_info *wlc);
extern u8 brcms_c_channel_locale_flags_in_band(wlc_cm_info_t *wlc_cm, extern void brcms_c_channel_mgr_detach(struct brcms_cm_info *wlc_cm);
extern u8 brcms_c_channel_locale_flags_in_band(struct brcms_cm_info *wlc_cm,
uint bandunit); uint bandunit);
extern bool brcms_c_valid_chanspec_db(wlc_cm_info_t *wlc_cm, chanspec_t chspec); extern bool brcms_c_valid_chanspec_db(struct brcms_cm_info *wlc_cm,
chanspec_t chspec);
extern void brcms_c_channel_reg_limits(wlc_cm_info_t *wlc_cm, extern void brcms_c_channel_reg_limits(struct brcms_cm_info *wlc_cm,
chanspec_t chanspec, chanspec_t chanspec,
struct txpwr_limits *txpwr); struct txpwr_limits *txpwr);
extern void brcms_c_channel_set_chanspec(wlc_cm_info_t *wlc_cm, extern void brcms_c_channel_set_chanspec(struct brcms_cm_info *wlc_cm,
chanspec_t chanspec, chanspec_t chanspec,
u8 local_constraint_qdbm); u8 local_constraint_qdbm);
......
...@@ -1308,11 +1308,11 @@ struct d11rxhdr { ...@@ -1308,11 +1308,11 @@ struct d11rxhdr {
u16 RxChan; /* gain code, channel radio code, and phy type */ u16 RxChan; /* gain code, channel radio code, and phy type */
} __attribute__((packed)); } __attribute__((packed));
#define RXHDR_LEN 24 /* sizeof d11rxhdr_t */ #define RXHDR_LEN 24 /* sizeof struct d11rxhdr */
#define FRAMELEN(h) ((h)->RxFrameSize) #define FRAMELEN(h) ((h)->RxFrameSize)
struct wlc_d11rxhdr { struct brcms_d11rxhdr {
d11rxhdr_t rxhdr; struct d11rxhdr rxhdr;
u32 tsf_l; /* TSF_L reading */ u32 tsf_l; /* TSF_L reading */
s8 rssi; /* computed instanteneous rssi in BMAC */ s8 rssi; /* computed instanteneous rssi in BMAC */
s8 rxpwr0; /* obsoleted, place holder for legacy ROM code. use rxpwr[] */ s8 rxpwr0; /* obsoleted, place holder for legacy ROM code. use rxpwr[] */
......
...@@ -82,11 +82,11 @@ typedef bool(*di_rxenable_t) (struct dma_pub *dmah); ...@@ -82,11 +82,11 @@ typedef bool(*di_rxenable_t) (struct dma_pub *dmah);
typedef bool(*di_rxenabled_t) (struct dma_pub *dmah); typedef bool(*di_rxenabled_t) (struct dma_pub *dmah);
typedef void *(*di_rx_t) (struct dma_pub *dmah); typedef void *(*di_rx_t) (struct dma_pub *dmah);
typedef bool(*di_rxfill_t) (struct dma_pub *dmah); typedef bool(*di_rxfill_t) (struct dma_pub *dmah);
typedef void (*di_txreclaim_t) (struct dma_pub *dmah, txd_range_t range); typedef void (*di_txreclaim_t) (struct dma_pub *dmah, enum txd_range range);
typedef void (*di_rxreclaim_t) (struct dma_pub *dmah); typedef void (*di_rxreclaim_t) (struct dma_pub *dmah);
typedef unsigned long (*di_getvar_t) (struct dma_pub *dmah, typedef unsigned long (*di_getvar_t) (struct dma_pub *dmah,
const char *name); const char *name);
typedef void *(*di_getnexttxp_t) (struct dma_pub *dmah, txd_range_t range); typedef void *(*di_getnexttxp_t) (struct dma_pub *dmah, enum txd_range range);
typedef void *(*di_getnextrxp_t) (struct dma_pub *dmah, bool forceall); typedef void *(*di_getnextrxp_t) (struct dma_pub *dmah, bool forceall);
typedef void *(*di_peeknexttxp_t) (struct dma_pub *dmah); typedef void *(*di_peeknexttxp_t) (struct dma_pub *dmah);
typedef void *(*di_peeknextrxp_t) (struct dma_pub *dmah); typedef void *(*di_peeknextrxp_t) (struct dma_pub *dmah);
...@@ -161,7 +161,7 @@ struct di_fcn_s { ...@@ -161,7 +161,7 @@ struct di_fcn_s {
*/ */
/* export structure */ /* export structure */
struct dma_pub { struct dma_pub {
const di_fcn_t *di_fn; /* DMA function pointers */ const struct di_fcn_s *di_fn; /* DMA function pointers */
uint txavail; /* # free tx descriptors */ uint txavail; /* # free tx descriptors */
uint dmactrlflags; /* dma control flags */ uint dmactrlflags; /* dma control flags */
...@@ -177,7 +177,7 @@ extern struct dma_pub *dma_attach(char *name, struct si_pub *sih, ...@@ -177,7 +177,7 @@ extern struct dma_pub *dma_attach(char *name, struct si_pub *sih,
uint nrxd, uint rxbufsize, int rxextheadroom, uint nrxd, uint rxbufsize, int rxextheadroom,
uint nrxpost, uint rxoffset, uint *msg_level); uint nrxpost, uint rxoffset, uint *msg_level);
extern const di_fcn_t dma64proc; extern const struct di_fcn_s dma64proc;
#define dma_detach(di) (dma64proc.detach(di)) #define dma_detach(di) (dma64proc.detach(di))
#define dma_txreset(di) (dma64proc.txreset(di)) #define dma_txreset(di) (dma64proc.txreset(di))
......
...@@ -56,7 +56,7 @@ struct brcms_firmware { ...@@ -56,7 +56,7 @@ struct brcms_firmware {
}; };
struct brcms_info { struct brcms_info {
struct wlc_pub *pub; /* pointer to public wlc state */ struct brcms_pub *pub; /* pointer to public wlc state */
void *wlc; /* pointer to private common os-independent data */ void *wlc; /* pointer to private common os-independent data */
u32 magic; u32 magic;
......
...@@ -304,7 +304,7 @@ static u16 brcms_c_d11hdrs_mac80211(struct brcms_c_info *wlc, ...@@ -304,7 +304,7 @@ static u16 brcms_c_d11hdrs_mac80211(struct brcms_c_info *wlc,
struct scb *scb, uint frag, struct scb *scb, uint frag,
uint nfrags, uint queue, uint nfrags, uint queue,
uint next_frag_len, uint next_frag_len,
wsec_key_t *key, struct wsec_key *key,
ratespec_t rspec_override); ratespec_t rspec_override);
static void brcms_c_bss_default_init(struct brcms_c_info *wlc); static void brcms_c_bss_default_init(struct brcms_c_info *wlc);
static void brcms_c_ucode_mac_upd(struct brcms_c_info *wlc); static void brcms_c_ucode_mac_upd(struct brcms_c_info *wlc);
...@@ -333,9 +333,9 @@ static void brcms_c_compute_mimo_plcp(ratespec_t rate, uint length, u8 *plcp); ...@@ -333,9 +333,9 @@ static void brcms_c_compute_mimo_plcp(ratespec_t rate, uint length, u8 *plcp);
static u16 brcms_c_compute_frame_dur(struct brcms_c_info *wlc, ratespec_t rate, static u16 brcms_c_compute_frame_dur(struct brcms_c_info *wlc, ratespec_t rate,
u8 preamble_type, uint next_frag_len); u8 preamble_type, uint next_frag_len);
static u64 brcms_c_recover_tsf64(struct brcms_c_info *wlc, static u64 brcms_c_recover_tsf64(struct brcms_c_info *wlc,
struct wlc_d11rxhdr *rxh); struct brcms_d11rxhdr *rxh);
static void brcms_c_recvctl(struct brcms_c_info *wlc, static void brcms_c_recvctl(struct brcms_c_info *wlc,
d11rxhdr_t *rxh, struct sk_buff *p); struct d11rxhdr *rxh, struct sk_buff *p);
static uint brcms_c_calc_frame_len(struct brcms_c_info *wlc, ratespec_t rate, static uint brcms_c_calc_frame_len(struct brcms_c_info *wlc, ratespec_t rate,
u8 preamble_type, uint dur); u8 preamble_type, uint dur);
static uint brcms_c_calc_ack_time(struct brcms_c_info *wlc, ratespec_t rate, static uint brcms_c_calc_ack_time(struct brcms_c_info *wlc, ratespec_t rate,
...@@ -417,7 +417,7 @@ void brcms_c_reset(struct brcms_c_info *wlc) ...@@ -417,7 +417,7 @@ void brcms_c_reset(struct brcms_c_info *wlc)
/* reset our snapshot of macstat counters */ /* reset our snapshot of macstat counters */
memset((char *)wlc->core->macstat_snapshot, 0, memset((char *)wlc->core->macstat_snapshot, 0,
sizeof(macstat_t)); sizeof(struct macstat));
brcms_b_reset(wlc->hw); brcms_b_reset(wlc->hw);
} }
...@@ -1072,9 +1072,10 @@ static void WLBANDINITFN(brcms_c_setband) (struct brcms_c_info *wlc, ...@@ -1072,9 +1072,10 @@ static void WLBANDINITFN(brcms_c_setband) (struct brcms_c_info *wlc,
} }
/* Initialize a WME Parameter Info Element with default STA parameters from WMM Spec, Table 12 */ /* Initialize a WME Parameter Info Element with default STA parameters from WMM Spec, Table 12 */
void brcms_c_wme_initparams_sta(struct brcms_c_info *wlc, wme_param_ie_t *pe) void
brcms_c_wme_initparams_sta(struct brcms_c_info *wlc, struct wme_param_ie *pe)
{ {
static const wme_param_ie_t stadef = { static const struct wme_param_ie stadef = {
WME_OUI, WME_OUI,
WME_TYPE, WME_TYPE,
WME_SUBTYPE_PARAM_IE, WME_SUBTYPE_PARAM_IE,
...@@ -1100,7 +1101,7 @@ void brcms_c_wme_setparams(struct brcms_c_info *wlc, u16 aci, ...@@ -1100,7 +1101,7 @@ void brcms_c_wme_setparams(struct brcms_c_info *wlc, u16 aci,
bool suspend) bool suspend)
{ {
int i; int i;
shm_acparams_t acp_shm; struct shm_acparams acp_shm;
u16 *shm_entry; u16 *shm_entry;
/* Only apply params if the core is out of reset and has clocks */ /* Only apply params if the core is out of reset and has clocks */
...@@ -1111,7 +1112,7 @@ void brcms_c_wme_setparams(struct brcms_c_info *wlc, u16 aci, ...@@ -1111,7 +1112,7 @@ void brcms_c_wme_setparams(struct brcms_c_info *wlc, u16 aci,
} }
do { do {
memset((char *)&acp_shm, 0, sizeof(shm_acparams_t)); memset((char *)&acp_shm, 0, sizeof(struct shm_acparams));
/* fill in shm ac params struct */ /* fill in shm ac params struct */
acp_shm.txop = le16_to_cpu(params->txop); acp_shm.txop = le16_to_cpu(params->txop);
/* convert from units of 32us to us for ucode */ /* convert from units of 32us to us for ucode */
...@@ -1145,7 +1146,7 @@ void brcms_c_wme_setparams(struct brcms_c_info *wlc, u16 aci, ...@@ -1145,7 +1146,7 @@ void brcms_c_wme_setparams(struct brcms_c_info *wlc, u16 aci,
/* Fill in shm acparam table */ /* Fill in shm acparam table */
shm_entry = (u16 *) &acp_shm; shm_entry = (u16 *) &acp_shm;
for (i = 0; i < (int)sizeof(shm_acparams_t); i += 2) for (i = 0; i < (int)sizeof(struct shm_acparams); i += 2)
brcms_c_write_shm(wlc, brcms_c_write_shm(wlc,
M_EDCF_QINFO + M_EDCF_QINFO +
wme_shmemacindex(aci) * M_EDCF_QLEN + i, wme_shmemacindex(aci) * M_EDCF_QLEN + i,
...@@ -1165,7 +1166,7 @@ void brcms_c_edcf_setparams(struct brcms_c_info *wlc, bool suspend) ...@@ -1165,7 +1166,7 @@ void brcms_c_edcf_setparams(struct brcms_c_info *wlc, bool suspend)
{ {
u16 aci; u16 aci;
int i_ac; int i_ac;
edcf_acparam_t *edcf_acp; struct edcf_acparam *edcf_acp;
struct ieee80211_tx_queue_params txq_pars; struct ieee80211_tx_queue_params txq_pars;
struct ieee80211_tx_queue_params *params = &txq_pars; struct ieee80211_tx_queue_params *params = &txq_pars;
...@@ -1176,7 +1177,7 @@ void brcms_c_edcf_setparams(struct brcms_c_info *wlc, bool suspend) ...@@ -1176,7 +1177,7 @@ void brcms_c_edcf_setparams(struct brcms_c_info *wlc, bool suspend)
* STA uses AC params from wme_param_ie. * STA uses AC params from wme_param_ie.
*/ */
edcf_acp = (edcf_acparam_t *) &wlc->wme_param_ie.acparam[0]; edcf_acp = (struct edcf_acparam *) &wlc->wme_param_ie.acparam[0];
for (i_ac = 0; i_ac < AC_COUNT; i_ac++, edcf_acp++) { for (i_ac = 0; i_ac < AC_COUNT; i_ac++, edcf_acp++) {
/* find out which ac this set of params applies to */ /* find out which ac this set of params applies to */
...@@ -1307,7 +1308,7 @@ void brcms_c_info_init(struct brcms_c_info *wlc, int unit) ...@@ -1307,7 +1308,7 @@ void brcms_c_info_init(struct brcms_c_info *wlc, int unit)
static bool brcms_c_state_bmac_sync(struct brcms_c_info *wlc) static bool brcms_c_state_bmac_sync(struct brcms_c_info *wlc)
{ {
brcms_b_state_t state_bmac; struct brcms_b_state state_bmac;
if (brcms_b_state_get(wlc->hw, &state_bmac) != 0) if (brcms_b_state_get(wlc->hw, &state_bmac) != 0)
return false; return false;
...@@ -1351,7 +1352,7 @@ static uint brcms_c_attach_module(struct brcms_c_info *wlc) ...@@ -1351,7 +1352,7 @@ static uint brcms_c_attach_module(struct brcms_c_info *wlc)
return err; return err;
} }
struct wlc_pub *brcms_c_pub(void *wlc) struct brcms_pub *brcms_c_pub(void *wlc)
{ {
return ((struct brcms_c_info *) wlc)->pub; return ((struct brcms_c_info *) wlc)->pub;
} }
...@@ -1368,7 +1369,7 @@ void *brcms_c_attach(struct brcms_info *wl, u16 vendor, u16 device, uint unit, ...@@ -1368,7 +1369,7 @@ void *brcms_c_attach(struct brcms_info *wl, u16 vendor, u16 device, uint unit,
struct brcms_c_info *wlc; struct brcms_c_info *wlc;
uint err = 0; uint err = 0;
uint j; uint j;
struct wlc_pub *pub; struct brcms_pub *pub;
uint n_disabled; uint n_disabled;
/* allocate struct brcms_c_info state and its substructures */ /* allocate struct brcms_c_info state and its substructures */
...@@ -2531,7 +2532,7 @@ _brcms_c_ioctl(struct brcms_c_info *wlc, int cmd, void *arg, int len, ...@@ -2531,7 +2532,7 @@ _brcms_c_ioctl(struct brcms_c_info *wlc, int cmd, void *arg, int len,
bool ta_ok; bool ta_ok;
uint band; uint band;
struct brcms_c_bsscfg *bsscfg; struct brcms_c_bsscfg *bsscfg;
wlc_bss_info_t *current_bss; struct brcms_bss_info *current_bss;
/* update bsscfg pointer */ /* update bsscfg pointer */
bsscfg = wlc->cfg; bsscfg = wlc->cfg;
...@@ -2770,7 +2771,7 @@ _brcms_c_ioctl(struct brcms_c_info *wlc, int cmd, void *arg, int len, ...@@ -2770,7 +2771,7 @@ _brcms_c_ioctl(struct brcms_c_info *wlc, int cmd, void *arg, int len,
/* /*
* register watchdog and down handlers. * register watchdog and down handlers.
*/ */
int brcms_c_module_register(struct wlc_pub *pub, int brcms_c_module_register(struct brcms_pub *pub,
const char *name, void *hdl, const char *name, void *hdl,
watchdog_fn_t w_fn, down_fn_t d_fn) watchdog_fn_t w_fn, down_fn_t d_fn)
{ {
...@@ -2793,7 +2794,8 @@ int brcms_c_module_register(struct wlc_pub *pub, ...@@ -2793,7 +2794,8 @@ int brcms_c_module_register(struct wlc_pub *pub,
} }
/* unregister module callbacks */ /* unregister module callbacks */
int brcms_c_module_unregister(struct wlc_pub *pub, const char *name, void *hdl) int
brcms_c_module_unregister(struct brcms_pub *pub, const char *name, void *hdl)
{ {
struct brcms_c_info *wlc = (struct brcms_c_info *) pub->wlc; struct brcms_c_info *wlc = (struct brcms_c_info *) pub->wlc;
int i; int i;
...@@ -2855,7 +2857,7 @@ static void brcms_c_print_txs_status(u16 s) ...@@ -2855,7 +2857,7 @@ static void brcms_c_print_txs_status(u16 s)
} }
#endif /* BCMDBG */ #endif /* BCMDBG */
void brcms_c_print_txstatus(tx_status_t *txs) void brcms_c_print_txstatus(struct tx_status *txs)
{ {
#if defined(BCMDBG) #if defined(BCMDBG)
u16 s = txs->status; u16 s = txs->status;
...@@ -2883,7 +2885,7 @@ void brcms_c_print_txstatus(tx_status_t *txs) ...@@ -2883,7 +2885,7 @@ void brcms_c_print_txstatus(tx_status_t *txs)
void brcms_c_statsupd(struct brcms_c_info *wlc) void brcms_c_statsupd(struct brcms_c_info *wlc)
{ {
int i; int i;
macstat_t macstats; struct macstat macstats;
#ifdef BCMDBG #ifdef BCMDBG
u16 delta; u16 delta;
u16 rxf0ovfl; u16 rxf0ovfl;
...@@ -2905,7 +2907,7 @@ void brcms_c_statsupd(struct brcms_c_info *wlc) ...@@ -2905,7 +2907,7 @@ void brcms_c_statsupd(struct brcms_c_info *wlc)
/* Read mac stats from contiguous shared memory */ /* Read mac stats from contiguous shared memory */
brcms_b_copyfrom_shm(wlc->hw, M_UCODE_MACSTAT, brcms_b_copyfrom_shm(wlc->hw, M_UCODE_MACSTAT,
&macstats, sizeof(macstat_t)); &macstats, sizeof(struct macstat));
#ifdef BCMDBG #ifdef BCMDBG
/* check for rx fifo 0 overflow */ /* check for rx fifo 0 overflow */
...@@ -2954,7 +2956,7 @@ bool brcms_c_chipmatch(u16 vendor, u16 device) ...@@ -2954,7 +2956,7 @@ bool brcms_c_chipmatch(u16 vendor, u16 device)
} }
#if defined(BCMDBG) #if defined(BCMDBG)
void brcms_c_print_txdesc(d11txh_t *txh) void brcms_c_print_txdesc(struct d11txh *txh)
{ {
u16 mtcl = le16_to_cpu(txh->MacTxControlLow); u16 mtcl = le16_to_cpu(txh->MacTxControlLow);
u16 mtch = le16_to_cpu(txh->MacTxControlHigh); u16 mtch = le16_to_cpu(txh->MacTxControlHigh);
...@@ -2990,7 +2992,7 @@ void brcms_c_print_txdesc(d11txh_t *txh) ...@@ -2990,7 +2992,7 @@ void brcms_c_print_txdesc(d11txh_t *txh)
/* add plcp header along with txh descriptor */ /* add plcp header along with txh descriptor */
printk(KERN_DEBUG "Raw TxDesc + plcp header:\n"); printk(KERN_DEBUG "Raw TxDesc + plcp header:\n");
print_hex_dump_bytes("", DUMP_PREFIX_OFFSET, print_hex_dump_bytes("", DUMP_PREFIX_OFFSET,
txh, sizeof(d11txh_t) + 48); txh, sizeof(struct d11txh) + 48);
printk(KERN_DEBUG "TxCtlLow: %04x ", mtcl); printk(KERN_DEBUG "TxCtlLow: %04x ", mtcl);
printk(KERN_DEBUG "TxCtlHigh: %04x ", mtch); printk(KERN_DEBUG "TxCtlHigh: %04x ", mtch);
...@@ -3040,7 +3042,7 @@ void brcms_c_print_txdesc(d11txh_t *txh) ...@@ -3040,7 +3042,7 @@ void brcms_c_print_txdesc(d11txh_t *txh)
#endif /* defined(BCMDBG) */ #endif /* defined(BCMDBG) */
#if defined(BCMDBG) #if defined(BCMDBG)
void brcms_c_print_rxh(d11rxhdr_t *rxh) void brcms_c_print_rxh(struct d11rxhdr *rxh)
{ {
u16 len = rxh->RxFrameSize; u16 len = rxh->RxFrameSize;
u16 phystatus_0 = rxh->PhyRxStatus_0; u16 phystatus_0 = rxh->PhyRxStatus_0;
...@@ -3062,7 +3064,8 @@ void brcms_c_print_rxh(d11rxhdr_t *rxh) ...@@ -3062,7 +3064,8 @@ void brcms_c_print_rxh(d11rxhdr_t *rxh)
}; };
printk(KERN_DEBUG "Raw RxDesc:\n"); printk(KERN_DEBUG "Raw RxDesc:\n");
print_hex_dump_bytes("", DUMP_PREFIX_OFFSET, rxh, sizeof(d11rxhdr_t)); print_hex_dump_bytes("", DUMP_PREFIX_OFFSET, rxh,
sizeof(struct d11rxhdr));
brcmu_format_flags(macstat_flags, macstatus1, flagstr, 64); brcmu_format_flags(macstat_flags, macstatus1, flagstr, 64);
...@@ -3286,7 +3289,7 @@ void brcms_c_send_q(struct brcms_c_info *wlc) ...@@ -3286,7 +3289,7 @@ void brcms_c_send_q(struct brcms_c_info *wlc)
*/ */
static inline u16 static inline u16
bcmc_fid_generate(struct brcms_c_info *wlc, struct brcms_c_bsscfg *bsscfg, bcmc_fid_generate(struct brcms_c_info *wlc, struct brcms_c_bsscfg *bsscfg,
d11txh_t *txh) struct d11txh *txh)
{ {
u16 frameid; u16 frameid;
...@@ -3305,9 +3308,9 @@ brcms_c_txfifo(struct brcms_c_info *wlc, uint fifo, struct sk_buff *p, ...@@ -3305,9 +3308,9 @@ brcms_c_txfifo(struct brcms_c_info *wlc, uint fifo, struct sk_buff *p,
bool commit, s8 txpktpend) bool commit, s8 txpktpend)
{ {
u16 frameid = INVALIDFID; u16 frameid = INVALIDFID;
d11txh_t *txh; struct d11txh *txh;
txh = (d11txh_t *) (p->data); txh = (struct d11txh *) (p->data);
/* When a BC/MC frame is being committed to the BCMC fifo via DMA (NOT PIO), update /* When a BC/MC frame is being committed to the BCMC fifo via DMA (NOT PIO), update
* ucode or BSS info as appropriate. * ucode or BSS info as appropriate.
...@@ -3378,7 +3381,7 @@ brcms_c_compute_ofdm_plcp(ratespec_t rspec, u32 length, u8 *plcp) ...@@ -3378,7 +3381,7 @@ brcms_c_compute_ofdm_plcp(ratespec_t rspec, u32 length, u8 *plcp)
/* encode rate per 802.11a-1999 sec 17.3.4.1, with lsb transmitted first */ /* encode rate per 802.11a-1999 sec 17.3.4.1, with lsb transmitted first */
rate_signal = rate_info[rate] & WLC_RATE_MASK; rate_signal = rate_info[rate] & WLC_RATE_MASK;
memset(plcp, 0, D11_PHY_HDR_LEN); memset(plcp, 0, D11_PHY_HDR_LEN);
D11A_PHY_HDR_SRATE((ofdm_phy_hdr_t *) plcp, rate_signal); D11A_PHY_HDR_SRATE((struct ofdm_phy_hdr *) plcp, rate_signal);
tmp = (length & 0xfff) << 5; tmp = (length & 0xfff) << 5;
plcp[2] |= (tmp >> 16) & 0xff; plcp[2] |= (tmp >> 16) & 0xff;
...@@ -3622,7 +3625,7 @@ brcms_c_rspec_to_rts_rspec(struct brcms_c_info *wlc, ratespec_t rspec, ...@@ -3622,7 +3625,7 @@ brcms_c_rspec_to_rts_rspec(struct brcms_c_info *wlc, ratespec_t rspec,
} }
/* /*
* Add d11txh_t, cck_phy_hdr_t. * Add struct d11txh, struct cck_phy_hdr.
* *
* 'p' data must start with 802.11 MAC header * 'p' data must start with 802.11 MAC header
* 'p' must allow enough bytes of local headers to be "pushed" onto the packet * 'p' must allow enough bytes of local headers to be "pushed" onto the packet
...@@ -3634,10 +3637,10 @@ static u16 ...@@ -3634,10 +3637,10 @@ static u16
brcms_c_d11hdrs_mac80211(struct brcms_c_info *wlc, struct ieee80211_hw *hw, brcms_c_d11hdrs_mac80211(struct brcms_c_info *wlc, struct ieee80211_hw *hw,
struct sk_buff *p, struct scb *scb, uint frag, struct sk_buff *p, struct scb *scb, uint frag,
uint nfrags, uint queue, uint next_frag_len, uint nfrags, uint queue, uint next_frag_len,
wsec_key_t *key, ratespec_t rspec_override) struct wsec_key *key, ratespec_t rspec_override)
{ {
struct ieee80211_hdr *h; struct ieee80211_hdr *h;
d11txh_t *txh; struct d11txh *txh;
u8 *plcp, plcp_fallback[D11_PHY_HDR_LEN]; u8 *plcp, plcp_fallback[D11_PHY_HDR_LEN];
int len, phylen, rts_phylen; int len, phylen, rts_phylen;
u16 mch, phyctl, xfts, mainrates; u16 mch, phyctl, xfts, mainrates;
...@@ -3693,7 +3696,7 @@ brcms_c_d11hdrs_mac80211(struct brcms_c_info *wlc, struct ieee80211_hw *hw, ...@@ -3693,7 +3696,7 @@ brcms_c_d11hdrs_mac80211(struct brcms_c_info *wlc, struct ieee80211_hw *hw,
plcp = skb_push(p, D11_PHY_HDR_LEN); plcp = skb_push(p, D11_PHY_HDR_LEN);
/* add Broadcom tx descriptor header */ /* add Broadcom tx descriptor header */
txh = (d11txh_t *) skb_push(p, D11_TXH_LEN); txh = (struct d11txh *) skb_push(p, D11_TXH_LEN);
memset(txh, 0, D11_TXH_LEN); memset(txh, 0, D11_TXH_LEN);
/* setup frameid */ /* setup frameid */
...@@ -3912,7 +3915,8 @@ brcms_c_d11hdrs_mac80211(struct brcms_c_info *wlc, struct ieee80211_hw *hw, ...@@ -3912,7 +3915,8 @@ brcms_c_d11hdrs_mac80211(struct brcms_c_info *wlc, struct ieee80211_hw *hw,
(phylen > wlc->RTSThresh) && !is_multicast_ether_addr(h->addr1)) (phylen > wlc->RTSThresh) && !is_multicast_ether_addr(h->addr1))
use_rts = true; use_rts = true;
/* (3) PLCP: determine PLCP header and MAC duration, fill d11txh_t */ /* (3) PLCP: determine PLCP header and MAC duration,
* fill struct d11txh */
brcms_c_compute_plcp(wlc, rspec[0], phylen, plcp); brcms_c_compute_plcp(wlc, rspec[0], phylen, plcp);
brcms_c_compute_plcp(wlc, rspec[1], phylen, plcp_fallback); brcms_c_compute_plcp(wlc, rspec[1], phylen, plcp_fallback);
memcpy(&txh->FragPLCPFallback, memcpy(&txh->FragPLCPFallback,
...@@ -3925,9 +3929,9 @@ brcms_c_d11hdrs_mac80211(struct brcms_c_info *wlc, struct ieee80211_hw *hw, ...@@ -3925,9 +3929,9 @@ brcms_c_d11hdrs_mac80211(struct brcms_c_info *wlc, struct ieee80211_hw *hw,
} }
/* MIMO-RATE: need validation ?? */ /* MIMO-RATE: need validation ?? */
mainrates = mainrates = IS_OFDM(rspec[0]) ?
IS_OFDM(rspec[0]) ? D11A_PHY_HDR_GRATE((ofdm_phy_hdr_t *) plcp) : D11A_PHY_HDR_GRATE((struct ofdm_phy_hdr *) plcp) :
plcp[0]; plcp[0];
/* DUR field for main rate */ /* DUR field for main rate */
if (!ieee80211_is_pspoll(h->frame_control) && if (!ieee80211_is_pspoll(h->frame_control) &&
...@@ -4011,7 +4015,8 @@ brcms_c_d11hdrs_mac80211(struct brcms_c_info *wlc, struct ieee80211_hw *hw, ...@@ -4011,7 +4015,8 @@ brcms_c_d11hdrs_mac80211(struct brcms_c_info *wlc, struct ieee80211_hw *hw,
txh->MaxABytes_FBR = cpu_to_le16(0); txh->MaxABytes_FBR = cpu_to_le16(0);
txh->MinMBytes = cpu_to_le16(0); txh->MinMBytes = cpu_to_le16(0);
/* (5) RTS/CTS: determine RTS/CTS PLCP header and MAC duration, furnish d11txh_t */ /* (5) RTS/CTS: determine RTS/CTS PLCP header and MAC duration,
* furnish struct d11txh */
/* RTS PLCP header and RTS frame */ /* RTS PLCP header and RTS frame */
if (use_rts || use_cts) { if (use_rts || use_cts) {
if (use_rts && use_cts) if (use_rts && use_cts)
...@@ -4091,8 +4096,9 @@ brcms_c_d11hdrs_mac80211(struct brcms_c_info *wlc, struct ieee80211_hw *hw, ...@@ -4091,8 +4096,9 @@ brcms_c_d11hdrs_mac80211(struct brcms_c_info *wlc, struct ieee80211_hw *hw,
* high 8 bits: rts/cts rate/mcs * high 8 bits: rts/cts rate/mcs
*/ */
mainrates |= (IS_OFDM(rts_rspec[0]) ? mainrates |= (IS_OFDM(rts_rspec[0]) ?
D11A_PHY_HDR_GRATE((ofdm_phy_hdr_t *) rts_plcp) : D11A_PHY_HDR_GRATE(
rts_plcp[0]) << 8; (struct ofdm_phy_hdr *) rts_plcp) :
rts_plcp[0]) << 8;
} else { } else {
memset((char *)txh->RTSPhyHeader, 0, D11_PHY_HDR_LEN); memset((char *)txh->RTSPhyHeader, 0, D11_PHY_HDR_LEN);
memset((char *)&txh->rts_frame, 0, memset((char *)&txh->rts_frame, 0,
...@@ -4283,14 +4289,14 @@ static void brcms_c_war16165(struct brcms_c_info *wlc, bool tx) ...@@ -4283,14 +4289,14 @@ static void brcms_c_war16165(struct brcms_c_info *wlc, bool tx)
} }
} }
/* process an individual tx_status_t */ /* process an individual struct tx_status */
/* WLC_HIGH_API */ /* WLC_HIGH_API */
bool bool
brcms_c_dotxstatus(struct brcms_c_info *wlc, tx_status_t *txs, u32 frm_tx2) brcms_c_dotxstatus(struct brcms_c_info *wlc, struct tx_status *txs, u32 frm_tx2)
{ {
struct sk_buff *p; struct sk_buff *p;
uint queue; uint queue;
d11txh_t *txh; struct d11txh *txh;
struct scb *scb = NULL; struct scb *scb = NULL;
bool free_pdu; bool free_pdu;
int tx_rts, tx_frame_count, tx_rts_count; int tx_rts, tx_frame_count, tx_rts_count;
...@@ -4328,7 +4334,7 @@ brcms_c_dotxstatus(struct brcms_c_info *wlc, tx_status_t *txs, u32 frm_tx2) ...@@ -4328,7 +4334,7 @@ brcms_c_dotxstatus(struct brcms_c_info *wlc, tx_status_t *txs, u32 frm_tx2)
if (p == NULL) if (p == NULL)
goto fatal; goto fatal;
txh = (d11txh_t *) (p->data); txh = (struct d11txh *) (p->data);
mcl = le16_to_cpu(txh->MacTxControlLow); mcl = le16_to_cpu(txh->MacTxControlLow);
if (txs->phyerr) { if (txs->phyerr) {
...@@ -4495,7 +4501,7 @@ void brcms_c_bcn_li_upd(struct brcms_c_info *wlc) ...@@ -4495,7 +4501,7 @@ void brcms_c_bcn_li_upd(struct brcms_c_info *wlc)
* are used. Finally, the tsf_h is read from the tsf register. * are used. Finally, the tsf_h is read from the tsf register.
*/ */
static u64 brcms_c_recover_tsf64(struct brcms_c_info *wlc, static u64 brcms_c_recover_tsf64(struct brcms_c_info *wlc,
struct wlc_d11rxhdr *rxh) struct brcms_d11rxhdr *rxh)
{ {
u32 tsf_h, tsf_l; u32 tsf_h, tsf_l;
u16 rx_tsf_0_15, rx_tsf_16_31; u16 rx_tsf_0_15, rx_tsf_16_31;
...@@ -4519,11 +4525,11 @@ static u64 brcms_c_recover_tsf64(struct brcms_c_info *wlc, ...@@ -4519,11 +4525,11 @@ static u64 brcms_c_recover_tsf64(struct brcms_c_info *wlc,
} }
static void static void
prep_mac80211_status(struct brcms_c_info *wlc, d11rxhdr_t *rxh, prep_mac80211_status(struct brcms_c_info *wlc, struct d11rxhdr *rxh,
struct sk_buff *p, struct sk_buff *p,
struct ieee80211_rx_status *rx_status) struct ieee80211_rx_status *rx_status)
{ {
wlc_d11rxhdr_t *wlc_rxh = (wlc_d11rxhdr_t *) rxh; struct brcms_d11rxhdr *wlc_rxh = (struct brcms_d11rxhdr *) rxh;
int preamble; int preamble;
int channel; int channel;
ratespec_t rspec; ratespec_t rspec;
...@@ -4630,7 +4636,8 @@ prep_mac80211_status(struct brcms_c_info *wlc, d11rxhdr_t *rxh, ...@@ -4630,7 +4636,8 @@ prep_mac80211_status(struct brcms_c_info *wlc, d11rxhdr_t *rxh,
} }
static void static void
brcms_c_recvctl(struct brcms_c_info *wlc, d11rxhdr_t *rxh, struct sk_buff *p) brcms_c_recvctl(struct brcms_c_info *wlc, struct d11rxhdr *rxh,
struct sk_buff *p)
{ {
int len_mpdu; int len_mpdu;
struct ieee80211_rx_status rx_status; struct ieee80211_rx_status rx_status;
...@@ -4656,7 +4663,7 @@ brcms_c_recvctl(struct brcms_c_info *wlc, d11rxhdr_t *rxh, struct sk_buff *p) ...@@ -4656,7 +4663,7 @@ brcms_c_recvctl(struct brcms_c_info *wlc, d11rxhdr_t *rxh, struct sk_buff *p)
/* WLC_HIGH_API */ /* WLC_HIGH_API */
void brcms_c_recv(struct brcms_c_info *wlc, struct sk_buff *p) void brcms_c_recv(struct brcms_c_info *wlc, struct sk_buff *p)
{ {
d11rxhdr_t *rxh; struct d11rxhdr *rxh;
struct ieee80211_hdr *h; struct ieee80211_hdr *h;
uint len; uint len;
bool is_amsdu; bool is_amsdu;
...@@ -4664,7 +4671,7 @@ void brcms_c_recv(struct brcms_c_info *wlc, struct sk_buff *p) ...@@ -4664,7 +4671,7 @@ void brcms_c_recv(struct brcms_c_info *wlc, struct sk_buff *p)
BCMMSG(wlc->wiphy, "wl%d\n", wlc->pub->unit); BCMMSG(wlc->wiphy, "wl%d\n", wlc->pub->unit);
/* frame starts with rxhdr */ /* frame starts with rxhdr */
rxh = (d11rxhdr_t *) (p->data); rxh = (struct d11rxhdr *) (p->data);
/* strip off rxhdr */ /* strip off rxhdr */
skb_pull(p, WL_HWRXOFF); skb_pull(p, WL_HWRXOFF);
...@@ -5245,7 +5252,7 @@ brcms_c_bcn_prb_template(struct brcms_c_info *wlc, u16 type, ...@@ -5245,7 +5252,7 @@ brcms_c_bcn_prb_template(struct brcms_c_info *wlc, u16 type,
struct brcms_c_bsscfg *cfg, u16 *buf, int *len) struct brcms_c_bsscfg *cfg, u16 *buf, int *len)
{ {
static const u8 ether_bcast[ETH_ALEN] = {255, 255, 255, 255, 255, 255}; static const u8 ether_bcast[ETH_ALEN] = {255, 255, 255, 255, 255, 255};
cck_phy_hdr_t *plcp; struct cck_phy_hdr *plcp;
struct ieee80211_mgmt *h; struct ieee80211_mgmt *h;
int hdr_len, body_len; int hdr_len, body_len;
...@@ -5260,7 +5267,7 @@ brcms_c_bcn_prb_template(struct brcms_c_info *wlc, u16 type, ...@@ -5260,7 +5267,7 @@ brcms_c_bcn_prb_template(struct brcms_c_info *wlc, u16 type,
/* format PHY and MAC headers */ /* format PHY and MAC headers */
memset((char *)buf, 0, hdr_len); memset((char *)buf, 0, hdr_len);
plcp = (cck_phy_hdr_t *) buf; plcp = (struct cck_phy_hdr *) buf;
/* PLCP for Probe Response frames are filled in from core's rate table */ /* PLCP for Probe Response frames are filled in from core's rate table */
if (type == IEEE80211_STYPE_BEACON && !MBSS_BCN_ENAB(cfg)) { if (type == IEEE80211_STYPE_BEACON && !MBSS_BCN_ENAB(cfg)) {
...@@ -5440,11 +5447,11 @@ brcms_c_bss_update_probe_resp(struct brcms_c_info *wlc, ...@@ -5440,11 +5447,11 @@ brcms_c_bss_update_probe_resp(struct brcms_c_info *wlc,
int brcms_c_prep_pdu(struct brcms_c_info *wlc, struct sk_buff *pdu, uint *fifop) int brcms_c_prep_pdu(struct brcms_c_info *wlc, struct sk_buff *pdu, uint *fifop)
{ {
uint fifo; uint fifo;
d11txh_t *txh; struct d11txh *txh;
struct ieee80211_hdr *h; struct ieee80211_hdr *h;
struct scb *scb; struct scb *scb;
txh = (d11txh_t *) (pdu->data); txh = (struct d11txh *) (pdu->data);
h = (struct ieee80211_hdr *)((u8 *) (txh + 1) + D11_PHY_HDR_LEN); h = (struct ieee80211_hdr *)((u8 *) (txh + 1) + D11_PHY_HDR_LEN);
/* get the pkt queue info. This was put at brcms_c_sendctl or /* get the pkt queue info. This was put at brcms_c_sendctl or
...@@ -5495,10 +5502,10 @@ static void brcms_c_bss_default_init(struct brcms_c_info *wlc) ...@@ -5495,10 +5502,10 @@ static void brcms_c_bss_default_init(struct brcms_c_info *wlc)
{ {
chanspec_t chanspec; chanspec_t chanspec;
struct brcms_c_band *band; struct brcms_c_band *band;
wlc_bss_info_t *bi = wlc->default_bss; struct brcms_bss_info *bi = wlc->default_bss;
/* init default and target BSS with some sane initial values */ /* init default and target BSS with some sane initial values */
memset((char *)(bi), 0, sizeof(wlc_bss_info_t)); memset((char *)(bi), 0, sizeof(struct brcms_bss_info));
bi->beacon_period = BEACON_INTERVAL_DEFAULT; bi->beacon_period = BEACON_INTERVAL_DEFAULT;
bi->dtim_period = DTIM_INTERVAL_DEFAULT; bi->dtim_period = DTIM_INTERVAL_DEFAULT;
......
...@@ -77,7 +77,7 @@ ...@@ -77,7 +77,7 @@
struct brcms_c_bss_list { struct brcms_c_bss_list {
uint count; uint count;
bool beacon; /* set for beacon, cleared for probe response */ bool beacon; /* set for beacon, cleared for probe response */
wlc_bss_info_t *ptrs[MAXBSS]; struct brcms_bss_info *ptrs[MAXBSS];
}; };
#define SW_TIMER_MAC_STAT_UPD 30 /* periodic MAC stats update */ #define SW_TIMER_MAC_STAT_UPD 30 /* periodic MAC stats update */
...@@ -292,7 +292,7 @@ struct brcms_c_stf { ...@@ -292,7 +292,7 @@ struct brcms_c_stf {
#define WLC_CHAN_CHANNEL(x) (((x) & RXS_CHAN_ID_MASK) >> RXS_CHAN_ID_SHIFT) #define WLC_CHAN_CHANNEL(x) (((x) & RXS_CHAN_ID_MASK) >> RXS_CHAN_ID_SHIFT)
#define WLC_RX_CHANNEL(rxh) (WLC_CHAN_CHANNEL((rxh)->RxChan)) #define WLC_RX_CHANNEL(rxh) (WLC_CHAN_CHANNEL((rxh)->RxChan))
/* wlc_bss_info flag bit values */ /* brcms_bss_info flag bit values */
#define WLC_BSS_HT 0x0020 /* BSS is HT (MIMO) capable */ #define WLC_BSS_HT 0x0020 /* BSS is HT (MIMO) capable */
/* Flags used in brcms_c_txq_info.stopped */ /* Flags used in brcms_c_txq_info.stopped */
...@@ -341,8 +341,8 @@ struct wsec_key { ...@@ -341,8 +341,8 @@ struct wsec_key {
u32 len; /* key length..don't move this var */ u32 len; /* key length..don't move this var */
/* data is 4byte aligned */ /* data is 4byte aligned */
u8 data[WLAN_MAX_KEY_LEN]; /* key data */ u8 data[WLAN_MAX_KEY_LEN]; /* key data */
wsec_iv_t rxiv[WLC_NUMRXIVS]; /* Rx IV (one per TID) */ struct wsec_iv rxiv[WLC_NUMRXIVS]; /* Rx IV (one per TID) */
wsec_iv_t txiv; /* Tx IV */ struct wsec_iv txiv; /* Tx IV */
}; };
/* /*
...@@ -355,7 +355,7 @@ struct brcms_c_core { ...@@ -355,7 +355,7 @@ struct brcms_c_core {
uint *txavail[NFIFO]; /* # tx descriptors available */ uint *txavail[NFIFO]; /* # tx descriptors available */
s16 txpktpend[NFIFO]; /* tx admission control */ s16 txpktpend[NFIFO]; /* tx admission control */
macstat_t *macstat_snapshot; /* mac hw prev read values */ struct macstat *macstat_snapshot; /* mac hw prev read values */
}; };
/* /*
...@@ -437,7 +437,7 @@ struct wme_param_ie { ...@@ -437,7 +437,7 @@ struct wme_param_ie {
u8 version; u8 version;
u8 qosinfo; u8 qosinfo;
u8 rsvd; u8 rsvd;
edcf_acparam_t acparam[AC_COUNT]; struct edcf_acparam acparam[AC_COUNT];
} __attribute__((packed)); } __attribute__((packed));
/* virtual interface */ /* virtual interface */
...@@ -571,7 +571,7 @@ struct brcms_c_txq_info { ...@@ -571,7 +571,7 @@ struct brcms_c_txq_info {
* Principal common (os-independent) software data structure. * Principal common (os-independent) software data structure.
*/ */
struct brcms_c_info { struct brcms_c_info {
struct wlc_pub *pub; /* pointer to wlc public state */ struct brcms_pub *pub; /* pointer to wlc public state */
struct brcms_info *wl; /* pointer to os-specific private state */ struct brcms_info *wl; /* pointer to os-specific private state */
d11regs_t *regs; /* pointer to device registers */ d11regs_t *regs; /* pointer to device registers */
...@@ -615,7 +615,7 @@ struct brcms_c_info { ...@@ -615,7 +615,7 @@ struct brcms_c_info {
struct ampdu_info *ampdu; /* ampdu module handler */ struct ampdu_info *ampdu; /* ampdu module handler */
struct antsel_info *asi; /* antsel module handler */ struct antsel_info *asi; /* antsel module handler */
wlc_cm_info_t *cmi; /* channel manager module handler */ struct brcms_cm_info *cmi; /* channel manager module handler */
uint vars_size; /* size of vars, free vars on detach */ uint vars_size; /* size of vars, free vars on detach */
...@@ -664,11 +664,13 @@ struct brcms_c_info { ...@@ -664,11 +664,13 @@ struct brcms_c_info {
/* WME */ /* WME */
ac_bitmap_t wme_dp; /* Discard (oldest first) policy per AC */ ac_bitmap_t wme_dp; /* Discard (oldest first) policy per AC */
u16 edcf_txop[AC_COUNT]; /* current txop for each ac */ u16 edcf_txop[AC_COUNT]; /* current txop for each ac */
wme_param_ie_t wme_param_ie; /* WME parameter info element, which on STA
* contains parameters in use locally, and on /*
* AP contains parameters advertised to STA * WME parameter info element, which on STA contains parameters in use
* in beacons and assoc responses. * locally, and on AP contains parameters advertised to STA in beacons
*/ * and assoc responses.
*/
struct wme_param_ie wme_param_ie;
u16 wme_retries[AC_COUNT]; /* per-AC retry limits */ u16 wme_retries[AC_COUNT]; /* per-AC retry limits */
u16 tx_prec_map; /* Precedence map based on HW FIFO space */ u16 tx_prec_map; /* Precedence map based on HW FIFO space */
...@@ -685,8 +687,9 @@ struct brcms_c_info { ...@@ -685,8 +687,9 @@ struct brcms_c_info {
struct brcms_c_txq_info *tx_queues; /* common TX Queue list */ struct brcms_c_txq_info *tx_queues; /* common TX Queue list */
/* security */ /* security */
wsec_key_t *wsec_keys[WSEC_MAX_KEYS]; /* dynamic key storage */ struct wsec_key *wsec_keys[WSEC_MAX_KEYS]; /* dynamic key storage */
wsec_key_t *wsec_def_keys[WLC_DEFAULT_KEYS]; /* default key storage */ /* default key storage */
struct wsec_key *wsec_def_keys[WLC_DEFAULT_KEYS];
bool wsec_swkeys; /* indicates that all keys should be bool wsec_swkeys; /* indicates that all keys should be
* treated as sw keys (used for debugging) * treated as sw keys (used for debugging)
*/ */
...@@ -699,7 +702,7 @@ struct brcms_c_info { ...@@ -699,7 +702,7 @@ struct brcms_c_info {
/* HT CAP IE being advertised by this node: */ /* HT CAP IE being advertised by this node: */
struct ieee80211_ht_cap ht_cap; struct ieee80211_ht_cap ht_cap;
wlc_bss_info_t *default_bss; /* configured BSS parameters */ struct brcms_bss_info *default_bss; /* configured BSS parameters */
u16 mc_fid_counter; /* BC/MC FIFO frame ID counter */ u16 mc_fid_counter; /* BC/MC FIFO frame ID counter */
...@@ -761,14 +764,14 @@ struct brcms_c_info { ...@@ -761,14 +764,14 @@ struct brcms_c_info {
/* antsel module specific state */ /* antsel module specific state */
struct antsel_info { struct antsel_info {
struct brcms_c_info *wlc; /* pointer to main wlc structure */ struct brcms_c_info *wlc; /* pointer to main wlc structure */
struct wlc_pub *pub; /* pointer to public fn */ struct brcms_pub *pub; /* pointer to public fn */
u8 antsel_type; /* Type of boardlevel mimo antenna switch-logic u8 antsel_type; /* Type of boardlevel mimo antenna switch-logic
* 0 = N/A, 1 = 2x4 board, 2 = 2x3 CB2 board * 0 = N/A, 1 = 2x4 board, 2 = 2x3 CB2 board
*/ */
u8 antsel_antswitch; /* board level antenna switch type */ u8 antsel_antswitch; /* board level antenna switch type */
bool antsel_avail; /* Ant selection availability (SROM based) */ bool antsel_avail; /* Ant selection availability (SROM based) */
wlc_antselcfg_t antcfg_11n; /* antenna configuration */ struct brcms_antselcfg antcfg_11n; /* antenna configuration */
wlc_antselcfg_t antcfg_cur; /* current antenna config (auto) */ struct brcms_antselcfg antcfg_cur; /* current antenna config (auto) */
}; };
/* BSS configuration state */ /* BSS configuration state */
...@@ -800,9 +803,11 @@ struct brcms_c_bsscfg { ...@@ -800,9 +803,11 @@ struct brcms_c_bsscfg {
u16 WPA_auth; /* WPA: authenticated key management */ u16 WPA_auth; /* WPA: authenticated key management */
bool wpa2_preauth; /* default is true, wpa_cap sets value */ bool wpa2_preauth; /* default is true, wpa_cap sets value */
bool wsec_portopen; /* indicates keys are plumbed */ bool wsec_portopen; /* indicates keys are plumbed */
wsec_iv_t wpa_none_txiv; /* global txiv for WPA_NONE, tkip and aes */ /* global txiv for WPA_NONE, tkip and aes */
struct wsec_iv wpa_none_txiv;
int wsec_index; /* 0-3: default tx key, -1: not set */ int wsec_index; /* 0-3: default tx key, -1: not set */
wsec_key_t *bss_def_keys[WLC_DEFAULT_KEYS]; /* default key storage */ /* default key storage: */
struct wsec_key *bss_def_keys[WLC_DEFAULT_KEYS];
/* TKIP countermeasures */ /* TKIP countermeasures */
bool tkip_countermeasures; /* flags TKIP no-assoc period */ bool tkip_countermeasures; /* flags TKIP no-assoc period */
...@@ -829,7 +834,7 @@ struct brcms_c_bsscfg { ...@@ -829,7 +834,7 @@ struct brcms_c_bsscfg {
pmkid_t pmkid[MAXPMKID]; /* PMKID cache */ pmkid_t pmkid[MAXPMKID]; /* PMKID cache */
uint npmkid; /* num cached PMKIDs */ uint npmkid; /* num cached PMKIDs */
wlc_bss_info_t *current_bss; /* BSS parms in ASSOCIATED state */ struct brcms_bss_info *current_bss; /* BSS parms in ASSOCIATED state */
/* PM states */ /* PM states */
bool PMawakebcn; /* bcn recvd during current waking state */ bool PMawakebcn; /* bcn recvd during current waking state */
...@@ -840,7 +845,7 @@ struct brcms_c_bsscfg { ...@@ -840,7 +845,7 @@ struct brcms_c_bsscfg {
/* BSSID entry in RCMTA, use the wsec key management infrastructure to /* BSSID entry in RCMTA, use the wsec key management infrastructure to
* manage the RCMTA entries. * manage the RCMTA entries.
*/ */
wsec_key_t *rcmta; struct wsec_key *rcmta;
/* 'unique' ID of this bsscfg, assigned at bsscfg allocation */ /* 'unique' ID of this bsscfg, assigned at bsscfg allocation */
u16 ID; u16 ID;
...@@ -874,7 +879,7 @@ struct brcms_c_bsscfg { ...@@ -874,7 +879,7 @@ struct brcms_c_bsscfg {
extern void brcms_c_fatal_error(struct brcms_c_info *wlc); extern void brcms_c_fatal_error(struct brcms_c_info *wlc);
extern void brcms_b_rpc_watchdog(struct brcms_c_info *wlc); extern void brcms_b_rpc_watchdog(struct brcms_c_info *wlc);
extern void brcms_c_recv(struct brcms_c_info *wlc, struct sk_buff *p); extern void brcms_c_recv(struct brcms_c_info *wlc, struct sk_buff *p);
extern bool brcms_c_dotxstatus(struct brcms_c_info *wlc, tx_status_t *txs, extern bool brcms_c_dotxstatus(struct brcms_c_info *wlc, struct tx_status *txs,
u32 frm_tx2); u32 frm_tx2);
extern void brcms_c_txfifo(struct brcms_c_info *wlc, uint fifo, extern void brcms_c_txfifo(struct brcms_c_info *wlc, uint fifo,
struct sk_buff *p, struct sk_buff *p,
...@@ -884,7 +889,7 @@ extern void brcms_c_txfifo_complete(struct brcms_c_info *wlc, uint fifo, ...@@ -884,7 +889,7 @@ extern void brcms_c_txfifo_complete(struct brcms_c_info *wlc, uint fifo,
extern void brcms_c_txq_enq(void *ctx, struct scb *scb, struct sk_buff *sdu, extern void brcms_c_txq_enq(void *ctx, struct scb *scb, struct sk_buff *sdu,
uint prec); uint prec);
extern void brcms_c_info_init(struct brcms_c_info *wlc, int unit); extern void brcms_c_info_init(struct brcms_c_info *wlc, int unit);
extern void brcms_c_print_txstatus(tx_status_t *txs); extern void brcms_c_print_txstatus(struct tx_status *txs);
extern int brcms_c_xmtfifo_sz_get(struct brcms_c_info *wlc, uint fifo, extern int brcms_c_xmtfifo_sz_get(struct brcms_c_info *wlc, uint fifo,
uint *blocks); uint *blocks);
extern void brcms_c_write_template_ram(struct brcms_c_info *wlc, int offset, extern void brcms_c_write_template_ram(struct brcms_c_info *wlc, int offset,
...@@ -895,8 +900,8 @@ extern void brcms_c_pllreq(struct brcms_c_info *wlc, bool set, mbool req_bit); ...@@ -895,8 +900,8 @@ extern void brcms_c_pllreq(struct brcms_c_info *wlc, bool set, mbool req_bit);
extern void brcms_c_reset_bmac_done(struct brcms_c_info *wlc); extern void brcms_c_reset_bmac_done(struct brcms_c_info *wlc);
#if defined(BCMDBG) #if defined(BCMDBG)
extern void brcms_c_print_rxh(d11rxhdr_t *rxh); extern void brcms_c_print_rxh(struct d11rxhdr *rxh);
extern void brcms_c_print_txdesc(d11txh_t *txh); extern void brcms_c_print_txdesc(struct d11txh *txh);
#else #else
#define brcms_c_print_txdesc(a) #define brcms_c_print_txdesc(a)
#endif #endif
...@@ -1007,6 +1012,6 @@ extern void brcms_c_set_home_chanspec(struct brcms_c_info *wlc, ...@@ -1007,6 +1012,6 @@ extern void brcms_c_set_home_chanspec(struct brcms_c_info *wlc,
extern bool brcms_c_ps_allowed(struct brcms_c_info *wlc); extern bool brcms_c_ps_allowed(struct brcms_c_info *wlc);
extern bool brcms_c_stay_awake(struct brcms_c_info *wlc); extern bool brcms_c_stay_awake(struct brcms_c_info *wlc);
extern void brcms_c_wme_initparams_sta(struct brcms_c_info *wlc, extern void brcms_c_wme_initparams_sta(struct brcms_c_info *wlc,
wme_param_ie_t *pe); struct wme_param_ie *pe);
#endif /* _BRCM_MAIN_H_ */ #endif /* _BRCM_MAIN_H_ */
...@@ -145,7 +145,7 @@ struct sbpciregs { ...@@ -145,7 +145,7 @@ struct sbpciregs {
}; };
/* SB side: PCIE core and host control registers */ /* SB side: PCIE core and host control registers */
typedef struct sbpcieregs { struct sbpcieregs {
u32 control; /* host mode only */ u32 control; /* host mode only */
u32 PAD[2]; u32 PAD[2];
u32 biststatus; /* bist Status: 0x00C */ u32 biststatus; /* bist Status: 0x00C */
...@@ -177,11 +177,11 @@ typedef struct sbpcieregs { ...@@ -177,11 +177,11 @@ typedef struct sbpcieregs {
u32 PAD[177]; u32 PAD[177];
u32 pciecfg[4][64]; /* 0x400 - 0x7FF, PCIE Cfg Space */ u32 pciecfg[4][64]; /* 0x400 - 0x7FF, PCIE Cfg Space */
u16 sprom[64]; /* SPROM shadow Area */ u16 sprom[64]; /* SPROM shadow Area */
} sbpcieregs_t; };
typedef struct { struct pcicore_info {
union { union {
sbpcieregs_t *pcieregs; struct sbpcieregs *pcieregs;
struct sbpciregs *pciregs; struct sbpciregs *pciregs;
} regs; /* Memory mapped register to the core */ } regs; /* Memory mapped register to the core */
...@@ -194,7 +194,7 @@ typedef struct { ...@@ -194,7 +194,7 @@ typedef struct {
u8 pmecap_offset; /* PM Capability offset in the config space */ u8 pmecap_offset; /* PM Capability offset in the config space */
bool pmecap; /* Capable of generating PME */ bool pmecap; /* Capable of generating PME */
} pcicore_info_t; };
/* debug/trace */ /* debug/trace */
#define PCI_ERROR(args) #define PCI_ERROR(args)
...@@ -202,22 +202,22 @@ typedef struct { ...@@ -202,22 +202,22 @@ typedef struct {
(((sih)->bustype == PCI_BUS) && ((sih)->buscoretype == PCIE_CORE_ID)) (((sih)->bustype == PCI_BUS) && ((sih)->buscoretype == PCIE_CORE_ID))
/* routines to access mdio slave device registers */ /* routines to access mdio slave device registers */
static bool pcie_mdiosetblock(pcicore_info_t *pi, uint blk); static bool pcie_mdiosetblock(struct pcicore_info *pi, uint blk);
static int pcie_mdioop(pcicore_info_t *pi, uint physmedia, uint regaddr, static int pcie_mdioop(struct pcicore_info *pi, uint physmedia, uint regaddr,
bool write, uint *val); bool write, uint *val);
static int pcie_mdiowrite(pcicore_info_t *pi, uint physmedia, uint readdr, static int pcie_mdiowrite(struct pcicore_info *pi, uint physmedia, uint readdr,
uint val); uint val);
static int pcie_mdioread(pcicore_info_t *pi, uint physmedia, uint readdr, static int pcie_mdioread(struct pcicore_info *pi, uint physmedia, uint readdr,
uint *ret_val); uint *ret_val);
static void pcie_extendL1timer(pcicore_info_t *pi, bool extend); static void pcie_extendL1timer(struct pcicore_info *pi, bool extend);
static void pcie_clkreq_upd(pcicore_info_t *pi, uint state); static void pcie_clkreq_upd(struct pcicore_info *pi, uint state);
static void pcie_war_aspm_clkreq(pcicore_info_t *pi); static void pcie_war_aspm_clkreq(struct pcicore_info *pi);
static void pcie_war_serdes(pcicore_info_t *pi); static void pcie_war_serdes(struct pcicore_info *pi);
static void pcie_war_noplldown(pcicore_info_t *pi); static void pcie_war_noplldown(struct pcicore_info *pi);
static void pcie_war_polarity(pcicore_info_t *pi); static void pcie_war_polarity(struct pcicore_info *pi);
static void pcie_war_pci_setup(pcicore_info_t *pi); static void pcie_war_pci_setup(struct pcicore_info *pi);
#define PCIE_ASPM(sih) ((PCIE_PUB(sih)) && (((sih)->buscorerev >= 3) && ((sih)->buscorerev <= 5))) #define PCIE_ASPM(sih) ((PCIE_PUB(sih)) && (((sih)->buscorerev >= 3) && ((sih)->buscorerev <= 5)))
...@@ -230,10 +230,10 @@ static void pcie_war_pci_setup(pcicore_info_t *pi); ...@@ -230,10 +230,10 @@ static void pcie_war_pci_setup(pcicore_info_t *pi);
*/ */
void *pcicore_init(struct si_pub *sih, void *pdev, void *regs) void *pcicore_init(struct si_pub *sih, void *pdev, void *regs)
{ {
pcicore_info_t *pi; struct pcicore_info *pi;
/* alloc pcicore_info_t */ /* alloc struct pcicore_info */
pi = kzalloc(sizeof(pcicore_info_t), GFP_ATOMIC); pi = kzalloc(sizeof(struct pcicore_info), GFP_ATOMIC);
if (pi == NULL) { if (pi == NULL) {
PCI_ERROR(("pci_attach: malloc failed!\n")); PCI_ERROR(("pci_attach: malloc failed!\n"));
return NULL; return NULL;
...@@ -244,7 +244,7 @@ void *pcicore_init(struct si_pub *sih, void *pdev, void *regs) ...@@ -244,7 +244,7 @@ void *pcicore_init(struct si_pub *sih, void *pdev, void *regs)
if (sih->buscoretype == PCIE_CORE_ID) { if (sih->buscoretype == PCIE_CORE_ID) {
u8 cap_ptr; u8 cap_ptr;
pi->regs.pcieregs = (sbpcieregs_t *) regs; pi->regs.pcieregs = (struct sbpcieregs *) regs;
cap_ptr = pcicore_find_pci_capability(pi->dev, PCI_CAP_ID_EXP, cap_ptr = pcicore_find_pci_capability(pi->dev, PCI_CAP_ID_EXP,
NULL, NULL); NULL, NULL);
pi->pciecap_lcreg_offset = cap_ptr + PCIE_CAP_LINKCTRL_OFFSET; pi->pciecap_lcreg_offset = cap_ptr + PCIE_CAP_LINKCTRL_OFFSET;
...@@ -256,7 +256,7 @@ void *pcicore_init(struct si_pub *sih, void *pdev, void *regs) ...@@ -256,7 +256,7 @@ void *pcicore_init(struct si_pub *sih, void *pdev, void *regs)
void pcicore_deinit(void *pch) void pcicore_deinit(void *pch)
{ {
pcicore_info_t *pi = (pcicore_info_t *) pch; struct pcicore_info *pi = (struct pcicore_info *) pch;
if (pi == NULL) if (pi == NULL)
return; return;
...@@ -327,7 +327,7 @@ pcicore_find_pci_capability(void *dev, u8 req_cap_id, ...@@ -327,7 +327,7 @@ pcicore_find_pci_capability(void *dev, u8 req_cap_id,
/* ***** Register Access API */ /* ***** Register Access API */
static uint static uint
pcie_readreg(sbpcieregs_t *pcieregs, uint addrtype, pcie_readreg(struct sbpcieregs *pcieregs, uint addrtype,
uint offset) uint offset)
{ {
uint retval = 0xFFFFFFFF; uint retval = 0xFFFFFFFF;
...@@ -351,7 +351,7 @@ pcie_readreg(sbpcieregs_t *pcieregs, uint addrtype, ...@@ -351,7 +351,7 @@ pcie_readreg(sbpcieregs_t *pcieregs, uint addrtype,
} }
static uint static uint
pcie_writereg(sbpcieregs_t *pcieregs, uint addrtype, pcie_writereg(struct sbpcieregs *pcieregs, uint addrtype,
uint offset, uint val) uint offset, uint val)
{ {
switch (addrtype) { switch (addrtype) {
...@@ -369,9 +369,9 @@ pcie_writereg(sbpcieregs_t *pcieregs, uint addrtype, ...@@ -369,9 +369,9 @@ pcie_writereg(sbpcieregs_t *pcieregs, uint addrtype,
return 0; return 0;
} }
static bool pcie_mdiosetblock(pcicore_info_t *pi, uint blk) static bool pcie_mdiosetblock(struct pcicore_info *pi, uint blk)
{ {
sbpcieregs_t *pcieregs = pi->regs.pcieregs; struct sbpcieregs *pcieregs = pi->regs.pcieregs;
uint mdiodata, i = 0; uint mdiodata, i = 0;
uint pcie_serdes_spinwait = 200; uint pcie_serdes_spinwait = 200;
...@@ -402,10 +402,10 @@ static bool pcie_mdiosetblock(pcicore_info_t *pi, uint blk) ...@@ -402,10 +402,10 @@ static bool pcie_mdiosetblock(pcicore_info_t *pi, uint blk)
} }
static int static int
pcie_mdioop(pcicore_info_t *pi, uint physmedia, uint regaddr, bool write, pcie_mdioop(struct pcicore_info *pi, uint physmedia, uint regaddr, bool write,
uint *val) uint *val)
{ {
sbpcieregs_t *pcieregs = pi->regs.pcieregs; struct sbpcieregs *pcieregs = pi->regs.pcieregs;
uint mdiodata; uint mdiodata;
uint i = 0; uint i = 0;
uint pcie_serdes_spinwait = 10; uint pcie_serdes_spinwait = 10;
...@@ -462,14 +462,15 @@ pcie_mdioop(pcicore_info_t *pi, uint physmedia, uint regaddr, bool write, ...@@ -462,14 +462,15 @@ pcie_mdioop(pcicore_info_t *pi, uint physmedia, uint regaddr, bool write,
/* use the mdio interface to read from mdio slaves */ /* use the mdio interface to read from mdio slaves */
static int static int
pcie_mdioread(pcicore_info_t *pi, uint physmedia, uint regaddr, uint *regval) pcie_mdioread(struct pcicore_info *pi, uint physmedia, uint regaddr,
uint *regval)
{ {
return pcie_mdioop(pi, physmedia, regaddr, false, regval); return pcie_mdioop(pi, physmedia, regaddr, false, regval);
} }
/* use the mdio interface to write to mdio slaves */ /* use the mdio interface to write to mdio slaves */
static int static int
pcie_mdiowrite(pcicore_info_t *pi, uint physmedia, uint regaddr, uint val) pcie_mdiowrite(struct pcicore_info *pi, uint physmedia, uint regaddr, uint val)
{ {
return pcie_mdioop(pi, physmedia, regaddr, true, &val); return pcie_mdioop(pi, physmedia, regaddr, true, &val);
} }
...@@ -477,7 +478,7 @@ pcie_mdiowrite(pcicore_info_t *pi, uint physmedia, uint regaddr, uint val) ...@@ -477,7 +478,7 @@ pcie_mdiowrite(pcicore_info_t *pi, uint physmedia, uint regaddr, uint val)
/* ***** Support functions ***** */ /* ***** Support functions ***** */
static u8 pcie_clkreq(void *pch, u32 mask, u32 val) static u8 pcie_clkreq(void *pch, u32 mask, u32 val)
{ {
pcicore_info_t *pi = (pcicore_info_t *) pch; struct pcicore_info *pi = (struct pcicore_info *) pch;
u32 reg_val; u32 reg_val;
u8 offset; u8 offset;
...@@ -501,11 +502,11 @@ static u8 pcie_clkreq(void *pch, u32 mask, u32 val) ...@@ -501,11 +502,11 @@ static u8 pcie_clkreq(void *pch, u32 mask, u32 val)
return 0; return 0;
} }
static void pcie_extendL1timer(pcicore_info_t *pi, bool extend) static void pcie_extendL1timer(struct pcicore_info *pi, bool extend)
{ {
u32 w; u32 w;
struct si_pub *sih = pi->sih; struct si_pub *sih = pi->sih;
sbpcieregs_t *pcieregs = pi->regs.pcieregs; struct sbpcieregs *pcieregs = pi->regs.pcieregs;
if (!PCIE_PUB(sih) || sih->buscorerev < 7) if (!PCIE_PUB(sih) || sih->buscorerev < 7)
return; return;
...@@ -520,7 +521,7 @@ static void pcie_extendL1timer(pcicore_info_t *pi, bool extend) ...@@ -520,7 +521,7 @@ static void pcie_extendL1timer(pcicore_info_t *pi, bool extend)
} }
/* centralized clkreq control policy */ /* centralized clkreq control policy */
static void pcie_clkreq_upd(pcicore_info_t *pi, uint state) static void pcie_clkreq_upd(struct pcicore_info *pi, uint state)
{ {
struct si_pub *sih = pi->sih; struct si_pub *sih = pi->sih;
...@@ -560,7 +561,7 @@ static void pcie_clkreq_upd(pcicore_info_t *pi, uint state) ...@@ -560,7 +561,7 @@ static void pcie_clkreq_upd(pcicore_info_t *pi, uint state)
/* ***** PCI core WARs ***** */ /* ***** PCI core WARs ***** */
/* Done only once at attach time */ /* Done only once at attach time */
static void pcie_war_polarity(pcicore_info_t *pi) static void pcie_war_polarity(struct pcicore_info *pi)
{ {
u32 w; u32 w;
...@@ -585,9 +586,9 @@ static void pcie_war_polarity(pcicore_info_t *pi) ...@@ -585,9 +586,9 @@ static void pcie_war_polarity(pcicore_info_t *pi)
* : Coming out of 'standby'/'hibernate' * : Coming out of 'standby'/'hibernate'
* : If pcie_war_aspm_ovr state changed * : If pcie_war_aspm_ovr state changed
*/ */
static void pcie_war_aspm_clkreq(pcicore_info_t *pi) static void pcie_war_aspm_clkreq(struct pcicore_info *pi)
{ {
sbpcieregs_t *pcieregs = pi->regs.pcieregs; struct sbpcieregs *pcieregs = pi->regs.pcieregs;
struct si_pub *sih = pi->sih; struct si_pub *sih = pi->sih;
u16 val16, *reg16; u16 val16, *reg16;
u32 w; u32 w;
...@@ -628,7 +629,7 @@ static void pcie_war_aspm_clkreq(pcicore_info_t *pi) ...@@ -628,7 +629,7 @@ static void pcie_war_aspm_clkreq(pcicore_info_t *pi)
/* Apply the polarity determined at the start */ /* Apply the polarity determined at the start */
/* Needs to happen when coming out of 'standby'/'hibernate' */ /* Needs to happen when coming out of 'standby'/'hibernate' */
static void pcie_war_serdes(pcicore_info_t *pi) static void pcie_war_serdes(struct pcicore_info *pi)
{ {
u32 w = 0; u32 w = 0;
...@@ -645,9 +646,9 @@ static void pcie_war_serdes(pcicore_info_t *pi) ...@@ -645,9 +646,9 @@ static void pcie_war_serdes(pcicore_info_t *pi)
/* Fix MISC config to allow coming out of L2/L3-Ready state w/o PRST */ /* Fix MISC config to allow coming out of L2/L3-Ready state w/o PRST */
/* Needs to happen when coming out of 'standby'/'hibernate' */ /* Needs to happen when coming out of 'standby'/'hibernate' */
static void pcie_misc_config_fixup(pcicore_info_t *pi) static void pcie_misc_config_fixup(struct pcicore_info *pi)
{ {
sbpcieregs_t *pcieregs = pi->regs.pcieregs; struct sbpcieregs *pcieregs = pi->regs.pcieregs;
u16 val16, *reg16; u16 val16, *reg16;
reg16 = &pcieregs->sprom[SRSH_PCIE_MISC_CONFIG]; reg16 = &pcieregs->sprom[SRSH_PCIE_MISC_CONFIG];
...@@ -661,9 +662,9 @@ static void pcie_misc_config_fixup(pcicore_info_t *pi) ...@@ -661,9 +662,9 @@ static void pcie_misc_config_fixup(pcicore_info_t *pi)
/* quick hack for testing */ /* quick hack for testing */
/* Needs to happen when coming out of 'standby'/'hibernate' */ /* Needs to happen when coming out of 'standby'/'hibernate' */
static void pcie_war_noplldown(pcicore_info_t *pi) static void pcie_war_noplldown(struct pcicore_info *pi)
{ {
sbpcieregs_t *pcieregs = pi->regs.pcieregs; struct sbpcieregs *pcieregs = pi->regs.pcieregs;
u16 *reg16; u16 *reg16;
/* turn off serdes PLL down */ /* turn off serdes PLL down */
...@@ -676,10 +677,10 @@ static void pcie_war_noplldown(pcicore_info_t *pi) ...@@ -676,10 +677,10 @@ static void pcie_war_noplldown(pcicore_info_t *pi)
} }
/* Needs to happen when coming out of 'standby'/'hibernate' */ /* Needs to happen when coming out of 'standby'/'hibernate' */
static void pcie_war_pci_setup(pcicore_info_t *pi) static void pcie_war_pci_setup(struct pcicore_info *pi)
{ {
struct si_pub *sih = pi->sih; struct si_pub *sih = pi->sih;
sbpcieregs_t *pcieregs = pi->regs.pcieregs; struct sbpcieregs *pcieregs = pi->regs.pcieregs;
u32 w; u32 w;
if ((sih->buscorerev == 0) || (sih->buscorerev == 1)) { if ((sih->buscorerev == 0) || (sih->buscorerev == 1)) {
...@@ -723,7 +724,7 @@ static void pcie_war_pci_setup(pcicore_info_t *pi) ...@@ -723,7 +724,7 @@ static void pcie_war_pci_setup(pcicore_info_t *pi)
/* ***** Functions called during driver state changes ***** */ /* ***** Functions called during driver state changes ***** */
void pcicore_attach(void *pch, char *pvars, int state) void pcicore_attach(void *pch, char *pvars, int state)
{ {
pcicore_info_t *pi = (pcicore_info_t *) pch; struct pcicore_info *pi = (struct pcicore_info *) pch;
struct si_pub *sih = pi->sih; struct si_pub *sih = pi->sih;
/* Determine if this board needs override */ /* Determine if this board needs override */
...@@ -748,7 +749,7 @@ void pcicore_attach(void *pch, char *pvars, int state) ...@@ -748,7 +749,7 @@ void pcicore_attach(void *pch, char *pvars, int state)
void pcicore_hwup(void *pch) void pcicore_hwup(void *pch)
{ {
pcicore_info_t *pi = (pcicore_info_t *) pch; struct pcicore_info *pi = (struct pcicore_info *) pch;
if (!pi || !PCIE_PUB(pi->sih)) if (!pi || !PCIE_PUB(pi->sih))
return; return;
...@@ -758,7 +759,7 @@ void pcicore_hwup(void *pch) ...@@ -758,7 +759,7 @@ void pcicore_hwup(void *pch)
void pcicore_up(void *pch, int state) void pcicore_up(void *pch, int state)
{ {
pcicore_info_t *pi = (pcicore_info_t *) pch; struct pcicore_info *pi = (struct pcicore_info *) pch;
if (!pi || !PCIE_PUB(pi->sih)) if (!pi || !PCIE_PUB(pi->sih))
return; return;
...@@ -772,7 +773,7 @@ void pcicore_up(void *pch, int state) ...@@ -772,7 +773,7 @@ void pcicore_up(void *pch, int state)
/* When the device is going to enter D3 state (or the system is going to enter S3/S4 states */ /* When the device is going to enter D3 state (or the system is going to enter S3/S4 states */
void pcicore_sleep(void *pch) void pcicore_sleep(void *pch)
{ {
pcicore_info_t *pi = (pcicore_info_t *) pch; struct pcicore_info *pi = (struct pcicore_info *) pch;
u32 w; u32 w;
if (!pi || !PCIE_ASPM(pi->sih)) if (!pi || !PCIE_ASPM(pi->sih))
...@@ -787,7 +788,7 @@ void pcicore_sleep(void *pch) ...@@ -787,7 +788,7 @@ void pcicore_sleep(void *pch)
void pcicore_down(void *pch, int state) void pcicore_down(void *pch, int state)
{ {
pcicore_info_t *pi = (pcicore_info_t *) pch; struct pcicore_info *pi = (struct pcicore_info *) pch;
if (!pi || !PCIE_PUB(pi->sih)) if (!pi || !PCIE_PUB(pi->sih))
return; return;
...@@ -803,10 +804,10 @@ void pcicore_down(void *pch, int state) ...@@ -803,10 +804,10 @@ void pcicore_down(void *pch, int state)
*/ */
void pcicore_fixcfg(void *pch, void *regs) void pcicore_fixcfg(void *pch, void *regs)
{ {
pcicore_info_t *pi = (pcicore_info_t *) pch; struct pcicore_info *pi = (struct pcicore_info *) pch;
struct si_info *sii = SI_INFO(pi->sih); struct si_info *sii = SI_INFO(pi->sih);
struct sbpciregs *pciregs = regs; struct sbpciregs *pciregs = regs;
sbpcieregs_t *pcieregs = regs; struct sbpcieregs *pcieregs = regs;
u16 val16, *reg16 = NULL; u16 val16, *reg16 = NULL;
uint pciidx; uint pciidx;
...@@ -831,7 +832,7 @@ void pcicore_fixcfg(void *pch, void *regs) ...@@ -831,7 +832,7 @@ void pcicore_fixcfg(void *pch, void *regs)
*/ */
void pcicore_pci_setup(void *pch, void *regs) void pcicore_pci_setup(void *pch, void *regs)
{ {
pcicore_info_t *pi = (pcicore_info_t *) pch; struct pcicore_info *pi = (struct pcicore_info *) pch;
struct sbpciregs *pciregs = regs; struct sbpciregs *pciregs = regs;
u32 w; u32 w;
......
...@@ -69,18 +69,18 @@ typedef int (*otp_read_region_t) (struct si_pub *sih, int region, u16 *data, ...@@ -69,18 +69,18 @@ typedef int (*otp_read_region_t) (struct si_pub *sih, int region, u16 *data,
typedef int (*otp_nvread_t) (void *oh, char *data, uint *len); typedef int (*otp_nvread_t) (void *oh, char *data, uint *len);
/* OTP function struct */ /* OTP function struct */
typedef struct otp_fn_s { struct otp_fn_s {
otp_size_t size; otp_size_t size;
otp_read_bit_t read_bit; otp_read_bit_t read_bit;
otp_init_t init; otp_init_t init;
otp_read_region_t read_region; otp_read_region_t read_region;
otp_nvread_t nvread; otp_nvread_t nvread;
otp_status_t status; otp_status_t status;
} otp_fn_t; };
typedef struct { struct otpinfo {
uint ccrev; /* chipc revision */ uint ccrev; /* chipc revision */
otp_fn_t *fn; /* OTP functions */ struct otp_fn_s *fn; /* OTP functions */
struct si_pub *sih; /* Saved sb handle */ struct si_pub *sih; /* Saved sb handle */
/* IPX OTP section */ /* IPX OTP section */
...@@ -97,9 +97,9 @@ typedef struct { ...@@ -97,9 +97,9 @@ typedef struct {
u16 fbase; /* fuse subregion offset */ u16 fbase; /* fuse subregion offset */
u16 flim; /* fuse subregion boundary */ u16 flim; /* fuse subregion boundary */
int otpgu_base; /* offset to General Use Region */ int otpgu_base; /* offset to General Use Region */
} otpinfo_t; };
static otpinfo_t otpinfo; static struct otpinfo otpinfo;
/* /*
* IPX OTP Code * IPX OTP Code
...@@ -153,29 +153,29 @@ static otpinfo_t otpinfo; ...@@ -153,29 +153,29 @@ static otpinfo_t otpinfo;
static int ipxotp_status(void *oh) static int ipxotp_status(void *oh)
{ {
otpinfo_t *oi = (otpinfo_t *) oh; struct otpinfo *oi = (struct otpinfo *) oh;
return (int)(oi->status); return (int)(oi->status);
} }
/* Return size in bytes */ /* Return size in bytes */
static int ipxotp_size(void *oh) static int ipxotp_size(void *oh)
{ {
otpinfo_t *oi = (otpinfo_t *) oh; struct otpinfo *oi = (struct otpinfo *) oh;
return (int)oi->wsize * 2; return (int)oi->wsize * 2;
} }
static u16 ipxotp_otpr(void *oh, chipcregs_t *cc, uint wn) static u16 ipxotp_otpr(void *oh, chipcregs_t *cc, uint wn)
{ {
otpinfo_t *oi; struct otpinfo *oi;
oi = (otpinfo_t *) oh; oi = (struct otpinfo *) oh;
return R_REG(&cc->sromotp[wn]); return R_REG(&cc->sromotp[wn]);
} }
static u16 ipxotp_read_bit(void *oh, chipcregs_t *cc, uint off) static u16 ipxotp_read_bit(void *oh, chipcregs_t *cc, uint off)
{ {
otpinfo_t *oi = (otpinfo_t *) oh; struct otpinfo *oi = (struct otpinfo *) oh;
uint k, row, col; uint k, row, col;
u32 otpp, st; u32 otpp, st;
...@@ -225,7 +225,7 @@ static int ipxotp_max_rgnsz(struct si_pub *sih, int osizew) ...@@ -225,7 +225,7 @@ static int ipxotp_max_rgnsz(struct si_pub *sih, int osizew)
return ret; return ret;
} }
static void _ipxotp_init(otpinfo_t *oi, chipcregs_t *cc) static void _ipxotp_init(struct otpinfo *oi, chipcregs_t *cc)
{ {
uint k; uint k;
u32 otpp, st; u32 otpp, st;
...@@ -300,7 +300,7 @@ static void *ipxotp_init(struct si_pub *sih) ...@@ -300,7 +300,7 @@ static void *ipxotp_init(struct si_pub *sih)
{ {
uint idx; uint idx;
chipcregs_t *cc; chipcregs_t *cc;
otpinfo_t *oi; struct otpinfo *oi;
/* Make sure we're running IPX OTP */ /* Make sure we're running IPX OTP */
if (!OTPTYPE_IPX(sih->ccrev)) if (!OTPTYPE_IPX(sih->ccrev))
...@@ -356,7 +356,7 @@ static void *ipxotp_init(struct si_pub *sih) ...@@ -356,7 +356,7 @@ static void *ipxotp_init(struct si_pub *sih)
static int ipxotp_read_region(void *oh, int region, u16 *data, uint *wlen) static int ipxotp_read_region(void *oh, int region, u16 *data, uint *wlen)
{ {
otpinfo_t *oi = (otpinfo_t *) oh; struct otpinfo *oi = (struct otpinfo *) oh;
uint idx; uint idx;
chipcregs_t *cc; chipcregs_t *cc;
uint base, i, sz; uint base, i, sz;
...@@ -444,7 +444,7 @@ static int ipxotp_nvread(void *oh, char *data, uint *len) ...@@ -444,7 +444,7 @@ static int ipxotp_nvread(void *oh, char *data, uint *len)
return -ENOTSUPP; return -ENOTSUPP;
} }
static otp_fn_t ipxotp_fn = { static struct otp_fn_s ipxotp_fn = {
(otp_size_t) ipxotp_size, (otp_size_t) ipxotp_size,
(otp_read_bit_t) ipxotp_read_bit, (otp_read_bit_t) ipxotp_read_bit,
...@@ -466,21 +466,21 @@ static otp_fn_t ipxotp_fn = { ...@@ -466,21 +466,21 @@ static otp_fn_t ipxotp_fn = {
int otp_status(void *oh) int otp_status(void *oh)
{ {
otpinfo_t *oi = (otpinfo_t *) oh; struct otpinfo *oi = (struct otpinfo *) oh;
return oi->fn->status(oh); return oi->fn->status(oh);
} }
int otp_size(void *oh) int otp_size(void *oh)
{ {
otpinfo_t *oi = (otpinfo_t *) oh; struct otpinfo *oi = (struct otpinfo *) oh;
return oi->fn->size(oh); return oi->fn->size(oh);
} }
u16 otp_read_bit(void *oh, uint offset) u16 otp_read_bit(void *oh, uint offset)
{ {
otpinfo_t *oi = (otpinfo_t *) oh; struct otpinfo *oi = (struct otpinfo *) oh;
uint idx = ai_coreidx(oi->sih); uint idx = ai_coreidx(oi->sih);
chipcregs_t *cc = ai_setcoreidx(oi->sih, SI_CC_IDX); chipcregs_t *cc = ai_setcoreidx(oi->sih, SI_CC_IDX);
u16 readBit = (u16) oi->fn->read_bit(oh, cc, offset); u16 readBit = (u16) oi->fn->read_bit(oh, cc, offset);
...@@ -490,11 +490,11 @@ u16 otp_read_bit(void *oh, uint offset) ...@@ -490,11 +490,11 @@ u16 otp_read_bit(void *oh, uint offset)
void *otp_init(struct si_pub *sih) void *otp_init(struct si_pub *sih)
{ {
otpinfo_t *oi; struct otpinfo *oi;
void *ret = NULL; void *ret = NULL;
oi = &otpinfo; oi = &otpinfo;
memset(oi, 0, sizeof(otpinfo_t)); memset(oi, 0, sizeof(struct otpinfo));
oi->ccrev = sih->ccrev; oi->ccrev = sih->ccrev;
...@@ -529,7 +529,8 @@ otp_read_region(struct si_pub *sih, int region, u16 *data, ...@@ -529,7 +529,8 @@ otp_read_region(struct si_pub *sih, int region, u16 *data,
goto out; goto out;
} }
err = (((otpinfo_t *) oh)->fn->read_region) (oh, region, data, wlen); err = (((struct otpinfo *) oh)->fn->read_region)
(oh, region, data, wlen);
out: out:
return err; return err;
...@@ -537,7 +538,7 @@ otp_read_region(struct si_pub *sih, int region, u16 *data, ...@@ -537,7 +538,7 @@ otp_read_region(struct si_pub *sih, int region, u16 *data,
int otp_nvread(void *oh, char *data, uint *len) int otp_nvread(void *oh, char *data, uint *len)
{ {
otpinfo_t *oi = (otpinfo_t *) oh; struct otpinfo *oi = (struct otpinfo *) oh;
return oi->fn->nvread(oh, data, len); return oi->fn->nvread(oh, data, len);
} }
...@@ -29,13 +29,12 @@ ...@@ -29,13 +29,12 @@
u32 phyhal_msg_level = PHYHAL_ERROR; u32 phyhal_msg_level = PHYHAL_ERROR;
typedef struct _chan_info_basic { struct chan_info_basic {
u16 chan; u16 chan;
u16 freq; u16 freq;
} chan_info_basic_t; };
static chan_info_basic_t chan_info_all[] = {
static struct chan_info_basic chan_info_all[] = {
{1, 2412}, {1, 2412},
{2, 2417}, {2, 2417},
{3, 2422}, {3, 2422},
...@@ -469,11 +468,11 @@ static void WLBANDINITFN(wlc_set_phy_uninitted) (phy_info_t *pi) ...@@ -469,11 +468,11 @@ static void WLBANDINITFN(wlc_set_phy_uninitted) (phy_info_t *pi)
} }
} }
shared_phy_t *wlc_phy_shared_attach(shared_phy_params_t *shp) struct shared_phy *wlc_phy_shared_attach(struct shared_phy_params *shp)
{ {
shared_phy_t *sh; struct shared_phy *sh;
sh = kzalloc(sizeof(shared_phy_t), GFP_ATOMIC); sh = kzalloc(sizeof(struct shared_phy), GFP_ATOMIC);
if (sh == NULL) { if (sh == NULL) {
return NULL; return NULL;
} }
...@@ -506,7 +505,7 @@ shared_phy_t *wlc_phy_shared_attach(shared_phy_params_t *shp) ...@@ -506,7 +505,7 @@ shared_phy_t *wlc_phy_shared_attach(shared_phy_params_t *shp)
return sh; return sh;
} }
wlc_phy_t *wlc_phy_attach(shared_phy_t *sh, void *regs, int bandtype, wlc_phy_t *wlc_phy_attach(struct shared_phy *sh, void *regs, int bandtype,
char *vars, struct wiphy *wiphy) char *vars, struct wiphy *wiphy)
{ {
phy_info_t *pi; phy_info_t *pi;
...@@ -998,7 +997,7 @@ void wlc_phy_table_data_write(phy_info_t *pi, uint width, u32 val) ...@@ -998,7 +997,7 @@ void wlc_phy_table_data_write(phy_info_t *pi, uint width, u32 val)
} }
void void
wlc_phy_write_table(phy_info_t *pi, const phytbl_info_t *ptbl_info, wlc_phy_write_table(phy_info_t *pi, const struct phytbl_info *ptbl_info,
u16 tblAddr, u16 tblDataHi, u16 tblDataLo) u16 tblAddr, u16 tblDataHi, u16 tblDataLo)
{ {
uint idx; uint idx;
...@@ -1038,7 +1037,7 @@ wlc_phy_write_table(phy_info_t *pi, const phytbl_info_t *ptbl_info, ...@@ -1038,7 +1037,7 @@ wlc_phy_write_table(phy_info_t *pi, const phytbl_info_t *ptbl_info,
} }
void void
wlc_phy_read_table(phy_info_t *pi, const phytbl_info_t *ptbl_info, wlc_phy_read_table(phy_info_t *pi, const struct phytbl_info *ptbl_info,
u16 tblAddr, u16 tblDataHi, u16 tblDataLo) u16 tblAddr, u16 tblDataHi, u16 tblDataLo)
{ {
uint idx; uint idx;
...@@ -1076,7 +1075,8 @@ wlc_phy_read_table(phy_info_t *pi, const phytbl_info_t *ptbl_info, ...@@ -1076,7 +1075,8 @@ wlc_phy_read_table(phy_info_t *pi, const phytbl_info_t *ptbl_info,
} }
uint uint
wlc_phy_init_radio_regs_allbands(phy_info_t *pi, radio_20xx_regs_t *radioregs) wlc_phy_init_radio_regs_allbands(phy_info_t *pi,
struct radio_20xx_regs *radioregs)
{ {
uint i = 0; uint i = 0;
...@@ -1093,7 +1093,7 @@ wlc_phy_init_radio_regs_allbands(phy_info_t *pi, radio_20xx_regs_t *radioregs) ...@@ -1093,7 +1093,7 @@ wlc_phy_init_radio_regs_allbands(phy_info_t *pi, radio_20xx_regs_t *radioregs)
} }
uint uint
wlc_phy_init_radio_regs(phy_info_t *pi, radio_regs_t *radioregs, wlc_phy_init_radio_regs(phy_info_t *pi, struct radio_regs *radioregs,
u16 core_offset) u16 core_offset)
{ {
uint i = 0; uint i = 0;
...@@ -2440,7 +2440,7 @@ wlc_phy_noise_sample_request(wlc_phy_t *pih, u8 reason, u8 ch) ...@@ -2440,7 +2440,7 @@ wlc_phy_noise_sample_request(wlc_phy_t *pih, u8 reason, u8 ch)
OR_REG(&pi->regs->maccommand, OR_REG(&pi->regs->maccommand,
MCMD_BG_NOISE); MCMD_BG_NOISE);
} else { } else {
phy_iq_est_t est[PHY_CORE_MAX]; struct phy_iq_est est[PHY_CORE_MAX];
u32 cmplx_pwr[PHY_CORE_MAX]; u32 cmplx_pwr[PHY_CORE_MAX];
s8 noise_dbm_ant[PHY_CORE_MAX]; s8 noise_dbm_ant[PHY_CORE_MAX];
u16 log_num_samps, num_samps, classif_state = 0; u16 log_num_samps, num_samps, classif_state = 0;
...@@ -2675,8 +2675,8 @@ void wlc_phy_compute_dB(u32 *cmplx_pwr, s8 *p_cmplx_pwr_dB, u8 core) ...@@ -2675,8 +2675,8 @@ void wlc_phy_compute_dB(u32 *cmplx_pwr, s8 *p_cmplx_pwr_dB, u8 core)
void wlc_phy_rssi_compute(wlc_phy_t *pih, void *ctx) void wlc_phy_rssi_compute(wlc_phy_t *pih, void *ctx)
{ {
wlc_d11rxhdr_t *wlc_rxhdr = (wlc_d11rxhdr_t *) ctx; struct brcms_d11rxhdr *wlc_rxhdr = (struct brcms_d11rxhdr *) ctx;
d11rxhdr_t *rxh = &wlc_rxhdr->rxhdr; struct d11rxhdr *rxh = &wlc_rxhdr->rxhdr;
int rssi = le16_to_cpu(rxh->PhyRxStatus_1) & PRXS1_JSSI_MASK; int rssi = le16_to_cpu(rxh->PhyRxStatus_1) & PRXS1_JSSI_MASK;
uint radioid = pih->radioid; uint radioid = pih->radioid;
phy_info_t *pi = (phy_info_t *) pih; phy_info_t *pi = (phy_info_t *) pih;
...@@ -2694,7 +2694,7 @@ void wlc_phy_rssi_compute(wlc_phy_t *pih, void *ctx) ...@@ -2694,7 +2694,7 @@ void wlc_phy_rssi_compute(wlc_phy_t *pih, void *ctx)
if (ISLCNPHY(pi)) { if (ISLCNPHY(pi)) {
u8 gidx = (le16_to_cpu(rxh->PhyRxStatus_2) & 0xFC00) >> 10; u8 gidx = (le16_to_cpu(rxh->PhyRxStatus_2) & 0xFC00) >> 10;
phy_info_lcnphy_t *pi_lcn = pi->u.pi_lcnphy; struct phy_info_lcnphy *pi_lcn = pi->u.pi_lcnphy;
if (rssi > 127) if (rssi > 127)
rssi -= 256; rssi -= 256;
......
...@@ -176,9 +176,9 @@ struct shared_phy_params { ...@@ -176,9 +176,9 @@ struct shared_phy_params {
}; };
extern shared_phy_t *wlc_phy_shared_attach(shared_phy_params_t *shp); extern struct shared_phy *wlc_phy_shared_attach(struct shared_phy_params *shp);
extern wlc_phy_t *wlc_phy_attach(shared_phy_t *sh, void *regs, int bandtype, extern wlc_phy_t *wlc_phy_attach(struct shared_phy *sh, void *regs,
char *vars, struct wiphy *wiphy); int bandtype, char *vars, struct wiphy *wiphy);
extern void wlc_phy_detach(wlc_phy_t *ppi); extern void wlc_phy_detach(wlc_phy_t *ppi);
extern bool wlc_phy_get_phyversion(wlc_phy_t *pih, u16 *phytype, extern bool wlc_phy_get_phyversion(wlc_phy_t *pih, u16 *phytype,
......
...@@ -41,7 +41,7 @@ extern u32 phyhal_msg_level; ...@@ -41,7 +41,7 @@ extern u32 phyhal_msg_level;
#define LCNXN_BASEREV 16 #define LCNXN_BASEREV 16
struct wlc_phy_srom_fem { struct brcms_phy_srom_fem {
u8 tssipos; /* TSSI positive slope, 1: positive, 0: negative */ u8 tssipos; /* TSSI positive slope, 1: positive, 0: negative */
u8 extpagain; /* Ext PA gain-type: full-gain: 0, pa-lite: 1, no_pa: 2 */ u8 extpagain; /* Ext PA gain-type: full-gain: 0, pa-lite: 1, no_pa: 2 */
u8 pdetrange; /* support 32 combinations of different Pdet dynamic ranges */ u8 pdetrange; /* support 32 combinations of different Pdet dynamic ranges */
...@@ -441,11 +441,11 @@ struct txiqcal_cache { ...@@ -441,11 +441,11 @@ struct txiqcal_cache {
u16 txcal_coeffs_2G[8]; u16 txcal_coeffs_2G[8];
u16 txcal_radio_regs_2G[8]; u16 txcal_radio_regs_2G[8];
nphy_iq_comp_t rxcal_coeffs_2G; struct nphy_iq_comp rxcal_coeffs_2G;
u16 txcal_coeffs_5G[8]; u16 txcal_coeffs_5G[8];
u16 txcal_radio_regs_5G[8]; u16 txcal_radio_regs_5G[8];
nphy_iq_comp_t rxcal_coeffs_5G; struct nphy_iq_comp rxcal_coeffs_5G;
}; };
struct nphy_pwrctrl { struct nphy_pwrctrl {
...@@ -595,12 +595,12 @@ struct phy_func_ptr { ...@@ -595,12 +595,12 @@ struct phy_func_ptr {
struct phy_info { struct phy_info {
wlc_phy_t pubpi_ro; wlc_phy_t pubpi_ro;
shared_phy_t *sh; struct shared_phy *sh;
phy_func_ptr_t pi_fptr; struct phy_func_ptr pi_fptr;
void *pi_ptr; void *pi_ptr;
union { union {
phy_info_lcnphy_t *pi_lcnphy; struct phy_info_lcnphy *pi_lcnphy;
} u; } u;
bool user_txpwr_at_rfport; bool user_txpwr_at_rfport;
...@@ -650,8 +650,8 @@ struct phy_info { ...@@ -650,8 +650,8 @@ struct phy_info {
s8 tx_power_offset[TXP_NUM_RATES]; s8 tx_power_offset[TXP_NUM_RATES];
u8 tx_power_target[TXP_NUM_RATES]; u8 tx_power_target[TXP_NUM_RATES];
wlc_phy_srom_fem_t srom_fem2g; struct brcms_phy_srom_fem srom_fem2g;
wlc_phy_srom_fem_t srom_fem5g; struct brcms_phy_srom_fem srom_fem5g;
u8 tx_power_max; u8 tx_power_max;
u8 tx_power_max_rate_ind; u8 tx_power_max_rate_ind;
...@@ -722,7 +722,8 @@ struct phy_info { ...@@ -722,7 +722,8 @@ struct phy_info {
u16 mintxbias; u16 mintxbias;
u16 mintxmag; u16 mintxmag;
lo_complex_abgphy_info_t gphy_locomp_iq[STATIC_NUM_RF][STATIC_NUM_BB]; struct lo_complex_abgphy_info gphy_locomp_iq
[STATIC_NUM_RF][STATIC_NUM_BB];
s8 stats_11b_txpower[STATIC_NUM_RF][STATIC_NUM_BB]; s8 stats_11b_txpower[STATIC_NUM_RF][STATIC_NUM_BB];
u16 gain_table[TX_GAIN_TABLE_LENGTH]; u16 gain_table[TX_GAIN_TABLE_LENGTH];
bool loopback_gain; bool loopback_gain;
...@@ -780,8 +781,8 @@ struct phy_info { ...@@ -780,8 +781,8 @@ struct phy_info {
u32 nphy_bb_mult_save; u32 nphy_bb_mult_save;
u16 nphy_txiqlocal_bestc[11]; u16 nphy_txiqlocal_bestc[11];
bool nphy_txiqlocal_coeffsvalid; bool nphy_txiqlocal_coeffsvalid;
phy_txpwrindex_t nphy_txpwrindex[PHY_CORE_NUM_2]; struct nphy_txpwrindex nphy_txpwrindex[PHY_CORE_NUM_2];
phy_pwrctrl_t nphy_pwrctrl_info[PHY_CORE_NUM_2]; struct nphy_pwrctrl nphy_pwrctrl_info[PHY_CORE_NUM_2];
u16 cck2gpo; u16 cck2gpo;
u32 ofdm2gpo; u32 ofdm2gpo;
u32 ofdm5gpo; u32 ofdm5gpo;
...@@ -849,8 +850,8 @@ struct phy_info { ...@@ -849,8 +850,8 @@ struct phy_info {
bool internal_tx_iqlo_cal_tapoff_intpa_nphy; bool internal_tx_iqlo_cal_tapoff_intpa_nphy;
s16 nphy_lastcal_temp; s16 nphy_lastcal_temp;
txiqcal_cache_t calibration_cache; struct txiqcal_cache calibration_cache;
rssical_cache_t rssical_cache; struct rssical_cache rssical_cache;
u8 nphy_txpwr_idx[2]; u8 nphy_txpwr_idx[2];
u8 nphy_papd_cal_type; u8 nphy_papd_cal_type;
...@@ -881,7 +882,7 @@ struct phy_info { ...@@ -881,7 +882,7 @@ struct phy_info {
u8 nphy_txcal_pwr_idx[2]; u8 nphy_txcal_pwr_idx[2];
u8 nphy_rxcal_pwr_idx[2]; u8 nphy_rxcal_pwr_idx[2];
u16 nphy_cal_orig_tx_gain[2]; u16 nphy_cal_orig_tx_gain[2];
nphy_txgains_t nphy_cal_target_gain; struct nphy_txgains nphy_cal_target_gain;
u16 nphy_txcal_bbmult; u16 nphy_txcal_bbmult;
u16 nphy_gmval; u16 nphy_gmval;
...@@ -892,7 +893,7 @@ struct phy_info { ...@@ -892,7 +893,7 @@ struct phy_info {
bool nphy_aband_spurwar_en; bool nphy_aband_spurwar_en;
u16 nphy_rccal_value; u16 nphy_rccal_value;
u16 nphy_crsminpwr[3]; u16 nphy_crsminpwr[3];
phy_noisevar_buf_t nphy_saved_noisevars; struct nphy_noisevar_buf nphy_saved_noisevars;
bool nphy_anarxlpf_adjusted; bool nphy_anarxlpf_adjusted;
bool nphy_crsminpwr_adjusted; bool nphy_crsminpwr_adjusted;
bool nphy_noisevars_adjusted; bool nphy_noisevars_adjusted;
...@@ -963,21 +964,23 @@ struct lcnphy_radio_regs { ...@@ -963,21 +964,23 @@ struct lcnphy_radio_regs {
u8 do_init_g; u8 do_init_g;
}; };
extern lcnphy_radio_regs_t lcnphy_radio_regs_2064[]; extern struct lcnphy_radio_regs lcnphy_radio_regs_2064[];
extern lcnphy_radio_regs_t lcnphy_radio_regs_2066[]; extern struct lcnphy_radio_regs lcnphy_radio_regs_2066[];
extern radio_regs_t regs_2055[], regs_SYN_2056[], regs_TX_2056[], extern struct radio_regs regs_2055[], regs_SYN_2056[], regs_TX_2056[],
regs_RX_2056[]; regs_RX_2056[];
extern radio_regs_t regs_SYN_2056_A1[], regs_TX_2056_A1[], regs_RX_2056_A1[]; extern struct radio_regs regs_SYN_2056_A1[], regs_TX_2056_A1[],
extern radio_regs_t regs_SYN_2056_rev5[], regs_TX_2056_rev5[], regs_RX_2056_A1[];
extern struct radio_regs regs_SYN_2056_rev5[], regs_TX_2056_rev5[],
regs_RX_2056_rev5[]; regs_RX_2056_rev5[];
extern radio_regs_t regs_SYN_2056_rev6[], regs_TX_2056_rev6[], extern struct radio_regs regs_SYN_2056_rev6[], regs_TX_2056_rev6[],
regs_RX_2056_rev6[]; regs_RX_2056_rev6[];
extern radio_regs_t regs_SYN_2056_rev7[], regs_TX_2056_rev7[], extern struct radio_regs regs_SYN_2056_rev7[], regs_TX_2056_rev7[],
regs_RX_2056_rev7[]; regs_RX_2056_rev7[];
extern radio_regs_t regs_SYN_2056_rev8[], regs_TX_2056_rev8[], extern struct radio_regs regs_SYN_2056_rev8[], regs_TX_2056_rev8[],
regs_RX_2056_rev8[]; regs_RX_2056_rev8[];
extern radio_20xx_regs_t regs_2057_rev4[], regs_2057_rev5[], regs_2057_rev5v1[]; extern struct radio_20xx_regs regs_2057_rev4[], regs_2057_rev5[],
extern radio_20xx_regs_t regs_2057_rev7[], regs_2057_rev8[]; regs_2057_rev5v1[];
extern struct radio_20xx_regs regs_2057_rev7[], regs_2057_rev8[];
extern char *phy_getvar(phy_info_t *pi, const char *name); extern char *phy_getvar(phy_info_t *pi, const char *name);
extern int phy_getintvar(phy_info_t *pi, const char *name); extern int phy_getintvar(phy_info_t *pi, const char *name);
...@@ -1004,12 +1007,13 @@ extern void wlc_phyreg_exit(wlc_phy_t *pih); ...@@ -1004,12 +1007,13 @@ extern void wlc_phyreg_exit(wlc_phy_t *pih);
extern void wlc_radioreg_enter(wlc_phy_t *pih); extern void wlc_radioreg_enter(wlc_phy_t *pih);
extern void wlc_radioreg_exit(wlc_phy_t *pih); extern void wlc_radioreg_exit(wlc_phy_t *pih);
extern void wlc_phy_read_table(phy_info_t *pi, const phytbl_info_t *ptbl_info, extern void wlc_phy_read_table(phy_info_t *pi,
const struct phytbl_info *ptbl_info,
u16 tblAddr, u16 tblDataHi, u16 tblAddr, u16 tblDataHi,
u16 tblDatalo); u16 tblDatalo);
extern void wlc_phy_write_table(phy_info_t *pi, extern void wlc_phy_write_table(phy_info_t *pi,
const phytbl_info_t *ptbl_info, u16 tblAddr, const struct phytbl_info *ptbl_info,
u16 tblDataHi, u16 tblDatalo); u16 tblAddr, u16 tblDataHi, u16 tblDatalo);
extern void wlc_phy_table_addr(phy_info_t *pi, uint tbl_id, uint tbl_offset, extern void wlc_phy_table_addr(phy_info_t *pi, uint tbl_id, uint tbl_offset,
u16 tblAddr, u16 tblDataHi, u16 tblAddr, u16 tblDataHi,
u16 tblDataLo); u16 tblDataLo);
...@@ -1023,8 +1027,9 @@ extern u8 wlc_phy_nbits(s32 value); ...@@ -1023,8 +1027,9 @@ extern u8 wlc_phy_nbits(s32 value);
extern void wlc_phy_compute_dB(u32 *cmplx_pwr, s8 *p_dB, u8 core); extern void wlc_phy_compute_dB(u32 *cmplx_pwr, s8 *p_dB, u8 core);
extern uint wlc_phy_init_radio_regs_allbands(phy_info_t *pi, extern uint wlc_phy_init_radio_regs_allbands(phy_info_t *pi,
radio_20xx_regs_t *radioregs); struct radio_20xx_regs *radioregs);
extern uint wlc_phy_init_radio_regs(phy_info_t *pi, radio_regs_t *radioregs, extern uint wlc_phy_init_radio_regs(phy_info_t *pi,
struct radio_regs *radioregs,
u16 core_offset); u16 core_offset);
extern void wlc_phy_txpower_ipa_upd(phy_info_t *pi); extern void wlc_phy_txpower_ipa_upd(phy_info_t *pi);
...@@ -1101,8 +1106,9 @@ extern void wlc_phy_txpower_recalc_target(phy_info_t *pi); ...@@ -1101,8 +1106,9 @@ extern void wlc_phy_txpower_recalc_target(phy_info_t *pi);
#define LCNPHY_TX_PWR_CTRL_TEMPBASED 0xE001 #define LCNPHY_TX_PWR_CTRL_TEMPBASED 0xE001
extern void wlc_lcnphy_write_table(phy_info_t *pi, const phytbl_info_t *pti); extern void wlc_lcnphy_write_table(phy_info_t *pi,
extern void wlc_lcnphy_read_table(phy_info_t *pi, phytbl_info_t *pti); const struct phytbl_info *pti);
extern void wlc_lcnphy_read_table(phy_info_t *pi, struct phytbl_info *pti);
extern void wlc_lcnphy_set_tx_iqcc(phy_info_t *pi, u16 a, u16 b); extern void wlc_lcnphy_set_tx_iqcc(phy_info_t *pi, u16 a, u16 b);
extern void wlc_lcnphy_set_tx_locc(phy_info_t *pi, u16 didq); extern void wlc_lcnphy_set_tx_locc(phy_info_t *pi, u16 didq);
extern void wlc_lcnphy_get_tx_iqcc(phy_info_t *pi, u16 *a, u16 *b); extern void wlc_lcnphy_get_tx_iqcc(phy_info_t *pi, u16 *a, u16 *b);
...@@ -1167,12 +1173,12 @@ extern s16 wlc_phy_tempsense_nphy(phy_info_t *pi); ...@@ -1167,12 +1173,12 @@ extern s16 wlc_phy_tempsense_nphy(phy_info_t *pi);
extern u16 wlc_phy_classifier_nphy(phy_info_t *pi, u16 mask, u16 val); extern u16 wlc_phy_classifier_nphy(phy_info_t *pi, u16 mask, u16 val);
extern void wlc_phy_rx_iq_est_nphy(phy_info_t *pi, phy_iq_est_t *est, extern void wlc_phy_rx_iq_est_nphy(phy_info_t *pi, struct phy_iq_est *est,
u16 num_samps, u8 wait_time, u16 num_samps, u8 wait_time,
u8 wait_for_crs); u8 wait_for_crs);
extern void wlc_phy_rx_iq_coeffs_nphy(phy_info_t *pi, u8 write, extern void wlc_phy_rx_iq_coeffs_nphy(phy_info_t *pi, u8 write,
nphy_iq_comp_t *comp); struct nphy_iq_comp *comp);
extern void wlc_phy_aci_and_noise_reduction_nphy(phy_info_t *pi); extern void wlc_phy_aci_and_noise_reduction_nphy(phy_info_t *pi);
extern void wlc_phy_rxcore_setstate_nphy(wlc_phy_t *pih, u8 rxcore_bitmask); extern void wlc_phy_rxcore_setstate_nphy(wlc_phy_t *pih, u8 rxcore_bitmask);
...@@ -1184,10 +1190,12 @@ extern void wlc_phy_txpwr_apply_nphy(phy_info_t *pi); ...@@ -1184,10 +1190,12 @@ extern void wlc_phy_txpwr_apply_nphy(phy_info_t *pi);
extern void wlc_phy_txpwr_papd_cal_nphy(phy_info_t *pi); extern void wlc_phy_txpwr_papd_cal_nphy(phy_info_t *pi);
extern u16 wlc_phy_txpwr_idx_get_nphy(phy_info_t *pi); extern u16 wlc_phy_txpwr_idx_get_nphy(phy_info_t *pi);
extern nphy_txgains_t wlc_phy_get_tx_gain_nphy(phy_info_t *pi); extern struct nphy_txgains wlc_phy_get_tx_gain_nphy(phy_info_t *pi);
extern int wlc_phy_cal_txiqlo_nphy(phy_info_t *pi, nphy_txgains_t target_gain, extern int wlc_phy_cal_txiqlo_nphy(phy_info_t *pi,
struct nphy_txgains target_gain,
bool full, bool m); bool full, bool m);
extern int wlc_phy_cal_rxiq_nphy(phy_info_t *pi, nphy_txgains_t target_gain, extern int wlc_phy_cal_rxiq_nphy(phy_info_t *pi,
struct nphy_txgains target_gain,
u8 type, bool d); u8 type, bool d);
extern void wlc_phy_txpwr_index_nphy(phy_info_t *pi, u8 core_mask, extern void wlc_phy_txpwr_index_nphy(phy_info_t *pi, u8 core_mask,
s8 txpwrindex, bool res); s8 txpwrindex, bool res);
...@@ -1205,7 +1213,8 @@ extern void wlc_phy_est_tonepwr_nphy(phy_info_t *pi, s32 *qdBm_pwrbuf, ...@@ -1205,7 +1213,8 @@ extern void wlc_phy_est_tonepwr_nphy(phy_info_t *pi, s32 *qdBm_pwrbuf,
u8 num_samps); u8 num_samps);
extern void wlc_phy_radio205x_vcocal_nphy(phy_info_t *pi); extern void wlc_phy_radio205x_vcocal_nphy(phy_info_t *pi);
extern int wlc_phy_rssi_compute_nphy(phy_info_t *pi, wlc_d11rxhdr_t *wlc_rxh); extern int wlc_phy_rssi_compute_nphy(phy_info_t *pi,
struct brcms_d11rxhdr *wlc_rxh);
#define NPHY_TESTPATTERN_BPHY_EVM 0 #define NPHY_TESTPATTERN_BPHY_EVM 0
#define NPHY_TESTPATTERN_BPHY_RFCS 1 #define NPHY_TESTPATTERN_BPHY_RFCS 1
......
...@@ -100,7 +100,7 @@ struct phy_info_lcnphy { ...@@ -100,7 +100,7 @@ struct phy_info_lcnphy {
u16 lcnphy_extstxctrl1; u16 lcnphy_extstxctrl1;
s16 lcnphy_cck_dig_filt_type; s16 lcnphy_cck_dig_filt_type;
s16 lcnphy_ofdm_dig_filt_type; s16 lcnphy_ofdm_dig_filt_type;
lcnphy_cal_results_t lcnphy_cal_results; struct lcnphy_cal_results lcnphy_cal_results;
u8 lcnphy_psat_pwr; u8 lcnphy_psat_pwr;
u8 lcnphy_psat_indx; u8 lcnphy_psat_indx;
......
...@@ -1505,7 +1505,7 @@ const u32 dot11lcn_gain_tbl_5G[] = { ...@@ -1505,7 +1505,7 @@ const u32 dot11lcn_gain_tbl_5G[] = {
0x00000000 0x00000000
}; };
const dot11lcnphytbl_info_t dot11lcnphytbl_rx_gain_info_rev0[] = { const struct phytbl_info dot11lcnphytbl_rx_gain_info_rev0[] = {
{&dot11lcn_gain_tbl_rev0, {&dot11lcn_gain_tbl_rev0,
sizeof(dot11lcn_gain_tbl_rev0) / sizeof(dot11lcn_gain_tbl_rev0[0]), 18, sizeof(dot11lcn_gain_tbl_rev0) / sizeof(dot11lcn_gain_tbl_rev0[0]), 18,
0, 32} 0, 32}
...@@ -1520,7 +1520,7 @@ const dot11lcnphytbl_info_t dot11lcnphytbl_rx_gain_info_rev0[] = { ...@@ -1520,7 +1520,7 @@ const dot11lcnphytbl_info_t dot11lcnphytbl_rx_gain_info_rev0[] = {
, ,
}; };
const dot11lcnphytbl_info_t dot11lcnphytbl_rx_gain_info_rev1[] = { const struct phytbl_info dot11lcnphytbl_rx_gain_info_rev1[] = {
{&dot11lcn_gain_tbl_rev1, {&dot11lcn_gain_tbl_rev1,
sizeof(dot11lcn_gain_tbl_rev1) / sizeof(dot11lcn_gain_tbl_rev1[0]), 18, sizeof(dot11lcn_gain_tbl_rev1) / sizeof(dot11lcn_gain_tbl_rev1[0]), 18,
0, 32} 0, 32}
...@@ -1535,7 +1535,7 @@ const dot11lcnphytbl_info_t dot11lcnphytbl_rx_gain_info_rev1[] = { ...@@ -1535,7 +1535,7 @@ const dot11lcnphytbl_info_t dot11lcnphytbl_rx_gain_info_rev1[] = {
, ,
}; };
const dot11lcnphytbl_info_t dot11lcnphytbl_rx_gain_info_2G_rev2[] = { const struct phytbl_info dot11lcnphytbl_rx_gain_info_2G_rev2[] = {
{&dot11lcn_gain_tbl_2G, {&dot11lcn_gain_tbl_2G,
sizeof(dot11lcn_gain_tbl_2G) / sizeof(dot11lcn_gain_tbl_2G[0]), 18, 0, sizeof(dot11lcn_gain_tbl_2G) / sizeof(dot11lcn_gain_tbl_2G[0]), 18, 0,
32} 32}
...@@ -1553,7 +1553,7 @@ const dot11lcnphytbl_info_t dot11lcnphytbl_rx_gain_info_2G_rev2[] = { ...@@ -1553,7 +1553,7 @@ const dot11lcnphytbl_info_t dot11lcnphytbl_rx_gain_info_2G_rev2[] = {
17, 0, 8} 17, 0, 8}
}; };
const dot11lcnphytbl_info_t dot11lcnphytbl_rx_gain_info_5G_rev2[] = { const struct phytbl_info dot11lcnphytbl_rx_gain_info_5G_rev2[] = {
{&dot11lcn_gain_tbl_5G, {&dot11lcn_gain_tbl_5G,
sizeof(dot11lcn_gain_tbl_5G) / sizeof(dot11lcn_gain_tbl_5G[0]), 18, 0, sizeof(dot11lcn_gain_tbl_5G) / sizeof(dot11lcn_gain_tbl_5G[0]), 18, 0,
32} 32}
...@@ -1571,7 +1571,7 @@ const dot11lcnphytbl_info_t dot11lcnphytbl_rx_gain_info_5G_rev2[] = { ...@@ -1571,7 +1571,7 @@ const dot11lcnphytbl_info_t dot11lcnphytbl_rx_gain_info_5G_rev2[] = {
17, 0, 8} 17, 0, 8}
}; };
const dot11lcnphytbl_info_t dot11lcnphytbl_rx_gain_info_extlna_2G_rev2[] = { const struct phytbl_info dot11lcnphytbl_rx_gain_info_extlna_2G_rev2[] = {
{&dot11lcn_gain_tbl_extlna_2G, {&dot11lcn_gain_tbl_extlna_2G,
sizeof(dot11lcn_gain_tbl_extlna_2G) / sizeof(dot11lcn_gain_tbl_extlna_2G) /
sizeof(dot11lcn_gain_tbl_extlna_2G[0]), 18, 0, 32} sizeof(dot11lcn_gain_tbl_extlna_2G[0]), 18, 0, 32}
...@@ -1589,7 +1589,7 @@ const dot11lcnphytbl_info_t dot11lcnphytbl_rx_gain_info_extlna_2G_rev2[] = { ...@@ -1589,7 +1589,7 @@ const dot11lcnphytbl_info_t dot11lcnphytbl_rx_gain_info_extlna_2G_rev2[] = {
sizeof(dot11lcn_gain_val_tbl_extlna_2G[0]), 17, 0, 8} sizeof(dot11lcn_gain_val_tbl_extlna_2G[0]), 17, 0, 8}
}; };
const dot11lcnphytbl_info_t dot11lcnphytbl_rx_gain_info_extlna_5G_rev2[] = { const struct phytbl_info dot11lcnphytbl_rx_gain_info_extlna_5G_rev2[] = {
{&dot11lcn_gain_tbl_5G, {&dot11lcn_gain_tbl_5G,
sizeof(dot11lcn_gain_tbl_5G) / sizeof(dot11lcn_gain_tbl_5G[0]), 18, 0, sizeof(dot11lcn_gain_tbl_5G) / sizeof(dot11lcn_gain_tbl_5G[0]), 18, 0,
32} 32}
...@@ -2773,7 +2773,7 @@ const u32 dot11lcn_papd_compdelta_tbl_rev0[] = { ...@@ -2773,7 +2773,7 @@ const u32 dot11lcn_papd_compdelta_tbl_rev0[] = {
0x00080000, 0x00080000,
}; };
const dot11lcnphytbl_info_t dot11lcnphytbl_info_rev0[] = { const struct phytbl_info dot11lcnphytbl_info_rev0[] = {
{&dot11lcn_min_sig_sq_tbl_rev0, {&dot11lcn_min_sig_sq_tbl_rev0,
sizeof(dot11lcn_min_sig_sq_tbl_rev0) / sizeof(dot11lcn_min_sig_sq_tbl_rev0) /
sizeof(dot11lcn_min_sig_sq_tbl_rev0[0]), 2, 0, 16} sizeof(dot11lcn_min_sig_sq_tbl_rev0[0]), 2, 0, 16}
...@@ -2832,25 +2832,25 @@ const dot11lcnphytbl_info_t dot11lcnphytbl_info_rev0[] = { ...@@ -2832,25 +2832,25 @@ const dot11lcnphytbl_info_t dot11lcnphytbl_info_rev0[] = {
, ,
}; };
const dot11lcnphytbl_info_t dot11lcn_sw_ctrl_tbl_info_4313 = { const struct phytbl_info dot11lcn_sw_ctrl_tbl_info_4313 = {
&dot11lcn_sw_ctrl_tbl_4313_rev0, &dot11lcn_sw_ctrl_tbl_4313_rev0,
sizeof(dot11lcn_sw_ctrl_tbl_4313_rev0) / sizeof(dot11lcn_sw_ctrl_tbl_4313_rev0) /
sizeof(dot11lcn_sw_ctrl_tbl_4313_rev0[0]), 15, 0, 16 sizeof(dot11lcn_sw_ctrl_tbl_4313_rev0[0]), 15, 0, 16
}; };
const dot11lcnphytbl_info_t dot11lcn_sw_ctrl_tbl_info_4313_epa = { const struct phytbl_info dot11lcn_sw_ctrl_tbl_info_4313_epa = {
&dot11lcn_sw_ctrl_tbl_4313_epa_rev0, &dot11lcn_sw_ctrl_tbl_4313_epa_rev0,
sizeof(dot11lcn_sw_ctrl_tbl_4313_epa_rev0) / sizeof(dot11lcn_sw_ctrl_tbl_4313_epa_rev0) /
sizeof(dot11lcn_sw_ctrl_tbl_4313_epa_rev0[0]), 15, 0, 16 sizeof(dot11lcn_sw_ctrl_tbl_4313_epa_rev0[0]), 15, 0, 16
}; };
const dot11lcnphytbl_info_t dot11lcn_sw_ctrl_tbl_info_4313_bt_epa = { const struct phytbl_info dot11lcn_sw_ctrl_tbl_info_4313_bt_epa = {
&dot11lcn_sw_ctrl_tbl_4313_epa_rev0_combo, &dot11lcn_sw_ctrl_tbl_4313_epa_rev0_combo,
sizeof(dot11lcn_sw_ctrl_tbl_4313_epa_rev0_combo) / sizeof(dot11lcn_sw_ctrl_tbl_4313_epa_rev0_combo) /
sizeof(dot11lcn_sw_ctrl_tbl_4313_epa_rev0_combo[0]), 15, 0, 16 sizeof(dot11lcn_sw_ctrl_tbl_4313_epa_rev0_combo[0]), 15, 0, 16
}; };
const dot11lcnphytbl_info_t dot11lcn_sw_ctrl_tbl_info_4313_bt_epa_p250 = { const struct phytbl_info dot11lcn_sw_ctrl_tbl_info_4313_bt_epa_p250 = {
&dot11lcn_sw_ctrl_tbl_4313_bt_epa_p250_rev0, &dot11lcn_sw_ctrl_tbl_4313_bt_epa_p250_rev0,
sizeof(dot11lcn_sw_ctrl_tbl_4313_bt_epa_p250_rev0) / sizeof(dot11lcn_sw_ctrl_tbl_4313_bt_epa_p250_rev0) /
sizeof(dot11lcn_sw_ctrl_tbl_4313_bt_epa_p250_rev0[0]), 15, 0, 16 sizeof(dot11lcn_sw_ctrl_tbl_4313_bt_epa_p250_rev0[0]), 15, 0, 16
...@@ -2859,7 +2859,8 @@ const dot11lcnphytbl_info_t dot11lcn_sw_ctrl_tbl_info_4313_bt_epa_p250 = { ...@@ -2859,7 +2859,8 @@ const dot11lcnphytbl_info_t dot11lcn_sw_ctrl_tbl_info_4313_bt_epa_p250 = {
const u32 dot11lcnphytbl_info_sz_rev0 = const u32 dot11lcnphytbl_info_sz_rev0 =
sizeof(dot11lcnphytbl_info_rev0) / sizeof(dot11lcnphytbl_info_rev0[0]); sizeof(dot11lcnphytbl_info_rev0) / sizeof(dot11lcnphytbl_info_rev0[0]);
const lcnphy_tx_gain_tbl_entry dot11lcnphy_2GHz_extPA_gaintable_rev0[128] = { const struct lcnphy_tx_gain_tbl_entry
dot11lcnphy_2GHz_extPA_gaintable_rev0[128] = {
{3, 0, 31, 0, 72,} {3, 0, 31, 0, 72,}
, ,
{3, 0, 31, 0, 70,} {3, 0, 31, 0, 70,}
...@@ -3118,7 +3119,7 @@ const lcnphy_tx_gain_tbl_entry dot11lcnphy_2GHz_extPA_gaintable_rev0[128] = { ...@@ -3118,7 +3119,7 @@ const lcnphy_tx_gain_tbl_entry dot11lcnphy_2GHz_extPA_gaintable_rev0[128] = {
, ,
}; };
const lcnphy_tx_gain_tbl_entry dot11lcnphy_2GHz_gaintable_rev0[128] = { const struct lcnphy_tx_gain_tbl_entry dot11lcnphy_2GHz_gaintable_rev0[128] = {
{7, 0, 31, 0, 72,} {7, 0, 31, 0, 72,}
, ,
{7, 0, 31, 0, 70,} {7, 0, 31, 0, 70,}
...@@ -3377,7 +3378,7 @@ const lcnphy_tx_gain_tbl_entry dot11lcnphy_2GHz_gaintable_rev0[128] = { ...@@ -3377,7 +3378,7 @@ const lcnphy_tx_gain_tbl_entry dot11lcnphy_2GHz_gaintable_rev0[128] = {
, ,
}; };
const lcnphy_tx_gain_tbl_entry dot11lcnphy_5GHz_gaintable_rev0[128] = { const struct lcnphy_tx_gain_tbl_entry dot11lcnphy_5GHz_gaintable_rev0[128] = {
{255, 255, 0xf0, 0, 152,} {255, 255, 0xf0, 0, 152,}
, ,
{255, 255, 0xf0, 0, 147,} {255, 255, 0xf0, 0, 147,}
......
...@@ -17,26 +17,26 @@ ...@@ -17,26 +17,26 @@
#include <types.h> #include <types.h>
#include "phy_int.h" #include "phy_int.h"
extern const dot11lcnphytbl_info_t dot11lcnphytbl_rx_gain_info_rev0[]; extern const struct phytbl_info dot11lcnphytbl_rx_gain_info_rev0[];
extern const u32 dot11lcnphytbl_rx_gain_info_sz_rev0; extern const u32 dot11lcnphytbl_rx_gain_info_sz_rev0;
extern const dot11lcnphytbl_info_t dot11lcn_sw_ctrl_tbl_info_4313; extern const struct phytbl_info dot11lcn_sw_ctrl_tbl_info_4313;
extern const dot11lcnphytbl_info_t dot11lcn_sw_ctrl_tbl_info_4313_epa; extern const struct phytbl_info dot11lcn_sw_ctrl_tbl_info_4313_epa;
extern const dot11lcnphytbl_info_t dot11lcn_sw_ctrl_tbl_info_4313_epa_combo; extern const struct phytbl_info dot11lcn_sw_ctrl_tbl_info_4313_epa_combo;
extern const dot11lcnphytbl_info_t dot11lcnphytbl_info_rev0[]; extern const struct phytbl_info dot11lcnphytbl_info_rev0[];
extern const u32 dot11lcnphytbl_info_sz_rev0; extern const u32 dot11lcnphytbl_info_sz_rev0;
extern const dot11lcnphytbl_info_t dot11lcnphytbl_rx_gain_info_2G_rev2[]; extern const struct phytbl_info dot11lcnphytbl_rx_gain_info_2G_rev2[];
extern const u32 dot11lcnphytbl_rx_gain_info_2G_rev2_sz; extern const u32 dot11lcnphytbl_rx_gain_info_2G_rev2_sz;
extern const dot11lcnphytbl_info_t dot11lcnphytbl_rx_gain_info_5G_rev2[]; extern const struct phytbl_info dot11lcnphytbl_rx_gain_info_5G_rev2[];
extern const u32 dot11lcnphytbl_rx_gain_info_5G_rev2_sz; extern const u32 dot11lcnphytbl_rx_gain_info_5G_rev2_sz;
extern const dot11lcnphytbl_info_t dot11lcnphytbl_rx_gain_info_extlna_2G_rev2[]; extern const struct phytbl_info dot11lcnphytbl_rx_gain_info_extlna_2G_rev2[];
extern const dot11lcnphytbl_info_t dot11lcnphytbl_rx_gain_info_extlna_5G_rev2[]; extern const struct phytbl_info dot11lcnphytbl_rx_gain_info_extlna_5G_rev2[];
struct _lcnphy_tx_gain_tbl_entry { struct lcnphy_tx_gain_tbl_entry {
unsigned char gm; unsigned char gm;
unsigned char pga; unsigned char pga;
unsigned char pad; unsigned char pad;
...@@ -44,7 +44,9 @@ struct _lcnphy_tx_gain_tbl_entry { ...@@ -44,7 +44,9 @@ struct _lcnphy_tx_gain_tbl_entry {
unsigned char bb_mult; unsigned char bb_mult;
}; };
extern const lcnphy_tx_gain_tbl_entry dot11lcnphy_2GHz_gaintable_rev0[]; extern const struct lcnphy_tx_gain_tbl_entry dot11lcnphy_2GHz_gaintable_rev0[];
extern const lcnphy_tx_gain_tbl_entry dot11lcnphy_2GHz_extPA_gaintable_rev0[];
extern const lcnphy_tx_gain_tbl_entry dot11lcnphy_5GHz_gaintable_rev0[]; extern const struct
lcnphy_tx_gain_tbl_entry dot11lcnphy_2GHz_extPA_gaintable_rev0[];
extern const struct lcnphy_tx_gain_tbl_entry dot11lcnphy_5GHz_gaintable_rev0[];
...@@ -4436,7 +4436,7 @@ const u16 loft_lut_core1_rev0[] = { ...@@ -4436,7 +4436,7 @@ const u16 loft_lut_core1_rev0[] = {
0x0103, 0x0103,
}; };
const mimophytbl_info_t mimophytbl_info_rev0_volatile[] = { const struct phytbl_info mimophytbl_info_rev0_volatile[] = {
{&bdi_tbl_rev0, sizeof(bdi_tbl_rev0) / sizeof(bdi_tbl_rev0[0]), 21, 0, {&bdi_tbl_rev0, sizeof(bdi_tbl_rev0) / sizeof(bdi_tbl_rev0[0]), 21, 0,
16} 16}
, ,
...@@ -4484,7 +4484,7 @@ const mimophytbl_info_t mimophytbl_info_rev0_volatile[] = { ...@@ -4484,7 +4484,7 @@ const mimophytbl_info_t mimophytbl_info_rev0_volatile[] = {
, ,
}; };
const mimophytbl_info_t mimophytbl_info_rev0[] = { const struct phytbl_info mimophytbl_info_rev0[] = {
{&frame_struct_rev0, {&frame_struct_rev0,
sizeof(frame_struct_rev0) / sizeof(frame_struct_rev0[0]), 10, 0, 32} sizeof(frame_struct_rev0) / sizeof(frame_struct_rev0[0]), 10, 0, 32}
, ,
...@@ -9361,34 +9361,34 @@ const u32 papd_cal_scalars_tbl_core1_rev3[] = { ...@@ -9361,34 +9361,34 @@ const u32 papd_cal_scalars_tbl_core1_rev3[] = {
0x002606a4, 0x002606a4,
}; };
const mimophytbl_info_t mimophytbl_info_rev3_volatile[] = { const struct phytbl_info mimophytbl_info_rev3_volatile[] = {
{&ant_swctrl_tbl_rev3, {&ant_swctrl_tbl_rev3,
sizeof(ant_swctrl_tbl_rev3) / sizeof(ant_swctrl_tbl_rev3[0]), 9, 0, 16} sizeof(ant_swctrl_tbl_rev3) / sizeof(ant_swctrl_tbl_rev3[0]), 9, 0, 16}
, ,
}; };
const mimophytbl_info_t mimophytbl_info_rev3_volatile1[] = { const struct phytbl_info mimophytbl_info_rev3_volatile1[] = {
{&ant_swctrl_tbl_rev3_1, {&ant_swctrl_tbl_rev3_1,
sizeof(ant_swctrl_tbl_rev3_1) / sizeof(ant_swctrl_tbl_rev3_1[0]), 9, 0, sizeof(ant_swctrl_tbl_rev3_1) / sizeof(ant_swctrl_tbl_rev3_1[0]), 9, 0,
16} 16}
, ,
}; };
const mimophytbl_info_t mimophytbl_info_rev3_volatile2[] = { const struct phytbl_info mimophytbl_info_rev3_volatile2[] = {
{&ant_swctrl_tbl_rev3_2, {&ant_swctrl_tbl_rev3_2,
sizeof(ant_swctrl_tbl_rev3_2) / sizeof(ant_swctrl_tbl_rev3_2[0]), 9, 0, sizeof(ant_swctrl_tbl_rev3_2) / sizeof(ant_swctrl_tbl_rev3_2[0]), 9, 0,
16} 16}
, ,
}; };
const mimophytbl_info_t mimophytbl_info_rev3_volatile3[] = { const struct phytbl_info mimophytbl_info_rev3_volatile3[] = {
{&ant_swctrl_tbl_rev3_3, {&ant_swctrl_tbl_rev3_3,
sizeof(ant_swctrl_tbl_rev3_3) / sizeof(ant_swctrl_tbl_rev3_3[0]), 9, 0, sizeof(ant_swctrl_tbl_rev3_3) / sizeof(ant_swctrl_tbl_rev3_3[0]), 9, 0,
16} 16}
, ,
}; };
const mimophytbl_info_t mimophytbl_info_rev3[] = { const struct phytbl_info mimophytbl_info_rev3[] = {
{&frame_struct_rev3, {&frame_struct_rev3,
sizeof(frame_struct_rev3) / sizeof(frame_struct_rev3[0]), 10, 0, 32} sizeof(frame_struct_rev3) / sizeof(frame_struct_rev3[0]), 10, 0, 32}
, ,
...@@ -10467,7 +10467,7 @@ const u32 papd_cal_scalars_tbl_core1_rev7[] = { ...@@ -10467,7 +10467,7 @@ const u32 papd_cal_scalars_tbl_core1_rev7[] = {
0x004e068c, 0x004e068c,
}; };
const mimophytbl_info_t mimophytbl_info_rev7[] = { const struct phytbl_info mimophytbl_info_rev7[] = {
{&frame_struct_rev3, {&frame_struct_rev3,
sizeof(frame_struct_rev3) / sizeof(frame_struct_rev3[0]), 10, 0, 32} sizeof(frame_struct_rev3) / sizeof(frame_struct_rev3[0]), 10, 0, 32}
, ,
...@@ -10581,7 +10581,7 @@ const mimophytbl_info_t mimophytbl_info_rev7[] = { ...@@ -10581,7 +10581,7 @@ const mimophytbl_info_t mimophytbl_info_rev7[] = {
const u32 mimophytbl_info_sz_rev7 = const u32 mimophytbl_info_sz_rev7 =
sizeof(mimophytbl_info_rev7) / sizeof(mimophytbl_info_rev7[0]); sizeof(mimophytbl_info_rev7) / sizeof(mimophytbl_info_rev7[0]);
const mimophytbl_info_t mimophytbl_info_rev16[] = { const struct phytbl_info mimophytbl_info_rev16[] = {
{&noise_var_tbl_rev7, {&noise_var_tbl_rev7,
sizeof(noise_var_tbl_rev7) / sizeof(noise_var_tbl_rev7[0]), 16, 0, 32} sizeof(noise_var_tbl_rev7) / sizeof(noise_var_tbl_rev7[0]), 16, 0, 32}
, ,
......
...@@ -19,11 +19,11 @@ ...@@ -19,11 +19,11 @@
#include <types.h> #include <types.h>
#include "phy_int.h" #include "phy_int.h"
extern const mimophytbl_info_t mimophytbl_info_rev0[], extern const struct phytbl_info mimophytbl_info_rev0[],
mimophytbl_info_rev0_volatile[]; mimophytbl_info_rev0_volatile[];
extern const u32 mimophytbl_info_sz_rev0, mimophytbl_info_sz_rev0_volatile; extern const u32 mimophytbl_info_sz_rev0, mimophytbl_info_sz_rev0_volatile;
extern const mimophytbl_info_t mimophytbl_info_rev3[], extern const struct phytbl_info mimophytbl_info_rev3[],
mimophytbl_info_rev3_volatile[], mimophytbl_info_rev3_volatile1[], mimophytbl_info_rev3_volatile[], mimophytbl_info_rev3_volatile1[],
mimophytbl_info_rev3_volatile2[], mimophytbl_info_rev3_volatile3[]; mimophytbl_info_rev3_volatile2[], mimophytbl_info_rev3_volatile3[];
extern const u32 mimophytbl_info_sz_rev3, mimophytbl_info_sz_rev3_volatile, extern const u32 mimophytbl_info_sz_rev3, mimophytbl_info_sz_rev3_volatile,
...@@ -32,9 +32,9 @@ extern const u32 mimophytbl_info_sz_rev3, mimophytbl_info_sz_rev3_volatile, ...@@ -32,9 +32,9 @@ extern const u32 mimophytbl_info_sz_rev3, mimophytbl_info_sz_rev3_volatile,
extern const u32 noise_var_tbl_rev3[]; extern const u32 noise_var_tbl_rev3[];
extern const mimophytbl_info_t mimophytbl_info_rev7[]; extern const struct phytbl_info mimophytbl_info_rev7[];
extern const u32 mimophytbl_info_sz_rev7; extern const u32 mimophytbl_info_sz_rev7;
extern const u32 noise_var_tbl_rev7[]; extern const u32 noise_var_tbl_rev7[];
extern const mimophytbl_info_t mimophytbl_info_rev16[]; extern const struct phytbl_info mimophytbl_info_rev16[];
extern const u32 mimophytbl_info_sz_rev16; extern const u32 mimophytbl_info_sz_rev16;
...@@ -29,17 +29,17 @@ ...@@ -29,17 +29,17 @@
#include "phy_shim.h" #include "phy_shim.h"
/* PHY SHIM module specific state */ /* PHY SHIM module specific state */
struct wlc_phy_shim_info { struct phy_shim_info {
struct brcms_c_hw_info *wlc_hw; /* pointer to main wlc_hw structure */ struct brcms_c_hw_info *wlc_hw; /* pointer to main wlc_hw structure */
void *wlc; /* pointer to main wlc structure */ void *wlc; /* pointer to main wlc structure */
void *wl; /* pointer to os-specific private state */ void *wl; /* pointer to os-specific private state */
}; };
wlc_phy_shim_info_t *wlc_phy_shim_attach(struct brcms_c_hw_info *wlc_hw, struct phy_shim_info *wlc_phy_shim_attach(struct brcms_c_hw_info *wlc_hw,
void *wl, void *wlc) { void *wl, void *wlc) {
wlc_phy_shim_info_t *physhim = NULL; struct phy_shim_info *physhim = NULL;
physhim = kzalloc(sizeof(wlc_phy_shim_info_t), GFP_ATOMIC); physhim = kzalloc(sizeof(struct phy_shim_info), GFP_ATOMIC);
if (!physhim) { if (!physhim) {
wiphy_err(wlc_hw->wlc->wiphy, wiphy_err(wlc_hw->wlc->wiphy,
"wl%d: wlc_phy_shim_attach: out of mem\n", "wl%d: wlc_phy_shim_attach: out of mem\n",
...@@ -53,12 +53,12 @@ wlc_phy_shim_info_t *wlc_phy_shim_attach(struct brcms_c_hw_info *wlc_hw, ...@@ -53,12 +53,12 @@ wlc_phy_shim_info_t *wlc_phy_shim_attach(struct brcms_c_hw_info *wlc_hw,
return physhim; return physhim;
} }
void wlc_phy_shim_detach(wlc_phy_shim_info_t *physhim) void wlc_phy_shim_detach(struct phy_shim_info *physhim)
{ {
kfree(physhim); kfree(physhim);
} }
struct wlapi_timer *wlapi_init_timer(wlc_phy_shim_info_t *physhim, struct wlapi_timer *wlapi_init_timer(struct phy_shim_info *physhim,
void (*fn) (void *arg), void *arg, void (*fn) (void *arg), void *arg,
const char *name) const char *name)
{ {
...@@ -66,152 +66,152 @@ struct wlapi_timer *wlapi_init_timer(wlc_phy_shim_info_t *physhim, ...@@ -66,152 +66,152 @@ struct wlapi_timer *wlapi_init_timer(wlc_phy_shim_info_t *physhim,
brcms_init_timer(physhim->wl, fn, arg, name); brcms_init_timer(physhim->wl, fn, arg, name);
} }
void wlapi_free_timer(wlc_phy_shim_info_t *physhim, struct wlapi_timer *t) void wlapi_free_timer(struct phy_shim_info *physhim, struct wlapi_timer *t)
{ {
brcms_free_timer(physhim->wl, (struct brcms_timer *)t); brcms_free_timer(physhim->wl, (struct brcms_timer *)t);
} }
void void
wlapi_add_timer(wlc_phy_shim_info_t *physhim, struct wlapi_timer *t, uint ms, wlapi_add_timer(struct phy_shim_info *physhim, struct wlapi_timer *t, uint ms,
int periodic) int periodic)
{ {
brcms_add_timer(physhim->wl, (struct brcms_timer *)t, ms, periodic); brcms_add_timer(physhim->wl, (struct brcms_timer *)t, ms, periodic);
} }
bool wlapi_del_timer(wlc_phy_shim_info_t *physhim, struct wlapi_timer *t) bool wlapi_del_timer(struct phy_shim_info *physhim, struct wlapi_timer *t)
{ {
return brcms_del_timer(physhim->wl, (struct brcms_timer *)t); return brcms_del_timer(physhim->wl, (struct brcms_timer *)t);
} }
void wlapi_intrson(wlc_phy_shim_info_t *physhim) void wlapi_intrson(struct phy_shim_info *physhim)
{ {
brcms_intrson(physhim->wl); brcms_intrson(physhim->wl);
} }
u32 wlapi_intrsoff(wlc_phy_shim_info_t *physhim) u32 wlapi_intrsoff(struct phy_shim_info *physhim)
{ {
return brcms_intrsoff(physhim->wl); return brcms_intrsoff(physhim->wl);
} }
void wlapi_intrsrestore(wlc_phy_shim_info_t *physhim, u32 macintmask) void wlapi_intrsrestore(struct phy_shim_info *physhim, u32 macintmask)
{ {
brcms_intrsrestore(physhim->wl, macintmask); brcms_intrsrestore(physhim->wl, macintmask);
} }
void wlapi_bmac_write_shm(wlc_phy_shim_info_t *physhim, uint offset, u16 v) void wlapi_bmac_write_shm(struct phy_shim_info *physhim, uint offset, u16 v)
{ {
brcms_b_write_shm(physhim->wlc_hw, offset, v); brcms_b_write_shm(physhim->wlc_hw, offset, v);
} }
u16 wlapi_bmac_read_shm(wlc_phy_shim_info_t *physhim, uint offset) u16 wlapi_bmac_read_shm(struct phy_shim_info *physhim, uint offset)
{ {
return brcms_b_read_shm(physhim->wlc_hw, offset); return brcms_b_read_shm(physhim->wlc_hw, offset);
} }
void void
wlapi_bmac_mhf(wlc_phy_shim_info_t *physhim, u8 idx, u16 mask, wlapi_bmac_mhf(struct phy_shim_info *physhim, u8 idx, u16 mask,
u16 val, int bands) u16 val, int bands)
{ {
brcms_b_mhf(physhim->wlc_hw, idx, mask, val, bands); brcms_b_mhf(physhim->wlc_hw, idx, mask, val, bands);
} }
void wlapi_bmac_corereset(wlc_phy_shim_info_t *physhim, u32 flags) void wlapi_bmac_corereset(struct phy_shim_info *physhim, u32 flags)
{ {
brcms_b_corereset(physhim->wlc_hw, flags); brcms_b_corereset(physhim->wlc_hw, flags);
} }
void wlapi_suspend_mac_and_wait(wlc_phy_shim_info_t *physhim) void wlapi_suspend_mac_and_wait(struct phy_shim_info *physhim)
{ {
brcms_c_suspend_mac_and_wait(physhim->wlc); brcms_c_suspend_mac_and_wait(physhim->wlc);
} }
void wlapi_switch_macfreq(wlc_phy_shim_info_t *physhim, u8 spurmode) void wlapi_switch_macfreq(struct phy_shim_info *physhim, u8 spurmode)
{ {
brcms_b_switch_macfreq(physhim->wlc_hw, spurmode); brcms_b_switch_macfreq(physhim->wlc_hw, spurmode);
} }
void wlapi_enable_mac(wlc_phy_shim_info_t *physhim) void wlapi_enable_mac(struct phy_shim_info *physhim)
{ {
brcms_c_enable_mac(physhim->wlc); brcms_c_enable_mac(physhim->wlc);
} }
void wlapi_bmac_mctrl(wlc_phy_shim_info_t *physhim, u32 mask, u32 val) void wlapi_bmac_mctrl(struct phy_shim_info *physhim, u32 mask, u32 val)
{ {
brcms_b_mctrl(physhim->wlc_hw, mask, val); brcms_b_mctrl(physhim->wlc_hw, mask, val);
} }
void wlapi_bmac_phy_reset(wlc_phy_shim_info_t *physhim) void wlapi_bmac_phy_reset(struct phy_shim_info *physhim)
{ {
brcms_b_phy_reset(physhim->wlc_hw); brcms_b_phy_reset(physhim->wlc_hw);
} }
void wlapi_bmac_bw_set(wlc_phy_shim_info_t *physhim, u16 bw) void wlapi_bmac_bw_set(struct phy_shim_info *physhim, u16 bw)
{ {
brcms_b_bw_set(physhim->wlc_hw, bw); brcms_b_bw_set(physhim->wlc_hw, bw);
} }
u16 wlapi_bmac_get_txant(wlc_phy_shim_info_t *physhim) u16 wlapi_bmac_get_txant(struct phy_shim_info *physhim)
{ {
return brcms_b_get_txant(physhim->wlc_hw); return brcms_b_get_txant(physhim->wlc_hw);
} }
void wlapi_bmac_phyclk_fgc(wlc_phy_shim_info_t *physhim, bool clk) void wlapi_bmac_phyclk_fgc(struct phy_shim_info *physhim, bool clk)
{ {
brcms_b_phyclk_fgc(physhim->wlc_hw, clk); brcms_b_phyclk_fgc(physhim->wlc_hw, clk);
} }
void wlapi_bmac_macphyclk_set(wlc_phy_shim_info_t *physhim, bool clk) void wlapi_bmac_macphyclk_set(struct phy_shim_info *physhim, bool clk)
{ {
brcms_b_macphyclk_set(physhim->wlc_hw, clk); brcms_b_macphyclk_set(physhim->wlc_hw, clk);
} }
void wlapi_bmac_core_phypll_ctl(wlc_phy_shim_info_t *physhim, bool on) void wlapi_bmac_core_phypll_ctl(struct phy_shim_info *physhim, bool on)
{ {
brcms_b_core_phypll_ctl(physhim->wlc_hw, on); brcms_b_core_phypll_ctl(physhim->wlc_hw, on);
} }
void wlapi_bmac_core_phypll_reset(wlc_phy_shim_info_t *physhim) void wlapi_bmac_core_phypll_reset(struct phy_shim_info *physhim)
{ {
brcms_b_core_phypll_reset(physhim->wlc_hw); brcms_b_core_phypll_reset(physhim->wlc_hw);
} }
void wlapi_bmac_ucode_wake_override_phyreg_set(wlc_phy_shim_info_t *physhim) void wlapi_bmac_ucode_wake_override_phyreg_set(struct phy_shim_info *physhim)
{ {
brcms_c_ucode_wake_override_set(physhim->wlc_hw, brcms_c_ucode_wake_override_set(physhim->wlc_hw,
WLC_WAKE_OVERRIDE_PHYREG); WLC_WAKE_OVERRIDE_PHYREG);
} }
void wlapi_bmac_ucode_wake_override_phyreg_clear(wlc_phy_shim_info_t *physhim) void wlapi_bmac_ucode_wake_override_phyreg_clear(struct phy_shim_info *physhim)
{ {
brcms_c_ucode_wake_override_clear(physhim->wlc_hw, brcms_c_ucode_wake_override_clear(physhim->wlc_hw,
WLC_WAKE_OVERRIDE_PHYREG); WLC_WAKE_OVERRIDE_PHYREG);
} }
void void
wlapi_bmac_write_template_ram(wlc_phy_shim_info_t *physhim, int offset, wlapi_bmac_write_template_ram(struct phy_shim_info *physhim, int offset,
int len, void *buf) int len, void *buf)
{ {
brcms_b_write_template_ram(physhim->wlc_hw, offset, len, buf); brcms_b_write_template_ram(physhim->wlc_hw, offset, len, buf);
} }
u16 wlapi_bmac_rate_shm_offset(wlc_phy_shim_info_t *physhim, u8 rate) u16 wlapi_bmac_rate_shm_offset(struct phy_shim_info *physhim, u8 rate)
{ {
return brcms_b_rate_shm_offset(physhim->wlc_hw, rate); return brcms_b_rate_shm_offset(physhim->wlc_hw, rate);
} }
void wlapi_ucode_sample_init(wlc_phy_shim_info_t *physhim) void wlapi_ucode_sample_init(struct phy_shim_info *physhim)
{ {
} }
void void
wlapi_copyfrom_objmem(wlc_phy_shim_info_t *physhim, uint offset, void *buf, wlapi_copyfrom_objmem(struct phy_shim_info *physhim, uint offset, void *buf,
int len, u32 sel) int len, u32 sel)
{ {
brcms_b_copyfrom_objmem(physhim->wlc_hw, offset, buf, len, sel); brcms_b_copyfrom_objmem(physhim->wlc_hw, offset, buf, len, sel);
} }
void void
wlapi_copyto_objmem(wlc_phy_shim_info_t *physhim, uint offset, const void *buf, wlapi_copyto_objmem(struct phy_shim_info *physhim, uint offset, const void *buf,
int l, u32 sel) int l, u32 sel)
{ {
brcms_b_copyto_objmem(physhim->wlc_hw, offset, buf, l, sel); brcms_b_copyto_objmem(physhim->wlc_hw, offset, buf, l, sel);
......
...@@ -108,57 +108,57 @@ ...@@ -108,57 +108,57 @@
#define WLC_N_TXRX_CHAIN0 0 #define WLC_N_TXRX_CHAIN0 0
#define WLC_N_TXRX_CHAIN1 1 #define WLC_N_TXRX_CHAIN1 1
extern wlc_phy_shim_info_t *wlc_phy_shim_attach(struct brcms_c_hw_info *wlc_hw, extern struct phy_shim_info *wlc_phy_shim_attach(struct brcms_c_hw_info *wlc_hw,
void *wl, void *wlc); void *wl, void *wlc);
extern void wlc_phy_shim_detach(wlc_phy_shim_info_t *physhim); extern void wlc_phy_shim_detach(struct phy_shim_info *physhim);
/* PHY to WL utility functions */ /* PHY to WL utility functions */
extern struct wlapi_timer *wlapi_init_timer(wlc_phy_shim_info_t *physhim, extern struct wlapi_timer *wlapi_init_timer(struct phy_shim_info *physhim,
void (*fn) (void *arg), void *arg, void (*fn) (void *arg), void *arg,
const char *name); const char *name);
extern void wlapi_free_timer(wlc_phy_shim_info_t *physhim, extern void wlapi_free_timer(struct phy_shim_info *physhim,
struct wlapi_timer *t); struct wlapi_timer *t);
extern void wlapi_add_timer(wlc_phy_shim_info_t *physhim, extern void wlapi_add_timer(struct phy_shim_info *physhim,
struct wlapi_timer *t, uint ms, int periodic); struct wlapi_timer *t, uint ms, int periodic);
extern bool wlapi_del_timer(wlc_phy_shim_info_t *physhim, extern bool wlapi_del_timer(struct phy_shim_info *physhim,
struct wlapi_timer *t); struct wlapi_timer *t);
extern void wlapi_intrson(wlc_phy_shim_info_t *physhim); extern void wlapi_intrson(struct phy_shim_info *physhim);
extern u32 wlapi_intrsoff(wlc_phy_shim_info_t *physhim); extern u32 wlapi_intrsoff(struct phy_shim_info *physhim);
extern void wlapi_intrsrestore(wlc_phy_shim_info_t *physhim, extern void wlapi_intrsrestore(struct phy_shim_info *physhim,
u32 macintmask); u32 macintmask);
extern void wlapi_bmac_write_shm(wlc_phy_shim_info_t *physhim, uint offset, extern void wlapi_bmac_write_shm(struct phy_shim_info *physhim, uint offset,
u16 v); u16 v);
extern u16 wlapi_bmac_read_shm(wlc_phy_shim_info_t *physhim, uint offset); extern u16 wlapi_bmac_read_shm(struct phy_shim_info *physhim, uint offset);
extern void wlapi_bmac_mhf(wlc_phy_shim_info_t *physhim, u8 idx, extern void wlapi_bmac_mhf(struct phy_shim_info *physhim, u8 idx,
u16 mask, u16 val, int bands); u16 mask, u16 val, int bands);
extern void wlapi_bmac_corereset(wlc_phy_shim_info_t *physhim, u32 flags); extern void wlapi_bmac_corereset(struct phy_shim_info *physhim, u32 flags);
extern void wlapi_suspend_mac_and_wait(wlc_phy_shim_info_t *physhim); extern void wlapi_suspend_mac_and_wait(struct phy_shim_info *physhim);
extern void wlapi_switch_macfreq(wlc_phy_shim_info_t *physhim, u8 spurmode); extern void wlapi_switch_macfreq(struct phy_shim_info *physhim, u8 spurmode);
extern void wlapi_enable_mac(wlc_phy_shim_info_t *physhim); extern void wlapi_enable_mac(struct phy_shim_info *physhim);
extern void wlapi_bmac_mctrl(wlc_phy_shim_info_t *physhim, u32 mask, extern void wlapi_bmac_mctrl(struct phy_shim_info *physhim, u32 mask,
u32 val); u32 val);
extern void wlapi_bmac_phy_reset(wlc_phy_shim_info_t *physhim); extern void wlapi_bmac_phy_reset(struct phy_shim_info *physhim);
extern void wlapi_bmac_bw_set(wlc_phy_shim_info_t *physhim, u16 bw); extern void wlapi_bmac_bw_set(struct phy_shim_info *physhim, u16 bw);
extern void wlapi_bmac_phyclk_fgc(wlc_phy_shim_info_t *physhim, bool clk); extern void wlapi_bmac_phyclk_fgc(struct phy_shim_info *physhim, bool clk);
extern void wlapi_bmac_macphyclk_set(wlc_phy_shim_info_t *physhim, bool clk); extern void wlapi_bmac_macphyclk_set(struct phy_shim_info *physhim, bool clk);
extern void wlapi_bmac_core_phypll_ctl(wlc_phy_shim_info_t *physhim, bool on); extern void wlapi_bmac_core_phypll_ctl(struct phy_shim_info *physhim, bool on);
extern void wlapi_bmac_core_phypll_reset(wlc_phy_shim_info_t *physhim); extern void wlapi_bmac_core_phypll_reset(struct phy_shim_info *physhim);
extern void wlapi_bmac_ucode_wake_override_phyreg_set(wlc_phy_shim_info_t * extern void wlapi_bmac_ucode_wake_override_phyreg_set(struct phy_shim_info *
physhim); physhim);
extern void wlapi_bmac_ucode_wake_override_phyreg_clear(wlc_phy_shim_info_t * extern void wlapi_bmac_ucode_wake_override_phyreg_clear(struct phy_shim_info *
physhim); physhim);
extern void wlapi_bmac_write_template_ram(wlc_phy_shim_info_t *physhim, int o, extern void wlapi_bmac_write_template_ram(struct phy_shim_info *physhim, int o,
int len, void *buf); int len, void *buf);
extern u16 wlapi_bmac_rate_shm_offset(wlc_phy_shim_info_t *physhim, extern u16 wlapi_bmac_rate_shm_offset(struct phy_shim_info *physhim,
u8 rate); u8 rate);
extern void wlapi_ucode_sample_init(wlc_phy_shim_info_t *physhim); extern void wlapi_ucode_sample_init(struct phy_shim_info *physhim);
extern void wlapi_copyfrom_objmem(wlc_phy_shim_info_t *physhim, uint, extern void wlapi_copyfrom_objmem(struct phy_shim_info *physhim, uint,
void *buf, int, u32 sel); void *buf, int, u32 sel);
extern void wlapi_copyto_objmem(wlc_phy_shim_info_t *physhim, uint, extern void wlapi_copyto_objmem(struct phy_shim_info *physhim, uint,
const void *buf, int, u32); const void *buf, int, u32);
extern void wlapi_high_update_phy_mode(wlc_phy_shim_info_t *physhim, extern void wlapi_high_update_phy_mode(struct phy_shim_info *physhim,
u32 phy_mode); u32 phy_mode);
extern u16 wlapi_bmac_get_txant(wlc_phy_shim_info_t *physhim); extern u16 wlapi_bmac_get_txant(struct phy_shim_info *physhim);
#endif /* _BRCM_PHY_SHIM_H_ */ #endif /* _BRCM_PHY_SHIM_H_ */
...@@ -106,7 +106,7 @@ ...@@ -106,7 +106,7 @@
#define WL_SPURAVOID_ON1 1 #define WL_SPURAVOID_ON1 1
#define WL_SPURAVOID_ON2 2 #define WL_SPURAVOID_ON2 2
struct wlc_tunables { struct brcms_tunables {
int ntxd; /* size of tx descriptor table */ int ntxd; /* size of tx descriptor table */
int nrxd; /* size of rx descriptor table */ int nrxd; /* size of rx descriptor table */
int rxbufsz; /* size of rx buffers to post */ int rxbufsz; /* size of rx buffers to post */
...@@ -124,7 +124,7 @@ struct wlc_tunables { ...@@ -124,7 +124,7 @@ struct wlc_tunables {
int memreserved; /* memory reserved for BMAC's USB dma rx */ int memreserved; /* memory reserved for BMAC's USB dma rx */
}; };
struct wlc_rateset { struct brcms_rateset {
uint count; /* number of rates in rates[] */ uint count; /* number of rates in rates[] */
u8 rates[WLC_NUMRATES]; /* rates in 500kbps units w/hi bit set if basic */ u8 rates[WLC_NUMRATES]; /* rates in 500kbps units w/hi bit set if basic */
u8 htphy_membership; /* HT PHY Membership */ u8 htphy_membership; /* HT PHY Membership */
...@@ -160,7 +160,7 @@ struct rsn_parms { ...@@ -160,7 +160,7 @@ struct rsn_parms {
IEEE80211_HT_CAP_MAX_AMSDU | IEEE80211_HT_CAP_DSSSCCK40) IEEE80211_HT_CAP_MAX_AMSDU | IEEE80211_HT_CAP_DSSSCCK40)
/* wlc internal bss_info */ /* wlc internal bss_info */
struct wlc_bss_info { struct brcms_bss_info {
u8 BSSID[ETH_ALEN]; /* network BSSID */ u8 BSSID[ETH_ALEN]; /* network BSSID */
u16 flags; /* flags for internal attributes */ u16 flags; /* flags for internal attributes */
u8 SSID_len; /* the length of SSID */ u8 SSID_len; /* the length of SSID */
...@@ -242,12 +242,12 @@ typedef int (*iovar_fn_t) (void *handle, const struct brcmu_iovar *vi, ...@@ -242,12 +242,12 @@ typedef int (*iovar_fn_t) (void *handle, const struct brcmu_iovar *vi,
* Public portion of "common" os-independent state structure. * Public portion of "common" os-independent state structure.
* The wlc handle points at this. * The wlc handle points at this.
*/ */
struct wlc_pub { struct brcms_pub {
void *wlc; void *wlc;
struct ieee80211_hw *ieee_hw; struct ieee80211_hw *ieee_hw;
struct scb *global_scb; struct scb *global_scb;
scb_ampdu_t *global_ampdu; struct scb_ampdu *global_ampdu;
uint mac80211_state; uint mac80211_state;
uint unit; /* device instance number */ uint unit; /* device instance number */
uint corerev; /* core revision */ uint corerev; /* core revision */
...@@ -255,7 +255,8 @@ struct wlc_pub { ...@@ -255,7 +255,8 @@ struct wlc_pub {
char *vars; /* "environment" name=value */ char *vars; /* "environment" name=value */
bool up; /* interface up and running */ bool up; /* interface up and running */
bool hw_off; /* HW is off */ bool hw_off; /* HW is off */
wlc_tunables_t *tunables; /* tunables: ntxd, nrxd, maxscb, etc. */ /* tunables: ntxd, nrxd, maxscb, etc. */
struct brcms_tunables *tunables;
bool hw_up; /* one time hw up/down(from boot or hibernation) */ bool hw_up; /* one time hw up/down(from boot or hibernation) */
bool _piomode; /* true if pio mode *//* BMAC_NOTE: NEED In both */ bool _piomode; /* true if pio mode *//* BMAC_NOTE: NEED In both */
uint _nbands; /* # bands supported */ uint _nbands; /* # bands supported */
...@@ -570,7 +571,7 @@ extern const u8 wme_fifo2ac[]; ...@@ -570,7 +571,7 @@ extern const u8 wme_fifo2ac[];
#define HIGHEST_SINGLE_STREAM_MCS 7 /* MCS values greater than this enable multiple streams */ #define HIGHEST_SINGLE_STREAM_MCS 7 /* MCS values greater than this enable multiple streams */
struct wlc_antselcfg { struct brcms_antselcfg {
u8 ant_config[ANT_SELCFG_MAX]; /* antenna configuration */ u8 ant_config[ANT_SELCFG_MAX]; /* antenna configuration */
u8 num_antcfg; /* number of available antenna configurations */ u8 num_antcfg; /* number of available antenna configurations */
}; };
...@@ -615,7 +616,7 @@ extern void brcms_c_set_addrmatch(struct brcms_c_info *wlc, ...@@ -615,7 +616,7 @@ extern void brcms_c_set_addrmatch(struct brcms_c_info *wlc,
extern void brcms_c_wme_setparams(struct brcms_c_info *wlc, u16 aci, extern void brcms_c_wme_setparams(struct brcms_c_info *wlc, u16 aci,
const struct ieee80211_tx_queue_params *arg, const struct ieee80211_tx_queue_params *arg,
bool suspend); bool suspend);
extern struct wlc_pub *brcms_c_pub(void *wlc); extern struct brcms_pub *brcms_c_pub(void *wlc);
/* common functions for every port */ /* common functions for every port */
extern void brcms_c_mhf(struct brcms_c_info *wlc, u8 idx, u16 mask, u16 val, extern void brcms_c_mhf(struct brcms_c_info *wlc, u8 idx, u16 mask, u16 val,
...@@ -639,10 +640,10 @@ extern int getintvar(char *vars, const char *name); ...@@ -639,10 +640,10 @@ extern int getintvar(char *vars, const char *name);
extern void brcms_c_set_ps_ctrl(struct brcms_c_info *wlc); extern void brcms_c_set_ps_ctrl(struct brcms_c_info *wlc);
extern void brcms_c_mctrl(struct brcms_c_info *wlc, u32 mask, u32 val); extern void brcms_c_mctrl(struct brcms_c_info *wlc, u32 mask, u32 val);
extern int brcms_c_module_register(struct wlc_pub *pub, extern int brcms_c_module_register(struct brcms_pub *pub,
const char *name, void *hdl, const char *name, void *hdl,
watchdog_fn_t watchdog_fn, down_fn_t down_fn); watchdog_fn_t watchdog_fn, down_fn_t down_fn);
extern int brcms_c_module_unregister(struct wlc_pub *pub, const char *name, extern int brcms_c_module_unregister(struct brcms_pub *pub, const char *name,
void *hdl); void *hdl);
extern void brcms_c_suspend_mac_and_wait(struct brcms_c_info *wlc); extern void brcms_c_suspend_mac_and_wait(struct brcms_c_info *wlc);
extern void brcms_c_enable_mac(struct brcms_c_info *wlc); extern void brcms_c_enable_mac(struct brcms_c_info *wlc);
......
...@@ -47,7 +47,8 @@ struct scb_ampdu { ...@@ -47,7 +47,8 @@ struct scb_ampdu {
* of having mac80211 hold it for us. Also could be made dynamic per tid instead of * of having mac80211 hold it for us. Also could be made dynamic per tid instead of
* static. * static.
*/ */
scb_ampdu_tid_ini_t ini[AMPDU_MAX_SCB_TID]; /* initiator info - per tid (NUMPRIO) */ /* initiator info - per tid (NUMPRIO): */
struct scb_ampdu_tid_ini ini[AMPDU_MAX_SCB_TID];
}; };
#define SCB_MAGIC 0xbeefcafe #define SCB_MAGIC 0xbeefcafe
...@@ -68,7 +69,7 @@ struct scb { ...@@ -68,7 +69,7 @@ struct scb {
*/ */
u16 seqnum[NUMPRIO]; /* WME: driver maintained sw seqnum per priority */ u16 seqnum[NUMPRIO]; /* WME: driver maintained sw seqnum per priority */
scb_ampdu_t scb_ampdu; /* AMPDU state including per tid info */ struct scb_ampdu scb_ampdu; /* AMPDU state including per tid info */
}; };
/* scb flags */ /* scb flags */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册