Lines Matching refs:func

34 	struct sdio_func *func;  member
107 static inline void ath6kl_sdio_set_cmd53_arg(u32 *arg, u8 rw, u8 func, in ath6kl_sdio_set_cmd53_arg() argument
112 ((func & 0x7) << 28) | in ath6kl_sdio_set_cmd53_arg()
123 const u8 func = 0; in ath6kl_sdio_set_cmd52_arg() local
126 ((func & 0x7) << 28) | in ath6kl_sdio_set_cmd52_arg()
148 static int ath6kl_sdio_io(struct sdio_func *func, u32 request, u32 addr, in ath6kl_sdio_io() argument
153 sdio_claim_host(func); in ath6kl_sdio_io()
166 ret = sdio_writesb(func, addr, buf, len); in ath6kl_sdio_io()
168 ret = sdio_memcpy_toio(func, addr, buf, len); in ath6kl_sdio_io()
171 ret = sdio_readsb(func, buf, addr, len); in ath6kl_sdio_io()
173 ret = sdio_memcpy_fromio(func, buf, addr, len); in ath6kl_sdio_io()
176 sdio_release_host(func); in ath6kl_sdio_io()
275 status = ath6kl_sdio_io(ar_sdio->func, scat_req->req, in ath6kl_sdio_scat_rw()
302 ath6kl_sdio_set_cmd53_arg(&cmd.arg, rw, ar_sdio->func->num, in ath6kl_sdio_scat_rw()
312 sdio_claim_host(ar_sdio->func); in ath6kl_sdio_scat_rw()
314 mmc_set_data_timeout(&data, ar_sdio->func->card); in ath6kl_sdio_scat_rw()
323 mmc_wait_for_req(ar_sdio->func->card->host, &mmc_req); in ath6kl_sdio_scat_rw()
325 sdio_release_host(ar_sdio->func); in ath6kl_sdio_scat_rw()
432 ret = ath6kl_sdio_io(ar_sdio->func, request, addr, tbuf, len); in ath6kl_sdio_read_write_sync()
477 static void ath6kl_sdio_irq_handler(struct sdio_func *func) in ath6kl_sdio_irq_handler() argument
484 ar_sdio = sdio_get_drvdata(func); in ath6kl_sdio_irq_handler()
490 sdio_release_host(ar_sdio->func); in ath6kl_sdio_irq_handler()
493 sdio_claim_host(ar_sdio->func); in ath6kl_sdio_irq_handler()
504 struct sdio_func *func = ar_sdio->func; in ath6kl_sdio_power_on() local
512 sdio_claim_host(func); in ath6kl_sdio_power_on()
514 ret = sdio_enable_func(func); in ath6kl_sdio_power_on()
517 sdio_release_host(func); in ath6kl_sdio_power_on()
521 sdio_release_host(func); in ath6kl_sdio_power_on()
545 sdio_claim_host(ar_sdio->func); in ath6kl_sdio_power_off()
546 ret = sdio_disable_func(ar_sdio->func); in ath6kl_sdio_power_off()
547 sdio_release_host(ar_sdio->func); in ath6kl_sdio_power_off()
588 sdio_claim_host(ar_sdio->func); in ath6kl_sdio_irq_enable()
591 ret = sdio_claim_irq(ar_sdio->func, ath6kl_sdio_irq_handler); in ath6kl_sdio_irq_enable()
595 sdio_release_host(ar_sdio->func); in ath6kl_sdio_irq_enable()
610 sdio_claim_host(ar_sdio->func); in ath6kl_sdio_irq_disable()
613 sdio_release_host(ar_sdio->func); in ath6kl_sdio_irq_disable()
620 sdio_claim_host(ar_sdio->func); in ath6kl_sdio_irq_disable()
623 ret = sdio_release_irq(ar_sdio->func); in ath6kl_sdio_irq_disable()
627 sdio_release_host(ar_sdio->func); in ath6kl_sdio_irq_disable()
731 if (ar_sdio->func->card->host->max_segs < MAX_SCATTER_ENTRIES_PER_REQ) { in ath6kl_sdio_enable_scatter()
733 ar_sdio->func->card->host->max_segs, in ath6kl_sdio_enable_scatter()
784 struct sdio_func *func = ar_sdio->func; in ath6kl_sdio_config() local
787 sdio_claim_host(func); in ath6kl_sdio_config()
792 ret = ath6kl_sdio_func0_cmd52_wr_byte(func->card, in ath6kl_sdio_config()
805 func->enable_timeout = 100; in ath6kl_sdio_config()
807 ret = sdio_set_block_size(func, HIF_MBOX_BLOCK_SIZE); in ath6kl_sdio_config()
815 sdio_release_host(func); in ath6kl_sdio_config()
823 struct sdio_func *func = ar_sdio->func; in ath6kl_set_sdio_pm_caps() local
827 flags = sdio_get_host_pm_caps(func); in ath6kl_set_sdio_pm_caps()
835 ret = sdio_set_host_pm_flags(func, MMC_PM_KEEP_POWER); in ath6kl_set_sdio_pm_caps()
842 ret = sdio_set_host_pm_flags(func, MMC_PM_WAKE_SDIO_IRQ); in ath6kl_set_sdio_pm_caps()
852 struct sdio_func *func = ar_sdio->func; in ath6kl_sdio_suspend() local
880 flags = sdio_get_host_pm_caps(func); in ath6kl_sdio_suspend()
884 ret = sdio_set_host_pm_flags(func, MMC_PM_KEEP_POWER); in ath6kl_sdio_suspend()
895 ret = sdio_set_host_pm_flags(func, in ath6kl_sdio_suspend()
910 if (func->card && func->card->host) in ath6kl_sdio_suspend()
911 func->card->host->pm_flags &= ~MMC_PM_KEEP_POWER; in ath6kl_sdio_suspend()
1294 static int ath6kl_sdio_probe(struct sdio_func *func, in ath6kl_sdio_probe() argument
1304 func->num, func->vendor, func->device, in ath6kl_sdio_probe()
1305 func->max_blksize, func->cur_blksize); in ath6kl_sdio_probe()
1317 ar_sdio->func = func; in ath6kl_sdio_probe()
1318 sdio_set_drvdata(func, ar_sdio); in ath6kl_sdio_probe()
1339 ar = ath6kl_core_create(&ar_sdio->func->dev); in ath6kl_sdio_probe()
1378 static void ath6kl_sdio_remove(struct sdio_func *func) in ath6kl_sdio_remove() argument
1384 func->num, func->vendor, func->device); in ath6kl_sdio_remove()
1386 ar_sdio = sdio_get_drvdata(func); in ath6kl_sdio_remove()