Lines Matching refs:sdiodev

434 	struct brcmf_sdio_dev *sdiodev;	/* sdio device handler */  member
691 struct brcmf_sdio_dev *sdiodev) in brcmf_sdio_get_fwnames() argument
709 strlcpy(sdiodev->fw_name, brcmf_firmware_path, in brcmf_sdio_get_fwnames()
710 sizeof(sdiodev->fw_name)); in brcmf_sdio_get_fwnames()
711 strlcpy(sdiodev->nvram_name, brcmf_firmware_path, in brcmf_sdio_get_fwnames()
712 sizeof(sdiodev->nvram_name)); in brcmf_sdio_get_fwnames()
716 strlcat(sdiodev->fw_name, "/", in brcmf_sdio_get_fwnames()
717 sizeof(sdiodev->fw_name)); in brcmf_sdio_get_fwnames()
718 strlcat(sdiodev->nvram_name, "/", in brcmf_sdio_get_fwnames()
719 sizeof(sdiodev->nvram_name)); in brcmf_sdio_get_fwnames()
722 strlcat(sdiodev->fw_name, brcmf_fwname_data[i].bin, in brcmf_sdio_get_fwnames()
723 sizeof(sdiodev->fw_name)); in brcmf_sdio_get_fwnames()
724 strlcat(sdiodev->nvram_name, brcmf_fwname_data[i].nv, in brcmf_sdio_get_fwnames()
725 sizeof(sdiodev->nvram_name)); in brcmf_sdio_get_fwnames()
757 *regvar = brcmf_sdiod_regrl(bus->sdiodev, core->base + offset, &ret); in r_sdreg32()
768 brcmf_sdiod_regwl(bus->sdiodev, core->base + reg_offset, regval, &ret); in w_sdreg32()
784 brcmf_sdiod_regwb(bus->sdiodev, SBSDIO_FUNC1_SLEEPCSR, in brcmf_sdio_kso_control()
811 rd_val = brcmf_sdiod_regrb(bus->sdiodev, SBSDIO_FUNC1_SLEEPCSR, in brcmf_sdio_kso_control()
817 brcmf_sdiod_regwb(bus->sdiodev, SBSDIO_FUNC1_SLEEPCSR, in brcmf_sdio_kso_control()
854 brcmf_sdiod_regwb(bus->sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, in brcmf_sdio_htclk()
862 clkctl = brcmf_sdiod_regrb(bus->sdiodev, in brcmf_sdio_htclk()
872 devctl = brcmf_sdiod_regrb(bus->sdiodev, in brcmf_sdio_htclk()
881 brcmf_sdiod_regwb(bus->sdiodev, SBSDIO_DEVICE_CTL, in brcmf_sdio_htclk()
889 devctl = brcmf_sdiod_regrb(bus->sdiodev, in brcmf_sdio_htclk()
892 brcmf_sdiod_regwb(bus->sdiodev, SBSDIO_DEVICE_CTL, in brcmf_sdio_htclk()
900 clkctl = brcmf_sdiod_regrb(bus->sdiodev, in brcmf_sdio_htclk()
934 devctl = brcmf_sdiod_regrb(bus->sdiodev, in brcmf_sdio_htclk()
937 brcmf_sdiod_regwb(bus->sdiodev, SBSDIO_DEVICE_CTL, in brcmf_sdio_htclk()
942 brcmf_sdiod_regwb(bus->sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, in brcmf_sdio_htclk()
1033 clkcsr = brcmf_sdiod_regrb(bus->sdiodev, in brcmf_sdio_bus_sleep()
1038 brcmf_sdiod_regwb(bus->sdiodev, in brcmf_sdio_bus_sleep()
1086 sdio_claim_host(bus->sdiodev->func[1]); in brcmf_sdio_readshared()
1096 rv = brcmf_sdiod_ramrw(bus->sdiodev, false, shaddr, in brcmf_sdio_readshared()
1115 rv = brcmf_sdiod_ramrw(bus->sdiodev, false, addr, (u8 *)&sh_le, in brcmf_sdio_readshared()
1120 sdio_release_host(bus->sdiodev->func[1]); in brcmf_sdio_readshared()
1142 sdio_release_host(bus->sdiodev->func[1]); in brcmf_sdio_readshared()
1253 brcmf_sdiod_abort(bus->sdiodev, SDIO_FUNC_2); in brcmf_sdio_rxfail()
1255 brcmf_sdiod_regwb(bus->sdiodev, SBSDIO_FUNC1_FRAMECTRL, in brcmf_sdio_rxfail()
1261 hi = brcmf_sdiod_regrb(bus->sdiodev, in brcmf_sdio_rxfail()
1263 lo = brcmf_sdiod_regrb(bus->sdiodev, in brcmf_sdio_rxfail()
1298 struct brcmf_sdio_dev *sdiodev = bus->sdiodev; in brcmf_sdio_txfail() local
1305 brcmf_sdiod_abort(sdiodev, SDIO_FUNC_2); in brcmf_sdio_txfail()
1306 brcmf_sdiod_regwb(sdiodev, SBSDIO_FUNC1_FRAMECTRL, SFC_WF_TERM, NULL); in brcmf_sdio_txfail()
1310 hi = brcmf_sdiod_regrb(sdiodev, SBSDIO_FUNC1_WFRAMEBCHI, NULL); in brcmf_sdio_txfail()
1311 lo = brcmf_sdiod_regrb(sdiodev, SBSDIO_FUNC1_WFRAMEBCLO, NULL); in brcmf_sdio_txfail()
1651 sdio_claim_host(bus->sdiodev->func[1]); in brcmf_sdio_rxglom()
1652 errcode = brcmf_sdiod_recv_chain(bus->sdiodev, in brcmf_sdio_rxglom()
1654 sdio_release_host(bus->sdiodev->func[1]); in brcmf_sdio_rxglom()
1662 sdio_claim_host(bus->sdiodev->func[1]); in brcmf_sdio_rxglom()
1671 sdio_release_host(bus->sdiodev->func[1]); in brcmf_sdio_rxglom()
1681 sdio_claim_host(bus->sdiodev->func[1]); in brcmf_sdio_rxglom()
1684 sdio_release_host(bus->sdiodev->func[1]); in brcmf_sdio_rxglom()
1700 sdio_claim_host(bus->sdiodev->func[1]); in brcmf_sdio_rxglom()
1703 sdio_release_host(bus->sdiodev->func[1]); in brcmf_sdio_rxglom()
1713 sdio_claim_host(bus->sdiodev->func[1]); in brcmf_sdio_rxglom()
1724 sdio_release_host(bus->sdiodev->func[1]); in brcmf_sdio_rxglom()
1757 brcmf_rx_frame(bus->sdiodev->dev, pfirst); in brcmf_sdio_rxglom()
1824 ((len + pad) < bus->sdiodev->bus_if->maxctl)) in brcmf_sdio_read_control()
1831 if ((rdlen + BRCMF_FIRSTREAD) > bus->sdiodev->bus_if->maxctl) { in brcmf_sdio_read_control()
1833 rdlen, bus->sdiodev->bus_if->maxctl); in brcmf_sdio_read_control()
1838 if ((len - doff) > bus->sdiodev->bus_if->maxctl) { in brcmf_sdio_read_control()
1840 len, len - doff, bus->sdiodev->bus_if->maxctl); in brcmf_sdio_read_control()
1847 sdret = brcmf_sdiod_recv_buf(bus->sdiodev, rbuf, rdlen); in brcmf_sdio_read_control()
1912 !bus->rxskip && rxleft && bus->sdiodev->state == BRCMF_SDIOD_DATA; in brcmf_sdio_readframes()
1929 sdio_claim_host(bus->sdiodev->func[1]); in brcmf_sdio_readframes()
1931 ret = brcmf_sdiod_recv_buf(bus->sdiodev, in brcmf_sdio_readframes()
1939 sdio_release_host(bus->sdiodev->func[1]); in brcmf_sdio_readframes()
1949 sdio_release_host(bus->sdiodev->func[1]); in brcmf_sdio_readframes()
1965 sdio_release_host(bus->sdiodev->func[1]); in brcmf_sdio_readframes()
1982 sdio_release_host(bus->sdiodev->func[1]); in brcmf_sdio_readframes()
1988 ret = brcmf_sdiod_recv_pkt(bus->sdiodev, pkt); in brcmf_sdio_readframes()
1990 sdio_release_host(bus->sdiodev->func[1]); in brcmf_sdio_readframes()
1996 sdio_claim_host(bus->sdiodev->func[1]); in brcmf_sdio_readframes()
1999 sdio_release_host(bus->sdiodev->func[1]); in brcmf_sdio_readframes()
2010 sdio_claim_host(bus->sdiodev->func[1]); in brcmf_sdio_readframes()
2023 sdio_release_host(bus->sdiodev->func[1]); in brcmf_sdio_readframes()
2027 sdio_release_host(bus->sdiodev->func[1]); in brcmf_sdio_readframes()
2043 sdio_claim_host(bus->sdiodev->func[1]); in brcmf_sdio_readframes()
2045 sdio_release_host(bus->sdiodev->func[1]); in brcmf_sdio_readframes()
2068 sdio_claim_host(bus->sdiodev->func[1]); in brcmf_sdio_readframes()
2070 sdio_release_host(bus->sdiodev->func[1]); in brcmf_sdio_readframes()
2095 brcmf_rx_frame(bus->sdiodev->dev, pkt); in brcmf_sdio_readframes()
2131 bus->sdiodev->bus_if->tx_realloc++; in brcmf_sdio_txpkt_hdalign()
2156 struct brcmf_sdio_dev *sdiodev; in brcmf_sdio_txpkt_prep_sg() local
2163 sdiodev = bus->sdiodev; in brcmf_sdio_txpkt_prep_sg()
2164 blksize = sdiodev->func[SDIO_FUNC_2]->cur_blksize; in brcmf_sdio_txpkt_prep_sg()
2343 sdio_claim_host(bus->sdiodev->func[1]); in brcmf_sdio_txpkt()
2344 ret = brcmf_sdiod_send_pkt(bus->sdiodev, pktq); in brcmf_sdio_txpkt()
2350 sdio_release_host(bus->sdiodev->func[1]); in brcmf_sdio_txpkt()
2358 brcmf_txcomplete(bus->sdiodev->dev, pkt_next, ret == 0); in brcmf_sdio_txpkt()
2381 bus->sdiodev->txglomsz); in brcmf_sdio_sendfromq()
2404 sdio_claim_host(bus->sdiodev->func[1]); in brcmf_sdio_sendfromq()
2408 sdio_release_host(bus->sdiodev->func[1]); in brcmf_sdio_sendfromq()
2418 if ((bus->sdiodev->state == BRCMF_SDIOD_DATA) && in brcmf_sdio_sendfromq()
2421 brcmf_txflowblock(bus->sdiodev->dev, false); in brcmf_sdio_sendfromq()
2478 ret = brcmf_sdiod_send_buf(bus->sdiodev, frame, len); in brcmf_sdio_tx_ctrlframe()
2495 struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; in brcmf_sdio_bus_stop() local
2496 struct brcmf_sdio *bus = sdiodev->bus; in brcmf_sdio_bus_stop()
2506 if (sdiodev->state != BRCMF_SDIOD_NOMEDIUM) { in brcmf_sdio_bus_stop()
2507 sdio_claim_host(sdiodev->func[1]); in brcmf_sdio_bus_stop()
2518 saveclk = brcmf_sdiod_regrb(sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, in brcmf_sdio_bus_stop()
2521 brcmf_sdiod_regwb(sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, in brcmf_sdio_bus_stop()
2529 sdio_disable_func(sdiodev->func[SDIO_FUNC_2]); in brcmf_sdio_bus_stop()
2535 sdio_release_host(sdiodev->func[1]); in brcmf_sdio_bus_stop()
2559 if (bus->sdiodev->oob_irq_requested) { in brcmf_sdio_clrintr()
2560 spin_lock_irqsave(&bus->sdiodev->irq_en_lock, flags); in brcmf_sdio_clrintr()
2561 if (!bus->sdiodev->irq_en && !atomic_read(&bus->ipend)) { in brcmf_sdio_clrintr()
2562 enable_irq(bus->sdiodev->pdata->oob_irq_nr); in brcmf_sdio_clrintr()
2563 bus->sdiodev->irq_en = true; in brcmf_sdio_clrintr()
2565 spin_unlock_irqrestore(&bus->sdiodev->irq_en_lock, flags); in brcmf_sdio_clrintr()
2579 val = brcmf_sdiod_regrl(bus->sdiodev, addr, &ret); in brcmf_sdio_intr_rstatus()
2589 brcmf_sdiod_regwl(bus->sdiodev, addr, val, &ret); in brcmf_sdio_intr_rstatus()
2607 sdio_claim_host(bus->sdiodev->func[1]); in brcmf_sdio_dpc()
2615 devctl = brcmf_sdiod_regrb(bus->sdiodev, in brcmf_sdio_dpc()
2620 clkctl = brcmf_sdiod_regrb(bus->sdiodev, in brcmf_sdio_dpc()
2627 devctl = brcmf_sdiod_regrb(bus->sdiodev, in brcmf_sdio_dpc()
2630 brcmf_sdiod_regwb(bus->sdiodev, SBSDIO_DEVICE_CTL, in brcmf_sdio_dpc()
2671 sdio_release_host(bus->sdiodev->func[1]); in brcmf_sdio_dpc()
2714 sdio_claim_host(bus->sdiodev->func[1]); in brcmf_sdio_dpc()
2722 sdio_release_host(bus->sdiodev->func[1]); in brcmf_sdio_dpc()
2734 if ((bus->sdiodev->state != BRCMF_SDIOD_DATA) || (err != 0)) { in brcmf_sdio_dpc()
2738 sdio_claim_host(bus->sdiodev->func[1]); in brcmf_sdio_dpc()
2745 sdio_release_host(bus->sdiodev->func[1]); in brcmf_sdio_dpc()
2759 struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; in brcmf_sdio_bus_gettxq() local
2760 struct brcmf_sdio *bus = sdiodev->bus; in brcmf_sdio_bus_gettxq()
2812 struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; in brcmf_sdio_bus_txdata() local
2813 struct brcmf_sdio *bus = sdiodev->bus; in brcmf_sdio_bus_txdata()
2816 if (sdiodev->state != BRCMF_SDIOD_DATA) in brcmf_sdio_bus_txdata()
2873 rv = brcmf_sdiod_ramrw(bus->sdiodev, false, addr, (u8 *)&c->log_le, in brcmf_sdio_readconsole()
2899 rv = brcmf_sdiod_ramrw(bus->sdiodev, false, addr, c->buf, c->bufsize); in brcmf_sdio_readconsole()
2941 struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; in brcmf_sdio_bus_txctl() local
2942 struct brcmf_sdio *bus = sdiodev->bus; in brcmf_sdio_bus_txctl()
2946 if (sdiodev->state != BRCMF_SDIOD_DATA) in brcmf_sdio_bus_txctl()
2960 sdio_claim_host(bus->sdiodev->func[1]); in brcmf_sdio_bus_txctl()
2966 sdio_release_host(bus->sdiodev->func[1]); in brcmf_sdio_bus_txctl()
2994 rv = brcmf_sdiod_ramrw(bus->sdiodev, false, addr, in brcmf_sdio_dump_console()
3001 rv = brcmf_sdiod_ramrw(bus->sdiodev, false, addr, in brcmf_sdio_dump_console()
3008 rv = brcmf_sdiod_ramrw(bus->sdiodev, false, addr, in brcmf_sdio_dump_console()
3023 rv = brcmf_sdiod_ramrw(bus->sdiodev, false, console_ptr, (u8 *)conbuf, in brcmf_sdio_dump_console()
3052 error = brcmf_sdiod_ramrw(bus->sdiodev, false, sh->trap_addr, (u8 *)&tr, in brcmf_sdio_trap_info()
3090 sdio_claim_host(bus->sdiodev->func[1]); in brcmf_sdio_assert_info()
3092 error = brcmf_sdiod_ramrw(bus->sdiodev, false, in brcmf_sdio_assert_info()
3098 error = brcmf_sdiod_ramrw(bus->sdiodev, false, in brcmf_sdio_assert_info()
3103 sdio_release_host(bus->sdiodev->func[1]); in brcmf_sdio_assert_info()
3165 struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; in brcmf_debugfs_sdio_count_read() local
3166 struct brcmf_sdio_count *sdcnt = &sdiodev->bus->sdcnt; in brcmf_debugfs_sdio_count_read()
3203 struct brcmf_pub *drvr = bus->sdiodev->bus_if->drvr; in brcmf_sdio_debugfs_create()
3236 struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; in brcmf_sdio_bus_rxctl() local
3237 struct brcmf_sdio *bus = sdiodev->bus; in brcmf_sdio_bus_rxctl()
3240 if (sdiodev->state != BRCMF_SDIOD_DATA) in brcmf_sdio_bus_rxctl()
3280 brcmf_sdio_verifymemory(struct brcmf_sdio_dev *sdiodev, u32 ram_addr, in brcmf_sdio_verifymemory() argument
3303 err = brcmf_sdiod_ramrw(sdiodev, false, address, ram_cmp, len); in brcmf_sdio_verifymemory()
3325 brcmf_sdio_verifymemory(struct brcmf_sdio_dev *sdiodev, u32 ram_addr, in brcmf_sdio_verifymemory() argument
3339 err = brcmf_sdiod_ramrw(bus->sdiodev, true, bus->ci->rambase, in brcmf_sdio_download_code_file()
3344 else if (!brcmf_sdio_verifymemory(bus->sdiodev, bus->ci->rambase, in brcmf_sdio_download_code_file()
3360 err = brcmf_sdiod_ramrw(bus->sdiodev, true, address, vars, varsz); in brcmf_sdio_download_nvram()
3364 else if (!brcmf_sdio_verifymemory(bus->sdiodev, address, vars, varsz)) in brcmf_sdio_download_nvram()
3377 sdio_claim_host(bus->sdiodev->func[1]); in brcmf_sdio_download_firmware()
3405 brcmf_sdiod_change_state(bus->sdiodev, BRCMF_SDIOD_DATA); in brcmf_sdio_download_firmware()
3410 sdio_release_host(bus->sdiodev->func[1]); in brcmf_sdio_download_firmware()
3421 val = brcmf_sdiod_regrb(bus->sdiodev, SBSDIO_FUNC1_WAKEUPCTRL, &err); in brcmf_sdio_sr_init()
3428 brcmf_sdiod_regwb(bus->sdiodev, SBSDIO_FUNC1_WAKEUPCTRL, val, &err); in brcmf_sdio_sr_init()
3435 brcmf_sdiod_regwb(bus->sdiodev, SDIO_CCCR_BRCM_CARDCAP, in brcmf_sdio_sr_init()
3444 brcmf_sdiod_regwb(bus->sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, in brcmf_sdio_sr_init()
3468 val = brcmf_sdiod_regrb(bus->sdiodev, SBSDIO_FUNC1_SLEEPCSR, &err); in brcmf_sdio_kso_init()
3477 brcmf_sdiod_regwb(bus->sdiodev, SBSDIO_FUNC1_SLEEPCSR, in brcmf_sdio_kso_init()
3492 struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; in brcmf_sdio_bus_preinit() local
3493 struct brcmf_sdio *bus = sdiodev->bus; in brcmf_sdio_bus_preinit()
3510 if (sdiodev->pdata) in brcmf_sdio_bus_preinit()
3511 value = sdiodev->pdata->sd_sgentry_align; in brcmf_sdio_bus_preinit()
3522 if (sdiodev->sg_support) { in brcmf_sdio_bus_preinit()
3525 pad_size = bus->sdiodev->func[2]->cur_blksize << 1; in brcmf_sdio_bus_preinit()
3526 err = brcmf_iovar_data_set(bus->sdiodev->dev, "bus:rxglom", in brcmf_sdio_bus_preinit()
3536 brcmf_bus_add_txhdrlen(bus->sdiodev->dev, bus->tx_hdrlen); in brcmf_sdio_bus_preinit()
3545 struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; in brcmf_sdio_bus_get_ramsize() local
3546 struct brcmf_sdio *bus = sdiodev->bus; in brcmf_sdio_bus_get_ramsize()
3555 struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; in brcmf_sdio_bus_get_memdump() local
3556 struct brcmf_sdio *bus = sdiodev->bus; in brcmf_sdio_bus_get_memdump()
3567 sdio_claim_host(sdiodev->func[1]); in brcmf_sdio_bus_get_memdump()
3571 err = brcmf_sdiod_ramrw(sdiodev, false, address, data, len); in brcmf_sdio_bus_get_memdump()
3583 sdio_release_host(sdiodev->func[1]); in brcmf_sdio_bus_get_memdump()
3640 sdio_claim_host(bus->sdiodev->func[1]); in brcmf_sdio_bus_watchdog()
3641 devpend = brcmf_sdiod_regrb(bus->sdiodev, in brcmf_sdio_bus_watchdog()
3644 sdio_release_host(bus->sdiodev->func[1]); in brcmf_sdio_bus_watchdog()
3665 if (bus->sdiodev->state == BRCMF_SDIOD_DATA && BRCMF_FWCON_ON() && in brcmf_sdio_bus_watchdog()
3670 sdio_claim_host(bus->sdiodev->func[1]); in brcmf_sdio_bus_watchdog()
3676 sdio_release_host(bus->sdiodev->func[1]); in brcmf_sdio_bus_watchdog()
3689 sdio_claim_host(bus->sdiodev->func[1]); in brcmf_sdio_bus_watchdog()
3693 sdio_release_host(bus->sdiodev->func[1]); in brcmf_sdio_bus_watchdog()
3716 if (brcmf_sdiod_freezing(bus->sdiodev)) { in brcmf_sdio_dataworker()
3717 brcmf_sdiod_change_state(bus->sdiodev, BRCMF_SDIOD_DOWN); in brcmf_sdio_dataworker()
3718 brcmf_sdiod_try_freeze(bus->sdiodev); in brcmf_sdio_dataworker()
3719 brcmf_sdiod_change_state(bus->sdiodev, BRCMF_SDIOD_DATA); in brcmf_sdio_dataworker()
3724 brcmf_sdio_drivestrengthinit(struct brcmf_sdio_dev *sdiodev, in brcmf_sdio_drivestrengthinit() argument
3781 brcmf_sdiod_regwl(sdiodev, addr, 1, NULL); in brcmf_sdio_drivestrengthinit()
3782 cc_data_temp = brcmf_sdiod_regrl(sdiodev, addr, NULL); in brcmf_sdio_drivestrengthinit()
3786 brcmf_sdiod_regwl(sdiodev, addr, cc_data_temp, NULL); in brcmf_sdio_drivestrengthinit()
3795 struct brcmf_sdio_dev *sdiodev = ctx; in brcmf_sdio_buscoreprep() local
3801 brcmf_sdiod_regwb(sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, clkset, &err); in brcmf_sdio_buscoreprep()
3809 clkval = brcmf_sdiod_regrb(sdiodev, in brcmf_sdio_buscoreprep()
3818 SPINWAIT(((clkval = brcmf_sdiod_regrb(sdiodev, in brcmf_sdio_buscoreprep()
3829 brcmf_sdiod_regwb(sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, clkset, &err); in brcmf_sdio_buscoreprep()
3833 brcmf_sdiod_regwb(sdiodev, SBSDIO_FUNC1_SDIOPULLUP, 0, NULL); in brcmf_sdio_buscoreprep()
3841 struct brcmf_sdio_dev *sdiodev = ctx; in brcmf_sdio_buscore_activate() local
3848 brcmf_sdiod_regwl(sdiodev, reg_addr, 0xFFFFFFFF, NULL); in brcmf_sdio_buscore_activate()
3852 brcmf_sdiod_ramrw(sdiodev, true, 0, (void *)&rstvec, in brcmf_sdio_buscore_activate()
3858 struct brcmf_sdio_dev *sdiodev = ctx; in brcmf_sdio_buscore_read32() local
3861 val = brcmf_sdiod_regrl(sdiodev, addr, NULL); in brcmf_sdio_buscore_read32()
3862 if (sdiodev->func[0]->device == SDIO_DEVICE_ID_BROADCOM_4335_4339 && in brcmf_sdio_buscore_read32()
3875 struct brcmf_sdio_dev *sdiodev = ctx; in brcmf_sdio_buscore_write32() local
3877 brcmf_sdiod_regwl(sdiodev, addr, val, NULL); in brcmf_sdio_buscore_write32()
3896 sdio_claim_host(bus->sdiodev->func[1]); in brcmf_sdio_probe_attach()
3899 brcmf_sdiod_regrl(bus->sdiodev, SI_ENUM_BASE, NULL)); in brcmf_sdio_probe_attach()
3906 brcmf_sdiod_regwb(bus->sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, in brcmf_sdio_probe_attach()
3909 clkctl = brcmf_sdiod_regrb(bus->sdiodev, in brcmf_sdio_probe_attach()
3918 bus->ci = brcmf_chip_attach(bus->sdiodev, &brcmf_sdio_buscore_ops); in brcmf_sdio_probe_attach()
3930 if ((bus->sdiodev->pdata) && (bus->sdiodev->pdata->drive_strength)) in brcmf_sdio_probe_attach()
3931 drivestrength = bus->sdiodev->pdata->drive_strength; in brcmf_sdio_probe_attach()
3934 brcmf_sdio_drivestrengthinit(bus->sdiodev, bus->ci, drivestrength); in brcmf_sdio_probe_attach()
3937 reg_val = brcmf_sdiod_regrb(bus->sdiodev, in brcmf_sdio_probe_attach()
3944 brcmf_sdiod_regwb(bus->sdiodev, in brcmf_sdio_probe_attach()
3952 reg_val = brcmf_sdiod_regrl(bus->sdiodev, reg_addr, &err); in brcmf_sdio_probe_attach()
3958 brcmf_sdiod_regwl(bus->sdiodev, reg_addr, reg_val, &err); in brcmf_sdio_probe_attach()
3962 sdio_release_host(bus->sdiodev->func[1]); in brcmf_sdio_probe_attach()
3983 sdio_release_host(bus->sdiodev->func[1]); in brcmf_sdio_probe_attach()
3995 brcmf_sdiod_freezer_count(bus->sdiodev); in brcmf_sdio_watchdog_thread()
3999 brcmf_sdiod_freezer_uncount(bus->sdiodev); in brcmf_sdio_watchdog_thread()
4001 brcmf_sdiod_freezer_count(bus->sdiodev); in brcmf_sdio_watchdog_thread()
4002 brcmf_sdiod_try_freeze(bus->sdiodev); in brcmf_sdio_watchdog_thread()
4045 struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; in brcmf_sdio_firmware_callback() local
4046 struct brcmf_sdio *bus = sdiodev->bus; in brcmf_sdio_firmware_callback()
4066 sdio_claim_host(sdiodev->func[1]); in brcmf_sdio_firmware_callback()
4074 saveclk = brcmf_sdiod_regrb(sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, &err); in brcmf_sdio_firmware_callback()
4076 brcmf_sdiod_regwb(sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, in brcmf_sdio_firmware_callback()
4087 err = sdio_enable_func(sdiodev->func[SDIO_FUNC_2]); in brcmf_sdio_firmware_callback()
4099 brcmf_sdiod_regwb(sdiodev, SBSDIO_WATERMARK, 8, &err); in brcmf_sdio_firmware_callback()
4102 sdio_disable_func(sdiodev->func[SDIO_FUNC_2]); in brcmf_sdio_firmware_callback()
4110 brcmf_sdiod_regwb(sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, in brcmf_sdio_firmware_callback()
4115 err = brcmf_sdiod_intr_register(sdiodev); in brcmf_sdio_firmware_callback()
4124 sdio_release_host(sdiodev->func[1]); in brcmf_sdio_firmware_callback()
4134 sdio_release_host(sdiodev->func[1]); in brcmf_sdio_firmware_callback()
4140 struct brcmf_sdio *brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev) in brcmf_sdio_probe() argument
4153 bus->sdiodev = sdiodev; in brcmf_sdio_probe()
4154 sdiodev->bus = bus; in brcmf_sdio_probe()
4166 if (sdiodev->pdata) { in brcmf_sdio_probe()
4167 if (sdiodev->pdata->sd_head_align > ALIGNMENT) in brcmf_sdio_probe()
4168 bus->head_align = sdiodev->pdata->sd_head_align; in brcmf_sdio_probe()
4169 if (sdiodev->pdata->sd_sgentry_align > ALIGNMENT) in brcmf_sdio_probe()
4170 bus->sgentry_align = sdiodev->pdata->sd_sgentry_align; in brcmf_sdio_probe()
4175 dev_name(&sdiodev->func[1]->dev)); in brcmf_sdio_probe()
4180 brcmf_sdiod_freezer_count(sdiodev); in brcmf_sdio_probe()
4204 dev_name(&sdiodev->func[1]->dev)); in brcmf_sdio_probe()
4214 bus->sdiodev->bus_if->dev = bus->sdiodev->dev; in brcmf_sdio_probe()
4215 bus->sdiodev->bus_if->ops = &brcmf_sdio_bus_ops; in brcmf_sdio_probe()
4216 bus->sdiodev->bus_if->chip = bus->ci->chip; in brcmf_sdio_probe()
4217 bus->sdiodev->bus_if->chiprev = bus->ci->chiprev; in brcmf_sdio_probe()
4223 ret = brcmf_attach(bus->sdiodev->dev); in brcmf_sdio_probe()
4230 bus->blocksize = bus->sdiodev->func[2]->cur_blksize; in brcmf_sdio_probe()
4234 if (bus->sdiodev->bus_if->maxctl) { in brcmf_sdio_probe()
4235 bus->sdiodev->bus_if->maxctl += bus->roundup; in brcmf_sdio_probe()
4237 roundup((bus->sdiodev->bus_if->maxctl + SDPCM_HDRLEN), in brcmf_sdio_probe()
4246 sdio_claim_host(bus->sdiodev->func[1]); in brcmf_sdio_probe()
4249 sdio_disable_func(bus->sdiodev->func[SDIO_FUNC_2]); in brcmf_sdio_probe()
4254 brcmf_sdiod_regwb(bus->sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, 0, NULL); in brcmf_sdio_probe()
4256 sdio_release_host(bus->sdiodev->func[1]); in brcmf_sdio_probe()
4269 ret = brcmf_sdio_get_fwnames(bus->ci, sdiodev); in brcmf_sdio_probe()
4273 ret = brcmf_fw_get_firmwares(sdiodev->dev, BRCMF_FW_REQUEST_NVRAM, in brcmf_sdio_probe()
4274 sdiodev->fw_name, sdiodev->nvram_name, in brcmf_sdio_probe()
4295 brcmf_sdiod_intr_unregister(bus->sdiodev); in brcmf_sdio_remove()
4297 brcmf_detach(bus->sdiodev->dev); in brcmf_sdio_remove()
4304 if (bus->sdiodev->state != BRCMF_SDIOD_NOMEDIUM) { in brcmf_sdio_remove()
4305 sdio_claim_host(bus->sdiodev->func[1]); in brcmf_sdio_remove()
4315 sdio_release_host(bus->sdiodev->func[1]); in brcmf_sdio_remove()
4339 if (bus->sdiodev->state != BRCMF_SDIOD_DATA) in brcmf_sdio_wd_timer()
4370 sdio_claim_host(bus->sdiodev->func[1]); in brcmf_sdio_sleep()
4372 sdio_release_host(bus->sdiodev->func[1]); in brcmf_sdio_sleep()