wlc_hw 595 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_b_update_slot_timing(struct brcms_hardware *wlc_hw, wlc_hw 598 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct bcma_device *core = wlc_hw->d11core; wlc_hw 603 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc_hw, M_DOT11_SLOT, APHY_SLOT_TIME); wlc_hw 607 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc_hw, M_DOT11_SLOT, BPHY_SLOT_TIME); wlc_hw 680 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_write_inits(struct brcms_hardware *wlc_hw, wlc_hw 683 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct bcma_device *core = wlc_hw->d11core; wlc_hw 689 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_dbg_info(wlc_hw->d11core, "wl%d\n", wlc_hw->unit); wlc_hw 704 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_write_mhf(struct brcms_hardware *wlc_hw, u16 *mhfs) wlc_hw 713 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc_hw, addr[idx], mhfs[idx]); wlc_hw 716 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_ucode_bsinit(struct brcms_hardware *wlc_hw) wlc_hw 718 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_ucode *ucode = &wlc_hw->wlc->wl->ucode; wlc_hw 721 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_write_mhf(wlc_hw, wlc_hw->band->mhfs); wlc_hw 724 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (D11REV_IS(wlc_hw->corerev, 17) || D11REV_IS(wlc_hw->corerev, 23)) { wlc_hw 725 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (BRCMS_ISNPHY(wlc_hw->band)) wlc_hw 726 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_write_inits(wlc_hw, ucode->d11n0bsinitvals16); wlc_hw 728 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(wlc_hw->d11core, wlc_hw 730 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c __func__, wlc_hw->unit, wlc_hw 731 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->corerev); wlc_hw 733 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (D11REV_IS(wlc_hw->corerev, 24)) { wlc_hw 734 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (BRCMS_ISLCNPHY(wlc_hw->band)) wlc_hw 735 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_write_inits(wlc_hw, wlc_hw 738 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(wlc_hw->d11core, wlc_hw 740 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c __func__, wlc_hw->unit, wlc_hw 741 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->corerev); wlc_hw 743 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(wlc_hw->d11core, wlc_hw 745 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c __func__, wlc_hw->unit, wlc_hw->corerev); wlc_hw 750 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_b_core_ioctl(struct brcms_hardware *wlc_hw, u32 m, u32 v) wlc_hw 752 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct bcma_device *core = wlc_hw->d11core; wlc_hw 758 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_b_core_phy_clk(struct brcms_hardware *wlc_hw, bool clk) wlc_hw 760 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_dbg_info(wlc_hw->d11core, "wl%d: clk %d\n", wlc_hw->unit, clk); wlc_hw 762 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->phyclk = clk; wlc_hw 766 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_core_ioctl(wlc_hw, (SICF_PRST | SICF_FGC | SICF_GMODE), wlc_hw 769 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_core_ioctl(wlc_hw, (SICF_PRST | SICF_FGC), SICF_PRST); wlc_hw 774 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_core_ioctl(wlc_hw, (SICF_PRST | SICF_FGC), SICF_FGC); wlc_hw 776 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_core_ioctl(wlc_hw, SICF_FGC, 0); wlc_hw 783 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_setxband(struct brcms_hardware *wlc_hw, uint bandunit) wlc_hw 785 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_dbg_mac80211(wlc_hw->d11core, "wl%d: bandunit %d\n", wlc_hw->unit, wlc_hw 788 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->band = wlc_hw->bandstate[bandunit]; wlc_hw 794 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->wlc->band = wlc_hw->wlc->bandstate[bandunit]; wlc_hw 797 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->sbclk && !wlc_hw->noreset) { wlc_hw 803 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_core_ioctl(wlc_hw, SICF_GMODE, gmode); wlc_hw 810 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_hardware *wlc_hw = wlc->hw; wlc_hw 814 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_dbg_mac80211(wlc_hw->d11core, "wl%d\n", wlc_hw->unit); wlc_hw 815 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c macctrl = bcma_read32(wlc_hw->d11core, wlc_hw 823 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_phy_switch_radio(wlc_hw->band->pi, OFF); wlc_hw 825 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_core_phy_clk(wlc_hw, OFF); wlc_hw 827 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_setxband(wlc_hw, bandunit); wlc_hw 1031 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_txstatus(struct brcms_hardware *wlc_hw, bool bound, bool *fatal) wlc_hw 1044 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c core = wlc_hw->d11core; wlc_hw 1050 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(core, "wl%d: %s: dead chip\n", wlc_hw->unit, wlc_hw 1066 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c *fatal = brcms_c_dotxstatus(wlc_hw->wlc, txs); wlc_hw 1089 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_hardware *wlc_hw = wlc->hw; wlc_hw 1096 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->boardflags & BFL_NOPLLDOWN) wlc_hw 1099 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (BRCMS_ISNPHY(wlc_hw->band) && NREV_LT(wlc_hw->band->phyrev, 2)) { wlc_hw 1121 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_hardware *wlc_hw = wlc->hw; wlc_hw 1122 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c uint unit = wlc_hw->unit; wlc_hw 1127 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->di[0] == NULL) { /* Init FIFOs */ wlc_hw 1135 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->di[0] = dma_attach(name, wlc, wlc_hw 1141 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c dma_attach_err |= (NULL == wlc_hw->di[0]); wlc_hw 1149 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->di[1] = dma_attach(name, wlc, wlc_hw 1152 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c dma_attach_err |= (NULL == wlc_hw->di[1]); wlc_hw 1159 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->di[2] = dma_attach(name, wlc, wlc_hw 1162 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c dma_attach_err |= (NULL == wlc_hw->di[2]); wlc_hw 1168 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->di[3] = dma_attach(name, wlc, wlc_hw 1172 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c dma_attach_err |= (NULL == wlc_hw->di[3]); wlc_hw 1176 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(wlc_hw->d11core, wlc_hw 1184 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->di[i]) wlc_hw 1185 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->txavail[i] = wlc_hw 1186 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c (uint *) dma_getvar(wlc_hw->di[i], wlc_hw 1191 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_mhfdef(wlc, wlc_hw->band->mhfs, pio_mhf2); wlc_hw 1196 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_b_detach_dmapio(struct brcms_hardware *wlc_hw) wlc_hw 1201 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->di[j]) { wlc_hw 1202 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c dma_detach(wlc_hw->di[j]); wlc_hw 1203 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->di[j] = NULL; wlc_hw 1213 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_b_info_init(struct brcms_hardware *wlc_hw) wlc_hw 1215 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_c_info *wlc = wlc_hw->wlc; wlc_hw 1221 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->shortslot = false; wlc_hw 1223 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->SFBL = RETRY_SHORT_FB; wlc_hw 1224 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->LFBL = RETRY_LONG_FB; wlc_hw 1227 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->SRL = RETRY_SHORT_DEF; wlc_hw 1228 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->LRL = RETRY_LONG_DEF; wlc_hw 1229 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->chanspec = ch20mhz_chspec(1); wlc_hw 1232 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_b_wait_for_wake(struct brcms_hardware *wlc_hw) wlc_hw 1238 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c SPINWAIT((brcms_b_read_shm(wlc_hw, M_UCODE_DBGST) == wlc_hw 1239 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c DBGST_ASLEEP), wlc_hw->wlc->fastpwrup_dly); wlc_hw 1243 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_b_clkctl_clk(struct brcms_hardware *wlc_hw, enum bcma_clkmode mode) wlc_hw 1245 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (ai_get_cccaps(wlc_hw->sih) & CC_CAP_PMU) { wlc_hw 1252 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->clk) { wlc_hw 1254 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_set32(wlc_hw->d11core, wlc_hw 1261 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c ((bcma_read32(wlc_hw->d11core, wlc_hw 1265 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c WARN_ON(!(bcma_read32(wlc_hw->d11core, wlc_hw 1269 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if ((ai_get_pmurev(wlc_hw->sih) == 0) && wlc_hw 1270 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c (bcma_read32(wlc_hw->d11core, wlc_hw 1274 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c ((bcma_read32(wlc_hw->d11core, wlc_hw 1279 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_mask32(wlc_hw->d11core, wlc_hw 1284 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->forcefastclk = (mode == BCMA_CLKMODE_FAST); wlc_hw 1291 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->forcefastclk = ai_clkctl_cc(wlc_hw->sih, mode); wlc_hw 1294 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->forcefastclk && wlc_hw->clk) wlc_hw 1295 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c WARN_ON(!(bcma_aread32(wlc_hw->d11core, BCMA_IOST) & wlc_hw 1308 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->forcefastclk) wlc_hw 1309 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c mboolset(wlc_hw->wake_override, wlc_hw 1312 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c mboolclr(wlc_hw->wake_override, wlc_hw 1329 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_mhf(struct brcms_hardware *wlc_hw, u8 idx, u16 mask, u16 val, wlc_hw 1348 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c band = wlc_hw->band; wlc_hw 1351 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c band = wlc_hw->bandstate[BAND_5G_INDEX]; wlc_hw 1354 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c band = wlc_hw->bandstate[BAND_2G_INDEX]; wlc_hw 1367 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->clk && (band->mhfs[idx] != save) wlc_hw 1368 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c && (band == wlc_hw->band)) wlc_hw 1369 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc_hw, addr[idx], wlc_hw 1374 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->bandstate[0]->mhfs[idx] = wlc_hw 1375 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c (wlc_hw->bandstate[0]->mhfs[idx] & ~mask) | val; wlc_hw 1376 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->bandstate[1]->mhfs[idx] = wlc_hw 1377 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c (wlc_hw->bandstate[1]->mhfs[idx] & ~mask) | val; wlc_hw 1384 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_mctrl_reset(struct brcms_hardware *wlc_hw) wlc_hw 1387 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->maccontrol = 0; wlc_hw 1388 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->suspended_fifos = 0; wlc_hw 1389 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->wake_override = 0; wlc_hw 1390 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->mute_override = 0; wlc_hw 1391 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_mctrl(wlc_hw, ~0, MCTL_IHR_EN | MCTL_WAKE); wlc_hw 1398 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_mctrl_write(struct brcms_hardware *wlc_hw) wlc_hw 1400 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c u32 maccontrol = wlc_hw->maccontrol; wlc_hw 1403 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->wake_override) wlc_hw 1407 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->mute_override) { wlc_hw 1412 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_write32(wlc_hw->d11core, D11REGOFFS(maccontrol), wlc_hw 1417 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c void brcms_b_mctrl(struct brcms_hardware *wlc_hw, u32 mask, u32 val) wlc_hw 1424 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c maccontrol = wlc_hw->maccontrol; wlc_hw 1432 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->maccontrol = new_maccontrol; wlc_hw 1435 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_mctrl_write(wlc_hw); wlc_hw 1438 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c void brcms_c_ucode_wake_override_set(struct brcms_hardware *wlc_hw, wlc_hw 1441 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->wake_override || (wlc_hw->maccontrol & MCTL_WAKE)) { wlc_hw 1442 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c mboolset(wlc_hw->wake_override, override_bit); wlc_hw 1446 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c mboolset(wlc_hw->wake_override, override_bit); wlc_hw 1448 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_mctrl_write(wlc_hw); wlc_hw 1449 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_wait_for_wake(wlc_hw); wlc_hw 1452 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c void brcms_c_ucode_wake_override_clear(struct brcms_hardware *wlc_hw, wlc_hw 1455 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c mboolclr(wlc_hw->wake_override, override_bit); wlc_hw 1457 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->wake_override || (wlc_hw->maccontrol & MCTL_WAKE)) wlc_hw 1460 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_mctrl_write(wlc_hw); wlc_hw 1470 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_ucode_mute_override_set(struct brcms_hardware *wlc_hw) wlc_hw 1472 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->mute_override = 1; wlc_hw 1477 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if ((wlc_hw->maccontrol & (MCTL_AP | MCTL_INFRA)) == MCTL_INFRA) wlc_hw 1480 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_mctrl_write(wlc_hw); wlc_hw 1484 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_ucode_mute_override_clear(struct brcms_hardware *wlc_hw) wlc_hw 1486 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->mute_override == 0) wlc_hw 1489 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->mute_override = 0; wlc_hw 1494 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if ((wlc_hw->maccontrol & (MCTL_AP | MCTL_INFRA)) == MCTL_INFRA) wlc_hw 1497 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_mctrl_write(wlc_hw); wlc_hw 1504 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_set_addrmatch(struct brcms_hardware *wlc_hw, int match_reg_offset, wlc_hw 1507 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct bcma_device *core = wlc_hw->d11core; wlc_hw 1512 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_dbg_rx(core, "wl%d: brcms_b_set_addrmatch\n", wlc_hw->unit); wlc_hw 1527 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_template_ram(struct brcms_hardware *wlc_hw, int offset, int len, wlc_hw 1530 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct bcma_device *core = wlc_hw->d11core; wlc_hw 1535 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_dbg_info(core, "wl%d\n", wlc_hw->unit); wlc_hw 1563 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_b_set_cwmin(struct brcms_hardware *wlc_hw, u16 newmin) wlc_hw 1565 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->band->CWmin = newmin; wlc_hw 1567 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_write32(wlc_hw->d11core, D11REGOFFS(objaddr), wlc_hw 1569 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c (void)bcma_read32(wlc_hw->d11core, D11REGOFFS(objaddr)); wlc_hw 1570 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_write32(wlc_hw->d11core, D11REGOFFS(objdata), newmin); wlc_hw 1573 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_b_set_cwmax(struct brcms_hardware *wlc_hw, u16 newmax) wlc_hw 1575 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->band->CWmax = newmax; wlc_hw 1577 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_write32(wlc_hw->d11core, D11REGOFFS(objaddr), wlc_hw 1579 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c (void)bcma_read32(wlc_hw->d11core, D11REGOFFS(objaddr)); wlc_hw 1580 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_write32(wlc_hw->d11core, D11REGOFFS(objdata), newmax); wlc_hw 1583 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c void brcms_b_bw_set(struct brcms_hardware *wlc_hw, u16 bw) wlc_hw 1588 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c fastclk = wlc_hw->forcefastclk; wlc_hw 1590 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_clkctl_clk(wlc_hw, BCMA_CLKMODE_FAST); wlc_hw 1592 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_phy_bw_state_set(wlc_hw->band->pi, bw); wlc_hw 1594 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_phy_reset(wlc_hw); wlc_hw 1595 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_phy_init(wlc_hw->band->pi, wlc_phy_chanspec_get(wlc_hw->band->pi)); wlc_hw 1599 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_clkctl_clk(wlc_hw, BCMA_CLKMODE_DYNAMIC); wlc_hw 1602 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_b_upd_synthpu(struct brcms_hardware *wlc_hw) wlc_hw 1605 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_c_info *wlc = wlc_hw->wlc; wlc_hw 1615 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc_hw, M_SYNTHPU_DLY, v); wlc_hw 1618 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_ucode_txant_set(struct brcms_hardware *wlc_hw) wlc_hw 1621 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c u16 phytxant = wlc_hw->bmac_phytxant; wlc_hw 1625 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c phyctl = brcms_b_read_shm(wlc_hw, M_CTXPRS_BLK + C_CTX_PCTLWD_POS); wlc_hw 1627 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc_hw, M_CTXPRS_BLK + C_CTX_PCTLWD_POS, phyctl); wlc_hw 1630 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c phyctl = brcms_b_read_shm(wlc_hw, M_RSP_PCTLWD); wlc_hw 1632 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc_hw, M_RSP_PCTLWD, phyctl); wlc_hw 1635 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static u16 brcms_b_ofdm_ratetable_offset(struct brcms_hardware *wlc_hw, wlc_hw 1666 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c return 2 * brcms_b_read_shm(wlc_hw, M_RT_DIRMAP_A + (plcp_rate * 2)); wlc_hw 1669 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_upd_ofdm_pctl1_table(struct brcms_hardware *wlc_hw) wlc_hw 1680 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!BRCMS_PHY_11N_CAP(wlc_hw->band)) wlc_hw 1687 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c entry_ptr = brcms_b_ofdm_ratetable_offset(wlc_hw, rate); wlc_hw 1691 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_read_shm(wlc_hw, entry_ptr + M_RT_OFDM_PCTL1_POS); wlc_hw 1695 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c pctl1 |= (wlc_hw->hw_stf_ss_opmode << PHY_TXC1_MODE_SHIFT); wlc_hw 1698 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc_hw, entry_ptr + M_RT_OFDM_PCTL1_POS, wlc_hw 1706 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_hardware *wlc_hw = wlc->hw; wlc_hw 1708 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_dbg_mac80211(wlc_hw->d11core, "wl%d: bandunit %d\n", wlc_hw->unit, wlc_hw 1709 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->band->bandunit); wlc_hw 1711 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_ucode_bsinit(wlc_hw); wlc_hw 1713 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_phy_init(wlc_hw->band->pi, chanspec); wlc_hw 1715 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_ucode_txant_set(wlc_hw); wlc_hw 1721 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_set_cwmin(wlc_hw, wlc_hw->band->CWmin); wlc_hw 1722 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_set_cwmax(wlc_hw, wlc_hw->band->CWmax); wlc_hw 1724 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_update_slot_timing(wlc_hw, wlc_hw 1725 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->band->bandtype == BRCM_BAND_5G ? wlc_hw 1726 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c true : wlc_hw->shortslot); wlc_hw 1729 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc_hw, M_PHYTYPE, (u16) wlc_hw->band->phytype); wlc_hw 1730 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc_hw, M_PHYVER, (u16) wlc_hw->band->phyrev); wlc_hw 1736 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_upd_ofdm_pctl1_table(wlc_hw); wlc_hw 1738 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_upd_synthpu(wlc_hw); wlc_hw 1742 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c void brcms_b_core_phypll_reset(struct brcms_hardware *wlc_hw) wlc_hw 1744 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c ai_cc_reg(wlc_hw->sih, offsetof(struct chipcregs, chipcontrol_addr), wlc_hw 1747 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c ai_cc_reg(wlc_hw->sih, offsetof(struct chipcregs, chipcontrol_data), wlc_hw 1750 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c ai_cc_reg(wlc_hw->sih, offsetof(struct chipcregs, chipcontrol_data), wlc_hw 1753 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c ai_cc_reg(wlc_hw->sih, offsetof(struct chipcregs, chipcontrol_data), wlc_hw 1761 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c void brcms_b_phyclk_fgc(struct brcms_hardware *wlc_hw, bool clk) wlc_hw 1764 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!BRCMS_ISNPHY(wlc_hw->band)) wlc_hw 1768 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_core_ioctl(wlc_hw, SICF_FGC, SICF_FGC); wlc_hw 1770 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_core_ioctl(wlc_hw, SICF_FGC, 0); wlc_hw 1774 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c void brcms_b_macphyclk_set(struct brcms_hardware *wlc_hw, bool clk) wlc_hw 1777 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_core_ioctl(wlc_hw, SICF_MPCLKE, SICF_MPCLKE); wlc_hw 1779 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_core_ioctl(wlc_hw, SICF_MPCLKE, 0); wlc_hw 1782 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c void brcms_b_phy_reset(struct brcms_hardware *wlc_hw) wlc_hw 1784 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_phy_pub *pih = wlc_hw->band->pi; wlc_hw 1788 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_dbg_info(wlc_hw->d11core, "wl%d: reset phy\n", wlc_hw->unit); wlc_hw 1793 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c phy_bw_clkbits = wlc_phy_clk_bwbits(wlc_hw->band->pi); wlc_hw 1796 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (BRCMS_ISNPHY(wlc_hw->band) && NREV_GE(wlc_hw->band->phyrev, 3) && wlc_hw 1797 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c NREV_LE(wlc_hw->band->phyrev, 4)) { wlc_hw 1799 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_core_ioctl(wlc_hw, SICF_BWMASK, phy_bw_clkbits); wlc_hw 1804 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_core_phypll_reset(wlc_hw); wlc_hw 1807 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_core_ioctl(wlc_hw, (SICF_PRST | SICF_PCLKE), wlc_hw 1811 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_core_ioctl(wlc_hw, wlc_hw 1817 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_core_phy_clk(wlc_hw, ON); wlc_hw 1824 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_b_setband(struct brcms_hardware *wlc_hw, uint bandunit, wlc_hw 1826 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_c_info *wlc = wlc_hw->wlc; wlc_hw 1830 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!bcma_core_is_enabled(wlc_hw->d11core)) { wlc_hw 1831 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_core_enable(wlc_hw->d11core, 0); wlc_hw 1832 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_mctrl_reset(wlc_hw); wlc_hw 1837 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!wlc_hw->up) wlc_hw 1840 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_core_phy_clk(wlc_hw, ON); wlc_hw 1857 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c WARN_ON((bcma_read32(wlc_hw->d11core, D11REGOFFS(maccontrol)) & wlc_hw 1861 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static bool brcms_c_isgoodchip(struct brcms_hardware *wlc_hw) wlc_hw 1865 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!CONF_HAS(D11CONF, wlc_hw->corerev)) { wlc_hw 1866 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wiphy_err(wlc_hw->wlc->wiphy, "unsupported core rev %d\n", wlc_hw 1867 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->corerev); wlc_hw 1875 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static bool brcms_c_validboardtype(struct brcms_hardware *wlc_hw) wlc_hw 1877 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c uint boardrev = wlc_hw->boardrev; wlc_hw 1886 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (ai_get_boardvendor(wlc_hw->sih) != PCI_VENDOR_ID_BROADCOM) wlc_hw 1903 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_get_macaddr(struct brcms_hardware *wlc_hw, u8 etheraddr[ETH_ALEN]) wlc_hw 1905 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct ssb_sprom *sprom = &wlc_hw->d11core->bus->sprom; wlc_hw 1913 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->_nbands > 1) wlc_hw 1920 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_b_xtal(struct brcms_hardware *wlc_hw, bool want) wlc_hw 1922 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_dbg_info(wlc_hw->d11core, "wl%d: want %d\n", wlc_hw->unit, want); wlc_hw 1928 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!want && wlc_hw->pllreq) wlc_hw 1931 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->sbclk = want; wlc_hw 1932 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!wlc_hw->sbclk) { wlc_hw 1933 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->clk = false; wlc_hw 1934 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->band && wlc_hw->band->pi) wlc_hw 1935 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_phy_hw_clk_state_upd(wlc_hw->band->pi, false); wlc_hw 1945 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static bool brcms_b_radio_read_hwdisabled(struct brcms_hardware *wlc_hw) wlc_hw 1950 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c xtal = wlc_hw->sbclk; wlc_hw 1952 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_xtal(wlc_hw, ON); wlc_hw 1955 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c clk = wlc_hw->clk; wlc_hw 1962 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (D11REV_GE(wlc_hw->corerev, 18)) wlc_hw 1972 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_core_enable(wlc_hw->d11core, flags); wlc_hw 1973 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_mctrl_reset(wlc_hw); wlc_hw 1976 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c v = ((bcma_read32(wlc_hw->d11core, wlc_hw 1981 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_core_disable(wlc_hw->d11core, 0); wlc_hw 1984 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_xtal(wlc_hw, OFF); wlc_hw 1989 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static bool wlc_dma_rxreset(struct brcms_hardware *wlc_hw, uint fifo) wlc_hw 1991 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct dma_pub *di = wlc_hw->di[fifo]; wlc_hw 2003 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c void brcms_b_corereset(struct brcms_hardware *wlc_hw, u32 flags) wlc_hw 2009 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c flags = (wlc_hw->band->pi ? wlc_hw->band->core_flags : 0); wlc_hw 2011 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_dbg_info(wlc_hw->d11core, "wl%d: core reset\n", wlc_hw->unit); wlc_hw 2014 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c fastclk = wlc_hw->forcefastclk; wlc_hw 2016 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_clkctl_clk(wlc_hw, BCMA_CLKMODE_FAST); wlc_hw 2019 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (bcma_core_is_enabled(wlc_hw->d11core)) { wlc_hw 2021 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if ((wlc_hw->di[i]) && (!dma_txreset(wlc_hw->di[i]))) wlc_hw 2022 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(wlc_hw->d11core, "wl%d: %s: " wlc_hw 2024 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->unit, __func__, i); wlc_hw 2026 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if ((wlc_hw->di[RX_FIFO]) wlc_hw 2027 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c && (!wlc_dma_rxreset(wlc_hw, RX_FIFO))) wlc_hw 2028 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(wlc_hw->d11core, "wl%d: %s: dma_rxreset" wlc_hw 2030 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->unit, __func__, RX_FIFO); wlc_hw 2033 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->noreset) { wlc_hw 2034 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->wlc->macintstatus = 0; /* skip wl_dpc after down */ wlc_hw 2035 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_mctrl(wlc_hw, MCTL_PSM_RUN | MCTL_EN_MAC, 0); wlc_hw 2044 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (D11REV_GE(wlc_hw->corerev, 18)) wlc_hw 2057 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->clk = false; wlc_hw 2058 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_core_enable(wlc_hw->d11core, flags); wlc_hw 2059 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->clk = true; wlc_hw 2060 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->band && wlc_hw->band->pi) wlc_hw 2061 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_phy_hw_clk_state_upd(wlc_hw->band->pi, true); wlc_hw 2063 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_mctrl_reset(wlc_hw); wlc_hw 2065 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (ai_get_cccaps(wlc_hw->sih) & CC_CAP_PMU) wlc_hw 2066 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_clkctl_clk(wlc_hw, BCMA_CLKMODE_FAST); wlc_hw 2068 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_phy_reset(wlc_hw); wlc_hw 2071 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_core_phypll_ctl(wlc_hw, true); wlc_hw 2074 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->wlc->macintstatus = 0; wlc_hw 2078 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_clkctl_clk(wlc_hw, BCMA_CLKMODE_DYNAMIC); wlc_hw 2084 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_b_corerev_fifofixup(struct brcms_hardware *wlc_hw) wlc_hw 2086 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct bcma_device *core = wlc_hw->d11core; wlc_hw 2098 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c txfifo_endblk = txfifo_startblk + wlc_hw->xmtfifo_sz[fifo_nu]; wlc_hw 2113 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c txfifo_startblk += wlc_hw->xmtfifo_sz[fifo_nu]; wlc_hw 2119 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc_hw, M_FIFOSIZE0, wlc_hw 2120 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->xmtfifo_sz[TX_AC_BE_FIFO]); wlc_hw 2121 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc_hw, M_FIFOSIZE1, wlc_hw 2122 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->xmtfifo_sz[TX_AC_VI_FIFO]); wlc_hw 2123 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc_hw, M_FIFOSIZE2, wlc_hw 2124 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c ((wlc_hw->xmtfifo_sz[TX_AC_VO_FIFO] << 8) | wlc_hw-> wlc_hw 2126 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc_hw, M_FIFOSIZE3, wlc_hw 2127 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c ((wlc_hw->xmtfifo_sz[TX_ATIM_FIFO] << 8) | wlc_hw-> wlc_hw 2144 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c void brcms_b_switch_macfreq(struct brcms_hardware *wlc_hw, u8 spurmode) wlc_hw 2146 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct bcma_device *core = wlc_hw->d11core; wlc_hw 2148 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if ((ai_get_chip_id(wlc_hw->sih) == BCMA_CHIP_ID_BCM43224) || wlc_hw 2149 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c (ai_get_chip_id(wlc_hw->sih) == BCMA_CHIP_ID_BCM43225)) { wlc_hw 2160 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c } else if (BRCMS_ISLCNPHY(wlc_hw->band)) { wlc_hw 2200 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_hardware *wlc_hw = wlc->hw; wlc_hw 2204 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_mctrl(wlc_hw, MCTL_GPOUT_SEL_MASK, 0); wlc_hw 2217 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->antsel_type == ANTSEL_2x3) { wlc_hw 2219 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_mhf(wlc_hw, MHF3, MHF3_ANTSEL_EN, wlc_hw 2221 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_mhf(wlc_hw, MHF3, MHF3_ANTSEL_MODE, wlc_hw 2225 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_phy_antsel_init(wlc_hw->band->pi, false); wlc_hw 2227 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c } else if (wlc_hw->antsel_type == ANTSEL_2x4) { wlc_hw 2233 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_set16(wlc_hw->d11core, D11REGOFFS(psm_gpio_oe), wlc_hw 2235 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_set16(wlc_hw->d11core, D11REGOFFS(psm_gpio_out), wlc_hw 2239 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_mhf(wlc_hw, MHF3, MHF3_ANTSEL_EN, wlc_hw 2241 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_mhf(wlc_hw, MHF3, MHF3_ANTSEL_MODE, 0, wlc_hw 2245 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc_hw, M_ANTSEL_CLKDIV, wlc_hw 2253 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->boardflags & BFL_PACTRL) wlc_hw 2257 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_chipco_gpio_control(&wlc_hw->d11core->bus->drv_cc, gm, gc); wlc_hw 2260 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_ucode_write(struct brcms_hardware *wlc_hw, wlc_hw 2263 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct bcma_device *core = wlc_hw->d11core; wlc_hw 2267 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_dbg_info(wlc_hw->d11core, "wl%d\n", wlc_hw->unit); wlc_hw 2279 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_ucode_download(struct brcms_hardware *wlc_hw) wlc_hw 2282 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_ucode *ucode = &wlc_hw->wlc->wl->ucode; wlc_hw 2284 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc = wlc_hw->wlc; wlc_hw 2286 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->ucode_loaded) wlc_hw 2289 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (D11REV_IS(wlc_hw->corerev, 17) || D11REV_IS(wlc_hw->corerev, 23)) { wlc_hw 2290 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (BRCMS_ISNPHY(wlc_hw->band)) { wlc_hw 2291 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_ucode_write(wlc_hw, ucode->bcm43xx_16_mimo, wlc_hw 2293 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->ucode_loaded = true; wlc_hw 2295 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(wlc_hw->d11core, wlc_hw 2297 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c __func__, wlc_hw->unit, wlc_hw->corerev); wlc_hw 2298 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c } else if (D11REV_IS(wlc_hw->corerev, 24)) { wlc_hw 2299 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (BRCMS_ISLCNPHY(wlc_hw->band)) { wlc_hw 2300 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_ucode_write(wlc_hw, ucode->bcm43xx_24_lcn, wlc_hw 2302 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->ucode_loaded = true; wlc_hw 2304 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(wlc_hw->d11core, wlc_hw 2306 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c __func__, wlc_hw->unit, wlc_hw->corerev); wlc_hw 2311 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c void brcms_b_txant_set(struct brcms_hardware *wlc_hw, u16 phytxant) wlc_hw 2314 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->bmac_phytxant = phytxant; wlc_hw 2317 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!wlc_hw->up) wlc_hw 2319 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_ucode_txant_set(wlc_hw); wlc_hw 2323 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c u16 brcms_b_get_txant(struct brcms_hardware *wlc_hw) wlc_hw 2325 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c return (u16) wlc_hw->wlc->stf->txant; wlc_hw 2328 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c void brcms_b_antsel_type_set(struct brcms_hardware *wlc_hw, u8 antsel_type) wlc_hw 2330 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->antsel_type = antsel_type; wlc_hw 2333 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_phy_antsel_type_set(wlc_hw->band->pi, antsel_type); wlc_hw 2336 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_b_fifoerrors(struct brcms_hardware *wlc_hw) wlc_hw 2341 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct bcma_device *core = wlc_hw->d11core; wlc_hw 2343 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c unit = wlc_hw->unit; wlc_hw 2392 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_fatal_error(wlc_hw->wlc->wl); /* big hammer */ wlc_hw 2403 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_hardware *wlc_hw = wlc->hw; wlc_hw 2405 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_write32(wlc_hw->d11core, D11REGOFFS(macintmask), wlc->macintmask); wlc_hw 2410 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_hardware *wlc_hw = wlc->hw; wlc_hw 2413 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!wlc_hw->clk) wlc_hw 2418 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_write32(wlc_hw->d11core, D11REGOFFS(macintmask), 0); wlc_hw 2419 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c (void)bcma_read32(wlc_hw->d11core, D11REGOFFS(macintmask)); wlc_hw 2429 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_hardware *wlc_hw = wlc->hw; wlc_hw 2430 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!wlc_hw->clk) wlc_hw 2434 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_write32(wlc_hw->d11core, D11REGOFFS(macintmask), wlc->macintmask); wlc_hw 2438 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_b_tx_fifo_suspend(struct brcms_hardware *wlc_hw, wlc_hw 2446 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if ((wlc_hw->suspended_fifos & fifo) == fifo) wlc_hw 2450 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->suspended_fifos == 0) wlc_hw 2451 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_ucode_wake_override_set(wlc_hw, wlc_hw 2454 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->suspended_fifos |= fifo; wlc_hw 2456 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->di[tx_fifo]) { wlc_hw 2462 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (BRCMS_PHY_11N_CAP(wlc_hw->band)) wlc_hw 2463 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_suspend_mac_and_wait(wlc_hw->wlc); wlc_hw 2465 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c dma_txsuspend(wlc_hw->di[tx_fifo]); wlc_hw 2467 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (BRCMS_PHY_11N_CAP(wlc_hw->band)) wlc_hw 2468 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_enable_mac(wlc_hw->wlc); wlc_hw 2472 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_b_tx_fifo_resume(struct brcms_hardware *wlc_hw, wlc_hw 2480 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->di[tx_fifo]) wlc_hw 2481 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c dma_txresume(wlc_hw->di[tx_fifo]); wlc_hw 2484 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->suspended_fifos == 0) wlc_hw 2487 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->suspended_fifos &= ~(1 << tx_fifo); wlc_hw 2488 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->suspended_fifos == 0) wlc_hw 2489 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_ucode_wake_override_clear(wlc_hw, wlc_hw 2495 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_b_mute(struct brcms_hardware *wlc_hw, bool mute_tx) wlc_hw 2498 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c u8 *ethaddr = wlc_hw->wlc->pub->cur_etheraddr; wlc_hw 2502 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_tx_fifo_suspend(wlc_hw, TX_DATA_FIFO); wlc_hw 2503 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_tx_fifo_suspend(wlc_hw, TX_CTL_FIFO); wlc_hw 2504 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_tx_fifo_suspend(wlc_hw, TX_AC_BK_FIFO); wlc_hw 2505 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_tx_fifo_suspend(wlc_hw, TX_AC_VI_FIFO); wlc_hw 2508 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_set_addrmatch(wlc_hw, RCM_MAC_OFFSET, null_ether_addr); wlc_hw 2511 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_tx_fifo_resume(wlc_hw, TX_DATA_FIFO); wlc_hw 2512 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_tx_fifo_resume(wlc_hw, TX_CTL_FIFO); wlc_hw 2513 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_tx_fifo_resume(wlc_hw, TX_AC_BK_FIFO); wlc_hw 2514 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_tx_fifo_resume(wlc_hw, TX_AC_VI_FIFO); wlc_hw 2517 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_set_addrmatch(wlc_hw, RCM_MAC_OFFSET, ethaddr); wlc_hw 2520 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_phy_mute_upd(wlc_hw->band->pi, mute_tx, 0); wlc_hw 2523 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_ucode_mute_override_set(wlc_hw); wlc_hw 2525 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_ucode_mute_override_clear(wlc_hw); wlc_hw 2544 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_hardware *wlc_hw = wlc->hw; wlc_hw 2545 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct bcma_device *core = wlc_hw->d11core; wlc_hw 2619 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_hardware *wlc_hw = wlc->hw; wlc_hw 2622 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!wlc_hw->up || !wlc->macintmask) wlc_hw 2629 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(wlc_hw->d11core, wlc_hw 2647 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_hardware *wlc_hw = wlc->hw; wlc_hw 2648 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct bcma_device *core = wlc_hw->d11core; wlc_hw 2651 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_dbg_mac80211(core, "wl%d: bandunit %d\n", wlc_hw->unit, wlc_hw 2652 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->band->bandunit); wlc_hw 2657 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->mac_suspend_depth++; wlc_hw 2658 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->mac_suspend_depth > 1) wlc_hw 2662 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_ucode_wake_override_set(wlc_hw, BRCMS_WAKE_OVERRIDE_MACSUSPEND); wlc_hw 2667 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(core, "wl%d: %s: dead chip\n", wlc_hw->unit, wlc_hw 2678 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(core, "wl%d: %s: dead chip\n", wlc_hw->unit, wlc_hw 2685 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_mctrl(wlc_hw, MCTL_EN_MAC, 0); wlc_hw 2693 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->unit, BRCMS_MAX_MAC_SUSPEND); wlc_hw 2695 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c "psm_brc 0x%04x\n", wlc_hw->unit, wlc_hw 2703 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(core, "wl%d: %s: dead chip\n", wlc_hw->unit, wlc_hw 2715 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_hardware *wlc_hw = wlc->hw; wlc_hw 2716 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct bcma_device *core = wlc_hw->d11core; wlc_hw 2719 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_dbg_mac80211(core, "wl%d: bandunit %d\n", wlc_hw->unit, wlc_hw 2725 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->mac_suspend_depth--; wlc_hw 2726 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->mac_suspend_depth > 0) wlc_hw 2734 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_mctrl(wlc_hw, MCTL_EN_MAC, MCTL_EN_MAC); wlc_hw 2745 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_ucode_wake_override_clear(wlc_hw, wlc_hw 2749 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c void brcms_b_band_stf_ss_set(struct brcms_hardware *wlc_hw, u8 stf_mode) wlc_hw 2751 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->hw_stf_ss_opmode = stf_mode; wlc_hw 2753 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->clk) wlc_hw 2754 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_upd_ofdm_pctl1_table(wlc_hw); wlc_hw 2757 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static bool brcms_b_validate_chip_access(struct brcms_hardware *wlc_hw) wlc_hw 2759 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct bcma_device *core = wlc_hw->d11core; wlc_hw 2761 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct wiphy *wiphy = wlc_hw->wlc->wiphy; wlc_hw 2779 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c "expected 0xaa5555aa\n", wlc_hw->unit, val); wlc_hw 2792 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c "expected 0x55aaaa55\n", wlc_hw->unit, val); wlc_hw 2807 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c "0x%x, expected 0x%x or 0x%x\n", wlc_hw->unit, w, wlc_hw 2818 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c void brcms_b_core_phypll_ctl(struct brcms_hardware *wlc_hw, bool on) wlc_hw 2820 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct bcma_device *core = wlc_hw->d11core; wlc_hw 2823 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_dbg_info(core, "wl%d\n", wlc_hw->unit); wlc_hw 2828 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if ((ai_get_chip_id(wlc_hw->sih) == BCMA_CHIP_ID_BCM4313)) { wlc_hw 2871 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_coredisable(struct brcms_hardware *wlc_hw) wlc_hw 2875 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_dbg_info(wlc_hw->d11core, "wl%d: disable core\n", wlc_hw->unit); wlc_hw 2877 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c dev_gone = brcms_deviceremoved(wlc_hw->wlc); wlc_hw 2882 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->noreset) wlc_hw 2886 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_phy_switch_radio(wlc_hw->band->pi, OFF); wlc_hw 2889 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_phy_anacore(wlc_hw->band->pi, OFF); wlc_hw 2892 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_core_phypll_ctl(wlc_hw, false); wlc_hw 2894 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->clk = false; wlc_hw 2895 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_core_disable(wlc_hw->d11core, 0); wlc_hw 2896 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_phy_hw_clk_state_upd(wlc_hw->band->pi, false); wlc_hw 2901 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_hardware *wlc_hw = wlc->hw; wlc_hw 2906 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->di[i]) { wlc_hw 2907 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c dma_txreclaim(wlc_hw->di[i], DMA_RANGE_ALL); wlc_hw 2915 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c dma_rxreclaim(wlc_hw->di[RX_FIFO]); wlc_hw 2919 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_read_objmem(struct brcms_hardware *wlc_hw, uint offset, u32 sel) wlc_hw 2921 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct bcma_device *core = wlc_hw->d11core; wlc_hw 2933 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_objmem(struct brcms_hardware *wlc_hw, uint offset, u16 v, wlc_hw 2936 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct bcma_device *core = wlc_hw->d11core; wlc_hw 2951 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c u16 brcms_b_read_shm(struct brcms_hardware *wlc_hw, uint offset) wlc_hw 2953 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c return brcms_b_read_objmem(wlc_hw, offset, OBJADDR_SHM_SEL); wlc_hw 2960 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c void brcms_b_write_shm(struct brcms_hardware *wlc_hw, uint offset, u16 v) wlc_hw 2962 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_objmem(wlc_hw, offset, v, OBJADDR_SHM_SEL); wlc_hw 2972 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_copyto_objmem(struct brcms_hardware *wlc_hw, uint offset, wlc_hw 2984 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_objmem(wlc_hw, offset + i, v, sel); wlc_hw 2995 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_copyfrom_objmem(struct brcms_hardware *wlc_hw, uint offset, void *buf, wlc_hw 3006 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c v = brcms_b_read_objmem(wlc_hw, offset + i, sel); wlc_hw 3022 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_b_retrylimit_upd(struct brcms_hardware *wlc_hw, wlc_hw 3025 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->SRL = SRL; wlc_hw 3026 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->LRL = LRL; wlc_hw 3029 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->up) { wlc_hw 3030 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_write32(wlc_hw->d11core, D11REGOFFS(objaddr), wlc_hw 3032 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c (void)bcma_read32(wlc_hw->d11core, D11REGOFFS(objaddr)); wlc_hw 3033 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_write32(wlc_hw->d11core, D11REGOFFS(objdata), wlc_hw->SRL); wlc_hw 3034 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_write32(wlc_hw->d11core, D11REGOFFS(objaddr), wlc_hw 3036 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c (void)bcma_read32(wlc_hw->d11core, D11REGOFFS(objaddr)); wlc_hw 3037 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_write32(wlc_hw->d11core, D11REGOFFS(objdata), wlc_hw->LRL); wlc_hw 3041 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_b_pllreq(struct brcms_hardware *wlc_hw, bool set, u32 req_bit) wlc_hw 3044 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (mboolisset(wlc_hw->pllreq, req_bit)) wlc_hw 3047 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c mboolset(wlc_hw->pllreq, req_bit); wlc_hw 3049 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (mboolisset(wlc_hw->pllreq, BRCMS_PLLREQ_FLIP)) { wlc_hw 3050 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!wlc_hw->sbclk) wlc_hw 3051 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_xtal(wlc_hw, ON); wlc_hw 3054 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!mboolisset(wlc_hw->pllreq, req_bit)) wlc_hw 3057 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c mboolclr(wlc_hw->pllreq, req_bit); wlc_hw 3059 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (mboolisset(wlc_hw->pllreq, BRCMS_PLLREQ_FLIP)) { wlc_hw 3060 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->sbclk) wlc_hw 3061 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_xtal(wlc_hw, OFF); wlc_hw 3066 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_b_antsel_set(struct brcms_hardware *wlc_hw, u32 antsel_avail) wlc_hw 3068 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->antsel_avail = antsel_avail; wlc_hw 3134 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_b_reset(struct brcms_hardware *wlc_hw) wlc_hw 3137 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!brcms_deviceremoved(wlc_hw->wlc)) wlc_hw 3138 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_corereset(wlc_hw, BRCMS_USE_COREFLAGS); wlc_hw 3141 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_flushqueues(wlc_hw->wlc); wlc_hw 3182 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_hardware *wlc_hw = wlc->hw; wlc_hw 3183 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct bcma_device *core = wlc_hw->d11core; wlc_hw 3190 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_ucode *ucode = &wlc_hw->wlc->wl->ucode; wlc_hw 3192 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_dbg_info(core, "wl%d: core init\n", wlc_hw->unit); wlc_hw 3195 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_mctrl(wlc_hw, ~0, (MCTL_IHR_EN | MCTL_PSM_JMP_0 | MCTL_WAKE)); wlc_hw 3197 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_ucode_download(wlc_hw); wlc_hw 3205 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_mctrl(wlc_hw, ~0, wlc_hw 3213 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c "suspend!\n", wlc_hw->unit); wlc_hw 3219 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (D11REV_IS(wlc_hw->corerev, 17) || D11REV_IS(wlc_hw->corerev, 23)) { wlc_hw 3220 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (BRCMS_ISNPHY(wlc_hw->band)) wlc_hw 3221 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_write_inits(wlc_hw, ucode->d11n0initvals16); wlc_hw 3224 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c " %d\n", __func__, wlc_hw->unit, wlc_hw 3225 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->corerev); wlc_hw 3226 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c } else if (D11REV_IS(wlc_hw->corerev, 24)) { wlc_hw 3227 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (BRCMS_ISLCNPHY(wlc_hw->band)) wlc_hw 3228 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_write_inits(wlc_hw, ucode->d11lcn0initvals24); wlc_hw 3231 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c " %d\n", __func__, wlc_hw->unit, wlc_hw 3232 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->corerev); wlc_hw 3235 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c __func__, wlc_hw->unit, wlc_hw->corerev); wlc_hw 3240 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_corerev_fifofixup(wlc_hw); wlc_hw 3243 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c buf[TX_AC_BE_FIFO] = brcms_b_read_shm(wlc_hw, M_FIFOSIZE0); wlc_hw 3244 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (buf[TX_AC_BE_FIFO] != wlc_hw->xmtfifo_sz[TX_AC_BE_FIFO]) { wlc_hw 3248 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c buf[TX_AC_VI_FIFO] = brcms_b_read_shm(wlc_hw, M_FIFOSIZE1); wlc_hw 3249 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (buf[TX_AC_VI_FIFO] != wlc_hw->xmtfifo_sz[TX_AC_VI_FIFO]) { wlc_hw 3253 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c buf[TX_AC_BK_FIFO] = brcms_b_read_shm(wlc_hw, M_FIFOSIZE2); wlc_hw 3256 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (buf[TX_AC_BK_FIFO] != wlc_hw->xmtfifo_sz[TX_AC_BK_FIFO]) { wlc_hw 3260 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (buf[TX_AC_VO_FIFO] != wlc_hw->xmtfifo_sz[TX_AC_VO_FIFO]) { wlc_hw 3264 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c buf[TX_BCMC_FIFO] = brcms_b_read_shm(wlc_hw, M_FIFOSIZE3); wlc_hw 3267 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (buf[TX_BCMC_FIFO] != wlc_hw->xmtfifo_sz[TX_BCMC_FIFO]) { wlc_hw 3271 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (buf[TX_ATIM_FIFO] != wlc_hw->xmtfifo_sz[TX_ATIM_FIFO]) { wlc_hw 3278 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->xmtfifo_sz[i], i); wlc_hw 3286 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc_hw, M_MBURST_SIZE, MAXTXFRAMEBURST); wlc_hw 3287 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc_hw, M_MAX_ANTCNT, ANTCNT); wlc_hw 3293 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_mctrl(wlc_hw, wlc_hw 3309 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_macphyclk_set(wlc_hw, ON); wlc_hw 3312 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->fastpwrup_dly = ai_clkctl_fast_pwrup_delay(wlc_hw->sih); wlc_hw 3316 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc_hw, M_MACHW_VER, (u16) wlc_hw->corerev); wlc_hw 3319 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc_hw, M_MACHW_CAP_L, wlc_hw 3320 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c (u16) (wlc_hw->machwcap & 0xffff)); wlc_hw 3321 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc_hw, M_MACHW_CAP_H, wlc_hw 3322 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c (u16) ((wlc_hw-> wlc_hw 3329 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_write32(core, D11REGOFFS(objdata), wlc_hw->SRL); wlc_hw 3333 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_write32(core, D11REGOFFS(objdata), wlc_hw->LRL); wlc_hw 3336 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc_hw, M_SFRMTXCNTFBRTHSD, wlc_hw->SFBL); wlc_hw 3337 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc_hw, M_LFRMTXCNTFBRTHSD, wlc_hw->LFBL); wlc_hw 3344 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->di[i]) wlc_hw 3345 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c dma_txinit(wlc_hw->di[i]); wlc_hw 3349 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c dma_rxinit(wlc_hw->di[RX_FIFO]); wlc_hw 3350 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c dma_rxfill(wlc_hw->di[RX_FIFO]); wlc_hw 3353 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_b_init(struct brcms_hardware *wlc_hw, u16 chanspec) wlc_hw 3357 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_c_info *wlc = wlc_hw->wlc; wlc_hw 3360 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c fastclk = wlc_hw->forcefastclk; wlc_hw 3362 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_clkctl_clk(wlc_hw, BCMA_CLKMODE_FAST); wlc_hw 3368 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_setxband(wlc_hw, chspec_bandunit(chanspec)); wlc_hw 3369 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_phy_chanspec_radio_set(wlc_hw->band->pi, chanspec); wlc_hw 3372 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_phy_cal_init(wlc_hw->band->pi); wlc_hw 3386 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c mboolset(wlc_hw->wake_override, BRCMS_WAKE_OVERRIDE_MACSUSPEND); wlc_hw 3392 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->mac_suspend_depth = 1; wlc_hw 3396 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_clkctl_clk(wlc_hw, BCMA_CLKMODE_DYNAMIC); wlc_hw 3810 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_b_set_shortslot(struct brcms_hardware *wlc_hw, bool shortslot) wlc_hw 3812 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->shortslot = shortslot; wlc_hw 3814 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->band->bandtype == BRCM_BAND_2G && wlc_hw->up) { wlc_hw 3815 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_suspend_mac_and_wait(wlc_hw->wlc); wlc_hw 3816 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_update_slot_timing(wlc_hw, shortslot); wlc_hw 3817 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_enable_mac(wlc_hw->wlc); wlc_hw 3850 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_set_chanspec(struct brcms_hardware *wlc_hw, u16 chanspec, wlc_hw 3855 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_dbg_mac80211(wlc_hw->d11core, "wl%d: 0x%x\n", wlc_hw->unit, wlc_hw 3858 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->chanspec = chanspec; wlc_hw 3861 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->_nbands > 1) { wlc_hw 3863 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->band->bandunit != bandunit) { wlc_hw 3867 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->up) { wlc_hw 3868 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_phy_chanspec_radio_set(wlc_hw-> wlc_hw 3871 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_setband(wlc_hw, bandunit, chanspec); wlc_hw 3873 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_setxband(wlc_hw, bandunit); wlc_hw 3878 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_phy_initcal_enable(wlc_hw->band->pi, !mute_tx); wlc_hw 3880 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!wlc_hw->up) { wlc_hw 3881 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->clk) wlc_hw 3882 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_phy_txpower_limit_set(wlc_hw->band->pi, txpwr, wlc_hw 3884 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_phy_chanspec_radio_set(wlc_hw->band->pi, chanspec); wlc_hw 3886 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_phy_chanspec_set(wlc_hw->band->pi, chanspec); wlc_hw 3887 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_phy_txpower_limit_set(wlc_hw->band->pi, txpwr, chanspec); wlc_hw 3890 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_mute(wlc_hw, mute_tx); wlc_hw 4219 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_hardware *wlc_hw = wlc->hw; wlc_hw 4221 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!wlc_hw->up) wlc_hw 4225 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->now++; wlc_hw 4228 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_fifoerrors(wlc_hw); wlc_hw 4233 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_phy_watchdog(wlc_hw->band->pi); wlc_hw 4407 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_hardware *wlc_hw; wlc_hw 4427 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw = wlc->hw; wlc_hw 4428 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->wlc = wlc; wlc_hw 4429 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->unit = unit; wlc_hw 4430 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->band = wlc_hw->bandstate[0]; wlc_hw 4431 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->_piomode = piomode; wlc_hw 4434 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_info_init(wlc_hw); wlc_hw 4440 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->sih = ai_attach(core->bus); wlc_hw 4441 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->sih == NULL) { wlc_hw 4457 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->vendorid = pcidev->vendor; wlc_hw 4458 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->deviceid = pcidev->device; wlc_hw 4460 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->vendorid = core->bus->boardinfo.vendor; wlc_hw 4461 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->deviceid = core->bus->boardinfo.type; wlc_hw 4464 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->d11core = core; wlc_hw 4465 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->corerev = core->id.rev; wlc_hw 4468 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!brcms_c_isgoodchip(wlc_hw)) { wlc_hw 4474 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c ai_clkctl_init(wlc_hw->sih); wlc_hw 4482 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_clkctl_clk(wlc_hw, BCMA_CLKMODE_FAST); wlc_hw 4483 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_corereset(wlc_hw, BRCMS_USE_COREFLAGS); wlc_hw 4485 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!brcms_b_validate_chip_access(wlc_hw)) { wlc_hw 4497 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->boardrev = (u16) j; wlc_hw 4498 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!brcms_c_validboardtype(wlc_hw)) { wlc_hw 4501 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c unit, ai_get_boardtype(wlc_hw->sih), wlc_hw 4502 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->boardrev); wlc_hw 4506 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->sromrev = sprom->revision; wlc_hw 4507 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->boardflags = sprom->boardflags_lo + (sprom->boardflags_hi << 16); wlc_hw 4508 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->boardflags2 = sprom->boardflags2_lo + (sprom->boardflags2_hi << 16); wlc_hw 4510 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->boardflags & BFL_NOPLLDOWN) wlc_hw 4511 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_pllreq(wlc_hw, true, BRCMS_PLLREQ_SHARED); wlc_hw 4514 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->deviceid == BCM43224_D11N_ID || wlc_hw 4515 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->deviceid == BCM43224_D11N_ID_VEN1 || wlc_hw 4516 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->deviceid == BCM43224_CHIP_ID) wlc_hw 4518 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->_nbands = 2; wlc_hw 4520 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->_nbands = 1; wlc_hw 4522 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if ((ai_get_chip_id(wlc_hw->sih) == BCMA_CHIP_ID_BCM43225)) wlc_hw 4523 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->_nbands = 1; wlc_hw 4528 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->vendorid = wlc_hw->vendorid; wlc_hw 4529 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->deviceid = wlc_hw->deviceid; wlc_hw 4530 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->sih = wlc_hw->sih; wlc_hw 4531 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->corerev = wlc_hw->corerev; wlc_hw 4532 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->sromrev = wlc_hw->sromrev; wlc_hw 4533 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->boardrev = wlc_hw->boardrev; wlc_hw 4534 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->boardflags = wlc_hw->boardflags; wlc_hw 4535 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->boardflags2 = wlc_hw->boardflags2; wlc_hw 4536 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->_nbands = wlc_hw->_nbands; wlc_hw 4538 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->physhim = wlc_phy_shim_attach(wlc_hw, wlc->wl, wlc); wlc_hw 4540 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->physhim == NULL) { wlc_hw 4548 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c sha_params.sih = wlc_hw->sih; wlc_hw 4549 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c sha_params.physhim = wlc_hw->physhim; wlc_hw 4551 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c sha_params.corerev = wlc_hw->corerev; wlc_hw 4552 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c sha_params.vid = wlc_hw->vendorid; wlc_hw 4553 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c sha_params.did = wlc_hw->deviceid; wlc_hw 4554 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c sha_params.chip = ai_get_chip_id(wlc_hw->sih); wlc_hw 4555 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c sha_params.chiprev = ai_get_chiprev(wlc_hw->sih); wlc_hw 4556 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c sha_params.chippkg = ai_get_chippkg(wlc_hw->sih); wlc_hw 4557 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c sha_params.sromrev = wlc_hw->sromrev; wlc_hw 4558 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c sha_params.boardtype = ai_get_boardtype(wlc_hw->sih); wlc_hw 4559 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c sha_params.boardrev = wlc_hw->boardrev; wlc_hw 4560 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c sha_params.boardflags = wlc_hw->boardflags; wlc_hw 4561 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c sha_params.boardflags2 = wlc_hw->boardflags2; wlc_hw 4564 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->phy_sh = wlc_phy_shared_attach(&sha_params); wlc_hw 4565 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!wlc_hw->phy_sh) { wlc_hw 4571 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c for (j = 0; j < wlc_hw->_nbands; j++) { wlc_hw 4577 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_setxband(wlc_hw, j); wlc_hw 4579 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->band->bandunit = j; wlc_hw 4580 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->band->bandtype = j ? BRCM_BAND_5G : BRCM_BAND_2G; wlc_hw 4585 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->machwcap = bcma_read32(core, D11REGOFFS(machwcap)); wlc_hw 4586 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->machwcap_backup = wlc_hw->machwcap; wlc_hw 4589 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c WARN_ON(wlc_hw->corerev < XMTFIFOTBL_STARTREV || wlc_hw 4590 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c (wlc_hw->corerev - XMTFIFOTBL_STARTREV) > wlc_hw 4592 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->xmtfifo_sz = wlc_hw 4593 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c xmtfifo_sz[(wlc_hw->corerev - XMTFIFOTBL_STARTREV)]; wlc_hw 4594 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c WARN_ON(!wlc_hw->xmtfifo_sz[0]); wlc_hw 4597 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->band->pi = wlc_hw 4598 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_phy_attach(wlc_hw->phy_sh, core, wlc_hw 4599 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->band->bandtype, wlc_hw 4601 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->band->pi == NULL) { wlc_hw 4608 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_phy_machwcap_set(wlc_hw->band->pi, wlc_hw->machwcap); wlc_hw 4610 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_phy_get_phyversion(wlc_hw->band->pi, &wlc_hw->band->phytype, wlc_hw 4611 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c &wlc_hw->band->phyrev, wlc_hw 4612 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c &wlc_hw->band->radioid, wlc_hw 4613 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c &wlc_hw->band->radiorev); wlc_hw 4614 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->band->abgphy_encore = wlc_hw 4615 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_phy_get_encore(wlc_hw->band->pi); wlc_hw 4616 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->band->abgphy_encore = wlc_phy_get_encore(wlc_hw->band->pi); wlc_hw 4617 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->band->core_flags = wlc_hw 4618 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_phy_get_coreflags(wlc_hw->band->pi); wlc_hw 4621 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (BRCMS_ISNPHY(wlc_hw->band)) { wlc_hw 4622 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (NCONF_HAS(wlc_hw->band->phyrev)) wlc_hw 4626 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c } else if (BRCMS_ISLCNPHY(wlc_hw->band)) { wlc_hw 4627 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (LCNCONF_HAS(wlc_hw->band->phyrev)) wlc_hw 4635 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->band->phytype, wlc_hw->band->phyrev); wlc_hw 4650 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->band->pi = wlc_hw->band->pi; wlc_hw 4651 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->band->phytype = wlc_hw->band->phytype; wlc_hw 4652 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->band->phyrev = wlc_hw->band->phyrev; wlc_hw 4653 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->band->radioid = wlc_hw->band->radioid; wlc_hw 4654 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->band->radiorev = wlc_hw->band->radiorev; wlc_hw 4659 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->band->CWmin = APHY_CWMIN; wlc_hw 4660 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->band->CWmax = PHY_CWMAX; wlc_hw 4669 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_coredisable(wlc_hw); wlc_hw 4672 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_host_pci_down(wlc_hw->d11core->bus); wlc_hw 4675 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_xtal(wlc_hw, OFF); wlc_hw 4688 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_get_macaddr(wlc_hw, wlc_hw->etheraddr); wlc_hw 4690 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (is_broadcast_ether_addr(wlc_hw->etheraddr) || wlc_hw 4691 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c is_zero_ether_addr(wlc_hw->etheraddr)) { wlc_hw 4698 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_dbg_info(wlc_hw->d11core, "deviceid 0x%x nbands %d board 0x%x\n", wlc_hw 4699 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->deviceid, wlc_hw->_nbands, wlc_hw 4700 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c ai_get_boardtype(wlc_hw->sih)); wlc_hw 4840 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_hardware *wlc_hw = wlc->hw; wlc_hw 4842 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_detach_dmapio(wlc_hw); wlc_hw 4844 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c band = wlc_hw->band; wlc_hw 4845 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c for (i = 0; i < wlc_hw->_nbands; i++) { wlc_hw 4851 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c band = wlc_hw->bandstate[OTHERBANDUNIT(wlc)]; wlc_hw 4855 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c kfree(wlc_hw->phy_sh); wlc_hw 4857 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_phy_shim_detach(wlc_hw->physhim); wlc_hw 4859 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->sih) { wlc_hw 4860 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c ai_detach(wlc_hw->sih); wlc_hw 4861 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->sih = NULL; wlc_hw 4907 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_b_hw_up(struct brcms_hardware *wlc_hw) wlc_hw 4909 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->wlc->pub->hw_up) wlc_hw 4912 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_dbg_info(wlc_hw->d11core, "wl%d\n", wlc_hw->unit); wlc_hw 4918 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_xtal(wlc_hw, ON); wlc_hw 4919 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c ai_clkctl_init(wlc_hw->sih); wlc_hw 4920 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_clkctl_clk(wlc_hw, BCMA_CLKMODE_FAST); wlc_hw 4933 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_phy_por_inform(wlc_hw->band->pi); wlc_hw 4935 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->ucode_loaded = false; wlc_hw 4936 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->wlc->pub->hw_up = true; wlc_hw 4938 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if ((wlc_hw->boardflags & BFL_FEM) wlc_hw 4939 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c && (ai_get_chip_id(wlc_hw->sih) == BCMA_CHIP_ID_BCM4313)) { wlc_hw 4941 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c (wlc_hw->boardrev >= 0x1250 wlc_hw 4942 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c && (wlc_hw->boardflags & BFL_FEM_BT))) wlc_hw 4943 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c ai_epa_4313war(wlc_hw->sih); wlc_hw 4947 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static int brcms_b_up_prep(struct brcms_hardware *wlc_hw) wlc_hw 4949 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_dbg_info(wlc_hw->d11core, "wl%d\n", wlc_hw->unit); wlc_hw 4955 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_xtal(wlc_hw, ON); wlc_hw 4956 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c ai_clkctl_init(wlc_hw->sih); wlc_hw 4957 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_clkctl_clk(wlc_hw, BCMA_CLKMODE_FAST); wlc_hw 4963 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_host_pci_irq_ctl(wlc_hw->d11core->bus, wlc_hw->d11core, wlc_hw 4971 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (brcms_b_radio_read_hwdisabled(wlc_hw)) { wlc_hw 4973 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_host_pci_down(wlc_hw->d11core->bus); wlc_hw 4974 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_xtal(wlc_hw, OFF); wlc_hw 4978 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_host_pci_up(wlc_hw->d11core->bus); wlc_hw 4981 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_corereset(wlc_hw, BRCMS_USE_COREFLAGS); wlc_hw 4986 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static int brcms_b_up_finish(struct brcms_hardware *wlc_hw) wlc_hw 4988 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->up = true; wlc_hw 4989 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_phy_hw_state_upd(wlc_hw->band->pi, true); wlc_hw 4992 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_clkctl_clk(wlc_hw, BCMA_CLKMODE_DYNAMIC); wlc_hw 4993 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_intrson(wlc_hw->wlc->wl); wlc_hw 5116 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static int brcms_b_bmac_down_prep(struct brcms_hardware *wlc_hw) wlc_hw 5121 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!wlc_hw->up) wlc_hw 5124 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c dev_gone = brcms_deviceremoved(wlc_hw->wlc); wlc_hw 5128 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->wlc->macintmask = 0; wlc_hw 5131 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_intrsoff(wlc_hw->wlc->wl); wlc_hw 5134 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_clkctl_clk(wlc_hw, BCMA_CLKMODE_FAST); wlc_hw 5137 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c callbacks += wlc_phy_down(wlc_hw->band->pi); wlc_hw 5142 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static int brcms_b_down_finish(struct brcms_hardware *wlc_hw) wlc_hw 5147 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!wlc_hw->up) wlc_hw 5150 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->up = false; wlc_hw 5151 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_phy_hw_state_upd(wlc_hw->band->pi, false); wlc_hw 5153 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c dev_gone = brcms_deviceremoved(wlc_hw->wlc); wlc_hw 5156 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->sbclk = false; wlc_hw 5157 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->clk = false; wlc_hw 5158 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_phy_hw_clk_state_upd(wlc_hw->band->pi, false); wlc_hw 5161 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_flushqueues(wlc_hw->wlc); wlc_hw 5165 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (bcma_core_is_enabled(wlc_hw->d11core)) { wlc_hw 5166 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (bcma_read32(wlc_hw->d11core, wlc_hw 5168 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_suspend_mac_and_wait(wlc_hw->wlc); wlc_hw 5169 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c callbacks += brcms_reset(wlc_hw->wlc->wl); wlc_hw 5170 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_coredisable(wlc_hw); wlc_hw 5174 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!wlc_hw->noreset) { wlc_hw 5175 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_host_pci_down(wlc_hw->d11core->bus); wlc_hw 5176 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_xtal(wlc_hw, OFF); wlc_hw 5676 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c u16 brcms_b_rate_shm_offset(struct brcms_hardware *wlc_hw, u8 rate) wlc_hw 5696 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c return 2 * brcms_b_read_shm(wlc_hw, table_ptr + (index * 2)); wlc_hw 7003 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_read_tsf(struct brcms_hardware *wlc_hw, u32 *tsf_l_ptr, wlc_hw 7006 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct bcma_device *core = wlc_hw->d11core; wlc_hw 7297 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_hardware *wlc_hw = wlc->hw; wlc_hw 7315 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_template_ram(wlc_hw, T_BCN0_TPL_BASE, wlc_hw 7319 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc_hw, M_BCN0_FRM_BYTESZ, (u16) len); wlc_hw 7323 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_template_ram(wlc_hw, T_BCN1_TPL_BASE, wlc_hw 7327 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc_hw, M_BCN1_FRM_BYTESZ, (u16) len); wlc_hw 7331 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc_hw, M_TIMBPOS_INBEACON, wlc_hw 7333 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc_hw, M_DOT11_DTIMPERIOD, dtim_period); wlc_hw 7335 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc_hw, M_TIMBPOS_INBEACON, wlc_hw 7337 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc_hw, M_DOT11_DTIMPERIOD, 0); wlc_hw 7345 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_hardware *wlc_hw = wlc->hw; wlc_hw 7346 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct bcma_device *core = wlc_hw->d11core; wlc_hw 7518 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c int brcms_b_xmtfifo_sz_get(struct brcms_hardware *wlc_hw, uint fifo, wlc_hw 7524 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c *blocks = wlc_hw->xmtfifo_sz[fifo]; wlc_hw 7707 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_recv(struct brcms_hardware *wlc_hw, uint fifo, bool bound) wlc_hw 7725 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c morepending = dma_rx(wlc_hw->di[fifo], &recv_frames); wlc_hw 7730 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c dma_rxfill(wlc_hw->di[fifo]); wlc_hw 7754 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_recv(wlc_hw->wlc, p); wlc_hw 7767 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_hardware *wlc_hw = wlc->hw; wlc_hw 7768 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct bcma_device *core = wlc_hw->d11core; wlc_hw 7771 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(core, "wl%d: %s: dead chip\n", wlc_hw->unit, wlc_hw 7782 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->unit, macintstatus); wlc_hw 7812 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (brcms_b_recv(wlc_hw, RX_FIFO, bounded)) wlc_hw 7817 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_phy_noise_sample_intr(wlc_hw->band->pi); wlc_hw 7821 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c "(seconds). Resetting.\n", wlc_hw->unit, wlc_hw->now); wlc_hw 7824 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c __func__, ai_get_chip_id(wlc_hw->sih), wlc_hw 7825 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c ai_get_chiprev(wlc_hw->sih)); wlc_hw 7826 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_fatal_error(wlc_hw->wlc->wl); wlc_hw 7835 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c " RF Disable Input\n", wlc_hw->unit); wlc_hw 7847 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_fatal_error(wlc_hw->wlc->wl); wlc_hw 621 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h int brcms_b_xmtfifo_sz_get(struct brcms_hardware *wlc_hw, uint fifo, wlc_hw 638 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h void brcms_b_antsel_type_set(struct brcms_hardware *wlc_hw, u8 antsel_type); wlc_hw 639 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h void brcms_b_set_chanspec(struct brcms_hardware *wlc_hw, u16 chanspec, wlc_hw 641 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h void brcms_b_write_shm(struct brcms_hardware *wlc_hw, uint offset, u16 v); wlc_hw 642 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h u16 brcms_b_read_shm(struct brcms_hardware *wlc_hw, uint offset); wlc_hw 643 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h void brcms_b_mhf(struct brcms_hardware *wlc_hw, u8 idx, u16 mask, u16 val, wlc_hw 645 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h void brcms_b_corereset(struct brcms_hardware *wlc_hw, u32 flags); wlc_hw 646 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h void brcms_b_mctrl(struct brcms_hardware *wlc_hw, u32 mask, u32 val); wlc_hw 647 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h void brcms_b_phy_reset(struct brcms_hardware *wlc_hw); wlc_hw 648 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h void brcms_b_bw_set(struct brcms_hardware *wlc_hw, u16 bw); wlc_hw 649 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h void brcms_b_core_phypll_reset(struct brcms_hardware *wlc_hw); wlc_hw 650 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h void brcms_c_ucode_wake_override_set(struct brcms_hardware *wlc_hw, wlc_hw 652 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h void brcms_c_ucode_wake_override_clear(struct brcms_hardware *wlc_hw, wlc_hw 654 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h void brcms_b_write_template_ram(struct brcms_hardware *wlc_hw, int offset, wlc_hw 656 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h u16 brcms_b_rate_shm_offset(struct brcms_hardware *wlc_hw, u8 rate); wlc_hw 657 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h void brcms_b_copyto_objmem(struct brcms_hardware *wlc_hw, uint offset, wlc_hw 659 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h void brcms_b_copyfrom_objmem(struct brcms_hardware *wlc_hw, uint offset, wlc_hw 661 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h void brcms_b_switch_macfreq(struct brcms_hardware *wlc_hw, u8 spurmode); wlc_hw 662 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h u16 brcms_b_get_txant(struct brcms_hardware *wlc_hw); wlc_hw 663 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h void brcms_b_phyclk_fgc(struct brcms_hardware *wlc_hw, bool clk); wlc_hw 664 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h void brcms_b_macphyclk_set(struct brcms_hardware *wlc_hw, bool clk); wlc_hw 665 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h void brcms_b_core_phypll_ctl(struct brcms_hardware *wlc_hw, bool on); wlc_hw 666 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h void brcms_b_txant_set(struct brcms_hardware *wlc_hw, u16 phytxant); wlc_hw 667 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h void brcms_b_band_stf_ss_set(struct brcms_hardware *wlc_hw, u8 stf_mode); wlc_hw 33 drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c struct brcms_hardware *wlc_hw; /* pointer to main wlc_hw structure */ wlc_hw 38 drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c struct phy_shim_info *wlc_phy_shim_attach(struct brcms_hardware *wlc_hw, wlc_hw 47 drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c physhim->wlc_hw = wlc_hw; wlc_hw 101 drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c brcms_b_write_shm(physhim->wlc_hw, offset, v); wlc_hw 106 drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c return brcms_b_read_shm(physhim->wlc_hw, offset); wlc_hw 113 drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c brcms_b_mhf(physhim->wlc_hw, idx, mask, val, bands); wlc_hw 118 drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c brcms_b_corereset(physhim->wlc_hw, flags); wlc_hw 128 drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c brcms_b_switch_macfreq(physhim->wlc_hw, spurmode); wlc_hw 138 drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c brcms_b_mctrl(physhim->wlc_hw, mask, val); wlc_hw 143 drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c brcms_b_phy_reset(physhim->wlc_hw); wlc_hw 148 drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c brcms_b_bw_set(physhim->wlc_hw, bw); wlc_hw 153 drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c return brcms_b_get_txant(physhim->wlc_hw); wlc_hw 158 drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c brcms_b_phyclk_fgc(physhim->wlc_hw, clk); wlc_hw 163 drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c brcms_b_macphyclk_set(physhim->wlc_hw, clk); wlc_hw 168 drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c brcms_b_core_phypll_ctl(physhim->wlc_hw, on); wlc_hw 173 drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c brcms_b_core_phypll_reset(physhim->wlc_hw); wlc_hw 178 drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c brcms_c_ucode_wake_override_set(physhim->wlc_hw, wlc_hw 184 drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c brcms_c_ucode_wake_override_clear(physhim->wlc_hw, wlc_hw 192 drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c brcms_b_write_template_ram(physhim->wlc_hw, offset, len, buf); wlc_hw 197 drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c return brcms_b_rate_shm_offset(physhim->wlc_hw, rate); wlc_hw 208 drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c brcms_b_copyfrom_objmem(physhim->wlc_hw, offset, buf, len, sel); wlc_hw 215 drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c brcms_b_copyto_objmem(physhim->wlc_hw, offset, buf, l, sel); wlc_hw 127 drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.h struct phy_shim_info *wlc_phy_shim_attach(struct brcms_hardware *wlc_hw,