Lines Matching refs:sdiodev
433 struct brcmf_sdio_dev *sdiodev; /* sdio device handler */ member
670 sdio_retune_crc_disable(bus->sdiodev->func1); in brcmf_sdio_kso_control()
674 sdio_retune_hold_now(bus->sdiodev->func1); in brcmf_sdio_kso_control()
678 brcmf_sdiod_writeb(bus->sdiodev, SBSDIO_FUNC1_SLEEPCSR, wr_val, &err); in brcmf_sdio_kso_control()
712 rd_val = brcmf_sdiod_readb(bus->sdiodev, SBSDIO_FUNC1_SLEEPCSR, in brcmf_sdio_kso_control()
724 brcmf_sdiod_writeb(bus->sdiodev, SBSDIO_FUNC1_SLEEPCSR, wr_val, in brcmf_sdio_kso_control()
737 sdio_retune_release(bus->sdiodev->func1); in brcmf_sdio_kso_control()
739 sdio_retune_crc_enable(bus->sdiodev->func1); in brcmf_sdio_kso_control()
767 brcmf_sdiod_writeb(bus->sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, in brcmf_sdio_htclk()
775 clkctl = brcmf_sdiod_readb(bus->sdiodev, in brcmf_sdio_htclk()
785 devctl = brcmf_sdiod_readb(bus->sdiodev, in brcmf_sdio_htclk()
793 brcmf_sdiod_writeb(bus->sdiodev, SBSDIO_DEVICE_CTL, in brcmf_sdio_htclk()
801 devctl = brcmf_sdiod_readb(bus->sdiodev, in brcmf_sdio_htclk()
804 brcmf_sdiod_writeb(bus->sdiodev, SBSDIO_DEVICE_CTL, in brcmf_sdio_htclk()
812 clkctl = brcmf_sdiod_readb(bus->sdiodev, in brcmf_sdio_htclk()
846 devctl = brcmf_sdiod_readb(bus->sdiodev, in brcmf_sdio_htclk()
849 brcmf_sdiod_writeb(bus->sdiodev, SBSDIO_DEVICE_CTL, in brcmf_sdio_htclk()
854 brcmf_sdiod_writeb(bus->sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, in brcmf_sdio_htclk()
945 clkcsr = brcmf_sdiod_readb(bus->sdiodev, in brcmf_sdio_bus_sleep()
950 brcmf_sdiod_writeb(bus->sdiodev, in brcmf_sdio_bus_sleep()
998 sdio_claim_host(bus->sdiodev->func1); in brcmf_sdio_readshared()
1008 rv = brcmf_sdiod_ramrw(bus->sdiodev, false, shaddr, in brcmf_sdio_readshared()
1027 rv = brcmf_sdiod_ramrw(bus->sdiodev, false, addr, (u8 *)&sh_le, in brcmf_sdio_readshared()
1032 sdio_release_host(bus->sdiodev->func1); in brcmf_sdio_readshared()
1054 sdio_release_host(bus->sdiodev->func1); in brcmf_sdio_readshared()
1073 struct brcmf_sdio_dev *sdiod = bus->sdiodev; in brcmf_sdio_hostmail()
1166 struct brcmf_sdio_dev *sdiod = bus->sdiodev; in brcmf_sdio_rxfail()
1178 brcmf_sdiod_abort(bus->sdiodev, bus->sdiodev->func2); in brcmf_sdio_rxfail()
1180 brcmf_sdiod_writeb(bus->sdiodev, SBSDIO_FUNC1_FRAMECTRL, SFC_RF_TERM, in brcmf_sdio_rxfail()
1186 hi = brcmf_sdiod_readb(bus->sdiodev, SBSDIO_FUNC1_RFRAMEBCHI, in brcmf_sdio_rxfail()
1188 lo = brcmf_sdiod_readb(bus->sdiodev, SBSDIO_FUNC1_RFRAMEBCLO, in brcmf_sdio_rxfail()
1223 struct brcmf_sdio_dev *sdiodev = bus->sdiodev; in brcmf_sdio_txfail() local
1230 brcmf_sdiod_abort(sdiodev, sdiodev->func2); in brcmf_sdio_txfail()
1231 brcmf_sdiod_writeb(sdiodev, SBSDIO_FUNC1_FRAMECTRL, SFC_WF_TERM, NULL); in brcmf_sdio_txfail()
1235 hi = brcmf_sdiod_readb(sdiodev, SBSDIO_FUNC1_WFRAMEBCHI, NULL); in brcmf_sdio_txfail()
1236 lo = brcmf_sdiod_readb(sdiodev, SBSDIO_FUNC1_WFRAMEBCLO, NULL); in brcmf_sdio_txfail()
1586 sdio_claim_host(bus->sdiodev->func1); in brcmf_sdio_rxglom()
1587 errcode = brcmf_sdiod_recv_chain(bus->sdiodev, in brcmf_sdio_rxglom()
1589 sdio_release_host(bus->sdiodev->func1); in brcmf_sdio_rxglom()
1597 sdio_claim_host(bus->sdiodev->func1); in brcmf_sdio_rxglom()
1601 sdio_release_host(bus->sdiodev->func1); in brcmf_sdio_rxglom()
1611 sdio_claim_host(bus->sdiodev->func1); in brcmf_sdio_rxglom()
1614 sdio_release_host(bus->sdiodev->func1); in brcmf_sdio_rxglom()
1629 sdio_claim_host(bus->sdiodev->func1); in brcmf_sdio_rxglom()
1632 sdio_release_host(bus->sdiodev->func1); in brcmf_sdio_rxglom()
1641 sdio_claim_host(bus->sdiodev->func1); in brcmf_sdio_rxglom()
1645 sdio_release_host(bus->sdiodev->func1); in brcmf_sdio_rxglom()
1679 brcmf_rx_event(bus->sdiodev->dev, pfirst); in brcmf_sdio_rxglom()
1681 brcmf_rx_frame(bus->sdiodev->dev, pfirst, in brcmf_sdio_rxglom()
1747 ((len + pad) < bus->sdiodev->bus_if->maxctl)) in brcmf_sdio_read_control()
1754 if ((rdlen + BRCMF_FIRSTREAD) > bus->sdiodev->bus_if->maxctl) { in brcmf_sdio_read_control()
1756 rdlen, bus->sdiodev->bus_if->maxctl); in brcmf_sdio_read_control()
1761 if ((len - doff) > bus->sdiodev->bus_if->maxctl) { in brcmf_sdio_read_control()
1763 len, len - doff, bus->sdiodev->bus_if->maxctl); in brcmf_sdio_read_control()
1770 sdret = brcmf_sdiod_recv_buf(bus->sdiodev, rbuf, rdlen); in brcmf_sdio_read_control()
1835 !bus->rxskip && rxleft && bus->sdiodev->state == BRCMF_SDIOD_DATA; in brcmf_sdio_readframes()
1852 sdio_claim_host(bus->sdiodev->func1); in brcmf_sdio_readframes()
1854 ret = brcmf_sdiod_recv_buf(bus->sdiodev, in brcmf_sdio_readframes()
1862 sdio_release_host(bus->sdiodev->func1); in brcmf_sdio_readframes()
1872 sdio_release_host(bus->sdiodev->func1); in brcmf_sdio_readframes()
1888 sdio_release_host(bus->sdiodev->func1); in brcmf_sdio_readframes()
1905 sdio_release_host(bus->sdiodev->func1); in brcmf_sdio_readframes()
1911 ret = brcmf_sdiod_recv_pkt(bus->sdiodev, pkt); in brcmf_sdio_readframes()
1913 sdio_release_host(bus->sdiodev->func1); in brcmf_sdio_readframes()
1919 sdio_claim_host(bus->sdiodev->func1); in brcmf_sdio_readframes()
1922 sdio_release_host(bus->sdiodev->func1); in brcmf_sdio_readframes()
1933 sdio_claim_host(bus->sdiodev->func1); in brcmf_sdio_readframes()
1946 sdio_release_host(bus->sdiodev->func1); in brcmf_sdio_readframes()
1950 sdio_release_host(bus->sdiodev->func1); in brcmf_sdio_readframes()
1966 sdio_claim_host(bus->sdiodev->func1); in brcmf_sdio_readframes()
1968 sdio_release_host(bus->sdiodev->func1); in brcmf_sdio_readframes()
1991 sdio_claim_host(bus->sdiodev->func1); in brcmf_sdio_readframes()
1993 sdio_release_host(bus->sdiodev->func1); in brcmf_sdio_readframes()
2010 brcmf_rx_event(bus->sdiodev->dev, pkt); in brcmf_sdio_readframes()
2012 brcmf_rx_frame(bus->sdiodev->dev, pkt, in brcmf_sdio_readframes()
2055 stats = &bus->sdiodev->bus_if->stats; in brcmf_sdio_txpkt_hdalign()
2083 struct brcmf_sdio_dev *sdiodev; in brcmf_sdio_txpkt_prep_sg() local
2090 sdiodev = bus->sdiodev; in brcmf_sdio_txpkt_prep_sg()
2091 blksize = sdiodev->func2->cur_blksize; in brcmf_sdio_txpkt_prep_sg()
2270 sdio_claim_host(bus->sdiodev->func1); in brcmf_sdio_txpkt()
2271 ret = brcmf_sdiod_send_pkt(bus->sdiodev, pktq); in brcmf_sdio_txpkt()
2277 sdio_release_host(bus->sdiodev->func1); in brcmf_sdio_txpkt()
2285 brcmf_proto_bcdc_txcomplete(bus->sdiodev->dev, pkt_next, in brcmf_sdio_txpkt()
2310 bus->sdiodev->txglomsz); in brcmf_sdio_sendfromq()
2333 sdio_claim_host(bus->sdiodev->func1); in brcmf_sdio_sendfromq()
2334 intstatus = brcmf_sdiod_readl(bus->sdiodev, in brcmf_sdio_sendfromq()
2336 sdio_release_host(bus->sdiodev->func1); in brcmf_sdio_sendfromq()
2347 if ((bus->sdiodev->state == BRCMF_SDIOD_DATA) && in brcmf_sdio_sendfromq()
2350 brcmf_proto_bcdc_txflowblock(bus->sdiodev->dev, false); in brcmf_sdio_sendfromq()
2407 ret = brcmf_sdiod_send_buf(bus->sdiodev, frame, len); in brcmf_sdio_tx_ctrlframe()
2429 struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; in brcmf_sdio_bus_stop() local
2430 struct brcmf_sdio *bus = sdiodev->bus; in brcmf_sdio_bus_stop()
2444 if (sdiodev->state != BRCMF_SDIOD_NOMEDIUM) { in brcmf_sdio_bus_stop()
2445 sdio_claim_host(sdiodev->func1); in brcmf_sdio_bus_stop()
2451 brcmf_sdiod_writel(sdiodev, core->base + SD_REG(hostintmask), in brcmf_sdio_bus_stop()
2458 saveclk = brcmf_sdiod_readb(sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, in brcmf_sdio_bus_stop()
2464 brcmf_sdiod_writeb(sdiodev, in brcmf_sdio_bus_stop()
2474 sdio_disable_func(sdiodev->func2); in brcmf_sdio_bus_stop()
2477 brcmf_sdiod_writel(sdiodev, core->base + SD_REG(intstatus), in brcmf_sdio_bus_stop()
2480 sdio_release_host(sdiodev->func1); in brcmf_sdio_bus_stop()
2502 struct brcmf_sdio_dev *sdiodev; in brcmf_sdio_clrintr() local
2505 sdiodev = bus->sdiodev; in brcmf_sdio_clrintr()
2506 if (sdiodev->oob_irq_requested) { in brcmf_sdio_clrintr()
2507 spin_lock_irqsave(&sdiodev->irq_en_lock, flags); in brcmf_sdio_clrintr()
2508 if (!sdiodev->irq_en && !atomic_read(&bus->ipend)) { in brcmf_sdio_clrintr()
2509 enable_irq(sdiodev->settings->bus.sdio.oob_irq_nr); in brcmf_sdio_clrintr()
2510 sdiodev->irq_en = true; in brcmf_sdio_clrintr()
2512 spin_unlock_irqrestore(&sdiodev->irq_en_lock, flags); in brcmf_sdio_clrintr()
2525 val = brcmf_sdiod_readl(bus->sdiodev, addr, &ret); in brcmf_sdio_intr_rstatus()
2535 brcmf_sdiod_writel(bus->sdiodev, addr, val, &ret); in brcmf_sdio_intr_rstatus()
2545 struct brcmf_sdio_dev *sdiod = bus->sdiodev; in brcmf_sdio_dpc()
2555 sdio_claim_host(bus->sdiodev->func1); in brcmf_sdio_dpc()
2563 devctl = brcmf_sdiod_readb(bus->sdiodev, SBSDIO_DEVICE_CTL, in brcmf_sdio_dpc()
2568 clkctl = brcmf_sdiod_readb(bus->sdiodev, in brcmf_sdio_dpc()
2575 devctl = brcmf_sdiod_readb(bus->sdiodev, in brcmf_sdio_dpc()
2578 brcmf_sdiod_writeb(bus->sdiodev, in brcmf_sdio_dpc()
2618 sdio_release_host(bus->sdiodev->func1); in brcmf_sdio_dpc()
2661 sdio_claim_host(bus->sdiodev->func1); in brcmf_sdio_dpc()
2669 sdio_release_host(bus->sdiodev->func1); in brcmf_sdio_dpc()
2681 if ((bus->sdiodev->state != BRCMF_SDIOD_DATA) || (err != 0)) { in brcmf_sdio_dpc()
2685 sdio_claim_host(bus->sdiodev->func1); in brcmf_sdio_dpc()
2692 sdio_release_host(bus->sdiodev->func1); in brcmf_sdio_dpc()
2706 struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; in brcmf_sdio_bus_gettxq() local
2707 struct brcmf_sdio *bus = sdiodev->bus; in brcmf_sdio_bus_gettxq()
2759 struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; in brcmf_sdio_bus_txdata() local
2760 struct brcmf_sdio *bus = sdiodev->bus; in brcmf_sdio_bus_txdata()
2763 if (sdiodev->state != BRCMF_SDIOD_DATA) in brcmf_sdio_bus_txdata()
2820 rv = brcmf_sdiod_ramrw(bus->sdiodev, false, addr, (u8 *)&c->log_le, in brcmf_sdio_readconsole()
2846 rv = brcmf_sdiod_ramrw(bus->sdiodev, false, addr, c->buf, c->bufsize); in brcmf_sdio_readconsole()
2888 struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; in brcmf_sdio_bus_txctl() local
2889 struct brcmf_sdio *bus = sdiodev->bus; in brcmf_sdio_bus_txctl()
2893 if (sdiodev->state != BRCMF_SDIOD_DATA) in brcmf_sdio_bus_txctl()
2907 sdio_claim_host(bus->sdiodev->func1); in brcmf_sdio_bus_txctl()
2913 sdio_release_host(bus->sdiodev->func1); in brcmf_sdio_bus_txctl()
2941 rv = brcmf_sdiod_ramrw(bus->sdiodev, false, addr, in brcmf_sdio_dump_console()
2948 rv = brcmf_sdiod_ramrw(bus->sdiodev, false, addr, in brcmf_sdio_dump_console()
2955 rv = brcmf_sdiod_ramrw(bus->sdiodev, false, addr, in brcmf_sdio_dump_console()
2970 rv = brcmf_sdiod_ramrw(bus->sdiodev, false, console_ptr, (u8 *)conbuf, in brcmf_sdio_dump_console()
2999 error = brcmf_sdiod_ramrw(bus->sdiodev, false, sh->trap_addr, (u8 *)&tr, in brcmf_sdio_trap_info()
3051 sdio_claim_host(bus->sdiodev->func1); in brcmf_sdio_assert_info()
3053 error = brcmf_sdiod_ramrw(bus->sdiodev, false, in brcmf_sdio_assert_info()
3059 error = brcmf_sdiod_ramrw(bus->sdiodev, false, in brcmf_sdio_assert_info()
3064 sdio_release_host(bus->sdiodev->func1); in brcmf_sdio_assert_info()
3128 struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; in brcmf_debugfs_sdio_count_read() local
3129 struct brcmf_sdio_count *sdcnt = &sdiodev->bus->sdcnt; in brcmf_debugfs_sdio_count_read()
3168 struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; in brcmf_sdio_debugfs_create() local
3169 struct brcmf_sdio *bus = sdiodev->bus; in brcmf_sdio_debugfs_create()
3202 struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; in brcmf_sdio_bus_rxctl() local
3203 struct brcmf_sdio *bus = sdiodev->bus; in brcmf_sdio_bus_rxctl()
3206 if (sdiodev->state != BRCMF_SDIOD_DATA) in brcmf_sdio_bus_rxctl()
3246 brcmf_sdio_verifymemory(struct brcmf_sdio_dev *sdiodev, u32 ram_addr, in brcmf_sdio_verifymemory() argument
3269 err = brcmf_sdiod_ramrw(sdiodev, false, address, ram_cmp, len); in brcmf_sdio_verifymemory()
3291 brcmf_sdio_verifymemory(struct brcmf_sdio_dev *sdiodev, u32 ram_addr, in brcmf_sdio_verifymemory() argument
3305 err = brcmf_sdiod_ramrw(bus->sdiodev, true, bus->ci->rambase, in brcmf_sdio_download_code_file()
3310 else if (!brcmf_sdio_verifymemory(bus->sdiodev, bus->ci->rambase, in brcmf_sdio_download_code_file()
3326 err = brcmf_sdiod_ramrw(bus->sdiodev, true, address, vars, varsz); in brcmf_sdio_download_nvram()
3330 else if (!brcmf_sdio_verifymemory(bus->sdiodev, address, vars, varsz)) in brcmf_sdio_download_nvram()
3343 sdio_claim_host(bus->sdiodev->func1); in brcmf_sdio_download_firmware()
3372 sdio_release_host(bus->sdiodev->func1); in brcmf_sdio_download_firmware()
3409 val = brcmf_sdiod_readb(bus->sdiodev, SBSDIO_FUNC1_WAKEUPCTRL, &err); in brcmf_sdio_sr_init()
3415 brcmf_sdiod_writeb(bus->sdiodev, SBSDIO_FUNC1_WAKEUPCTRL, val, &err); in brcmf_sdio_sr_init()
3422 brcmf_sdiod_func0_wb(bus->sdiodev, SDIO_CCCR_BRCM_CARDCAP, in brcmf_sdio_sr_init()
3430 brcmf_sdiod_writeb(bus->sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, in brcmf_sdio_sr_init()
3455 val = brcmf_sdiod_readb(bus->sdiodev, SBSDIO_FUNC1_SLEEPCSR, &err); in brcmf_sdio_kso_init()
3464 brcmf_sdiod_writeb(bus->sdiodev, SBSDIO_FUNC1_SLEEPCSR, in brcmf_sdio_kso_init()
3479 struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; in brcmf_sdio_bus_preinit() local
3480 struct brcmf_sdio *bus = sdiodev->bus; in brcmf_sdio_bus_preinit()
3508 value = sdiodev->settings->bus.sdio.sd_sgentry_align; in brcmf_sdio_bus_preinit()
3519 if (sdiodev->sg_support) { in brcmf_sdio_bus_preinit()
3522 err = brcmf_iovar_data_set(bus->sdiodev->dev, "bus:rxglom", in brcmf_sdio_bus_preinit()
3532 brcmf_bus_add_txhdrlen(bus->sdiodev->dev, bus->tx_hdrlen); in brcmf_sdio_bus_preinit()
3541 struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; in brcmf_sdio_bus_get_ramsize() local
3542 struct brcmf_sdio *bus = sdiodev->bus; in brcmf_sdio_bus_get_ramsize()
3551 struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; in brcmf_sdio_bus_get_memdump() local
3552 struct brcmf_sdio *bus = sdiodev->bus; in brcmf_sdio_bus_get_memdump()
3563 sdio_claim_host(sdiodev->func1); in brcmf_sdio_bus_get_memdump()
3567 err = brcmf_sdiod_ramrw(sdiodev, false, address, data, len); in brcmf_sdio_bus_get_memdump()
3579 sdio_release_host(sdiodev->func1); in brcmf_sdio_bus_get_memdump()
3636 sdio_claim_host(bus->sdiodev->func1); in brcmf_sdio_bus_watchdog()
3637 devpend = brcmf_sdiod_func0_rb(bus->sdiodev, in brcmf_sdio_bus_watchdog()
3639 sdio_release_host(bus->sdiodev->func1); in brcmf_sdio_bus_watchdog()
3660 if (bus->sdiodev->state == BRCMF_SDIOD_DATA && BRCMF_FWCON_ON() && in brcmf_sdio_bus_watchdog()
3665 sdio_claim_host(bus->sdiodev->func1); in brcmf_sdio_bus_watchdog()
3671 sdio_release_host(bus->sdiodev->func1); in brcmf_sdio_bus_watchdog()
3684 sdio_claim_host(bus->sdiodev->func1); in brcmf_sdio_bus_watchdog()
3688 sdio_release_host(bus->sdiodev->func1); in brcmf_sdio_bus_watchdog()
3711 if (brcmf_sdiod_freezing(bus->sdiodev)) { in brcmf_sdio_dataworker()
3712 brcmf_sdiod_change_state(bus->sdiodev, BRCMF_SDIOD_DOWN); in brcmf_sdio_dataworker()
3713 brcmf_sdiod_try_freeze(bus->sdiodev); in brcmf_sdio_dataworker()
3714 brcmf_sdiod_change_state(bus->sdiodev, BRCMF_SDIOD_DATA); in brcmf_sdio_dataworker()
3719 brcmf_sdio_drivestrengthinit(struct brcmf_sdio_dev *sdiodev, in brcmf_sdio_drivestrengthinit() argument
3776 brcmf_sdiod_writel(sdiodev, addr, 1, NULL); in brcmf_sdio_drivestrengthinit()
3777 cc_data_temp = brcmf_sdiod_readl(sdiodev, addr, NULL); in brcmf_sdio_drivestrengthinit()
3781 brcmf_sdiod_writel(sdiodev, addr, cc_data_temp, NULL); in brcmf_sdio_drivestrengthinit()
3790 struct brcmf_sdio_dev *sdiodev = ctx; in brcmf_sdio_buscoreprep() local
3796 brcmf_sdiod_writeb(sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, clkset, &err); in brcmf_sdio_buscoreprep()
3804 clkval = brcmf_sdiod_readb(sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, NULL); in brcmf_sdio_buscoreprep()
3812 SPINWAIT(((clkval = brcmf_sdiod_readb(sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, in brcmf_sdio_buscoreprep()
3824 brcmf_sdiod_writeb(sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, clkset, &err); in brcmf_sdio_buscoreprep()
3828 brcmf_sdiod_writeb(sdiodev, SBSDIO_FUNC1_SDIOPULLUP, 0, NULL); in brcmf_sdio_buscoreprep()
3836 struct brcmf_sdio_dev *sdiodev = ctx; in brcmf_sdio_buscore_activate() local
3837 struct brcmf_core *core = sdiodev->bus->sdio_core; in brcmf_sdio_buscore_activate()
3842 brcmf_sdiod_writel(sdiodev, reg_addr, 0xFFFFFFFF, NULL); in brcmf_sdio_buscore_activate()
3846 brcmf_sdiod_ramrw(sdiodev, true, 0, (void *)&rstvec, in brcmf_sdio_buscore_activate()
3852 struct brcmf_sdio_dev *sdiodev = ctx; in brcmf_sdio_buscore_read32() local
3855 val = brcmf_sdiod_readl(sdiodev, addr, NULL); in brcmf_sdio_buscore_read32()
3865 (sdiodev->func1->device == SDIO_DEVICE_ID_BROADCOM_4339 || in brcmf_sdio_buscore_read32()
3866 sdiodev->func1->device == SDIO_DEVICE_ID_BROADCOM_4335_4339)) { in brcmf_sdio_buscore_read32()
3879 struct brcmf_sdio_dev *sdiodev = ctx; in brcmf_sdio_buscore_write32() local
3881 brcmf_sdiod_writel(sdiodev, addr, val, NULL); in brcmf_sdio_buscore_write32()
3894 struct brcmf_sdio_dev *sdiodev; in brcmf_sdio_probe_attach() local
3901 sdiodev = bus->sdiodev; in brcmf_sdio_probe_attach()
3902 sdio_claim_host(sdiodev->func1); in brcmf_sdio_probe_attach()
3905 brcmf_sdiod_readl(sdiodev, SI_ENUM_BASE, NULL)); in brcmf_sdio_probe_attach()
3912 brcmf_sdiod_writeb(sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, BRCMF_INIT_CLKCTL1, in brcmf_sdio_probe_attach()
3915 clkctl = brcmf_sdiod_readb(sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, in brcmf_sdio_probe_attach()
3924 bus->ci = brcmf_chip_attach(sdiodev, &brcmf_sdio_buscore_ops); in brcmf_sdio_probe_attach()
3937 sdiodev->cc_core = brcmf_chip_get_core(bus->ci, BCMA_CORE_CHIPCOMMON); in brcmf_sdio_probe_attach()
3938 if (!sdiodev->cc_core) in brcmf_sdio_probe_attach()
3941 sdiodev->settings = brcmf_get_module_param(sdiodev->dev, in brcmf_sdio_probe_attach()
3945 if (!sdiodev->settings) { in brcmf_sdio_probe_attach()
3954 if (sdiodev->settings->bus.sdio.sd_head_align > ALIGNMENT) in brcmf_sdio_probe_attach()
3955 bus->head_align = sdiodev->settings->bus.sdio.sd_head_align; in brcmf_sdio_probe_attach()
3956 if (sdiodev->settings->bus.sdio.sd_sgentry_align > ALIGNMENT) in brcmf_sdio_probe_attach()
3958 sdiodev->settings->bus.sdio.sd_sgentry_align; in brcmf_sdio_probe_attach()
3963 brcmf_sdiod_sgtable_alloc(sdiodev); in brcmf_sdio_probe_attach()
3969 if ((sdio_get_host_pm_caps(sdiodev->func1) & MMC_PM_KEEP_POWER) && in brcmf_sdio_probe_attach()
3970 ((sdio_get_host_pm_caps(sdiodev->func1) & MMC_PM_WAKE_SDIO_IRQ) || in brcmf_sdio_probe_attach()
3971 (sdiodev->settings->bus.sdio.oob_irq_supported))) in brcmf_sdio_probe_attach()
3972 sdiodev->bus_if->wowl_supported = true; in brcmf_sdio_probe_attach()
3980 if (sdiodev->settings->bus.sdio.drive_strength) in brcmf_sdio_probe_attach()
3981 drivestrength = sdiodev->settings->bus.sdio.drive_strength; in brcmf_sdio_probe_attach()
3984 brcmf_sdio_drivestrengthinit(sdiodev, bus->ci, drivestrength); in brcmf_sdio_probe_attach()
3987 reg_val = brcmf_sdiod_func0_rb(sdiodev, SDIO_CCCR_BRCM_CARDCTRL, &err); in brcmf_sdio_probe_attach()
3993 brcmf_sdiod_func0_wb(sdiodev, SDIO_CCCR_BRCM_CARDCTRL, reg_val, &err); in brcmf_sdio_probe_attach()
3999 reg_val = brcmf_sdiod_readl(sdiodev, reg_addr, &err); in brcmf_sdio_probe_attach()
4005 brcmf_sdiod_writel(sdiodev, reg_addr, reg_val, &err); in brcmf_sdio_probe_attach()
4009 sdio_release_host(sdiodev->func1); in brcmf_sdio_probe_attach()
4030 sdio_release_host(sdiodev->func1); in brcmf_sdio_probe_attach()
4042 brcmf_sdiod_freezer_count(bus->sdiodev); in brcmf_sdio_watchdog_thread()
4046 brcmf_sdiod_freezer_uncount(bus->sdiodev); in brcmf_sdio_watchdog_thread()
4048 brcmf_sdiod_freezer_count(bus->sdiodev); in brcmf_sdio_watchdog_thread()
4049 brcmf_sdiod_try_freeze(bus->sdiodev); in brcmf_sdio_watchdog_thread()
4229 brcmf_sdiod_change_state(bus->sdiodev, BRCMF_SDIOD_DATA); in brcmf_sdio_firmware_callback()
4285 { ".bin", bus->sdiodev->fw_name }, in brcmf_sdio_prepare_fw_request()
4286 { ".txt", bus->sdiodev->nvram_name }, in brcmf_sdio_prepare_fw_request()
4298 fwreq->board_type = bus->sdiodev->settings->board_type; in brcmf_sdio_prepare_fw_request()
4303 struct brcmf_sdio *brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev) in brcmf_sdio_probe() argument
4317 bus->sdiodev = sdiodev; in brcmf_sdio_probe()
4318 sdiodev->bus = bus; in brcmf_sdio_probe()
4327 dev_name(&sdiodev->func1->dev)); in brcmf_sdio_probe()
4332 brcmf_sdiod_freezer_count(sdiodev); in brcmf_sdio_probe()
4353 dev_name(&sdiodev->func1->dev)); in brcmf_sdio_probe()
4366 bus->blocksize = bus->sdiodev->func2->cur_blksize; in brcmf_sdio_probe()
4369 sdio_claim_host(bus->sdiodev->func1); in brcmf_sdio_probe()
4372 sdio_disable_func(bus->sdiodev->func2); in brcmf_sdio_probe()
4377 brcmf_sdiod_writeb(bus->sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, 0, NULL); in brcmf_sdio_probe()
4379 sdio_release_host(bus->sdiodev->func1); in brcmf_sdio_probe()
4397 ret = brcmf_fw_get_firmwares(sdiodev->dev, fwreq, in brcmf_sdio_probe()
4426 brcmf_sdiod_intr_unregister(bus->sdiodev); in brcmf_sdio_remove()
4428 brcmf_detach(bus->sdiodev->dev); in brcmf_sdio_remove()
4435 if (bus->sdiodev->state != BRCMF_SDIOD_NOMEDIUM) { in brcmf_sdio_remove()
4436 sdio_claim_host(bus->sdiodev->func1); in brcmf_sdio_remove()
4446 sdio_release_host(bus->sdiodev->func1); in brcmf_sdio_remove()
4450 if (bus->sdiodev->settings) in brcmf_sdio_remove()
4451 brcmf_release_module_param(bus->sdiodev->settings); in brcmf_sdio_remove()
4471 if (bus->sdiodev->state != BRCMF_SDIOD_DATA) in brcmf_sdio_wd_timer()
4493 sdio_claim_host(bus->sdiodev->func1); in brcmf_sdio_sleep()
4495 sdio_release_host(bus->sdiodev->func1); in brcmf_sdio_sleep()