/linux-4.4.14/include/linux/mmc/ |
H A D | sh_mobile_sdhi.h | 8 #define SH_MOBILE_SDHI_IRQ_SDIO "sdio"
|
H A D | sdio.h | 2 * include/linux/mmc/sdio.h
|
H A D | card.h | 339 * The world is not perfect and supplies us with broken mmc/sdio devices.
|
H A D | host.h | 368 unsigned int slotno; /* used for sdio acpi binding */
|
/linux-4.4.14/fs/ |
H A D | direct-io.c | 151 static inline unsigned dio_pages_present(struct dio_submit *sdio) dio_pages_present() argument 153 return sdio->tail - sdio->head; dio_pages_present() 159 static inline int dio_refill_pages(struct dio *dio, struct dio_submit *sdio) dio_refill_pages() argument 163 ret = iov_iter_get_pages(sdio->iter, dio->pages, LONG_MAX, DIO_PAGES, dio_refill_pages() 164 &sdio->from); dio_refill_pages() 166 if (ret < 0 && sdio->blocks_available && (dio->rw & WRITE)) { dio_refill_pages() 177 sdio->head = 0; dio_refill_pages() 178 sdio->tail = 1; dio_refill_pages() 179 sdio->from = 0; dio_refill_pages() 180 sdio->to = PAGE_SIZE; dio_refill_pages() 185 iov_iter_advance(sdio->iter, ret); dio_refill_pages() 186 ret += sdio->from; dio_refill_pages() 187 sdio->head = 0; dio_refill_pages() 188 sdio->tail = (ret + PAGE_SIZE - 1) / PAGE_SIZE; dio_refill_pages() 189 sdio->to = ((ret - 1) & (PAGE_SIZE - 1)) + 1; dio_refill_pages() 202 struct dio_submit *sdio) dio_get_page() 204 if (dio_pages_present(sdio) == 0) { dio_get_page() 207 ret = dio_refill_pages(dio, sdio); dio_get_page() 210 BUG_ON(dio_pages_present(sdio) == 0); dio_get_page() 212 return dio->pages[sdio->head]; dio_get_page() 358 dio_bio_alloc(struct dio *dio, struct dio_submit *sdio, dio_bio_alloc() argument 377 sdio->bio = bio; dio_bio_alloc() 378 sdio->logical_offset_in_bio = sdio->cur_page_fs_offset; dio_bio_alloc() 388 static inline void dio_bio_submit(struct dio *dio, struct dio_submit *sdio) dio_bio_submit() argument 390 struct bio *bio = sdio->bio; dio_bio_submit() 404 if (sdio->submit_io) { dio_bio_submit() 405 sdio->submit_io(dio->rw, bio, dio->inode, dio_bio_submit() 406 sdio->logical_offset_in_bio); dio_bio_submit() 411 sdio->bio = NULL; dio_bio_submit() 412 sdio->boundary = 0; dio_bio_submit() 413 sdio->logical_offset_in_bio = 0; dio_bio_submit() 419 static inline void dio_cleanup(struct dio *dio, struct dio_submit *sdio) dio_cleanup() argument 421 while (sdio->head < sdio->tail) dio_cleanup() 422 page_cache_release(dio->pages[sdio->head++]); dio_cleanup() 516 static inline int dio_bio_reap(struct dio *dio, struct dio_submit *sdio) dio_bio_reap() argument 520 if (sdio->reap_counter++ >= 64) { dio_bio_reap() 534 sdio->reap_counter = 0; dio_bio_reap() 577 * of available blocks at sdio->blocks_available. These are in units of the 598 static int get_more_blocks(struct dio *dio, struct dio_submit *sdio, get_more_blocks() argument 606 unsigned int i_blkbits = sdio->blkbits + sdio->blkfactor; get_more_blocks() 614 BUG_ON(sdio->block_in_file >= sdio->final_block_in_request); get_more_blocks() 615 fs_startblk = sdio->block_in_file >> sdio->blkfactor; get_more_blocks() 616 fs_endblk = (sdio->final_block_in_request - 1) >> get_more_blocks() 617 sdio->blkfactor; get_more_blocks() 636 if (sdio->block_in_file < (i_size_read(dio->inode) >> get_more_blocks() 637 sdio->blkbits)) get_more_blocks() 641 ret = (*sdio->get_block)(dio->inode, fs_startblk, get_more_blocks() 656 static inline int dio_new_bio(struct dio *dio, struct dio_submit *sdio, dio_new_bio() argument 662 ret = dio_bio_reap(dio, sdio); dio_new_bio() 665 sector = start_sector << (sdio->blkbits - 9); dio_new_bio() 666 nr_pages = min(sdio->pages_in_io, BIO_MAX_PAGES); dio_new_bio() 668 dio_bio_alloc(dio, sdio, map_bh->b_bdev, sector, nr_pages); dio_new_bio() 669 sdio->boundary = 0; dio_new_bio() 681 static inline int dio_bio_add_page(struct dio_submit *sdio) dio_bio_add_page() argument 685 ret = bio_add_page(sdio->bio, sdio->cur_page, dio_bio_add_page() 686 sdio->cur_page_len, sdio->cur_page_offset); dio_bio_add_page() 687 if (ret == sdio->cur_page_len) { dio_bio_add_page() 691 if ((sdio->cur_page_len + sdio->cur_page_offset) == PAGE_SIZE) dio_bio_add_page() 692 sdio->pages_in_io--; dio_bio_add_page() 693 page_cache_get(sdio->cur_page); dio_bio_add_page() 694 sdio->final_block_in_bio = sdio->cur_page_block + dio_bio_add_page() 695 (sdio->cur_page_len >> sdio->blkbits); dio_bio_add_page() 713 static inline int dio_send_cur_page(struct dio *dio, struct dio_submit *sdio, dio_send_cur_page() argument 718 if (sdio->bio) { dio_send_cur_page() 719 loff_t cur_offset = sdio->cur_page_fs_offset; dio_send_cur_page() 720 loff_t bio_next_offset = sdio->logical_offset_in_bio + dio_send_cur_page() 721 sdio->bio->bi_iter.bi_size; dio_send_cur_page() 737 if (sdio->final_block_in_bio != sdio->cur_page_block || dio_send_cur_page() 739 dio_bio_submit(dio, sdio); dio_send_cur_page() 742 if (sdio->bio == NULL) { dio_send_cur_page() 743 ret = dio_new_bio(dio, sdio, sdio->cur_page_block, map_bh); dio_send_cur_page() 748 if (dio_bio_add_page(sdio) != 0) { dio_send_cur_page() 749 dio_bio_submit(dio, sdio); dio_send_cur_page() 750 ret = dio_new_bio(dio, sdio, sdio->cur_page_block, map_bh); dio_send_cur_page() 752 ret = dio_bio_add_page(sdio); dio_send_cur_page() 778 submit_page_section(struct dio *dio, struct dio_submit *sdio, struct page *page, submit_page_section() argument 794 if (sdio->cur_page == page && submit_page_section() 795 sdio->cur_page_offset + sdio->cur_page_len == offset && submit_page_section() 796 sdio->cur_page_block + submit_page_section() 797 (sdio->cur_page_len >> sdio->blkbits) == blocknr) { submit_page_section() 798 sdio->cur_page_len += len; submit_page_section() 805 if (sdio->cur_page) { submit_page_section() 806 ret = dio_send_cur_page(dio, sdio, map_bh); submit_page_section() 807 page_cache_release(sdio->cur_page); submit_page_section() 808 sdio->cur_page = NULL; submit_page_section() 814 sdio->cur_page = page; submit_page_section() 815 sdio->cur_page_offset = offset; submit_page_section() 816 sdio->cur_page_len = len; submit_page_section() 817 sdio->cur_page_block = blocknr; submit_page_section() 818 sdio->cur_page_fs_offset = sdio->block_in_file << sdio->blkbits; submit_page_section() 821 * If sdio->boundary then we want to schedule the IO now to submit_page_section() 824 if (sdio->boundary) { submit_page_section() 825 ret = dio_send_cur_page(dio, sdio, map_bh); submit_page_section() 826 dio_bio_submit(dio, sdio); submit_page_section() 827 page_cache_release(sdio->cur_page); submit_page_section() 828 sdio->cur_page = NULL; submit_page_section() 860 static inline void dio_zero_block(struct dio *dio, struct dio_submit *sdio, dio_zero_block() argument 868 sdio->start_zero_done = 1; dio_zero_block() 869 if (!sdio->blkfactor || !buffer_new(map_bh)) dio_zero_block() 872 dio_blocks_per_fs_block = 1 << sdio->blkfactor; dio_zero_block() 873 this_chunk_blocks = sdio->block_in_file & (dio_blocks_per_fs_block - 1); dio_zero_block() 885 this_chunk_bytes = this_chunk_blocks << sdio->blkbits; dio_zero_block() 888 if (submit_page_section(dio, sdio, page, 0, this_chunk_bytes, dio_zero_block() 889 sdio->next_block_for_io, map_bh)) dio_zero_block() 892 sdio->next_block_for_io += this_chunk_blocks; dio_zero_block() 911 static int do_direct_IO(struct dio *dio, struct dio_submit *sdio, do_direct_IO() argument 914 const unsigned blkbits = sdio->blkbits; do_direct_IO() 917 while (sdio->block_in_file < sdio->final_block_in_request) { do_direct_IO() 921 page = dio_get_page(dio, sdio); do_direct_IO() 926 from = sdio->head ? 0 : sdio->from; do_direct_IO() 927 to = (sdio->head == sdio->tail - 1) ? sdio->to : PAGE_SIZE; do_direct_IO() 928 sdio->head++; do_direct_IO() 935 if (sdio->blocks_available == 0) { do_direct_IO() 942 ret = get_more_blocks(dio, sdio, map_bh); do_direct_IO() 950 sdio->blocks_available = do_direct_IO() 951 map_bh->b_size >> sdio->blkbits; do_direct_IO() 952 sdio->next_block_for_io = do_direct_IO() 953 map_bh->b_blocknr << sdio->blkfactor; do_direct_IO() 957 if (!sdio->blkfactor) do_direct_IO() 960 blkmask = (1 << sdio->blkfactor) - 1; do_direct_IO() 961 dio_remainder = (sdio->block_in_file & blkmask); do_direct_IO() 975 sdio->next_block_for_io += dio_remainder; do_direct_IO() 976 sdio->blocks_available -= dio_remainder; do_direct_IO() 995 if (sdio->block_in_file >= do_direct_IO() 1002 sdio->block_in_file++; do_direct_IO() 1013 if (unlikely(sdio->blkfactor && !sdio->start_zero_done)) do_direct_IO() 1014 dio_zero_block(dio, sdio, 0, map_bh); do_direct_IO() 1020 this_chunk_blocks = sdio->blocks_available; do_direct_IO() 1024 u = sdio->final_block_in_request - sdio->block_in_file; do_direct_IO() 1030 if (this_chunk_blocks == sdio->blocks_available) do_direct_IO() 1031 sdio->boundary = buffer_boundary(map_bh); do_direct_IO() 1032 ret = submit_page_section(dio, sdio, page, do_direct_IO() 1035 sdio->next_block_for_io, do_direct_IO() 1041 sdio->next_block_for_io += this_chunk_blocks; do_direct_IO() 1043 sdio->block_in_file += this_chunk_blocks; do_direct_IO() 1046 sdio->blocks_available -= this_chunk_blocks; do_direct_IO() 1048 BUG_ON(sdio->block_in_file > sdio->final_block_in_request); do_direct_IO() 1049 if (sdio->block_in_file == sdio->final_block_in_request) do_direct_IO() 1102 * NOTE: if you pass "sdio" to anything by pointer make sure that function 1120 struct dio_submit sdio = { 0, }; do_blockdev_direct_IO() local 1224 sdio.blkbits = blkbits; do_blockdev_direct_IO() 1225 sdio.blkfactor = i_blkbits - blkbits; do_blockdev_direct_IO() 1226 sdio.block_in_file = offset >> blkbits; do_blockdev_direct_IO() 1228 sdio.get_block = get_block; do_blockdev_direct_IO() 1230 sdio.submit_io = submit_io; do_blockdev_direct_IO() 1231 sdio.final_block_in_bio = -1; do_blockdev_direct_IO() 1232 sdio.next_block_for_io = -1; do_blockdev_direct_IO() 1240 sdio.iter = iter; do_blockdev_direct_IO() 1241 sdio.final_block_in_request = do_blockdev_direct_IO() 1248 if (unlikely(sdio.blkfactor)) do_blockdev_direct_IO() 1249 sdio.pages_in_io = 2; do_blockdev_direct_IO() 1251 sdio.pages_in_io += iov_iter_npages(iter, INT_MAX); do_blockdev_direct_IO() 1255 retval = do_direct_IO(dio, &sdio, &map_bh); do_blockdev_direct_IO() 1257 dio_cleanup(dio, &sdio); do_blockdev_direct_IO() 1270 dio_zero_block(dio, &sdio, 1, &map_bh); do_blockdev_direct_IO() 1272 if (sdio.cur_page) { do_blockdev_direct_IO() 1275 ret2 = dio_send_cur_page(dio, &sdio, &map_bh); do_blockdev_direct_IO() 1278 page_cache_release(sdio.cur_page); do_blockdev_direct_IO() 1279 sdio.cur_page = NULL; do_blockdev_direct_IO() 1281 if (sdio.bio) do_blockdev_direct_IO() 1282 dio_bio_submit(dio, &sdio); do_blockdev_direct_IO() 1290 dio_cleanup(dio, &sdio); do_blockdev_direct_IO() 201 dio_get_page(struct dio *dio, struct dio_submit *sdio) dio_get_page() argument
|
/linux-4.4.14/drivers/net/wireless/b43/ |
H A D | sdio.c | 22 #include "sdio.h" 55 struct b43_sdio *sdio = sdio_get_drvdata(func); b43_sdio_interrupt_dispatcher() local 56 struct b43_wldev *dev = sdio->irq_handler_opaque; b43_sdio_interrupt_dispatcher() 62 sdio->irq_handler(dev); b43_sdio_interrupt_dispatcher() 71 struct b43_sdio *sdio = sdio_get_drvdata(func); b43_sdio_request_irq() local 74 sdio->irq_handler_opaque = dev; b43_sdio_request_irq() 75 sdio->irq_handler = handler; b43_sdio_request_irq() 87 struct b43_sdio *sdio = sdio_get_drvdata(func); b43_sdio_free_irq() local 92 sdio->irq_handler_opaque = NULL; b43_sdio_free_irq() 93 sdio->irq_handler = NULL; b43_sdio_free_irq() 99 struct b43_sdio *sdio; b43_sdio_probe() local 146 sdio = kzalloc(sizeof(*sdio), GFP_KERNEL); b43_sdio_probe() 147 if (!sdio) { b43_sdio_probe() 152 error = ssb_bus_sdiobus_register(&sdio->ssb, func, b43_sdio_probe() 155 dev_err(&func->dev, "failed to register ssb sdio bus," b43_sdio_probe() 159 sdio_set_drvdata(func, sdio); b43_sdio_probe() 164 kfree(sdio); b43_sdio_probe() 176 struct b43_sdio *sdio = sdio_get_drvdata(func); b43_sdio_remove() local 178 ssb_bus_unregister(&sdio->ssb); b43_sdio_remove() 182 kfree(sdio); b43_sdio_remove() 193 .name = "b43-sdio",
|
H A D | main.c | 59 #include "sdio.h"
|
/linux-4.4.14/drivers/mmc/core/ |
H A D | Makefile | 8 sdio.o sdio_ops.o sdio_bus.o \
|
H A D | sdio_ops.h | 15 #include <linux/mmc/sdio.h>
|
H A D | sdio_bus.c | 53 return sprintf(buf, "sdio:c%02Xv%04Xd%04X\n", modalias_show() 122 "MODALIAS=sdio:c%02Xv%04Xd%04X", sdio_bus_uevent() 220 .name = "sdio",
|
H A D | sdio_ops.c | 17 #include <linux/mmc/sdio.h>
|
H A D | host.c | 272 if (of_property_read_bool(np, "cap-sdio-irq")) mmc_of_parse() 278 if (of_property_read_bool(np, "enable-sdio-wakeup")) mmc_of_parse()
|
H A D | sdio_cis.c | 21 #include <linux/mmc/sdio.h>
|
H A D | sdio_irq.c | 26 #include <linux/mmc/sdio.h>
|
H A D | sdio.c | 2 * linux/drivers/mmc/sdio.c 18 #include <linux/mmc/sdio.h> 236 * controllers and embedded sdio device which do not need the card's
|
H A D | sdio_io.c | 15 #include <linux/mmc/sdio.h>
|
H A D | core.c | 208 * For sdio rw commands we must wait for card busy otherwise some __mmc_start_request() 209 * sdio devices won't work properly. __mmc_start_request()
|
/linux-4.4.14/drivers/net/wireless/ti/wl1251/ |
H A D | Makefile | 4 wl1251_sdio-objs += sdio.o
|
H A D | sdio.c | 60 /* FIXME should be synchronous for sdio */ wl1251_sdio_interrupt() 68 MODULE_DEVICE_TABLE(sdio, wl1251_devices); 80 wl1251_error("sdio read failed (%d)", ret); wl1251_sdio_read() 93 wl1251_error("sdio write failed (%d)", ret); wl1251_sdio_write() 373 wl1251_error("failed to register sdio driver: %d", err); wl1251_sdio_init()
|
/linux-4.4.14/drivers/net/wireless/ti/wlcore/ |
H A D | Makefile | 5 wlcore_sdio-objs = sdio.o
|
H A D | sdio.c | 28 #include <linux/mmc/sdio.h> 62 MODULE_DEVICE_TABLE(sdio, wl1271_devices); 93 dev_dbg(child->parent, "sdio read 52 addr 0x%x, byte 0x%02x\n", wl12xx_sdio_raw_read() 101 dev_dbg(child->parent, "sdio read 53 addr 0x%x, %zu bytes\n", wl12xx_sdio_raw_read() 108 dev_err(child->parent, "sdio read failed (%d)\n", ret); wl12xx_sdio_raw_read() 131 dev_dbg(child->parent, "sdio write 52 addr 0x%x, byte 0x%02x\n", wl12xx_sdio_raw_write() 134 dev_dbg(child->parent, "sdio write 53 addr 0x%x, %zu bytes\n", wl12xx_sdio_raw_write() 146 dev_err(child->parent, "sdio write failed (%d)\n", ret); wl12xx_sdio_raw_write() 300 /* if sdio can keep power while host is suspended, enable wow */ wl1271_probe() 302 dev_dbg(glue->dev, "sdio PM caps = 0x%x\n", mmcflags); wl1271_probe() 394 /* check whether sdio should keep power */ wl1271_suspend() 455 MODULE_PARM_DESC(dump, "Enable sdio read/write dumps.");
|
H A D | main.c | 1107 * size (512 bytes), but due to a bug in the sdio driver, we wl12xx_chip_wakeup()
|
/linux-4.4.14/drivers/staging/wilc1000/ |
H A D | wilc_sdio.c | 55 g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd52, set 0x10c data...\n"); sdio_set_func0_csa_address() 62 g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd52, set 0x10d data...\n"); sdio_set_func0_csa_address() 69 g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd52, set 0x10e data...\n"); sdio_set_func0_csa_address() 88 g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd52, set 0x10 data...\n"); sdio_set_func0_block_size() 95 g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd52, set 0x11 data...\n"); sdio_set_func0_block_size() 120 g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd52, set 0x110 data...\n"); sdio_set_func1_block_size() 126 g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd52, set 0x111 data...\n"); sdio_set_func1_block_size() 213 g_sdio.dPrint(N_ERR, "[wilc sdio]: Fail cmd 52, get BS register...\n"); sdio_check_bs() 239 g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd 52, read reg (%08x) ...\n", addr); sdio_write_reg() 261 g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd53, write reg (%08x)...\n", addr); sdio_write_reg() 324 g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd53 [%x], block send...\n", addr); sdio_write() 345 g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd53 [%x], bytes send...\n", addr); sdio_write() 367 g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd 52, read reg (%08x) ...\n", addr); sdio_read_reg() 388 g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd53, read reg (%08x)...\n", addr); sdio_read_reg() 455 g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd53 [%x], block read...\n", addr); sdio_read() 476 g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd53 [%x], bytes read...\n", addr); sdio_read() 507 g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed read misc reg...\n"); sdio_sync() 513 g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed write misc reg...\n"); sdio_sync() 570 g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed io init bus...\n"); sdio_init() 577 g_sdio.sdio_cmd52 = inp->io_func.u.sdio.sdio_cmd52; sdio_init() 578 g_sdio.sdio_cmd53 = inp->io_func.u.sdio.sdio_cmd53; sdio_init() 579 g_sdio.sdio_set_max_speed = inp->io_func.u.sdio.sdio_set_max_speed; sdio_init() 580 g_sdio.sdio_set_default_speed = inp->io_func.u.sdio.sdio_set_default_speed; sdio_init() 591 g_sdio.dPrint(N_ERR, "[wilc sdio]: Fail cmd 52, enable csa...\n"); sdio_init() 599 g_sdio.dPrint(N_ERR, "[wilc sdio]: Fail cmd 52, set func 0 block size...\n"); sdio_init() 613 g_sdio.dPrint(N_ERR, "[wilc sdio] Fail cmd 52, set IOE register...\n"); sdio_init() 628 g_sdio.dPrint(N_ERR, "[wilc sdio]: Fail cmd 52, get IOR register...\n"); sdio_init() 636 g_sdio.dPrint(N_ERR, "[wilc sdio]: Fail func 1 is not ready...\n"); sdio_init() 644 g_sdio.dPrint(N_ERR, "[wilc sdio]: Fail set func 1 block size...\n"); sdio_init() 657 g_sdio.dPrint(N_ERR, "[wilc sdio]: Fail cmd 52, set IEN register...\n"); sdio_init() 665 g_sdio.dPrint(N_ERR, "[wilc sdio]: Fail cmd read chip id...\n"); sdio_init() 668 g_sdio.dPrint(N_ERR, "[wilc sdio]: chipid (%08x)\n", chipid); sdio_init() 673 g_sdio.dPrint(N_ERR, "[wilc sdio]: has_thrpt_enh3 = %d...\n", g_sdio.has_thrpt_enh3); sdio_init() 755 g_sdio.dPrint(N_ERR, "[wilc sdio]: Unexpected interrupt (1) : tmp=%x, data=%x\n", tmp, cmd.data); sdio_read_int() 818 g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd52, set 0xf8 data (%d) ...\n", __LINE__); sdio_clear_int_ext() 847 g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd52, set 0xf8 data (%d) ...\n", __LINE__); sdio_clear_int_ext() 860 g_sdio.dPrint(N_ERR, "[wilc sdio]: Unexpected interrupt cleared %d...\n", i); sdio_clear_int_ext() 891 g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd52, set 0xf6 data (%d) ...\n", __LINE__); sdio_clear_int_ext() 908 g_sdio.dPrint(N_ERR, "[wilc sdio]: Too many interupts (%d)...\n", nint); sdio_sync_ext() 912 g_sdio.dPrint(N_ERR, "[wilc sdio]: Error: Cannot support more than 5 interrupts when has_thrpt_enh2=1.\n"); sdio_sync_ext() 922 g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed read misc reg...\n"); sdio_sync_ext() 928 g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed write misc reg...\n"); sdio_sync_ext() 942 g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed read reg (%08x)...\n", WILC_PIN_MUX_0); sdio_sync_ext() 948 g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed write reg (%08x)...\n", WILC_PIN_MUX_0); sdio_sync_ext() 957 g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed read reg (%08x)...\n", WILC_INTR_ENABLE); sdio_sync_ext() 965 g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed write reg (%08x)...\n", WILC_INTR_ENABLE); sdio_sync_ext() 971 g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed read reg (%08x)...\n", WILC_INTR2_ENABLE); sdio_sync_ext() 980 g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed write reg (%08x)...\n", WILC_INTR2_ENABLE); sdio_sync_ext() 991 * Global sdio HIF function table
|
H A D | linux_wlan_sdio.c | 6 #include <linux/mmc/sdio.h>
|
H A D | linux_wlan.c | 1009 nwi->io_func.u.sdio.sdio_cmd52 = linux_sdio_cmd52; linux_to_wlan() 1010 nwi->io_func.u.sdio.sdio_cmd53 = linux_sdio_cmd53; linux_to_wlan() 1011 nwi->io_func.u.sdio.sdio_set_max_speed = linux_sdio_set_max_speed; linux_to_wlan() 1012 nwi->io_func.u.sdio.sdio_set_default_speed = linux_sdio_set_default_speed; linux_to_wlan() 1807 PRINT_D(INIT_DBG, "init_wilc_driver: Failed register sdio driver\n"); init_wilc_driver()
|
H A D | wilc_wlan_if.h | 84 } sdio; member in union:__anon10893::__anon10894
|
/linux-4.4.14/drivers/net/wireless/brcm80211/brcmfmac/ |
H A D | of.c | 20 #include <linux/platform_data/brcmfmac-sdio.h> 25 #include "sdio.h"
|
H A D | bcmsdh.c | 25 #include <linux/mmc/sdio.h> 31 #include <linux/platform_data/brcmfmac-sdio.h> 48 #include "sdio.h" 78 struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; brcmf_sdiod_oob_irqhandler() 98 struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; brcmf_sdiod_ib_irqhandler() 497 * @sdiodev: brcmfmac sdio device 1116 MODULE_DEVICE_TABLE(sdio, brcmf_sdmmc_ids); 1143 brcmf_dbg(SDIO, "sdio vendor ID: 0x%04x\n", func->vendor); brcmf_ops_sdio_probe() 1144 brcmf_dbg(SDIO, "sdio device ID: 0x%04x\n", func->device); brcmf_ops_sdio_probe() 1177 bus_if->bus_priv.sdio = sdiodev; brcmf_ops_sdio_probe() 1224 brcmf_dbg(SDIO, "sdio vendor ID: 0x%04x\n", func->vendor); brcmf_ops_sdio_remove() 1225 brcmf_dbg(SDIO, "sdio device ID: 0x%04x\n", func->device); brcmf_ops_sdio_remove() 1233 sdiodev = bus_if->bus_priv.sdio; brcmf_ops_sdio_remove() 1250 struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; brcmf_sdio_wowl_config() 1271 sdiodev = bus_if->bus_priv.sdio; brcmf_ops_sdio_suspend() 1291 struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; brcmf_ops_sdio_resume()
|
H A D | sdio.c | 26 #include <linux/mmc/sdio.h> 36 #include <linux/platform_data/brcmfmac-sdio.h> 44 #include "sdio.h" 133 /* 1: assertion of sdio interrupt is synchronous to the sdio clock */ 137 /* 1: isolate internal sdio signals, put external pads in tri-state; requires 138 * sdio bus power cycle to clear (rev 9) */ 434 struct brcmf_sdio_dev *sdiodev; /* sdio device handler */ 520 u8 tx_hdrlen; /* sdio bus header length for tx packet */ 600 #define BCM43143_FIRMWARE_NAME "brcm/brcmfmac43143-sdio.bin" 601 #define BCM43143_NVRAM_NAME "brcm/brcmfmac43143-sdio.txt" 602 #define BCM43241B0_FIRMWARE_NAME "brcm/brcmfmac43241b0-sdio.bin" 603 #define BCM43241B0_NVRAM_NAME "brcm/brcmfmac43241b0-sdio.txt" 604 #define BCM43241B4_FIRMWARE_NAME "brcm/brcmfmac43241b4-sdio.bin" 605 #define BCM43241B4_NVRAM_NAME "brcm/brcmfmac43241b4-sdio.txt" 606 #define BCM43241B5_FIRMWARE_NAME "brcm/brcmfmac43241b5-sdio.bin" 607 #define BCM43241B5_NVRAM_NAME "brcm/brcmfmac43241b5-sdio.txt" 608 #define BCM4329_FIRMWARE_NAME "brcm/brcmfmac4329-sdio.bin" 609 #define BCM4329_NVRAM_NAME "brcm/brcmfmac4329-sdio.txt" 610 #define BCM4330_FIRMWARE_NAME "brcm/brcmfmac4330-sdio.bin" 611 #define BCM4330_NVRAM_NAME "brcm/brcmfmac4330-sdio.txt" 612 #define BCM4334_FIRMWARE_NAME "brcm/brcmfmac4334-sdio.bin" 613 #define BCM4334_NVRAM_NAME "brcm/brcmfmac4334-sdio.txt" 614 #define BCM43340_FIRMWARE_NAME "brcm/brcmfmac43340-sdio.bin" 615 #define BCM43340_NVRAM_NAME "brcm/brcmfmac43340-sdio.txt" 616 #define BCM4335_FIRMWARE_NAME "brcm/brcmfmac4335-sdio.bin" 617 #define BCM4335_NVRAM_NAME "brcm/brcmfmac4335-sdio.txt" 618 #define BCM43362_FIRMWARE_NAME "brcm/brcmfmac43362-sdio.bin" 619 #define BCM43362_NVRAM_NAME "brcm/brcmfmac43362-sdio.txt" 620 #define BCM4339_FIRMWARE_NAME "brcm/brcmfmac4339-sdio.bin" 621 #define BCM4339_NVRAM_NAME "brcm/brcmfmac4339-sdio.txt" 622 #define BCM43430_FIRMWARE_NAME "brcm/brcmfmac43430-sdio.bin" 623 #define BCM43430_NVRAM_NAME "brcm/brcmfmac43430-sdio.txt" 624 #define BCM43455_FIRMWARE_NAME "brcm/brcmfmac43455-sdio.bin" 625 #define BCM43455_NVRAM_NAME "brcm/brcmfmac43455-sdio.txt" 626 #define BCM4354_FIRMWARE_NAME "brcm/brcmfmac4354-sdio.bin" 627 #define BCM4354_NVRAM_NAME "brcm/brcmfmac4354-sdio.txt" 1302 brcmf_err("sdio error, abort command and terminate frame\n"); brcmf_sdio_txfail() 1341 * brcmfmac sdio bus specific header 2495 struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; brcmf_sdio_bus_stop() 2759 struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; brcmf_sdio_bus_gettxq() 2812 struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; brcmf_sdio_bus_txdata() 2941 struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; brcmf_sdio_bus_txctl() 3157 struct brcmf_sdio *bus = bus_if->bus_priv.sdio->bus; brcmf_sdio_forensic_read() 3165 struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; brcmf_debugfs_sdio_count_read() 3236 struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; brcmf_sdio_bus_rxctl() 3492 struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; brcmf_sdio_bus_preinit() 3503 /* for sdio core rev < 12, disable txgloming */ brcmf_sdio_bus_preinit() 3545 struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; brcmf_sdio_bus_get_ramsize() 3555 struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; brcmf_sdio_bus_get_memdump() 4045 struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; brcmf_sdio_firmware_callback() 4219 /* default sdio bus header length for tx packet */ brcmf_sdio_probe()
|
H A D | sdio.h | 83 /* rev < 7, watermark for sdio device */ 205 /* sdio core registers */ 298 /* sdio device register access interface */
|
H A D | bus.h | 125 struct brcmf_sdio_dev *sdio; member in union:brcmf_bus::__anon8282
|
H A D | chip.c | 906 * For different chiptypes or old sdio hosts w/o chipcommon, brcmf_chip_recognition()
|
/linux-4.4.14/drivers/net/wireless/ath/ath6kl/ |
H A D | sdio.c | 24 #include <linux/mmc/sdio.h> 181 ath6kl_dbg_dump(ATH6KL_DBG_SDIO_DUMP, NULL, "sdio ", buf, len); ath6kl_sdio_io() 510 ath6kl_dbg(ATH6KL_DBG_BOOT, "sdio power on\n"); ath6kl_sdio_power_on() 516 ath6kl_err("Unable to enable sdio func: %d)\n", ret); ath6kl_sdio_power_on() 542 ath6kl_dbg(ATH6KL_DBG_BOOT, "sdio power off\n"); ath6kl_sdio_power_off() 593 ath6kl_err("Failed to claim sdio irq: %d\n", ret); ath6kl_sdio_irq_enable() 625 ath6kl_err("Failed to release sdio irq: %d\n", ret); ath6kl_sdio_irq_disable() 809 ath6kl_err("Set sdio block size %d failed: %d)\n", ath6kl_sdio_config() 829 ath6kl_dbg(ATH6KL_DBG_SUSPEND, "sdio suspend pm_caps 0x%x\n", flags); ath6kl_set_sdio_pm_caps() 837 ath6kl_err("set sdio keep pwr flag failed: %d\n", ret); ath6kl_set_sdio_pm_caps() 841 /* sdio irq wakes up host */ ath6kl_set_sdio_pm_caps() 844 ath6kl_err("set sdio wake irq flag failed: %d\n", ret); ath6kl_set_sdio_pm_caps() 922 "sdio resume configuring sdio\n"); ath6kl_sdio_resume() 924 /* need to set sdio settings after power is cut from sdio */ ath6kl_sdio_resume() 1271 ath6kl_dbg(ATH6KL_DBG_SUSPEND, "sdio pm suspend\n"); ath6kl_sdio_pm_suspend() 1278 ath6kl_dbg(ATH6KL_DBG_SUSPEND, "sdio pm resume\n"); ath6kl_sdio_pm_resume() 1303 "sdio new func %d vendor 0x%x device 0x%x block 0x%x/0x%x\n", ath6kl_sdio_probe() 1356 ath6kl_err("Failed to config sdio: %d\n", ret); ath6kl_sdio_probe() 1383 "sdio removed func %d vendor 0x%x device 0x%x\n", ath6kl_sdio_remove() 1407 MODULE_DEVICE_TABLE(sdio, ath6kl_sdio_devices); 1423 ath6kl_err("sdio driver registration failed: %d\n", ret); ath6kl_sdio_init()
|
H A D | Makefile | 43 ath6kl_sdio-y += sdio.o
|
H A D | cfg80211.c | 2555 * FIXME: WOW suspend mode is selected if the host sdio controller supports 2556 * both sdio irq wake up and keep power. The target pulls sdio data line to 2557 * wake up the host when WOW pattern matches. This causes sdio irq handler 2560 * Since sdio interrupt is not disabled, RX path executes even before
|
H A D | init.c | 1483 ath6kl_err("temporary war to avoid sdio crc error\n"); ath6kl_init_upload() 1592 return "sdio"; ath6kl_init_get_hif_name()
|
/linux-4.4.14/drivers/pinctrl/mvebu/ |
H A D | pinctrl-kirkwood.c | 124 MPP_VAR_FUNCTION(0x1, "sdio", "clk", V(1, 1, 1, 1, 1, 0)), 130 MPP_VAR_FUNCTION(0x1, "sdio", "cmd", V(1, 1, 1, 1, 1, 0)), 136 MPP_VAR_FUNCTION(0x1, "sdio", "d0", V(1, 1, 1, 1, 1, 0)), 144 MPP_VAR_FUNCTION(0x1, "sdio", "d1", V(1, 1, 1, 1, 1, 0)), 151 MPP_VAR_FUNCTION(0x1, "sdio", "d2", V(1, 1, 1, 1, 1, 0)), 159 MPP_VAR_FUNCTION(0x1, "sdio", "d3", V(1, 1, 1, 1, 1, 0)),
|
/linux-4.4.14/drivers/clk/mvebu/ |
H A D | armada-38x.c | 151 { "sdio", NULL, 17 },
|
H A D | armada-39x.c | 145 { "sdio", NULL, 17 },
|
H A D | armada-370.c | 165 { "sdio", NULL, 17, 0 },
|
H A D | armada-375.c | 163 { "sdio", NULL, 17 },
|
H A D | armada-xp.c | 183 { "sdio", NULL, 17, 0 },
|
H A D | kirkwood.c | 214 { "sdio", NULL, 4, 0 },
|
/linux-4.4.14/drivers/media/common/siano/ |
H A D | smsdvb-debugfs.c | 528 * A similar logic would be needed for Siano sdio devices, but, in that smsdvb_debugfs_register() 532 * node for sdio-based boards, but this may need some logic at sdio smsdvb_debugfs_register()
|
/linux-4.4.14/drivers/net/wireless/rsi/ |
H A D | rsi_sdio.h | 26 #include <linux/mmc/sdio.h>
|
H A D | rsi_91x_sdio.c | 97 * rsi_issue_sdiocommand() - This function issues sdio commands. 718 rsi_dbg(ERR_ZONE, "%s: Failed to init sdio interface\n", rsi_probe() 816 * rsi_module_init() - This function registers the sdio module. 831 * rsi_module_exit() - This function unregisters the sdio module. 848 MODULE_DEVICE_TABLE(sdio, rsi_dev_table);
|
H A D | rsi_91x_debugfs.c | 21 * rsi_sdio_stats_read() - This function returns the sdio status of the driver.
|
/linux-4.4.14/drivers/staging/comedi/drivers/ |
H A D | adv_pci_dio.c | 237 struct diosubd_data sdio[MAX_DIO_SUBDEVG]; /* DIO 8255 chans */ member in struct:dio_boardtype 300 .sdio[0] = { 48, PCI1739_DIO, 2, 0, }, 317 .sdio[0] = { 48, PCI1751_DIO, 2, 0, }, 336 .sdio[0] = { 96, PCI1753_DIO, 4, 0, }, 344 .sdio[0] = { 96, PCI1753_DIO, 4, 0, }, 345 .sdio[1] = { 96, PCI1753E_DIO, 4, 0, }, 1022 for (j = 0; j < board->sdio[i].regs; j++) { pci_dio_auto_attach() 1025 board->sdio[i].addr + pci_dio_auto_attach()
|
/linux-4.4.14/drivers/media/mmc/siano/ |
H A D | smssdio.c | 79 MODULE_DEVICE_TABLE(sdio, smssdio_ids); 266 "sdio\\%s", sdio_func_id(func)); smssdio_probe()
|
/linux-4.4.14/arch/mips/lantiq/xway/ |
H A D | sysctrl.c | 536 clkdev_add_pmu("1e103000.sdio", NULL, 1, 0, PMU_ASE_SDIO); ltq_soc_init() 583 clkdev_add_pmu("1e103000.sdio", NULL, 1, 0, PMU_SDIO); ltq_soc_init() 594 clkdev_add_pmu("1e103000.sdio", NULL, 1, 0, PMU_SDIO); ltq_soc_init() 603 clkdev_add_pmu("1e103000.sdio", NULL, 1, 0, PMU_SDIO); ltq_soc_init()
|
/linux-4.4.14/arch/arm/mach-pxa/ |
H A D | em-x270.c | 559 em_x270_sdio_ldo = regulator_get(dev, "vcc sdio"); em_x270_mci_init() 583 err = gpio_request(GPIO38_SD_PWEN, "sdio power"); em_x270_mci_init() 1106 REGULATOR_CONSUMER(ldo10, "pxa2xx-mci", "vcc sdio");
|
/linux-4.4.14/drivers/ssb/ |
H A D | ssb_private.h | 131 /* sdio.c */
|
/linux-4.4.14/drivers/mmc/host/ |
H A D | sdhci-pltfm.c | 107 if (of_find_property(np, "enable-sdio-wakeup", NULL)) sdhci_get_of_property()
|
H A D | omap_hsmmc.c | 1761 * gpio). wakeirq is needed to detect sdio irq in runtime suspend state omap_hsmmc_configure_wake_irq() 1863 seq_printf(s, "sdio irq mode\t%s\n", omap_hsmmc_regs_show() 1867 seq_printf(s, "sdio irq \t%s\n", omap_hsmmc_regs_show() 2330 /* disable sdio irq handling to prevent race */ omap_hsmmc_runtime_suspend() 2336 * dat1 line low, pending sdio irq omap_hsmmc_runtime_suspend() 2340 dev_dbg(dev, "pending sdio irq, abort suspend\n"); omap_hsmmc_runtime_suspend()
|
H A D | sdhci-acpi.c | 208 /* Platform specific code during sdio probe slot goes here */ sdhci_acpi_sdio_probe_slot()
|
H A D | android-goldfish.c | 33 #include <linux/mmc/sdio.h>
|
H A D | mvsdio.c | 851 { .compatible = "marvell,orion-sdio" },
|
H A D | mxs-mmc.c | 40 #include <linux/mmc/sdio.h>
|
H A D | mtk-sd.c | 37 #include <linux/mmc/sdio.h> 1162 * it's must otherwise sdio cmd5 failed msdc_init_hw()
|
H A D | vub300.c | 152 struct sd_register_header sdio; member in struct:sd_offloaded_piggyback 305 char vub_name[3 + (9 * 8) + 4 + 1]; /* max of 7 sdio fn's */
|
H A D | rtsx_pci_sdmmc.c | 31 #include <linux/mmc/sdio.h>
|
H A D | rtsx_usb_sdmmc.c | 29 #include <linux/mmc/sdio.h>
|
H A D | sdhci-esdhc-imx.c | 23 #include <linux/mmc/sdio.h>
|
H A D | sunxi-mmc.c | 38 #include <linux/mmc/sdio.h>
|
H A D | tifm_sd.c | 55 #define TIFM_MMCSD_CIRQ 0x2000 /* card irq (cmd40/sdio) */
|
H A D | tmio_mmc_pio.c | 47 #include <linux/mmc/sdio.h>
|
H A D | mmc_spi.c | 49 * - For now, we won't try to interoperate with a real mmc/sd/sdio
|
H A D | sh_mmcif.c | 55 #include <linux/mmc/sdio.h>
|
H A D | usdhi6rol0.c | 22 #include <linux/mmc/sdio.h>
|
H A D | atmel-mci.c | 35 #include <linux/mmc/sdio.h>
|
H A D | dw_mmc.c | 34 #include <linux/mmc/sdio.h>
|
H A D | sdhci.c | 31 #include <linux/mmc/sdio.h>
|
/linux-4.4.14/drivers/net/wireless/cw1200/ |
H A D | cw1200_sdio.c | 18 #include <linux/mmc/sdio.h>
|
/linux-4.4.14/drivers/bluetooth/ |
H A D | btsdio.c | 55 MODULE_DEVICE_TABLE(sdio, btsdio_table);
|
H A D | btmrvl_sdio.c | 252 MODULE_DEVICE_TABLE(sdio, btmrvl_sdio_ids); 1247 /* This function dump sdio register and memory data */ btmrvl_sdio_dump_firmware() 1258 /* dump sdio register first */ btmrvl_sdio_dump_firmware()
|
/linux-4.4.14/drivers/clk/berlin/ |
H A D | bg2q.c | 286 { "sdio", "perif", 16 },
|
/linux-4.4.14/drivers/clk/nxp/ |
H A D | clk-lpc18xx-ccu.c | 113 {"base_sdio_clk", "sdio", CLK_SDIO, 0},
|
/linux-4.4.14/include/linux/platform_data/ |
H A D | brcmfmac-sdio.h | 115 * possible to reset a dongle via sdio data interface, but it requires that
|
/linux-4.4.14/drivers/pinctrl/ |
H A D | pinctrl-tz1090.c | 581 "sdio", 586 /* sdio pins */ 710 FUNCTION(SDIO, sdio, sdh_sdio), 865 MUX_PG(sdio, SDIO, SDH, NA, NA, NA, IF_CTL, 16, 2), 947 SIMPLE_PG(sdio),
|
/linux-4.4.14/drivers/pinctrl/intel/ |
H A D | pinctrl-broxton.c | 471 FUNCTION("sdio", bxt_southwest_sdio_groups), 970 FUNCTION("sdio", apl_southwest_sdio_groups),
|
/linux-4.4.14/drivers/net/wireless/libertas/ |
H A D | defs.h | 87 #define lbs_deb_sdio(fmt, args...) LBS_DEB_LL(LBS_DEB_SDIO, " sdio", fmt, ##args)
|
H A D | if_sdio.c | 40 #include <linux/mmc/sdio.h> 76 MODULE_DEVICE_TABLE(sdio, if_sdio_ids);
|
/linux-4.4.14/drivers/clk/ |
H A D | clk-stm32f4.c | 110 { STM32F4_RCC_APB2ENR, 11, "sdio", "pll48" },
|
/linux-4.4.14/scripts/mod/ |
H A D | file2alias.c | 837 /* Looks like: sdio:cNvNdN. */ do_sdio_entry() 845 strcpy(alias, "sdio:"); do_sdio_entry() 852 ADD_TO_DEVTABLE("sdio", sdio_device_id, do_sdio_entry);
|
/linux-4.4.14/drivers/net/wireless/mwifiex/ |
H A D | sdio.c | 29 #include "sdio.h" 319 MODULE_DEVICE_TABLE(sdio, mwifiex_ids); 480 /* enable sdio new mode */ mwifiex_init_sdio_new_mode() 1082 * This function decode sdio aggreation pkt. 2176 * physically, sdio core might trigger mwifiex_sdio_remove, before this mwifiex_sdio_card_reset_work()
|
H A D | sdio.h | 24 #include <linux/mmc/sdio.h>
|
H A D | main.h | 47 #include "sdio.h" 866 /* sdio single port rx aggregation capability */
|
H A D | sta_cmdresp.c | 996 /** This Function handles the command response of sdio rx aggr */ mwifiex_ret_sdio_rx_aggr_cfg()
|
H A D | sta_cmd.c | 1798 /* This function prepares command of sdio rx aggr info. */ mwifiex_cmd_sdio_rx_aggr_cfg()
|
/linux-4.4.14/drivers/staging/gdm72xx/ |
H A D | gdm_sdio.c | 676 MODULE_DEVICE_TABLE(sdio, sdio_wimax_ids);
|
/linux-4.4.14/drivers/net/wireless/brcm80211/brcmsmac/ |
H A D | aiutils.c | 162 /* gpio [8], sdio/usb mode */
|
/linux-4.4.14/arch/arm/mach-omap2/ |
H A D | omap_hwmod_54xx_data.c | 1252 * multimedia card high-speed/sd/sdio (mmc/sd/sdio) host controller
|
H A D | omap_hwmod_44xx_data.c | 1932 * multimedia card high-speed/sd/sdio (mmc/sd/sdio) host controller
|
/linux-4.4.14/drivers/mmc/card/ |
H A D | sdio_uart.c | 1143 MODULE_DEVICE_TABLE(sdio, sdio_uart_ids);
|
/linux-4.4.14/drivers/net/wireless/iwlwifi/mvm/ |
H A D | fw.c | 565 * update the sdio allocation according to the pointer we get in the iwl_mvm_load_ucode_wait_alive()
|