Lines Matching refs:fn

141 sdiob_rw_direct_sc(struct sdiob_softc *sc, uint8_t fn, uint32_t addr, bool wr,  in sdiob_rw_direct_sc()  argument
156 fn, addr, wr, *val)); in sdiob_rw_direct_sc()
159 arg = SD_IO_RW_FUNC(fn) | SD_IO_RW_ADR(addr); in sdiob_rw_direct_sc()
171 /*timeout*/ sc->cardinfo.f[fn].timeout); in sdiob_rw_direct_sc()
194 sdio_rw_direct(device_t dev, uint8_t fn, uint32_t addr, bool wr, in sdio_rw_direct() argument
202 error = sdiob_rw_direct_sc(sc, fn, addr, wr, val); in sdio_rw_direct()
208 sdiob_read_direct(device_t dev, uint8_t fn, uint32_t addr, uint8_t *val) in sdiob_read_direct() argument
213 error = sdio_rw_direct(dev, fn, addr, false, &v); in sdiob_read_direct()
221 sdiob_write_direct(device_t dev, uint8_t fn, uint32_t addr, uint8_t val) in sdiob_write_direct() argument
224 return (sdio_rw_direct(dev, fn, addr, true, &val)); in sdiob_write_direct()
242 sdiob_rw_extended_cam(struct sdiob_softc *sc, uint8_t fn, uint32_t addr, in sdiob_rw_extended_cam() argument
256 __func__, fn, addr, wr, b_count, blksz, buffer, incaddr)); in sdiob_rw_extended_cam()
260 "buffer %p, %s\n", __func__, b_count, blksz, sc, fn, addr, in sdiob_rw_extended_cam()
263 KASSERT((blksz <= sc->cardinfo.f[fn].cur_blksize), ("%s: blksz " in sdiob_rw_extended_cam()
266 sc->cardinfo.f[fn].cur_blksize, sc, fn, addr, in sdiob_rw_extended_cam()
288 arg |= SD_IOE_RW_FUNC(fn) | SD_IOE_RW_ADR(addr); in sdiob_rw_extended_cam()
323 /*timeout*/ sc->cardinfo.f[fn].timeout); in sdiob_rw_extended_cam()
373 sdiob_rw_extended_sc(struct sdiob_softc *sc, uint8_t fn, uint32_t addr, in sdiob_rw_extended_sc() argument
385 size > 4 && size >= sc->cardinfo.f[fn].cur_blksize) { in sdiob_rw_extended_sc()
386 b_count = size / sc->cardinfo.f[fn].cur_blksize; in sdiob_rw_extended_sc()
389 sc->cardinfo.f[fn].cur_blksize)); in sdiob_rw_extended_sc()
397 len = b_count * sc->cardinfo.f[fn].cur_blksize; in sdiob_rw_extended_sc()
398 error = sdiob_rw_extended_cam(sc, fn, addr, wr, buffer, incaddr, in sdiob_rw_extended_sc()
399 b_count, sc->cardinfo.f[fn].cur_blksize); in sdiob_rw_extended_sc()
410 len = MIN(size, sc->cardinfo.f[fn].cur_blksize); in sdiob_rw_extended_sc()
412 error = sdiob_rw_extended_cam(sc, fn, addr, wr, buffer, incaddr, in sdiob_rw_extended_sc()
428 sdiob_rw_extended(device_t dev, uint8_t fn, uint32_t addr, bool wr, in sdiob_rw_extended() argument
436 error = sdiob_rw_extended_sc(sc, fn, addr, wr, size, buffer, incaddr); in sdiob_rw_extended()
442 sdiob_read_extended(device_t dev, uint8_t fn, uint32_t addr, uint32_t size, in sdiob_read_extended() argument
446 return (sdiob_rw_extended(dev, fn, addr, false, size, buffer, incaddr)); in sdiob_read_extended()
450 sdiob_write_extended(device_t dev, uint8_t fn, uint32_t addr, uint32_t size, in sdiob_write_extended() argument
454 return (sdiob_rw_extended(dev, fn, addr, true, size, buffer, incaddr)); in sdiob_write_extended()
481 *result = f->fn; in sdiob_read_ivar()
649 sdio_read_direct_sc(struct sdiob_softc *sc, uint8_t fn, uint32_t addr, in sdio_read_direct_sc() argument
655 error = sdiob_rw_direct_sc(sc, fn, addr, false, &v); in sdio_read_direct_sc()
662 sdio_func_read_cis(struct sdiob_softc *sc, uint8_t fn, uint32_t cis_addr) in sdio_func_read_cis() argument
726 sc->cardinfo.f[fn].vendor = v; in sdio_func_read_cis()
729 sc->cardinfo.f[fn].vendor |= (v << 8); in sdio_func_read_cis()
733 sc->cardinfo.f[fn].device = v; in sdio_func_read_cis()
736 sc->cardinfo.f[fn].device |= (v << 8); in sdio_func_read_cis()
750 if (fn == 0) { in sdio_func_read_cis()
760 sc->cardinfo.f[fn].max_blksize = v; in sdio_func_read_cis()
763 sc->cardinfo.f[fn].max_blksize |= (v << 8); in sdio_func_read_cis()
768 "len %#02x\n", __func__, fn, tuple_count, in sdio_func_read_cis()
820 int fn, error; in sdiob_get_card_info() local
830 fn = 0; in sdiob_get_card_info()
831 error = sdio_func_read_cis(sc, fn, cis_addr); in sdiob_get_card_info()
842 __func__, fn, sc->cardinfo.f[fn].vendor, sc->cardinfo.f[fn].device, in sdiob_get_card_info()
843 sc->cardinfo.f[fn].max_blksize, in sdiob_get_card_info()
849 for (fn = 1; fn < fn_max; fn++) { in sdiob_get_card_info()
850 fbr_addr = SD_IO_FBR_START * fn + SD_IO_FBR_CIS_OFFSET; in sdiob_get_card_info()
865 error = sdio_func_read_cis(sc, fn, cis_addr); in sdiob_get_card_info()
870 fbr_addr = SD_IO_FBR_START * fn; in sdiob_get_card_info()
874 sc->cardinfo.f[fn].class = (val & 0x0f); in sdiob_get_card_info()
875 if (sc->cardinfo.f[fn].class == 0x0f) { in sdiob_get_card_info()
879 sc->cardinfo.f[fn].class = val; in sdiob_get_card_info()
882 sc->cardinfo.f[fn].fn = fn; in sdiob_get_card_info()
883 sc->cardinfo.f[fn].cur_blksize = sc->cardinfo.f[fn].max_blksize; in sdiob_get_card_info()
884 sc->cardinfo.f[fn].retries = 0; in sdiob_get_card_info()
885 sc->cardinfo.f[fn].timeout = 5000; in sdiob_get_card_info()
888 "max_blksize %d bytes\n", __func__, fn, in sdiob_get_card_info()
889 sc->cardinfo.f[fn].class, in sdiob_get_card_info()
890 sc->cardinfo.f[fn].vendor, sc->cardinfo.f[fn].device, in sdiob_get_card_info()
891 sc->cardinfo.f[fn].max_blksize); in sdiob_get_card_info()
892 if (sc->cardinfo.f[fn].vendor == 0) { in sdiob_get_card_info()
893 DPRINTF("%s: F%d doesn't exist\n", __func__, fn); in sdiob_get_card_info()