Lines Matching refs:func

224 	reg = sdio_readb(card->func, card->reg->card_rx_unit, &ret);  in btmrvl_sdio_get_rx_unit()
238 fws0 = sdio_readb(card->func, card->reg->card_fw_status0, &ret); in btmrvl_sdio_read_fw_status()
242 fws1 = sdio_readb(card->func, card->reg->card_fw_status1, &ret); in btmrvl_sdio_read_fw_status()
256 reg = sdio_readb(card->func, card->reg->card_rx_len, &ret); in btmrvl_sdio_read_rx_len()
268 sdio_writeb(card->func, mask, card->reg->host_int_mask, &ret); in btmrvl_sdio_enable_host_int_mask()
283 host_int_mask = sdio_readb(card->func, card->reg->host_int_mask, &ret); in btmrvl_sdio_disable_host_int_mask()
289 sdio_writeb(card->func, host_int_mask, card->reg->host_int_mask, &ret); in btmrvl_sdio_disable_host_int_mask()
305 status = sdio_readb(card->func, card->reg->card_status, &ret); in btmrvl_sdio_poll_card_status()
330 sdio_claim_host(card->func); in btmrvl_sdio_verify_fw_download()
332 sdio_release_host(card->func); in btmrvl_sdio_verify_fw_download()
356 &card->func->dev); in btmrvl_sdio_download_helper()
413 ret = sdio_writesb(card->func, card->ioport, helperbuf, in btmrvl_sdio_download_helper()
428 ret = sdio_writesb(card->func, card->ioport, helperbuf, in btmrvl_sdio_download_helper()
456 &card->func->dev); in btmrvl_sdio_download_fw_w_helper()
497 base0 = sdio_readb(card->func, in btmrvl_sdio_download_fw_w_helper()
507 base1 = sdio_readb(card->func, in btmrvl_sdio_download_fw_w_helper()
561 ret = sdio_writesb(card->func, card->ioport, fwbuf, in btmrvl_sdio_download_fw_w_helper()
567 sdio_writeb(card->func, HOST_CMD53_FIN, in btmrvl_sdio_download_fw_w_helper()
596 if (!card || !card->func) { in btmrvl_sdio_card_to_host()
637 ret = sdio_readsb(card->func, payload, card->ioport, in btmrvl_sdio_card_to_host()
720 sdio_claim_host(card->func); in btmrvl_sdio_process_int_status()
732 sdio_release_host(card->func); in btmrvl_sdio_process_int_status()
742 ret = sdio_readsb(card->func, adapter->hw_regs, 0, SDIO_BLOCK_SIZE); in btmrvl_sdio_read_to_clear()
758 *ireg = sdio_readb(card->func, card->reg->host_intstatus, &ret); in btmrvl_sdio_write_to_clear()
772 sdio_writeb(card->func, ~(*ireg) & (DN_LD_HOST_INT_STATUS | in btmrvl_sdio_write_to_clear()
784 static void btmrvl_sdio_interrupt(struct sdio_func *func) in btmrvl_sdio_interrupt() argument
792 card = sdio_get_drvdata(func); in btmrvl_sdio_interrupt()
795 func, card); in btmrvl_sdio_interrupt()
821 struct sdio_func *func; in btmrvl_sdio_register_dev() local
825 if (!card || !card->func) { in btmrvl_sdio_register_dev()
831 func = card->func; in btmrvl_sdio_register_dev()
833 sdio_claim_host(func); in btmrvl_sdio_register_dev()
835 ret = sdio_enable_func(func); in btmrvl_sdio_register_dev()
842 ret = sdio_claim_irq(func, btmrvl_sdio_interrupt); in btmrvl_sdio_register_dev()
849 ret = sdio_set_block_size(card->func, SDIO_BLOCK_SIZE); in btmrvl_sdio_register_dev()
856 reg = sdio_readb(func, card->reg->io_port_0, &ret); in btmrvl_sdio_register_dev()
864 reg = sdio_readb(func, card->reg->io_port_1, &ret); in btmrvl_sdio_register_dev()
872 reg = sdio_readb(func, card->reg->io_port_2, &ret); in btmrvl_sdio_register_dev()
880 BT_DBG("SDIO FUNC%d IO port: 0x%x", func->num, card->ioport); in btmrvl_sdio_register_dev()
883 reg = sdio_readb(func, card->reg->host_int_rsr, &ret); in btmrvl_sdio_register_dev()
888 sdio_writeb(func, reg | 0x3f, card->reg->host_int_rsr, &ret); in btmrvl_sdio_register_dev()
894 reg = sdio_readb(func, card->reg->card_misc_cfg, &ret); in btmrvl_sdio_register_dev()
899 sdio_writeb(func, reg | 0x10, card->reg->card_misc_cfg, &ret); in btmrvl_sdio_register_dev()
906 sdio_set_drvdata(func, card); in btmrvl_sdio_register_dev()
908 sdio_release_host(func); in btmrvl_sdio_register_dev()
913 sdio_release_irq(func); in btmrvl_sdio_register_dev()
916 sdio_disable_func(func); in btmrvl_sdio_register_dev()
919 sdio_release_host(func); in btmrvl_sdio_register_dev()
927 if (card && card->func) { in btmrvl_sdio_unregister_dev()
928 sdio_claim_host(card->func); in btmrvl_sdio_unregister_dev()
929 sdio_release_irq(card->func); in btmrvl_sdio_unregister_dev()
930 sdio_disable_func(card->func); in btmrvl_sdio_unregister_dev()
931 sdio_release_host(card->func); in btmrvl_sdio_unregister_dev()
932 sdio_set_drvdata(card->func, NULL); in btmrvl_sdio_unregister_dev()
942 if (!card || !card->func) in btmrvl_sdio_enable_host_int()
945 sdio_claim_host(card->func); in btmrvl_sdio_enable_host_int()
951 sdio_release_host(card->func); in btmrvl_sdio_enable_host_int()
960 if (!card || !card->func) in btmrvl_sdio_disable_host_int()
963 sdio_claim_host(card->func); in btmrvl_sdio_disable_host_int()
967 sdio_release_host(card->func); in btmrvl_sdio_disable_host_int()
984 if (!card || !card->func) { in btmrvl_sdio_host_to_card()
1002 sdio_claim_host(card->func); in btmrvl_sdio_host_to_card()
1006 ret = sdio_writesb(card->func, card->ioport, buf, in btmrvl_sdio_host_to_card()
1021 sdio_release_host(card->func); in btmrvl_sdio_host_to_card()
1033 if (!card || !card->func) { in btmrvl_sdio_download_fw()
1043 sdio_claim_host(card->func); in btmrvl_sdio_download_fw()
1046 fws0 = sdio_readb(card->func, card->reg->card_fw_status0, &ret); in btmrvl_sdio_download_fw()
1074 sdio_release_host(card->func); in btmrvl_sdio_download_fw()
1088 sdio_release_host(card->func); in btmrvl_sdio_download_fw()
1097 if (!card || !card->func) { in btmrvl_sdio_wakeup_fw()
1102 sdio_claim_host(card->func); in btmrvl_sdio_wakeup_fw()
1104 sdio_writeb(card->func, HOST_POWER_UP, card->reg->cfg, &ret); in btmrvl_sdio_wakeup_fw()
1106 sdio_release_host(card->func); in btmrvl_sdio_wakeup_fw()
1119 u8 loop, func, data; in btmrvl_sdio_dump_regs() local
1123 sdio_claim_host(card->func); in btmrvl_sdio_dump_regs()
1131 func = loop; in btmrvl_sdio_dump_regs()
1135 func = 2; in btmrvl_sdio_dump_regs()
1141 func, reg_start, reg_end); in btmrvl_sdio_dump_regs()
1143 if (func == 0) in btmrvl_sdio_dump_regs()
1144 data = sdio_f0_readb(card->func, reg, &ret); in btmrvl_sdio_dump_regs()
1146 data = sdio_readb(card->func, reg, &ret); in btmrvl_sdio_dump_regs()
1159 sdio_release_host(card->func); in btmrvl_sdio_dump_regs()
1171 sdio_writeb(card->func, FW_DUMP_HOST_READY, card->reg->fw_dump_ctrl, in btmrvl_sdio_rdwr_firmware()
1180 ctrl_data = sdio_readb(card->func, card->reg->fw_dump_ctrl, in btmrvl_sdio_rdwr_firmware()
1194 sdio_writeb(card->func, FW_DUMP_HOST_READY, in btmrvl_sdio_rdwr_firmware()
1242 sdio_claim_host(card->func); in btmrvl_sdio_dump_firmware()
1252 dump_num = sdio_readb(card->func, reg, &ret); in btmrvl_sdio_dump_firmware()
1270 read_reg = sdio_readb(card->func, reg, &ret); in btmrvl_sdio_dump_firmware()
1313 *dbg_ptr = sdio_readb(card->func, reg, &ret); in btmrvl_sdio_dump_firmware()
1338 sdio_release_host(card->func); in btmrvl_sdio_dump_firmware()
1384 static int btmrvl_sdio_probe(struct sdio_func *func, in btmrvl_sdio_probe() argument
1392 id->vendor, id->device, id->class, func->num); in btmrvl_sdio_probe()
1394 card = devm_kzalloc(&func->dev, sizeof(*card), GFP_KERNEL); in btmrvl_sdio_probe()
1398 card->func = func; in btmrvl_sdio_probe()
1456 static void btmrvl_sdio_remove(struct sdio_func *func) in btmrvl_sdio_remove() argument
1460 if (func) { in btmrvl_sdio_remove()
1461 card = sdio_get_drvdata(func); in btmrvl_sdio_remove()
1481 struct sdio_func *func = dev_to_sdio_func(dev); in btmrvl_sdio_suspend() local
1487 if (func) { in btmrvl_sdio_suspend()
1488 pm_flags = sdio_get_host_pm_caps(func); in btmrvl_sdio_suspend()
1489 BT_DBG("%s: suspend: PM flags = 0x%x", sdio_func_id(func), in btmrvl_sdio_suspend()
1493 sdio_func_id(func)); in btmrvl_sdio_suspend()
1496 card = sdio_get_drvdata(func); in btmrvl_sdio_suspend()
1524 return sdio_set_host_pm_flags(func, MMC_PM_KEEP_POWER); in btmrvl_sdio_suspend()
1533 struct sdio_func *func = dev_to_sdio_func(dev); in btmrvl_sdio_resume() local
1539 if (func) { in btmrvl_sdio_resume()
1540 pm_flags = sdio_get_host_pm_caps(func); in btmrvl_sdio_resume()
1541 BT_DBG("%s: resume: PM flags = 0x%x", sdio_func_id(func), in btmrvl_sdio_resume()
1543 card = sdio_get_drvdata(func); in btmrvl_sdio_resume()