sdiodev 62 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; sdiodev 69 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c if (sdiodev->irq_en) { sdiodev 71 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdiodev->irq_en = false; sdiodev 74 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c brcmf_sdio_isr(sdiodev->bus); sdiodev 82 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; sdiodev 86 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c brcmf_sdio_isr(sdiodev->bus); sdiodev 94 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c int brcmf_sdiod_intr_register(struct brcmf_sdio_dev *sdiodev) sdiodev 101 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c pdata = &sdiodev->settings->bus.sdio; sdiodev 105 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c spin_lock_init(&sdiodev->irq_en_lock); sdiodev 106 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdiodev->irq_en = true; sdiodev 110 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c &sdiodev->func1->dev); sdiodev 115 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdiodev->oob_irq_requested = true; sdiodev 122 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdiodev->irq_wake = true; sdiodev 124 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdio_claim_host(sdiodev->func1); sdiodev 126 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c if (sdiodev->bus_if->chip == BRCM_CC_43362_CHIP_ID) { sdiodev 129 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c gpiocontrol = brcmf_sdiod_readl(sdiodev, addr, &ret); sdiodev 131 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c brcmf_sdiod_writel(sdiodev, addr, gpiocontrol, &ret); sdiodev 133 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c brcmf_sdiod_writeb(sdiodev, SBSDIO_GPIO_SELECT, sdiodev 135 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c brcmf_sdiod_writeb(sdiodev, SBSDIO_GPIO_OUT, 0, &ret); sdiodev 136 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c brcmf_sdiod_writeb(sdiodev, SBSDIO_GPIO_EN, 0x2, &ret); sdiodev 140 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c data = brcmf_sdiod_func0_rb(sdiodev, SDIO_CCCR_IENx, &ret); sdiodev 143 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c brcmf_sdiod_func0_wb(sdiodev, SDIO_CCCR_IENx, data, &ret); sdiodev 149 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c brcmf_sdiod_func0_wb(sdiodev, SDIO_CCCR_BRCM_SEPINT, sdiodev 151 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdio_release_host(sdiodev->func1); sdiodev 154 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdio_claim_host(sdiodev->func1); sdiodev 155 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdio_claim_irq(sdiodev->func1, brcmf_sdiod_ib_irqhandler); sdiodev 156 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdio_claim_irq(sdiodev->func2, brcmf_sdiod_dummy_irqhandler); sdiodev 157 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdio_release_host(sdiodev->func1); sdiodev 158 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdiodev->sd_irq_requested = true; sdiodev 164 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c void brcmf_sdiod_intr_unregister(struct brcmf_sdio_dev *sdiodev) sdiodev 168 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdiodev->oob_irq_requested, sdiodev 169 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdiodev->sd_irq_requested); sdiodev 171 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c if (sdiodev->oob_irq_requested) { sdiodev 174 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c pdata = &sdiodev->settings->bus.sdio; sdiodev 175 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdio_claim_host(sdiodev->func1); sdiodev 176 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c brcmf_sdiod_func0_wb(sdiodev, SDIO_CCCR_BRCM_SEPINT, 0, NULL); sdiodev 177 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c brcmf_sdiod_func0_wb(sdiodev, SDIO_CCCR_IENx, 0, NULL); sdiodev 178 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdio_release_host(sdiodev->func1); sdiodev 180 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdiodev->oob_irq_requested = false; sdiodev 181 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c if (sdiodev->irq_wake) { sdiodev 183 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdiodev->irq_wake = false; sdiodev 185 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c free_irq(pdata->oob_irq_nr, &sdiodev->func1->dev); sdiodev 186 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdiodev->irq_en = false; sdiodev 187 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdiodev->oob_irq_requested = false; sdiodev 190 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c if (sdiodev->sd_irq_requested) { sdiodev 191 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdio_claim_host(sdiodev->func1); sdiodev 192 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdio_release_irq(sdiodev->func2); sdiodev 193 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdio_release_irq(sdiodev->func1); sdiodev 194 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdio_release_host(sdiodev->func1); sdiodev 195 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdiodev->sd_irq_requested = false; sdiodev 199 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c void brcmf_sdiod_change_state(struct brcmf_sdio_dev *sdiodev, sdiodev 202 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c if (sdiodev->state == BRCMF_SDIOD_NOMEDIUM || sdiodev 203 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c state == sdiodev->state) sdiodev 206 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c brcmf_dbg(TRACE, "%d -> %d\n", sdiodev->state, state); sdiodev 207 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c switch (sdiodev->state) { sdiodev 210 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c brcmf_bus_change_state(sdiodev->bus_if, BRCMF_BUS_DOWN); sdiodev 215 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c brcmf_bus_change_state(sdiodev->bus_if, BRCMF_BUS_UP); sdiodev 220 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdiodev->state = state; sdiodev 223 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c static int brcmf_sdiod_set_backplane_window(struct brcmf_sdio_dev *sdiodev, sdiodev 229 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c if (bar0 == sdiodev->sbwad) sdiodev 235 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c brcmf_sdiod_writeb(sdiodev, SBSDIO_FUNC1_SBADDRLOW + i, sdiodev 239 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdiodev->sbwad = bar0; sdiodev 244 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c u32 brcmf_sdiod_readl(struct brcmf_sdio_dev *sdiodev, u32 addr, int *ret) sdiodev 249 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c retval = brcmf_sdiod_set_backplane_window(sdiodev, addr); sdiodev 256 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c data = sdio_readl(sdiodev->func1, addr, &retval); sdiodev 265 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c void brcmf_sdiod_writel(struct brcmf_sdio_dev *sdiodev, u32 addr, sdiodev 270 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c retval = brcmf_sdiod_set_backplane_window(sdiodev, addr); sdiodev 277 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdio_writel(sdiodev->func1, data, addr, &retval); sdiodev 284 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c static int brcmf_sdiod_skbuff_read(struct brcmf_sdio_dev *sdiodev, sdiodev 310 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c brcmf_sdiod_change_state(sdiodev, BRCMF_SDIOD_NOMEDIUM); sdiodev 315 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c static int brcmf_sdiod_skbuff_write(struct brcmf_sdio_dev *sdiodev, sdiodev 329 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c brcmf_sdiod_change_state(sdiodev, BRCMF_SDIOD_NOMEDIUM); sdiodev 337 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c struct brcmf_sdio_dev *sdiodev, sdiodev 355 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c brcmf_sdiod_change_state(sdiodev, BRCMF_SDIOD_NOMEDIUM); sdiodev 377 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c static int brcmf_sdiod_sglist_rw(struct brcmf_sdio_dev *sdiodev, sdiodev 400 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c if (!write && sdiodev->settings->bus.sdio.broken_sg_support) { sdiodev 424 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c max_req_sz = sdiodev->max_request_size; sdiodev 425 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c max_seg_cnt = min_t(unsigned short, sdiodev->max_segment_count, sdiodev 432 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c mmc_dat.sg = sdiodev->sgtable.sgl; sdiodev 447 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sgl = sdiodev->sgtable.sgl; sdiodev 453 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c if (sg_data_sz > sdiodev->max_segment_size) sdiodev 454 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sg_data_sz = sdiodev->max_segment_size; sdiodev 467 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c &addr, sdiodev, func, write); sdiodev 472 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sgl = sdiodev->sgtable.sgl; sdiodev 479 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c &addr, sdiodev, func, write); sdiodev 481 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c if (!write && sdiodev->settings->bus.sdio.broken_sg_support) { sdiodev 512 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sg_init_table(sdiodev->sgtable.sgl, sdiodev->sgtable.orig_nents); sdiodev 519 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c int brcmf_sdiod_recv_buf(struct brcmf_sdio_dev *sdiodev, u8 *buf, uint nbytes) sdiodev 531 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c err = brcmf_sdiod_recv_pkt(sdiodev, mypkt); sdiodev 539 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c int brcmf_sdiod_recv_pkt(struct brcmf_sdio_dev *sdiodev, struct sk_buff *pkt) sdiodev 541 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c u32 addr = sdiodev->cc_core->base; sdiodev 546 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c err = brcmf_sdiod_set_backplane_window(sdiodev, addr); sdiodev 553 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c err = brcmf_sdiod_skbuff_read(sdiodev, sdiodev->func2, addr, pkt); sdiodev 559 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c int brcmf_sdiod_recv_chain(struct brcmf_sdio_dev *sdiodev, sdiodev 564 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c u32 addr = sdiodev->cc_core->base; sdiodev 570 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c err = brcmf_sdiod_set_backplane_window(sdiodev, addr); sdiodev 578 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c err = brcmf_sdiod_skbuff_read(sdiodev, sdiodev->func2, addr, sdiodev 580 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c else if (!sdiodev->sg_support) { sdiodev 584 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c err = brcmf_sdiod_skbuff_read(sdiodev, sdiodev->func2, addr, sdiodev 594 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c err = brcmf_sdiod_sglist_rw(sdiodev, sdiodev->func2, false, sdiodev 602 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c int brcmf_sdiod_send_buf(struct brcmf_sdio_dev *sdiodev, u8 *buf, uint nbytes) sdiodev 605 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c u32 addr = sdiodev->cc_core->base; sdiodev 618 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c err = brcmf_sdiod_set_backplane_window(sdiodev, addr); sdiodev 625 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c err = brcmf_sdiod_skbuff_write(sdiodev, sdiodev->func2, addr, mypkt); sdiodev 632 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c int brcmf_sdiod_send_pkt(struct brcmf_sdio_dev *sdiodev, sdiodev 636 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c u32 addr = sdiodev->cc_core->base; sdiodev 641 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c err = brcmf_sdiod_set_backplane_window(sdiodev, addr); sdiodev 648 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c if (pktq->qlen == 1 || !sdiodev->sg_support) { sdiodev 650 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c err = brcmf_sdiod_skbuff_write(sdiodev, sdiodev->func2, sdiodev 656 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c err = brcmf_sdiod_sglist_rw(sdiodev, sdiodev->func2, true, sdiodev 664 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c brcmf_sdiod_ramrw(struct brcmf_sdio_dev *sdiodev, bool write, u32 address, sdiodev 687 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdio_claim_host(sdiodev->func1); sdiodev 692 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c err = brcmf_sdiod_set_backplane_window(sdiodev, address); sdiodev 707 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c err = brcmf_sdiod_skbuff_write(sdiodev, sdiodev->func1, sdiodev 710 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c err = brcmf_sdiod_skbuff_read(sdiodev, sdiodev->func1, sdiodev 734 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdio_release_host(sdiodev->func1); sdiodev 739 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c int brcmf_sdiod_abort(struct brcmf_sdio_dev *sdiodev, struct sdio_func *func) sdiodev 744 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c brcmf_sdiod_func0_wb(sdiodev, SDIO_CCCR_ABORT, func->num, NULL); sdiodev 750 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c void brcmf_sdiod_sgtable_alloc(struct brcmf_sdio_dev *sdiodev) sdiodev 758 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c func = sdiodev->func2; sdiodev 760 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdiodev->sg_support = host->max_segs > 1; sdiodev 762 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdiodev->max_request_size = min_t(uint, host->max_req_size, sdiodev 764 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdiodev->max_segment_count = min_t(uint, host->max_segs, sdiodev 766 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdiodev->max_segment_size = host->max_seg_size; sdiodev 768 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c if (!sdiodev->sg_support) sdiodev 772 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdiodev->settings->bus.sdio.txglomsz); sdiodev 775 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c WARN_ON(nents > sdiodev->max_segment_count); sdiodev 778 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c err = sg_alloc_table(&sdiodev->sgtable, nents, GFP_KERNEL); sdiodev 781 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdiodev->sg_support = false; sdiodev 784 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdiodev->txglomsz = sdiodev->settings->bus.sdio.txglomsz; sdiodev 788 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c static int brcmf_sdiod_freezer_attach(struct brcmf_sdio_dev *sdiodev) sdiodev 790 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdiodev->freezer = kzalloc(sizeof(*sdiodev->freezer), GFP_KERNEL); sdiodev 791 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c if (!sdiodev->freezer) sdiodev 793 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c atomic_set(&sdiodev->freezer->thread_count, 0); sdiodev 794 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c atomic_set(&sdiodev->freezer->freezing, 0); sdiodev 795 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c init_waitqueue_head(&sdiodev->freezer->thread_freeze); sdiodev 796 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c init_completion(&sdiodev->freezer->resumed); sdiodev 800 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c static void brcmf_sdiod_freezer_detach(struct brcmf_sdio_dev *sdiodev) sdiodev 802 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c if (sdiodev->freezer) { sdiodev 803 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c WARN_ON(atomic_read(&sdiodev->freezer->freezing)); sdiodev 804 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c kfree(sdiodev->freezer); sdiodev 808 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c static int brcmf_sdiod_freezer_on(struct brcmf_sdio_dev *sdiodev) sdiodev 810 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c atomic_t *expect = &sdiodev->freezer->thread_count; sdiodev 813 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdiodev->freezer->frozen_count = 0; sdiodev 814 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c reinit_completion(&sdiodev->freezer->resumed); sdiodev 815 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c atomic_set(&sdiodev->freezer->freezing, 1); sdiodev 816 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c brcmf_sdio_trigger_dpc(sdiodev->bus); sdiodev 817 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c wait_event(sdiodev->freezer->thread_freeze, sdiodev 818 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c atomic_read(expect) == sdiodev->freezer->frozen_count); sdiodev 819 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdio_claim_host(sdiodev->func1); sdiodev 820 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c res = brcmf_sdio_sleep(sdiodev->bus, true); sdiodev 821 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdio_release_host(sdiodev->func1); sdiodev 825 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c static void brcmf_sdiod_freezer_off(struct brcmf_sdio_dev *sdiodev) sdiodev 827 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdio_claim_host(sdiodev->func1); sdiodev 828 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c brcmf_sdio_sleep(sdiodev->bus, false); sdiodev 829 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdio_release_host(sdiodev->func1); sdiodev 830 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c atomic_set(&sdiodev->freezer->freezing, 0); sdiodev 831 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c complete_all(&sdiodev->freezer->resumed); sdiodev 834 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c bool brcmf_sdiod_freezing(struct brcmf_sdio_dev *sdiodev) sdiodev 836 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c return atomic_read(&sdiodev->freezer->freezing); sdiodev 839 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c void brcmf_sdiod_try_freeze(struct brcmf_sdio_dev *sdiodev) sdiodev 841 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c if (!brcmf_sdiod_freezing(sdiodev)) sdiodev 843 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdiodev->freezer->frozen_count++; sdiodev 844 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c wake_up(&sdiodev->freezer->thread_freeze); sdiodev 845 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c wait_for_completion(&sdiodev->freezer->resumed); sdiodev 848 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c void brcmf_sdiod_freezer_count(struct brcmf_sdio_dev *sdiodev) sdiodev 850 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c atomic_inc(&sdiodev->freezer->thread_count); sdiodev 853 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c void brcmf_sdiod_freezer_uncount(struct brcmf_sdio_dev *sdiodev) sdiodev 855 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c atomic_dec(&sdiodev->freezer->thread_count); sdiodev 858 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c static int brcmf_sdiod_freezer_attach(struct brcmf_sdio_dev *sdiodev) sdiodev 863 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c static void brcmf_sdiod_freezer_detach(struct brcmf_sdio_dev *sdiodev) sdiodev 868 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c static int brcmf_sdiod_remove(struct brcmf_sdio_dev *sdiodev) sdiodev 870 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdiodev->state = BRCMF_SDIOD_DOWN; sdiodev 871 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c if (sdiodev->bus) { sdiodev 872 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c brcmf_sdio_remove(sdiodev->bus); sdiodev 873 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdiodev->bus = NULL; sdiodev 876 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c brcmf_sdiod_freezer_detach(sdiodev); sdiodev 879 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdio_claim_host(sdiodev->func2); sdiodev 880 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdio_disable_func(sdiodev->func2); sdiodev 881 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdio_release_host(sdiodev->func2); sdiodev 884 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdio_claim_host(sdiodev->func1); sdiodev 885 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdio_disable_func(sdiodev->func1); sdiodev 886 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdio_release_host(sdiodev->func1); sdiodev 888 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sg_free_table(&sdiodev->sgtable); sdiodev 889 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdiodev->sbwad = 0; sdiodev 891 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c pm_runtime_allow(sdiodev->func1->card->host->parent); sdiodev 903 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c static int brcmf_sdiod_probe(struct brcmf_sdio_dev *sdiodev) sdiodev 907 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdio_claim_host(sdiodev->func1); sdiodev 909 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c ret = sdio_set_block_size(sdiodev->func1, SDIO_FUNC1_BLOCKSIZE); sdiodev 912 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdio_release_host(sdiodev->func1); sdiodev 915 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c ret = sdio_set_block_size(sdiodev->func2, SDIO_FUNC2_BLOCKSIZE); sdiodev 918 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdio_release_host(sdiodev->func1); sdiodev 923 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdiodev->func2->enable_timeout = SDIO_WAIT_F2RDY; sdiodev 926 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c ret = sdio_enable_func(sdiodev->func1); sdiodev 927 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdio_release_host(sdiodev->func1); sdiodev 933 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c ret = brcmf_sdiod_freezer_attach(sdiodev); sdiodev 938 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdiodev->bus = brcmf_sdio_probe(sdiodev); sdiodev 939 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c if (!sdiodev->bus) { sdiodev 943 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c brcmf_sdiod_host_fixup(sdiodev->func2->card->host); sdiodev 946 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c brcmf_sdiod_remove(sdiodev); sdiodev 995 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c struct brcmf_sdio_dev *sdiodev; sdiodev 1024 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdiodev = kzalloc(sizeof(struct brcmf_sdio_dev), GFP_KERNEL); sdiodev 1025 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c if (!sdiodev) { sdiodev 1033 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdiodev->func1 = func->card->sdio_func[0]; sdiodev 1034 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdiodev->func2 = func; sdiodev 1036 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdiodev->bus_if = bus_if; sdiodev 1037 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c bus_if->bus_priv.sdio = sdiodev; sdiodev 1040 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c dev_set_drvdata(&sdiodev->func1->dev, bus_if); sdiodev 1041 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdiodev->dev = &sdiodev->func1->dev; sdiodev 1043 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c brcmf_sdiod_change_state(sdiodev, BRCMF_SDIOD_DOWN); sdiodev 1046 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c err = brcmf_sdiod_probe(sdiodev); sdiodev 1057 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c dev_set_drvdata(&sdiodev->func1->dev, NULL); sdiodev 1058 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c kfree(sdiodev); sdiodev 1066 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c struct brcmf_sdio_dev *sdiodev; sdiodev 1075 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdiodev = bus_if->bus_priv.sdio; sdiodev 1078 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c brcmf_sdiod_intr_unregister(sdiodev); sdiodev 1084 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c brcmf_sdiod_remove(sdiodev); sdiodev 1086 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c dev_set_drvdata(&sdiodev->func1->dev, NULL); sdiodev 1087 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c dev_set_drvdata(&sdiodev->func2->dev, NULL); sdiodev 1090 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c kfree(sdiodev); sdiodev 1099 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; sdiodev 1102 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdiodev->wowl_enabled = enabled; sdiodev 1110 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c struct brcmf_sdio_dev *sdiodev; sdiodev 1120 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdiodev = bus_if->bus_priv.sdio; sdiodev 1122 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c brcmf_sdiod_freezer_on(sdiodev); sdiodev 1123 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c brcmf_sdio_wd_timer(sdiodev->bus, 0); sdiodev 1126 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c if (sdiodev->wowl_enabled) { sdiodev 1127 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c if (sdiodev->settings->bus.sdio.oob_irq_supported) sdiodev 1128 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c enable_irq_wake(sdiodev->settings->bus.sdio.oob_irq_nr); sdiodev 1132 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c if (sdio_set_host_pm_flags(sdiodev->func1, sdio_flags)) sdiodev 1140 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; sdiodev 1147 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c brcmf_sdiod_freezer_off(sdiodev); sdiodev 433 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c struct brcmf_sdio_dev *sdiodev; /* sdio device handler */ sdiodev 670 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_retune_crc_disable(bus->sdiodev->func1); sdiodev 674 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_retune_hold_now(bus->sdiodev->func1); sdiodev 678 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_writeb(bus->sdiodev, SBSDIO_FUNC1_SLEEPCSR, wr_val, &err); sdiodev 712 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c rd_val = brcmf_sdiod_readb(bus->sdiodev, SBSDIO_FUNC1_SLEEPCSR, sdiodev 724 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_writeb(bus->sdiodev, SBSDIO_FUNC1_SLEEPCSR, wr_val, sdiodev 737 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_retune_release(bus->sdiodev->func1); sdiodev 739 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_retune_crc_enable(bus->sdiodev->func1); sdiodev 767 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_writeb(bus->sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, sdiodev 775 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c clkctl = brcmf_sdiod_readb(bus->sdiodev, sdiodev 785 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c devctl = brcmf_sdiod_readb(bus->sdiodev, sdiodev 793 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_writeb(bus->sdiodev, SBSDIO_DEVICE_CTL, sdiodev 801 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c devctl = brcmf_sdiod_readb(bus->sdiodev, sdiodev 804 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_writeb(bus->sdiodev, SBSDIO_DEVICE_CTL, sdiodev 812 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c clkctl = brcmf_sdiod_readb(bus->sdiodev, sdiodev 846 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c devctl = brcmf_sdiod_readb(bus->sdiodev, sdiodev 849 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_writeb(bus->sdiodev, SBSDIO_DEVICE_CTL, sdiodev 854 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_writeb(bus->sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, sdiodev 945 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c clkcsr = brcmf_sdiod_readb(bus->sdiodev, sdiodev 950 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_writeb(bus->sdiodev, sdiodev 998 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_claim_host(bus->sdiodev->func1); sdiodev 1008 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c rv = brcmf_sdiod_ramrw(bus->sdiodev, false, shaddr, sdiodev 1027 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c rv = brcmf_sdiod_ramrw(bus->sdiodev, false, addr, (u8 *)&sh_le, sdiodev 1032 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_release_host(bus->sdiodev->func1); sdiodev 1054 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_release_host(bus->sdiodev->func1); sdiodev 1073 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c struct brcmf_sdio_dev *sdiod = bus->sdiodev; sdiodev 1166 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c struct brcmf_sdio_dev *sdiod = bus->sdiodev; sdiodev 1178 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_abort(bus->sdiodev, bus->sdiodev->func2); sdiodev 1180 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_writeb(bus->sdiodev, SBSDIO_FUNC1_FRAMECTRL, SFC_RF_TERM, sdiodev 1186 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c hi = brcmf_sdiod_readb(bus->sdiodev, SBSDIO_FUNC1_RFRAMEBCHI, sdiodev 1188 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c lo = brcmf_sdiod_readb(bus->sdiodev, SBSDIO_FUNC1_RFRAMEBCLO, sdiodev 1223 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c struct brcmf_sdio_dev *sdiodev = bus->sdiodev; sdiodev 1230 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_abort(sdiodev, sdiodev->func2); sdiodev 1231 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_writeb(sdiodev, SBSDIO_FUNC1_FRAMECTRL, SFC_WF_TERM, NULL); sdiodev 1235 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c hi = brcmf_sdiod_readb(sdiodev, SBSDIO_FUNC1_WFRAMEBCHI, NULL); sdiodev 1236 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c lo = brcmf_sdiod_readb(sdiodev, SBSDIO_FUNC1_WFRAMEBCLO, NULL); sdiodev 1586 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_claim_host(bus->sdiodev->func1); sdiodev 1587 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c errcode = brcmf_sdiod_recv_chain(bus->sdiodev, sdiodev 1589 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_release_host(bus->sdiodev->func1); sdiodev 1597 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_claim_host(bus->sdiodev->func1); sdiodev 1601 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_release_host(bus->sdiodev->func1); sdiodev 1611 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_claim_host(bus->sdiodev->func1); sdiodev 1614 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_release_host(bus->sdiodev->func1); sdiodev 1629 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_claim_host(bus->sdiodev->func1); sdiodev 1632 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_release_host(bus->sdiodev->func1); sdiodev 1641 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_claim_host(bus->sdiodev->func1); sdiodev 1645 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_release_host(bus->sdiodev->func1); sdiodev 1679 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_rx_event(bus->sdiodev->dev, pfirst); sdiodev 1681 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_rx_frame(bus->sdiodev->dev, pfirst, sdiodev 1747 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c ((len + pad) < bus->sdiodev->bus_if->maxctl)) sdiodev 1754 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c if ((rdlen + BRCMF_FIRSTREAD) > bus->sdiodev->bus_if->maxctl) { sdiodev 1756 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c rdlen, bus->sdiodev->bus_if->maxctl); sdiodev 1761 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c if ((len - doff) > bus->sdiodev->bus_if->maxctl) { sdiodev 1763 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c len, len - doff, bus->sdiodev->bus_if->maxctl); sdiodev 1770 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdret = brcmf_sdiod_recv_buf(bus->sdiodev, rbuf, rdlen); sdiodev 1835 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c !bus->rxskip && rxleft && bus->sdiodev->state == BRCMF_SDIOD_DATA; sdiodev 1852 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_claim_host(bus->sdiodev->func1); sdiodev 1854 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c ret = brcmf_sdiod_recv_buf(bus->sdiodev, sdiodev 1862 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_release_host(bus->sdiodev->func1); sdiodev 1872 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_release_host(bus->sdiodev->func1); sdiodev 1888 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_release_host(bus->sdiodev->func1); sdiodev 1905 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_release_host(bus->sdiodev->func1); sdiodev 1911 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c ret = brcmf_sdiod_recv_pkt(bus->sdiodev, pkt); sdiodev 1913 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_release_host(bus->sdiodev->func1); sdiodev 1919 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_claim_host(bus->sdiodev->func1); sdiodev 1922 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_release_host(bus->sdiodev->func1); sdiodev 1933 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_claim_host(bus->sdiodev->func1); sdiodev 1938 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_release_host(bus->sdiodev->func1); sdiodev 1949 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_release_host(bus->sdiodev->func1); sdiodev 1953 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_release_host(bus->sdiodev->func1); sdiodev 1969 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_claim_host(bus->sdiodev->func1); sdiodev 1971 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_release_host(bus->sdiodev->func1); sdiodev 1994 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_claim_host(bus->sdiodev->func1); sdiodev 1996 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_release_host(bus->sdiodev->func1); sdiodev 2013 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_rx_event(bus->sdiodev->dev, pkt); sdiodev 2015 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_rx_frame(bus->sdiodev->dev, pkt, sdiodev 2058 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c stats = &bus->sdiodev->bus_if->stats; sdiodev 2086 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c struct brcmf_sdio_dev *sdiodev; sdiodev 2093 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdiodev = bus->sdiodev; sdiodev 2094 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c blksize = sdiodev->func2->cur_blksize; sdiodev 2273 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_claim_host(bus->sdiodev->func1); sdiodev 2274 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c ret = brcmf_sdiod_send_pkt(bus->sdiodev, pktq); sdiodev 2280 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_release_host(bus->sdiodev->func1); sdiodev 2288 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_proto_bcdc_txcomplete(bus->sdiodev->dev, pkt_next, sdiodev 2313 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c bus->sdiodev->txglomsz); sdiodev 2336 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_claim_host(bus->sdiodev->func1); sdiodev 2337 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c intstatus = brcmf_sdiod_readl(bus->sdiodev, sdiodev 2339 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_release_host(bus->sdiodev->func1); sdiodev 2350 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c if ((bus->sdiodev->state == BRCMF_SDIOD_DATA) && sdiodev 2353 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_proto_bcdc_txflowblock(bus->sdiodev->dev, false); sdiodev 2410 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c ret = brcmf_sdiod_send_buf(bus->sdiodev, frame, len); sdiodev 2432 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; sdiodev 2433 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c struct brcmf_sdio *bus = sdiodev->bus; sdiodev 2447 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c if (sdiodev->state != BRCMF_SDIOD_NOMEDIUM) { sdiodev 2448 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_claim_host(sdiodev->func1); sdiodev 2454 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_writel(sdiodev, core->base + SD_REG(hostintmask), sdiodev 2461 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c saveclk = brcmf_sdiod_readb(sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, sdiodev 2467 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_writeb(sdiodev, sdiodev 2477 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_disable_func(sdiodev->func2); sdiodev 2480 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_writel(sdiodev, core->base + SD_REG(intstatus), sdiodev 2483 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_release_host(sdiodev->func1); sdiodev 2505 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c struct brcmf_sdio_dev *sdiodev; sdiodev 2508 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdiodev = bus->sdiodev; sdiodev 2509 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c if (sdiodev->oob_irq_requested) { sdiodev 2510 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c spin_lock_irqsave(&sdiodev->irq_en_lock, flags); sdiodev 2511 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c if (!sdiodev->irq_en && !atomic_read(&bus->ipend)) { sdiodev 2512 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c enable_irq(sdiodev->settings->bus.sdio.oob_irq_nr); sdiodev 2513 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdiodev->irq_en = true; sdiodev 2515 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c spin_unlock_irqrestore(&sdiodev->irq_en_lock, flags); sdiodev 2528 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c val = brcmf_sdiod_readl(bus->sdiodev, addr, &ret); sdiodev 2538 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_writel(bus->sdiodev, addr, val, &ret); sdiodev 2548 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c struct brcmf_sdio_dev *sdiod = bus->sdiodev; sdiodev 2558 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_claim_host(bus->sdiodev->func1); sdiodev 2566 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c devctl = brcmf_sdiod_readb(bus->sdiodev, SBSDIO_DEVICE_CTL, sdiodev 2571 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c clkctl = brcmf_sdiod_readb(bus->sdiodev, sdiodev 2578 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c devctl = brcmf_sdiod_readb(bus->sdiodev, sdiodev 2581 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_writeb(bus->sdiodev, sdiodev 2621 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_release_host(bus->sdiodev->func1); sdiodev 2664 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_claim_host(bus->sdiodev->func1); sdiodev 2672 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_release_host(bus->sdiodev->func1); sdiodev 2684 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c if ((bus->sdiodev->state != BRCMF_SDIOD_DATA) || (err != 0)) { sdiodev 2688 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_claim_host(bus->sdiodev->func1); sdiodev 2695 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_release_host(bus->sdiodev->func1); sdiodev 2709 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; sdiodev 2710 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c struct brcmf_sdio *bus = sdiodev->bus; sdiodev 2762 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; sdiodev 2763 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c struct brcmf_sdio *bus = sdiodev->bus; sdiodev 2766 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c if (sdiodev->state != BRCMF_SDIOD_DATA) sdiodev 2823 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c rv = brcmf_sdiod_ramrw(bus->sdiodev, false, addr, (u8 *)&c->log_le, sdiodev 2849 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c rv = brcmf_sdiod_ramrw(bus->sdiodev, false, addr, c->buf, c->bufsize); sdiodev 2891 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; sdiodev 2892 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c struct brcmf_sdio *bus = sdiodev->bus; sdiodev 2896 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c if (sdiodev->state != BRCMF_SDIOD_DATA) sdiodev 2910 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_claim_host(bus->sdiodev->func1); sdiodev 2916 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_release_host(bus->sdiodev->func1); sdiodev 2944 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c rv = brcmf_sdiod_ramrw(bus->sdiodev, false, addr, sdiodev 2951 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c rv = brcmf_sdiod_ramrw(bus->sdiodev, false, addr, sdiodev 2958 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c rv = brcmf_sdiod_ramrw(bus->sdiodev, false, addr, sdiodev 2973 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c rv = brcmf_sdiod_ramrw(bus->sdiodev, false, console_ptr, (u8 *)conbuf, sdiodev 3002 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c error = brcmf_sdiod_ramrw(bus->sdiodev, false, sh->trap_addr, (u8 *)&tr, sdiodev 3054 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_claim_host(bus->sdiodev->func1); sdiodev 3056 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c error = brcmf_sdiod_ramrw(bus->sdiodev, false, sdiodev 3062 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c error = brcmf_sdiod_ramrw(bus->sdiodev, false, sdiodev 3067 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_release_host(bus->sdiodev->func1); sdiodev 3131 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; sdiodev 3132 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c struct brcmf_sdio_count *sdcnt = &sdiodev->bus->sdcnt; sdiodev 3171 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; sdiodev 3172 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c struct brcmf_sdio *bus = sdiodev->bus; sdiodev 3205 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; sdiodev 3206 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c struct brcmf_sdio *bus = sdiodev->bus; sdiodev 3209 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c if (sdiodev->state != BRCMF_SDIOD_DATA) sdiodev 3249 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdio_verifymemory(struct brcmf_sdio_dev *sdiodev, u32 ram_addr, sdiodev 3272 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c err = brcmf_sdiod_ramrw(sdiodev, false, address, ram_cmp, len); sdiodev 3294 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdio_verifymemory(struct brcmf_sdio_dev *sdiodev, u32 ram_addr, sdiodev 3308 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c err = brcmf_sdiod_ramrw(bus->sdiodev, true, bus->ci->rambase, sdiodev 3313 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c else if (!brcmf_sdio_verifymemory(bus->sdiodev, bus->ci->rambase, sdiodev 3329 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c err = brcmf_sdiod_ramrw(bus->sdiodev, true, address, vars, varsz); sdiodev 3333 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c else if (!brcmf_sdio_verifymemory(bus->sdiodev, address, vars, varsz)) sdiodev 3346 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_claim_host(bus->sdiodev->func1); sdiodev 3375 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_release_host(bus->sdiodev->func1); sdiodev 3412 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c val = brcmf_sdiod_readb(bus->sdiodev, SBSDIO_FUNC1_WAKEUPCTRL, &err); sdiodev 3418 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_writeb(bus->sdiodev, SBSDIO_FUNC1_WAKEUPCTRL, val, &err); sdiodev 3425 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_func0_wb(bus->sdiodev, SDIO_CCCR_BRCM_CARDCAP, sdiodev 3433 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_writeb(bus->sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, sdiodev 3458 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c val = brcmf_sdiod_readb(bus->sdiodev, SBSDIO_FUNC1_SLEEPCSR, &err); sdiodev 3467 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_writeb(bus->sdiodev, SBSDIO_FUNC1_SLEEPCSR, sdiodev 3482 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; sdiodev 3483 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c struct brcmf_sdio *bus = sdiodev->bus; sdiodev 3511 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c value = sdiodev->settings->bus.sdio.sd_sgentry_align; sdiodev 3522 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c if (sdiodev->sg_support) { sdiodev 3525 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c err = brcmf_iovar_data_set(bus->sdiodev->dev, "bus:rxglom", sdiodev 3535 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_bus_add_txhdrlen(bus->sdiodev->dev, bus->tx_hdrlen); sdiodev 3544 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; sdiodev 3545 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c struct brcmf_sdio *bus = sdiodev->bus; sdiodev 3554 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; sdiodev 3555 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c struct brcmf_sdio *bus = sdiodev->bus; sdiodev 3566 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_claim_host(sdiodev->func1); sdiodev 3570 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c err = brcmf_sdiod_ramrw(sdiodev, false, address, data, len); sdiodev 3582 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_release_host(sdiodev->func1); sdiodev 3639 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_claim_host(bus->sdiodev->func1); sdiodev 3640 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c devpend = brcmf_sdiod_func0_rb(bus->sdiodev, sdiodev 3642 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_release_host(bus->sdiodev->func1); sdiodev 3663 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c if (bus->sdiodev->state == BRCMF_SDIOD_DATA && BRCMF_FWCON_ON() && sdiodev 3668 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_claim_host(bus->sdiodev->func1); sdiodev 3674 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_release_host(bus->sdiodev->func1); sdiodev 3687 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_claim_host(bus->sdiodev->func1); sdiodev 3691 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_release_host(bus->sdiodev->func1); sdiodev 3714 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c if (brcmf_sdiod_freezing(bus->sdiodev)) { sdiodev 3715 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_change_state(bus->sdiodev, BRCMF_SDIOD_DOWN); sdiodev 3716 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_try_freeze(bus->sdiodev); sdiodev 3717 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_change_state(bus->sdiodev, BRCMF_SDIOD_DATA); sdiodev 3722 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdio_drivestrengthinit(struct brcmf_sdio_dev *sdiodev, sdiodev 3779 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_writel(sdiodev, addr, 1, NULL); sdiodev 3780 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c cc_data_temp = brcmf_sdiod_readl(sdiodev, addr, NULL); sdiodev 3784 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_writel(sdiodev, addr, cc_data_temp, NULL); sdiodev 3793 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c struct brcmf_sdio_dev *sdiodev = ctx; sdiodev 3799 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_writeb(sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, clkset, &err); sdiodev 3807 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c clkval = brcmf_sdiod_readb(sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, NULL); sdiodev 3815 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c SPINWAIT(((clkval = brcmf_sdiod_readb(sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, sdiodev 3827 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_writeb(sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, clkset, &err); sdiodev 3831 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_writeb(sdiodev, SBSDIO_FUNC1_SDIOPULLUP, 0, NULL); sdiodev 3839 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c struct brcmf_sdio_dev *sdiodev = ctx; sdiodev 3840 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c struct brcmf_core *core = sdiodev->bus->sdio_core; sdiodev 3845 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_writel(sdiodev, reg_addr, 0xFFFFFFFF, NULL); sdiodev 3849 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_ramrw(sdiodev, true, 0, (void *)&rstvec, sdiodev 3855 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c struct brcmf_sdio_dev *sdiodev = ctx; sdiodev 3858 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c val = brcmf_sdiod_readl(sdiodev, addr, NULL); sdiodev 3868 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c (sdiodev->func1->device == SDIO_DEVICE_ID_BROADCOM_4339 || sdiodev 3869 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdiodev->func1->device == SDIO_DEVICE_ID_BROADCOM_4335_4339)) { sdiodev 3882 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c struct brcmf_sdio_dev *sdiodev = ctx; sdiodev 3884 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_writel(sdiodev, addr, val, NULL); sdiodev 3897 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c struct brcmf_sdio_dev *sdiodev; sdiodev 3904 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdiodev = bus->sdiodev; sdiodev 3905 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_claim_host(sdiodev->func1); sdiodev 3908 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_readl(sdiodev, SI_ENUM_BASE, NULL)); sdiodev 3915 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_writeb(sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, BRCMF_INIT_CLKCTL1, sdiodev 3918 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c clkctl = brcmf_sdiod_readb(sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, sdiodev 3927 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c bus->ci = brcmf_chip_attach(sdiodev, &brcmf_sdio_buscore_ops); sdiodev 3940 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdiodev->cc_core = brcmf_chip_get_core(bus->ci, BCMA_CORE_CHIPCOMMON); sdiodev 3941 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c if (!sdiodev->cc_core) sdiodev 3944 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdiodev->settings = brcmf_get_module_param(sdiodev->dev, sdiodev 3948 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c if (!sdiodev->settings) { sdiodev 3957 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c if (sdiodev->settings->bus.sdio.sd_head_align > ALIGNMENT) sdiodev 3958 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c bus->head_align = sdiodev->settings->bus.sdio.sd_head_align; sdiodev 3959 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c if (sdiodev->settings->bus.sdio.sd_sgentry_align > ALIGNMENT) sdiodev 3961 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdiodev->settings->bus.sdio.sd_sgentry_align; sdiodev 3966 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_sgtable_alloc(sdiodev); sdiodev 3972 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c if ((sdio_get_host_pm_caps(sdiodev->func1) & MMC_PM_KEEP_POWER) && sdiodev 3973 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c ((sdio_get_host_pm_caps(sdiodev->func1) & MMC_PM_WAKE_SDIO_IRQ) || sdiodev 3974 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c (sdiodev->settings->bus.sdio.oob_irq_supported))) sdiodev 3975 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdiodev->bus_if->wowl_supported = true; sdiodev 3983 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c if (sdiodev->settings->bus.sdio.drive_strength) sdiodev 3984 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c drivestrength = sdiodev->settings->bus.sdio.drive_strength; sdiodev 3987 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdio_drivestrengthinit(sdiodev, bus->ci, drivestrength); sdiodev 3990 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c reg_val = brcmf_sdiod_func0_rb(sdiodev, SDIO_CCCR_BRCM_CARDCTRL, &err); sdiodev 3996 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_func0_wb(sdiodev, SDIO_CCCR_BRCM_CARDCTRL, reg_val, &err); sdiodev 4002 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c reg_val = brcmf_sdiod_readl(sdiodev, reg_addr, &err); sdiodev 4008 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_writel(sdiodev, reg_addr, reg_val, &err); sdiodev 4012 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_release_host(sdiodev->func1); sdiodev 4033 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_release_host(sdiodev->func1); sdiodev 4045 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_freezer_count(bus->sdiodev); sdiodev 4049 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_freezer_uncount(bus->sdiodev); sdiodev 4051 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_freezer_count(bus->sdiodev); sdiodev 4052 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_try_freeze(bus->sdiodev); sdiodev 4238 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_change_state(bus->sdiodev, BRCMF_SDIOD_DATA); sdiodev 4288 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c { ".bin", bus->sdiodev->fw_name }, sdiodev 4289 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c { ".txt", bus->sdiodev->nvram_name }, sdiodev 4301 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c fwreq->board_type = bus->sdiodev->settings->board_type; sdiodev 4306 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c struct brcmf_sdio *brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev) sdiodev 4320 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c bus->sdiodev = sdiodev; sdiodev 4321 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdiodev->bus = bus; sdiodev 4330 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c dev_name(&sdiodev->func1->dev)); sdiodev 4335 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_freezer_count(sdiodev); sdiodev 4356 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c dev_name(&sdiodev->func1->dev)); sdiodev 4369 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c bus->blocksize = bus->sdiodev->func2->cur_blksize; sdiodev 4372 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_claim_host(bus->sdiodev->func1); sdiodev 4375 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_disable_func(bus->sdiodev->func2); sdiodev 4380 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_writeb(bus->sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, 0, NULL); sdiodev 4382 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_release_host(bus->sdiodev->func1); sdiodev 4400 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c ret = brcmf_fw_get_firmwares(sdiodev->dev, fwreq, sdiodev 4429 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_sdiod_intr_unregister(bus->sdiodev); sdiodev 4431 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_detach(bus->sdiodev->dev); sdiodev 4438 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c if (bus->sdiodev->state != BRCMF_SDIOD_NOMEDIUM) { sdiodev 4439 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_claim_host(bus->sdiodev->func1); sdiodev 4449 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_release_host(bus->sdiodev->func1); sdiodev 4453 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c if (bus->sdiodev->settings) sdiodev 4454 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c brcmf_release_module_param(bus->sdiodev->settings); sdiodev 4474 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c if (bus->sdiodev->state != BRCMF_SDIOD_DATA) sdiodev 4496 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_claim_host(bus->sdiodev->func1); sdiodev 4498 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c sdio_release_host(bus->sdiodev->func1); sdiodev 285 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h int brcmf_sdiod_intr_register(struct brcmf_sdio_dev *sdiodev); sdiodev 286 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h void brcmf_sdiod_intr_unregister(struct brcmf_sdio_dev *sdiodev); sdiodev 290 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h #define brcmf_sdiod_func0_rb(sdiodev, addr, r) \ sdiodev 291 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h sdio_f0_readb((sdiodev)->func1, (addr), (r)) sdiodev 293 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h #define brcmf_sdiod_func0_wb(sdiodev, addr, v, ret) \ sdiodev 294 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h sdio_f0_writeb((sdiodev)->func1, (v), (addr), (ret)) sdiodev 297 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h #define brcmf_sdiod_readb(sdiodev, addr, r) \ sdiodev 298 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h sdio_readb((sdiodev)->func1, (addr), (r)) sdiodev 300 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h #define brcmf_sdiod_writeb(sdiodev, addr, v, ret) \ sdiodev 301 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h sdio_writeb((sdiodev)->func1, (v), (addr), (ret)) sdiodev 303 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h u32 brcmf_sdiod_readl(struct brcmf_sdio_dev *sdiodev, u32 addr, int *ret); sdiodev 304 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h void brcmf_sdiod_writel(struct brcmf_sdio_dev *sdiodev, u32 addr, u32 data, sdiodev 318 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h int brcmf_sdiod_send_pkt(struct brcmf_sdio_dev *sdiodev, sdiodev 320 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h int brcmf_sdiod_send_buf(struct brcmf_sdio_dev *sdiodev, u8 *buf, uint nbytes); sdiodev 322 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h int brcmf_sdiod_recv_pkt(struct brcmf_sdio_dev *sdiodev, struct sk_buff *pkt); sdiodev 323 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h int brcmf_sdiod_recv_buf(struct brcmf_sdio_dev *sdiodev, u8 *buf, uint nbytes); sdiodev 324 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h int brcmf_sdiod_recv_chain(struct brcmf_sdio_dev *sdiodev, sdiodev 341 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h int brcmf_sdiod_ramrw(struct brcmf_sdio_dev *sdiodev, bool write, u32 address, sdiodev 345 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h int brcmf_sdiod_abort(struct brcmf_sdio_dev *sdiodev, struct sdio_func *func); sdiodev 347 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h void brcmf_sdiod_sgtable_alloc(struct brcmf_sdio_dev *sdiodev); sdiodev 348 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h void brcmf_sdiod_change_state(struct brcmf_sdio_dev *sdiodev, sdiodev 351 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h bool brcmf_sdiod_freezing(struct brcmf_sdio_dev *sdiodev); sdiodev 352 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h void brcmf_sdiod_try_freeze(struct brcmf_sdio_dev *sdiodev); sdiodev 353 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h void brcmf_sdiod_freezer_count(struct brcmf_sdio_dev *sdiodev); sdiodev 354 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h void brcmf_sdiod_freezer_uncount(struct brcmf_sdio_dev *sdiodev); sdiodev 356 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h static inline bool brcmf_sdiod_freezing(struct brcmf_sdio_dev *sdiodev) sdiodev 360 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h static inline void brcmf_sdiod_try_freeze(struct brcmf_sdio_dev *sdiodev) sdiodev 363 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h static inline void brcmf_sdiod_freezer_count(struct brcmf_sdio_dev *sdiodev) sdiodev 366 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h static inline void brcmf_sdiod_freezer_uncount(struct brcmf_sdio_dev *sdiodev) sdiodev 371 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h struct brcmf_sdio *brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev);