Lines Matching refs:func
51 static void if_sdio_interrupt(struct sdio_func *func);
114 struct sdio_func *func; member
152 scratch = sdio_readb(card->func, card->scratch_reg, &ret); in if_sdio_read_scratch()
154 scratch |= sdio_readb(card->func, card->scratch_reg + 1, in if_sdio_read_scratch()
171 rx_unit = sdio_readb(card->func, IF_SDIO_RX_UNIT, &ret); in if_sdio_read_rx_unit()
191 rx_len = sdio_readb(card->func, IF_SDIO_RX_LEN, &ret); in if_sdio_read_rx_len()
287 event = sdio_readb(card->func, IF_SDIO_EVENT, &ret); in if_sdio_handle_event()
323 status = sdio_readb(card->func, IF_SDIO_STATUS, &ret); in if_sdio_wait_status()
362 chunk = sdio_align_size(card->func, size); in if_sdio_card_to_host()
364 ret = sdio_readsb(card->func, card->buffer, card->ioport, chunk); in if_sdio_card_to_host()
439 sdio_claim_host(card->func); in if_sdio_host_to_card_worker()
443 ret = sdio_writesb(card->func, card->ioport, in if_sdio_host_to_card_worker()
450 sdio_release_host(card->func); in if_sdio_host_to_card_worker()
482 sdio_claim_host(card->func); in if_sdio_prog_helper()
484 ret = sdio_set_block_size(card->func, 32); in if_sdio_prog_helper()
508 ret = sdio_writesb(card->func, card->ioport, in if_sdio_prog_helper()
519 ret = sdio_writesb(card->func, card->ioport, chunk_buffer, 64); in if_sdio_prog_helper()
530 req_size = sdio_readb(card->func, IF_SDIO_RD_BASE, &ret); in if_sdio_prog_helper()
534 req_size |= sdio_readb(card->func, IF_SDIO_RD_BASE + 1, &ret) << 8; in if_sdio_prog_helper()
552 sdio_release_host(card->func); in if_sdio_prog_helper()
581 sdio_claim_host(card->func); in if_sdio_prog_real()
583 ret = sdio_set_block_size(card->func, 32); in if_sdio_prog_real()
597 req_size = sdio_readb(card->func, IF_SDIO_RD_BASE, in if_sdio_prog_real()
602 req_size |= sdio_readb(card->func, IF_SDIO_RD_BASE + 1, in if_sdio_prog_real()
649 ret = sdio_writesb(card->func, card->ioport, in if_sdio_prog_real()
687 sdio_release_host(card->func); in if_sdio_prog_real()
733 sdio_claim_host(card->func); in if_sdio_prog_firmware()
734 sdio_writeb(card->func, 0x00, IF_SDIO_H_INT_MASK, &ret); in if_sdio_prog_firmware()
735 sdio_release_host(card->func); in if_sdio_prog_firmware()
737 sdio_claim_host(card->func); in if_sdio_prog_firmware()
739 sdio_release_host(card->func); in if_sdio_prog_firmware()
768 ret = lbs_get_firmware_async(card->priv, &card->func->dev, card->model, in if_sdio_prog_firmware()
783 struct sdio_func *func = card->func; in if_sdio_finish_power_on() local
787 sdio_claim_host(func); in if_sdio_finish_power_on()
788 sdio_set_block_size(card->func, IF_SDIO_BLOCK_SIZE); in if_sdio_finish_power_on()
811 ret = sdio_claim_irq(func, if_sdio_interrupt); in if_sdio_finish_power_on()
818 sdio_writeb(func, 0x0f, IF_SDIO_H_INT_MASK, &ret); in if_sdio_finish_power_on()
822 sdio_release_host(func); in if_sdio_finish_power_on()
852 pm_runtime_put(&func->dev); in if_sdio_finish_power_on()
859 sdio_release_irq(func); in if_sdio_finish_power_on()
861 sdio_release_host(func); in if_sdio_finish_power_on()
866 struct sdio_func *func = card->func; in if_sdio_power_on() local
867 struct mmc_host *host = func->card->host; in if_sdio_power_on()
870 sdio_claim_host(func); in if_sdio_power_on()
872 ret = sdio_enable_func(func); in if_sdio_power_on()
884 func->card->quirks |= MMC_QUIRK_LENIENT_FN0; in if_sdio_power_on()
885 reg = sdio_f0_readb(func, SDIO_CCCR_IF, &ret); in if_sdio_power_on()
890 sdio_f0_writeb(func, reg, SDIO_CCCR_IF, &ret); in if_sdio_power_on()
895 card->ioport = sdio_readb(func, IF_SDIO_IOPORT, &ret); in if_sdio_power_on()
899 card->ioport |= sdio_readb(func, IF_SDIO_IOPORT + 1, &ret) << 8; in if_sdio_power_on()
903 card->ioport |= sdio_readb(func, IF_SDIO_IOPORT + 2, &ret) << 16; in if_sdio_power_on()
907 sdio_release_host(func); in if_sdio_power_on()
910 sdio_claim_host(func); in if_sdio_power_on()
917 sdio_disable_func(func); in if_sdio_power_on()
919 sdio_release_host(func); in if_sdio_power_on()
925 struct sdio_func *func = card->func; in if_sdio_power_off() local
930 sdio_claim_host(func); in if_sdio_power_off()
931 sdio_release_irq(func); in if_sdio_power_off()
932 sdio_disable_func(func); in if_sdio_power_off()
933 sdio_release_host(func); in if_sdio_power_off()
965 size = sdio_align_size(card->func, nb + 4); in if_sdio_host_to_card()
1044 sdio_claim_host(card->func); in if_sdio_exit_deep_sleep()
1046 sdio_writeb(card->func, HOST_POWER_UP, CONFIGURATION_REG, &ret); in if_sdio_exit_deep_sleep()
1050 sdio_release_host(card->func); in if_sdio_exit_deep_sleep()
1061 sdio_claim_host(card->func); in if_sdio_reset_deep_sleep_wakeup()
1063 sdio_writeb(card->func, 0, CONFIGURATION_REG, &ret); in if_sdio_reset_deep_sleep_wakeup()
1067 sdio_release_host(card->func); in if_sdio_reset_deep_sleep_wakeup()
1100 reset_host = card->func->card->host; in if_sdio_reset_card()
1114 pm_runtime_put_sync(&card->func->dev); in if_sdio_power_save()
1125 pm_runtime_get_sync(&card->func->dev); in if_sdio_power_restore()
1140 static void if_sdio_interrupt(struct sdio_func *func) in if_sdio_interrupt() argument
1148 card = sdio_get_drvdata(func); in if_sdio_interrupt()
1150 cause = sdio_readb(card->func, IF_SDIO_H_INT_STATUS, &ret); in if_sdio_interrupt()
1156 sdio_writeb(card->func, ~cause, IF_SDIO_H_INT_STATUS, &ret); in if_sdio_interrupt()
1181 static int if_sdio_probe(struct sdio_func *func, in if_sdio_probe() argument
1192 for (i = 0;i < func->card->num_info;i++) { in if_sdio_probe()
1193 if (sscanf(func->card->info[i], in if_sdio_probe()
1196 if (sscanf(func->card->info[i], in if_sdio_probe()
1199 if (!strcmp(func->card->info[i], "IBIS Wireless SDIO Card")) { in if_sdio_probe()
1205 if (i == func->card->num_info) { in if_sdio_probe()
1214 card->func = func; in if_sdio_probe()
1246 sdio_set_drvdata(func, card); in if_sdio_probe()
1250 func->class, func->vendor, func->device, in if_sdio_probe()
1254 priv = lbs_add_card(card, &func->dev); in if_sdio_probe()
1296 static void if_sdio_remove(struct sdio_func *func) in if_sdio_remove() argument
1303 card = sdio_get_drvdata(func); in if_sdio_remove()
1306 pm_runtime_get_noresume(&func->dev); in if_sdio_remove()
1344 struct sdio_func *func = dev_to_sdio_func(dev); in if_sdio_suspend() local
1346 struct if_sdio_card *card = sdio_get_drvdata(func); in if_sdio_suspend()
1348 mmc_pm_flag_t flags = sdio_get_host_pm_caps(func); in if_sdio_suspend()
1356 sdio_func_id(func), flags); in if_sdio_suspend()
1368 sdio_func_id(func)); in if_sdio_suspend()
1372 ret = sdio_set_host_pm_flags(func, MMC_PM_KEEP_POWER); in if_sdio_suspend()
1380 return sdio_set_host_pm_flags(func, MMC_PM_WAKE_SDIO_IRQ); in if_sdio_suspend()
1385 struct sdio_func *func = dev_to_sdio_func(dev); in if_sdio_resume() local
1386 struct if_sdio_card *card = sdio_get_drvdata(func); in if_sdio_resume()
1389 dev_info(dev, "%s: resume: we're back\n", sdio_func_id(func)); in if_sdio_resume()