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);