Lines Matching refs:func
259 reg = sdio_readb(card->func, card->reg->card_rx_unit, &ret); in btmrvl_sdio_get_rx_unit()
273 fws0 = sdio_readb(card->func, card->reg->card_fw_status0, &ret); in btmrvl_sdio_read_fw_status()
277 fws1 = sdio_readb(card->func, card->reg->card_fw_status1, &ret); in btmrvl_sdio_read_fw_status()
291 reg = sdio_readb(card->func, card->reg->card_rx_len, &ret); in btmrvl_sdio_read_rx_len()
303 sdio_writeb(card->func, mask, card->reg->host_int_mask, &ret); in btmrvl_sdio_enable_host_int_mask()
318 host_int_mask = sdio_readb(card->func, card->reg->host_int_mask, &ret); in btmrvl_sdio_disable_host_int_mask()
324 sdio_writeb(card->func, host_int_mask, card->reg->host_int_mask, &ret); in btmrvl_sdio_disable_host_int_mask()
340 status = sdio_readb(card->func, card->reg->card_status, &ret); in btmrvl_sdio_poll_card_status()
365 sdio_claim_host(card->func); in btmrvl_sdio_verify_fw_download()
367 sdio_release_host(card->func); in btmrvl_sdio_verify_fw_download()
391 &card->func->dev); in btmrvl_sdio_download_helper()
448 ret = sdio_writesb(card->func, card->ioport, helperbuf, in btmrvl_sdio_download_helper()
463 ret = sdio_writesb(card->func, card->ioport, helperbuf, in btmrvl_sdio_download_helper()
491 &card->func->dev); in btmrvl_sdio_download_fw_w_helper()
532 base0 = sdio_readb(card->func, in btmrvl_sdio_download_fw_w_helper()
542 base1 = sdio_readb(card->func, in btmrvl_sdio_download_fw_w_helper()
596 ret = sdio_writesb(card->func, card->ioport, fwbuf, in btmrvl_sdio_download_fw_w_helper()
602 sdio_writeb(card->func, HOST_CMD53_FIN, in btmrvl_sdio_download_fw_w_helper()
631 if (!card || !card->func) { in btmrvl_sdio_card_to_host()
672 ret = sdio_readsb(card->func, payload, card->ioport, in btmrvl_sdio_card_to_host()
755 sdio_claim_host(card->func); in btmrvl_sdio_process_int_status()
767 sdio_release_host(card->func); in btmrvl_sdio_process_int_status()
777 ret = sdio_readsb(card->func, adapter->hw_regs, 0, SDIO_BLOCK_SIZE); in btmrvl_sdio_read_to_clear()
793 *ireg = sdio_readb(card->func, card->reg->host_intstatus, &ret); in btmrvl_sdio_write_to_clear()
807 sdio_writeb(card->func, ~(*ireg) & (DN_LD_HOST_INT_STATUS | in btmrvl_sdio_write_to_clear()
819 static void btmrvl_sdio_interrupt(struct sdio_func *func) in btmrvl_sdio_interrupt() argument
827 card = sdio_get_drvdata(func); in btmrvl_sdio_interrupt()
830 func, card); in btmrvl_sdio_interrupt()
856 struct sdio_func *func; in btmrvl_sdio_register_dev() local
860 if (!card || !card->func) { in btmrvl_sdio_register_dev()
866 func = card->func; in btmrvl_sdio_register_dev()
868 sdio_claim_host(func); in btmrvl_sdio_register_dev()
870 ret = sdio_enable_func(func); in btmrvl_sdio_register_dev()
877 ret = sdio_claim_irq(func, btmrvl_sdio_interrupt); in btmrvl_sdio_register_dev()
884 ret = sdio_set_block_size(card->func, SDIO_BLOCK_SIZE); in btmrvl_sdio_register_dev()
891 reg = sdio_readb(func, card->reg->io_port_0, &ret); in btmrvl_sdio_register_dev()
899 reg = sdio_readb(func, card->reg->io_port_1, &ret); in btmrvl_sdio_register_dev()
907 reg = sdio_readb(func, card->reg->io_port_2, &ret); in btmrvl_sdio_register_dev()
915 BT_DBG("SDIO FUNC%d IO port: 0x%x", func->num, card->ioport); in btmrvl_sdio_register_dev()
918 reg = sdio_readb(func, card->reg->host_int_rsr, &ret); in btmrvl_sdio_register_dev()
923 sdio_writeb(func, reg | 0x3f, card->reg->host_int_rsr, &ret); in btmrvl_sdio_register_dev()
929 reg = sdio_readb(func, card->reg->card_misc_cfg, &ret); in btmrvl_sdio_register_dev()
934 sdio_writeb(func, reg | 0x10, card->reg->card_misc_cfg, &ret); in btmrvl_sdio_register_dev()
941 sdio_set_drvdata(func, card); in btmrvl_sdio_register_dev()
943 sdio_release_host(func); in btmrvl_sdio_register_dev()
948 sdio_release_irq(func); in btmrvl_sdio_register_dev()
951 sdio_disable_func(func); in btmrvl_sdio_register_dev()
954 sdio_release_host(func); in btmrvl_sdio_register_dev()
962 if (card && card->func) { in btmrvl_sdio_unregister_dev()
963 sdio_claim_host(card->func); in btmrvl_sdio_unregister_dev()
964 sdio_release_irq(card->func); in btmrvl_sdio_unregister_dev()
965 sdio_disable_func(card->func); in btmrvl_sdio_unregister_dev()
966 sdio_release_host(card->func); in btmrvl_sdio_unregister_dev()
967 sdio_set_drvdata(card->func, NULL); in btmrvl_sdio_unregister_dev()
977 if (!card || !card->func) in btmrvl_sdio_enable_host_int()
980 sdio_claim_host(card->func); in btmrvl_sdio_enable_host_int()
986 sdio_release_host(card->func); in btmrvl_sdio_enable_host_int()
995 if (!card || !card->func) in btmrvl_sdio_disable_host_int()
998 sdio_claim_host(card->func); in btmrvl_sdio_disable_host_int()
1002 sdio_release_host(card->func); in btmrvl_sdio_disable_host_int()
1019 if (!card || !card->func) { in btmrvl_sdio_host_to_card()
1037 sdio_claim_host(card->func); in btmrvl_sdio_host_to_card()
1041 ret = sdio_writesb(card->func, card->ioport, buf, in btmrvl_sdio_host_to_card()
1056 sdio_release_host(card->func); in btmrvl_sdio_host_to_card()
1068 if (!card || !card->func) { in btmrvl_sdio_download_fw()
1078 sdio_claim_host(card->func); in btmrvl_sdio_download_fw()
1081 fws0 = sdio_readb(card->func, card->reg->card_fw_status0, &ret); in btmrvl_sdio_download_fw()
1118 sdio_release_host(card->func); in btmrvl_sdio_download_fw()
1123 sdio_release_host(card->func); in btmrvl_sdio_download_fw()
1132 if (!card || !card->func) { in btmrvl_sdio_wakeup_fw()
1137 sdio_claim_host(card->func); in btmrvl_sdio_wakeup_fw()
1139 sdio_writeb(card->func, HOST_POWER_UP, card->reg->cfg, &ret); in btmrvl_sdio_wakeup_fw()
1141 sdio_release_host(card->func); in btmrvl_sdio_wakeup_fw()
1154 u8 loop, func, data; in btmrvl_sdio_dump_regs() local
1158 sdio_claim_host(card->func); in btmrvl_sdio_dump_regs()
1166 func = loop; in btmrvl_sdio_dump_regs()
1170 func = 2; in btmrvl_sdio_dump_regs()
1176 func, reg_start, reg_end); in btmrvl_sdio_dump_regs()
1178 if (func == 0) in btmrvl_sdio_dump_regs()
1179 data = sdio_f0_readb(card->func, reg, &ret); in btmrvl_sdio_dump_regs()
1181 data = sdio_readb(card->func, reg, &ret); in btmrvl_sdio_dump_regs()
1194 sdio_release_host(card->func); in btmrvl_sdio_dump_regs()
1206 sdio_writeb(card->func, FW_DUMP_HOST_READY, card->reg->fw_dump_ctrl, in btmrvl_sdio_rdwr_firmware()
1215 ctrl_data = sdio_readb(card->func, card->reg->fw_dump_ctrl, in btmrvl_sdio_rdwr_firmware()
1229 sdio_writeb(card->func, FW_DUMP_HOST_READY, in btmrvl_sdio_rdwr_firmware()
1277 sdio_claim_host(card->func); in btmrvl_sdio_dump_firmware()
1287 dump_num = sdio_readb(card->func, reg, &ret); in btmrvl_sdio_dump_firmware()
1305 read_reg = sdio_readb(card->func, reg, &ret); in btmrvl_sdio_dump_firmware()
1316 sdio_writeb(card->func, FW_DUMP_READ_DONE, in btmrvl_sdio_dump_firmware()
1354 *dbg_ptr = sdio_readb(card->func, reg, &ret); in btmrvl_sdio_dump_firmware()
1379 sdio_release_host(card->func); in btmrvl_sdio_dump_firmware()
1420 dev_coredumpv(&card->func->dev, fw_dump_data, fw_dump_len, GFP_KERNEL); in btmrvl_sdio_dump_firmware()
1424 static int btmrvl_sdio_probe(struct sdio_func *func, in btmrvl_sdio_probe() argument
1432 id->vendor, id->device, id->class, func->num); in btmrvl_sdio_probe()
1434 card = devm_kzalloc(&func->dev, sizeof(*card), GFP_KERNEL); in btmrvl_sdio_probe()
1438 card->func = func; in btmrvl_sdio_probe()
1496 static void btmrvl_sdio_remove(struct sdio_func *func) in btmrvl_sdio_remove() argument
1500 if (func) { in btmrvl_sdio_remove()
1501 card = sdio_get_drvdata(func); in btmrvl_sdio_remove()
1521 struct sdio_func *func = dev_to_sdio_func(dev); in btmrvl_sdio_suspend() local
1527 if (func) { in btmrvl_sdio_suspend()
1528 pm_flags = sdio_get_host_pm_caps(func); in btmrvl_sdio_suspend()
1529 BT_DBG("%s: suspend: PM flags = 0x%x", sdio_func_id(func), in btmrvl_sdio_suspend()
1533 sdio_func_id(func)); in btmrvl_sdio_suspend()
1536 card = sdio_get_drvdata(func); in btmrvl_sdio_suspend()
1564 return sdio_set_host_pm_flags(func, MMC_PM_KEEP_POWER); in btmrvl_sdio_suspend()
1573 struct sdio_func *func = dev_to_sdio_func(dev); in btmrvl_sdio_resume() local
1579 if (func) { in btmrvl_sdio_resume()
1580 pm_flags = sdio_get_host_pm_caps(func); in btmrvl_sdio_resume()
1581 BT_DBG("%s: resume: PM flags = 0x%x", sdio_func_id(func), in btmrvl_sdio_resume()
1583 card = sdio_get_drvdata(func); in btmrvl_sdio_resume()