Lines Matching refs:sdiodev

73 	struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio;  in brcmf_sdiod_oob_irqhandler()  local
80 if (sdiodev->irq_en) { in brcmf_sdiod_oob_irqhandler()
82 sdiodev->irq_en = false; in brcmf_sdiod_oob_irqhandler()
85 brcmf_sdio_isr(sdiodev->bus); in brcmf_sdiod_oob_irqhandler()
93 struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; in brcmf_sdiod_ib_irqhandler() local
97 brcmf_sdio_isr(sdiodev->bus); in brcmf_sdiod_ib_irqhandler()
105 int brcmf_sdiod_intr_register(struct brcmf_sdio_dev *sdiodev) in brcmf_sdiod_intr_register() argument
112 pdata = &sdiodev->settings->bus.sdio; in brcmf_sdiod_intr_register()
116 spin_lock_init(&sdiodev->irq_en_lock); in brcmf_sdiod_intr_register()
117 sdiodev->irq_en = true; in brcmf_sdiod_intr_register()
121 &sdiodev->func1->dev); in brcmf_sdiod_intr_register()
126 sdiodev->oob_irq_requested = true; in brcmf_sdiod_intr_register()
133 sdiodev->irq_wake = true; in brcmf_sdiod_intr_register()
135 sdio_claim_host(sdiodev->func1); in brcmf_sdiod_intr_register()
137 if (sdiodev->bus_if->chip == BRCM_CC_43362_CHIP_ID) { in brcmf_sdiod_intr_register()
140 gpiocontrol = brcmf_sdiod_readl(sdiodev, addr, &ret); in brcmf_sdiod_intr_register()
142 brcmf_sdiod_writel(sdiodev, addr, gpiocontrol, &ret); in brcmf_sdiod_intr_register()
144 brcmf_sdiod_writeb(sdiodev, SBSDIO_GPIO_SELECT, in brcmf_sdiod_intr_register()
146 brcmf_sdiod_writeb(sdiodev, SBSDIO_GPIO_OUT, 0, &ret); in brcmf_sdiod_intr_register()
147 brcmf_sdiod_writeb(sdiodev, SBSDIO_GPIO_EN, 0x2, &ret); in brcmf_sdiod_intr_register()
151 data = brcmf_sdiod_func0_rb(sdiodev, SDIO_CCCR_IENx, &ret); in brcmf_sdiod_intr_register()
154 brcmf_sdiod_func0_wb(sdiodev, SDIO_CCCR_IENx, data, &ret); in brcmf_sdiod_intr_register()
160 brcmf_sdiod_func0_wb(sdiodev, SDIO_CCCR_BRCM_SEPINT, in brcmf_sdiod_intr_register()
162 sdio_release_host(sdiodev->func1); in brcmf_sdiod_intr_register()
165 sdio_claim_host(sdiodev->func1); in brcmf_sdiod_intr_register()
166 sdio_claim_irq(sdiodev->func1, brcmf_sdiod_ib_irqhandler); in brcmf_sdiod_intr_register()
167 sdio_claim_irq(sdiodev->func2, brcmf_sdiod_dummy_irqhandler); in brcmf_sdiod_intr_register()
168 sdio_release_host(sdiodev->func1); in brcmf_sdiod_intr_register()
169 sdiodev->sd_irq_requested = true; in brcmf_sdiod_intr_register()
175 void brcmf_sdiod_intr_unregister(struct brcmf_sdio_dev *sdiodev) in brcmf_sdiod_intr_unregister() argument
179 sdiodev->oob_irq_requested, in brcmf_sdiod_intr_unregister()
180 sdiodev->sd_irq_requested); in brcmf_sdiod_intr_unregister()
182 if (sdiodev->oob_irq_requested) { in brcmf_sdiod_intr_unregister()
185 pdata = &sdiodev->settings->bus.sdio; in brcmf_sdiod_intr_unregister()
186 sdio_claim_host(sdiodev->func1); in brcmf_sdiod_intr_unregister()
187 brcmf_sdiod_func0_wb(sdiodev, SDIO_CCCR_BRCM_SEPINT, 0, NULL); in brcmf_sdiod_intr_unregister()
188 brcmf_sdiod_func0_wb(sdiodev, SDIO_CCCR_IENx, 0, NULL); in brcmf_sdiod_intr_unregister()
189 sdio_release_host(sdiodev->func1); in brcmf_sdiod_intr_unregister()
191 sdiodev->oob_irq_requested = false; in brcmf_sdiod_intr_unregister()
192 if (sdiodev->irq_wake) { in brcmf_sdiod_intr_unregister()
194 sdiodev->irq_wake = false; in brcmf_sdiod_intr_unregister()
196 free_irq(pdata->oob_irq_nr, &sdiodev->func1->dev); in brcmf_sdiod_intr_unregister()
197 sdiodev->irq_en = false; in brcmf_sdiod_intr_unregister()
198 sdiodev->oob_irq_requested = false; in brcmf_sdiod_intr_unregister()
201 if (sdiodev->sd_irq_requested) { in brcmf_sdiod_intr_unregister()
202 sdio_claim_host(sdiodev->func1); in brcmf_sdiod_intr_unregister()
203 sdio_release_irq(sdiodev->func2); in brcmf_sdiod_intr_unregister()
204 sdio_release_irq(sdiodev->func1); in brcmf_sdiod_intr_unregister()
205 sdio_release_host(sdiodev->func1); in brcmf_sdiod_intr_unregister()
206 sdiodev->sd_irq_requested = false; in brcmf_sdiod_intr_unregister()
210 void brcmf_sdiod_change_state(struct brcmf_sdio_dev *sdiodev, in brcmf_sdiod_change_state() argument
213 if (sdiodev->state == BRCMF_SDIOD_NOMEDIUM || in brcmf_sdiod_change_state()
214 state == sdiodev->state) in brcmf_sdiod_change_state()
217 brcmf_dbg(TRACE, "%d -> %d\n", sdiodev->state, state); in brcmf_sdiod_change_state()
218 switch (sdiodev->state) { in brcmf_sdiod_change_state()
221 brcmf_bus_change_state(sdiodev->bus_if, BRCMF_BUS_DOWN); in brcmf_sdiod_change_state()
226 brcmf_bus_change_state(sdiodev->bus_if, BRCMF_BUS_UP); in brcmf_sdiod_change_state()
231 sdiodev->state = state; in brcmf_sdiod_change_state()
234 static int brcmf_sdiod_set_backplane_window(struct brcmf_sdio_dev *sdiodev, in brcmf_sdiod_set_backplane_window() argument
240 if (bar0 == sdiodev->sbwad) in brcmf_sdiod_set_backplane_window()
246 brcmf_sdiod_writeb(sdiodev, SBSDIO_FUNC1_SBADDRLOW + i, in brcmf_sdiod_set_backplane_window()
250 sdiodev->sbwad = bar0; in brcmf_sdiod_set_backplane_window()
255 u32 brcmf_sdiod_readl(struct brcmf_sdio_dev *sdiodev, u32 addr, int *ret) in brcmf_sdiod_readl() argument
260 retval = brcmf_sdiod_set_backplane_window(sdiodev, addr); in brcmf_sdiod_readl()
267 data = sdio_readl(sdiodev->func1, addr, &retval); in brcmf_sdiod_readl()
276 void brcmf_sdiod_writel(struct brcmf_sdio_dev *sdiodev, u32 addr, in brcmf_sdiod_writel() argument
281 retval = brcmf_sdiod_set_backplane_window(sdiodev, addr); in brcmf_sdiod_writel()
288 sdio_writel(sdiodev->func1, data, addr, &retval); in brcmf_sdiod_writel()
295 static int brcmf_sdiod_skbuff_read(struct brcmf_sdio_dev *sdiodev, in brcmf_sdiod_skbuff_read() argument
321 brcmf_sdiod_change_state(sdiodev, BRCMF_SDIOD_NOMEDIUM); in brcmf_sdiod_skbuff_read()
326 static int brcmf_sdiod_skbuff_write(struct brcmf_sdio_dev *sdiodev, in brcmf_sdiod_skbuff_write() argument
340 brcmf_sdiod_change_state(sdiodev, BRCMF_SDIOD_NOMEDIUM); in brcmf_sdiod_skbuff_write()
357 static int brcmf_sdiod_sglist_rw(struct brcmf_sdio_dev *sdiodev, in brcmf_sdiod_sglist_rw() argument
380 if (!write && sdiodev->settings->bus.sdio.broken_sg_support) { in brcmf_sdiod_sglist_rw()
404 max_req_sz = sdiodev->max_request_size; in brcmf_sdiod_sglist_rw()
405 max_seg_cnt = min_t(unsigned short, sdiodev->max_segment_count, in brcmf_sdiod_sglist_rw()
415 mmc_dat.sg = sdiodev->sgtable.sgl; in brcmf_sdiod_sglist_rw()
431 sgl = sdiodev->sgtable.sgl; in brcmf_sdiod_sglist_rw()
436 if (sg_data_sz > sdiodev->max_segment_size) in brcmf_sdiod_sglist_rw()
437 sg_data_sz = sdiodev->max_segment_size; in brcmf_sdiod_sglist_rw()
477 brcmf_sdiod_change_state(sdiodev, BRCMF_SDIOD_NOMEDIUM); in brcmf_sdiod_sglist_rw()
487 if (!write && sdiodev->settings->bus.sdio.broken_sg_support) { in brcmf_sdiod_sglist_rw()
512 sg_init_table(sdiodev->sgtable.sgl, sdiodev->sgtable.orig_nents); in brcmf_sdiod_sglist_rw()
519 int brcmf_sdiod_recv_buf(struct brcmf_sdio_dev *sdiodev, u8 *buf, uint nbytes) in brcmf_sdiod_recv_buf() argument
531 err = brcmf_sdiod_recv_pkt(sdiodev, mypkt); in brcmf_sdiod_recv_buf()
539 int brcmf_sdiod_recv_pkt(struct brcmf_sdio_dev *sdiodev, struct sk_buff *pkt) in brcmf_sdiod_recv_pkt() argument
541 u32 addr = sdiodev->cc_core->base; in brcmf_sdiod_recv_pkt()
546 err = brcmf_sdiod_set_backplane_window(sdiodev, addr); in brcmf_sdiod_recv_pkt()
553 err = brcmf_sdiod_skbuff_read(sdiodev, sdiodev->func2, addr, pkt); in brcmf_sdiod_recv_pkt()
559 int brcmf_sdiod_recv_chain(struct brcmf_sdio_dev *sdiodev, in brcmf_sdiod_recv_chain() argument
564 u32 addr = sdiodev->cc_core->base; in brcmf_sdiod_recv_chain()
570 err = brcmf_sdiod_set_backplane_window(sdiodev, addr); in brcmf_sdiod_recv_chain()
578 err = brcmf_sdiod_skbuff_read(sdiodev, sdiodev->func2, addr, in brcmf_sdiod_recv_chain()
580 else if (!sdiodev->sg_support) { in brcmf_sdiod_recv_chain()
584 err = brcmf_sdiod_skbuff_read(sdiodev, sdiodev->func2, addr, in brcmf_sdiod_recv_chain()
594 err = brcmf_sdiod_sglist_rw(sdiodev, sdiodev->func2, false, in brcmf_sdiod_recv_chain()
602 int brcmf_sdiod_send_buf(struct brcmf_sdio_dev *sdiodev, u8 *buf, uint nbytes) in brcmf_sdiod_send_buf() argument
605 u32 addr = sdiodev->cc_core->base; in brcmf_sdiod_send_buf()
618 err = brcmf_sdiod_set_backplane_window(sdiodev, addr); in brcmf_sdiod_send_buf()
626 err = brcmf_sdiod_skbuff_write(sdiodev, sdiodev->func2, addr, in brcmf_sdiod_send_buf()
634 int brcmf_sdiod_send_pkt(struct brcmf_sdio_dev *sdiodev, in brcmf_sdiod_send_pkt() argument
638 u32 addr = sdiodev->cc_core->base; in brcmf_sdiod_send_pkt()
643 err = brcmf_sdiod_set_backplane_window(sdiodev, addr); in brcmf_sdiod_send_pkt()
650 if (pktq->qlen == 1 || !sdiodev->sg_support) { in brcmf_sdiod_send_pkt()
652 err = brcmf_sdiod_skbuff_write(sdiodev, sdiodev->func2, in brcmf_sdiod_send_pkt()
658 err = brcmf_sdiod_sglist_rw(sdiodev, sdiodev->func2, true, in brcmf_sdiod_send_pkt()
666 brcmf_sdiod_ramrw(struct brcmf_sdio_dev *sdiodev, bool write, u32 address, in brcmf_sdiod_ramrw() argument
689 sdio_claim_host(sdiodev->func1); in brcmf_sdiod_ramrw()
694 err = brcmf_sdiod_set_backplane_window(sdiodev, address); in brcmf_sdiod_ramrw()
709 err = brcmf_sdiod_skbuff_write(sdiodev, sdiodev->func1, in brcmf_sdiod_ramrw()
712 err = brcmf_sdiod_skbuff_read(sdiodev, sdiodev->func1, in brcmf_sdiod_ramrw()
736 sdio_release_host(sdiodev->func1); in brcmf_sdiod_ramrw()
741 int brcmf_sdiod_abort(struct brcmf_sdio_dev *sdiodev, struct sdio_func *func) in brcmf_sdiod_abort() argument
746 brcmf_sdiod_func0_wb(sdiodev, SDIO_CCCR_ABORT, func->num, NULL); in brcmf_sdiod_abort()
752 void brcmf_sdiod_sgtable_alloc(struct brcmf_sdio_dev *sdiodev) in brcmf_sdiod_sgtable_alloc() argument
760 func = sdiodev->func2; in brcmf_sdiod_sgtable_alloc()
762 sdiodev->sg_support = host->max_segs > 1; in brcmf_sdiod_sgtable_alloc()
764 sdiodev->max_request_size = min_t(uint, host->max_req_size, in brcmf_sdiod_sgtable_alloc()
766 sdiodev->max_segment_count = min_t(uint, host->max_segs, in brcmf_sdiod_sgtable_alloc()
768 sdiodev->max_segment_size = host->max_seg_size; in brcmf_sdiod_sgtable_alloc()
770 if (!sdiodev->sg_support) in brcmf_sdiod_sgtable_alloc()
774 sdiodev->settings->bus.sdio.txglomsz); in brcmf_sdiod_sgtable_alloc()
777 WARN_ON(nents > sdiodev->max_segment_count); in brcmf_sdiod_sgtable_alloc()
780 err = sg_alloc_table(&sdiodev->sgtable, nents, GFP_KERNEL); in brcmf_sdiod_sgtable_alloc()
783 sdiodev->sg_support = false; in brcmf_sdiod_sgtable_alloc()
786 sdiodev->txglomsz = sdiodev->settings->bus.sdio.txglomsz; in brcmf_sdiod_sgtable_alloc()
790 static int brcmf_sdiod_freezer_attach(struct brcmf_sdio_dev *sdiodev) in brcmf_sdiod_freezer_attach() argument
792 sdiodev->freezer = kzalloc(sizeof(*sdiodev->freezer), GFP_KERNEL); in brcmf_sdiod_freezer_attach()
793 if (!sdiodev->freezer) in brcmf_sdiod_freezer_attach()
795 atomic_set(&sdiodev->freezer->thread_count, 0); in brcmf_sdiod_freezer_attach()
796 atomic_set(&sdiodev->freezer->freezing, 0); in brcmf_sdiod_freezer_attach()
797 init_waitqueue_head(&sdiodev->freezer->thread_freeze); in brcmf_sdiod_freezer_attach()
798 init_completion(&sdiodev->freezer->resumed); in brcmf_sdiod_freezer_attach()
802 static void brcmf_sdiod_freezer_detach(struct brcmf_sdio_dev *sdiodev) in brcmf_sdiod_freezer_detach() argument
804 if (sdiodev->freezer) { in brcmf_sdiod_freezer_detach()
805 WARN_ON(atomic_read(&sdiodev->freezer->freezing)); in brcmf_sdiod_freezer_detach()
806 kfree(sdiodev->freezer); in brcmf_sdiod_freezer_detach()
810 static int brcmf_sdiod_freezer_on(struct brcmf_sdio_dev *sdiodev) in brcmf_sdiod_freezer_on() argument
812 atomic_t *expect = &sdiodev->freezer->thread_count; in brcmf_sdiod_freezer_on()
815 sdiodev->freezer->frozen_count = 0; in brcmf_sdiod_freezer_on()
816 reinit_completion(&sdiodev->freezer->resumed); in brcmf_sdiod_freezer_on()
817 atomic_set(&sdiodev->freezer->freezing, 1); in brcmf_sdiod_freezer_on()
818 brcmf_sdio_trigger_dpc(sdiodev->bus); in brcmf_sdiod_freezer_on()
819 wait_event(sdiodev->freezer->thread_freeze, in brcmf_sdiod_freezer_on()
820 atomic_read(expect) == sdiodev->freezer->frozen_count); in brcmf_sdiod_freezer_on()
821 sdio_claim_host(sdiodev->func1); in brcmf_sdiod_freezer_on()
822 res = brcmf_sdio_sleep(sdiodev->bus, true); in brcmf_sdiod_freezer_on()
823 sdio_release_host(sdiodev->func1); in brcmf_sdiod_freezer_on()
827 static void brcmf_sdiod_freezer_off(struct brcmf_sdio_dev *sdiodev) in brcmf_sdiod_freezer_off() argument
829 sdio_claim_host(sdiodev->func1); in brcmf_sdiod_freezer_off()
830 brcmf_sdio_sleep(sdiodev->bus, false); in brcmf_sdiod_freezer_off()
831 sdio_release_host(sdiodev->func1); in brcmf_sdiod_freezer_off()
832 atomic_set(&sdiodev->freezer->freezing, 0); in brcmf_sdiod_freezer_off()
833 complete_all(&sdiodev->freezer->resumed); in brcmf_sdiod_freezer_off()
836 bool brcmf_sdiod_freezing(struct brcmf_sdio_dev *sdiodev) in brcmf_sdiod_freezing() argument
838 return atomic_read(&sdiodev->freezer->freezing); in brcmf_sdiod_freezing()
841 void brcmf_sdiod_try_freeze(struct brcmf_sdio_dev *sdiodev) in brcmf_sdiod_try_freeze() argument
843 if (!brcmf_sdiod_freezing(sdiodev)) in brcmf_sdiod_try_freeze()
845 sdiodev->freezer->frozen_count++; in brcmf_sdiod_try_freeze()
846 wake_up(&sdiodev->freezer->thread_freeze); in brcmf_sdiod_try_freeze()
847 wait_for_completion(&sdiodev->freezer->resumed); in brcmf_sdiod_try_freeze()
850 void brcmf_sdiod_freezer_count(struct brcmf_sdio_dev *sdiodev) in brcmf_sdiod_freezer_count() argument
852 atomic_inc(&sdiodev->freezer->thread_count); in brcmf_sdiod_freezer_count()
855 void brcmf_sdiod_freezer_uncount(struct brcmf_sdio_dev *sdiodev) in brcmf_sdiod_freezer_uncount() argument
857 atomic_dec(&sdiodev->freezer->thread_count); in brcmf_sdiod_freezer_uncount()
860 static int brcmf_sdiod_freezer_attach(struct brcmf_sdio_dev *sdiodev) in brcmf_sdiod_freezer_attach() argument
865 static void brcmf_sdiod_freezer_detach(struct brcmf_sdio_dev *sdiodev) in brcmf_sdiod_freezer_detach() argument
870 static int brcmf_sdiod_remove(struct brcmf_sdio_dev *sdiodev) in brcmf_sdiod_remove() argument
872 sdiodev->state = BRCMF_SDIOD_DOWN; in brcmf_sdiod_remove()
873 if (sdiodev->bus) { in brcmf_sdiod_remove()
874 brcmf_sdio_remove(sdiodev->bus); in brcmf_sdiod_remove()
875 sdiodev->bus = NULL; in brcmf_sdiod_remove()
878 brcmf_sdiod_freezer_detach(sdiodev); in brcmf_sdiod_remove()
881 sdio_claim_host(sdiodev->func2); in brcmf_sdiod_remove()
882 sdio_disable_func(sdiodev->func2); in brcmf_sdiod_remove()
883 sdio_release_host(sdiodev->func2); in brcmf_sdiod_remove()
886 sdio_claim_host(sdiodev->func1); in brcmf_sdiod_remove()
887 sdio_disable_func(sdiodev->func1); in brcmf_sdiod_remove()
888 sdio_release_host(sdiodev->func1); in brcmf_sdiod_remove()
890 sg_free_table(&sdiodev->sgtable); in brcmf_sdiod_remove()
891 sdiodev->sbwad = 0; in brcmf_sdiod_remove()
893 pm_runtime_allow(sdiodev->func1->card->host->parent); in brcmf_sdiod_remove()
905 static int brcmf_sdiod_probe(struct brcmf_sdio_dev *sdiodev) in brcmf_sdiod_probe() argument
909 sdio_claim_host(sdiodev->func1); in brcmf_sdiod_probe()
911 ret = sdio_set_block_size(sdiodev->func1, SDIO_FUNC1_BLOCKSIZE); in brcmf_sdiod_probe()
914 sdio_release_host(sdiodev->func1); in brcmf_sdiod_probe()
917 ret = sdio_set_block_size(sdiodev->func2, SDIO_FUNC2_BLOCKSIZE); in brcmf_sdiod_probe()
920 sdio_release_host(sdiodev->func1); in brcmf_sdiod_probe()
925 sdiodev->func2->enable_timeout = SDIO_WAIT_F2RDY; in brcmf_sdiod_probe()
928 ret = sdio_enable_func(sdiodev->func1); in brcmf_sdiod_probe()
929 sdio_release_host(sdiodev->func1); in brcmf_sdiod_probe()
935 ret = brcmf_sdiod_freezer_attach(sdiodev); in brcmf_sdiod_probe()
940 sdiodev->bus = brcmf_sdio_probe(sdiodev); in brcmf_sdiod_probe()
941 if (!sdiodev->bus) { in brcmf_sdiod_probe()
945 brcmf_sdiod_host_fixup(sdiodev->func2->card->host); in brcmf_sdiod_probe()
948 brcmf_sdiod_remove(sdiodev); in brcmf_sdiod_probe()
996 struct brcmf_sdio_dev *sdiodev; in brcmf_ops_sdio_probe() local
1025 sdiodev = kzalloc(sizeof(struct brcmf_sdio_dev), GFP_KERNEL); in brcmf_ops_sdio_probe()
1026 if (!sdiodev) { in brcmf_ops_sdio_probe()
1034 sdiodev->func1 = func->card->sdio_func[0]; in brcmf_ops_sdio_probe()
1035 sdiodev->func2 = func; in brcmf_ops_sdio_probe()
1037 sdiodev->bus_if = bus_if; in brcmf_ops_sdio_probe()
1038 bus_if->bus_priv.sdio = sdiodev; in brcmf_ops_sdio_probe()
1041 dev_set_drvdata(&sdiodev->func1->dev, bus_if); in brcmf_ops_sdio_probe()
1042 sdiodev->dev = &sdiodev->func1->dev; in brcmf_ops_sdio_probe()
1044 brcmf_sdiod_change_state(sdiodev, BRCMF_SDIOD_DOWN); in brcmf_ops_sdio_probe()
1047 err = brcmf_sdiod_probe(sdiodev); in brcmf_ops_sdio_probe()
1058 dev_set_drvdata(&sdiodev->func1->dev, NULL); in brcmf_ops_sdio_probe()
1059 kfree(sdiodev); in brcmf_ops_sdio_probe()
1067 struct brcmf_sdio_dev *sdiodev; in brcmf_ops_sdio_remove() local
1076 sdiodev = bus_if->bus_priv.sdio; in brcmf_ops_sdio_remove()
1079 brcmf_sdiod_intr_unregister(sdiodev); in brcmf_ops_sdio_remove()
1085 brcmf_sdiod_remove(sdiodev); in brcmf_ops_sdio_remove()
1087 dev_set_drvdata(&sdiodev->func1->dev, NULL); in brcmf_ops_sdio_remove()
1088 dev_set_drvdata(&sdiodev->func2->dev, NULL); in brcmf_ops_sdio_remove()
1091 kfree(sdiodev); in brcmf_ops_sdio_remove()
1100 struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; in brcmf_sdio_wowl_config() local
1103 sdiodev->wowl_enabled = enabled; in brcmf_sdio_wowl_config()
1111 struct brcmf_sdio_dev *sdiodev; in brcmf_ops_sdio_suspend() local
1121 sdiodev = bus_if->bus_priv.sdio; in brcmf_ops_sdio_suspend()
1123 brcmf_sdiod_freezer_on(sdiodev); in brcmf_ops_sdio_suspend()
1124 brcmf_sdio_wd_timer(sdiodev->bus, 0); in brcmf_ops_sdio_suspend()
1127 if (sdiodev->wowl_enabled) { in brcmf_ops_sdio_suspend()
1128 if (sdiodev->settings->bus.sdio.oob_irq_supported) in brcmf_ops_sdio_suspend()
1129 enable_irq_wake(sdiodev->settings->bus.sdio.oob_irq_nr); in brcmf_ops_sdio_suspend()
1133 if (sdio_set_host_pm_flags(sdiodev->func1, sdio_flags)) in brcmf_ops_sdio_suspend()
1141 struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; in brcmf_ops_sdio_resume() local
1148 brcmf_sdiod_freezer_off(sdiodev); in brcmf_ops_sdio_resume()