Lines Matching refs:fn
144 sdiob_rw_direct_sc(struct sdiob_softc *sc, uint8_t fn, uint32_t addr, bool wr, in sdiob_rw_direct_sc() argument
159 fn, addr, wr, *val)); in sdiob_rw_direct_sc()
162 arg = SD_IO_RW_FUNC(fn) | SD_IO_RW_ADR(addr); in sdiob_rw_direct_sc()
174 /*timeout*/ sc->cardinfo.f[fn].timeout); in sdiob_rw_direct_sc()
197 sdio_rw_direct(device_t dev, uint8_t fn, uint32_t addr, bool wr, in sdio_rw_direct() argument
205 error = sdiob_rw_direct_sc(sc, fn, addr, wr, val); in sdio_rw_direct()
211 sdiob_read_direct(device_t dev, uint8_t fn, uint32_t addr, uint8_t *val) in sdiob_read_direct() argument
216 error = sdio_rw_direct(dev, fn, addr, false, &v); in sdiob_read_direct()
224 sdiob_write_direct(device_t dev, uint8_t fn, uint32_t addr, uint8_t val) in sdiob_write_direct() argument
227 return (sdio_rw_direct(dev, fn, addr, true, &val)); in sdiob_write_direct()
245 sdiob_rw_extended_cam(struct sdiob_softc *sc, uint8_t fn, uint32_t addr, in sdiob_rw_extended_cam() argument
259 __func__, fn, addr, wr, b_count, blksz, buffer, incaddr)); in sdiob_rw_extended_cam()
263 "buffer %p, %s\n", __func__, b_count, blksz, sc, fn, addr, in sdiob_rw_extended_cam()
266 KASSERT((blksz <= sc->cardinfo.f[fn].cur_blksize), ("%s: blksz " in sdiob_rw_extended_cam()
269 sc->cardinfo.f[fn].cur_blksize, sc, fn, addr, in sdiob_rw_extended_cam()
291 arg |= SD_IOE_RW_FUNC(fn) | SD_IOE_RW_ADR(addr); in sdiob_rw_extended_cam()
326 /*timeout*/ sc->cardinfo.f[fn].timeout); in sdiob_rw_extended_cam()
376 sdiob_rw_extended_sc(struct sdiob_softc *sc, uint8_t fn, uint32_t addr, in sdiob_rw_extended_sc() argument
388 size > 4 && size >= sc->cardinfo.f[fn].cur_blksize) { in sdiob_rw_extended_sc()
389 b_count = size / sc->cardinfo.f[fn].cur_blksize; in sdiob_rw_extended_sc()
392 sc->cardinfo.f[fn].cur_blksize)); in sdiob_rw_extended_sc()
400 len = b_count * sc->cardinfo.f[fn].cur_blksize; in sdiob_rw_extended_sc()
401 error = sdiob_rw_extended_cam(sc, fn, addr, wr, buffer, incaddr, in sdiob_rw_extended_sc()
402 b_count, sc->cardinfo.f[fn].cur_blksize); in sdiob_rw_extended_sc()
413 len = MIN(size, sc->cardinfo.f[fn].cur_blksize); in sdiob_rw_extended_sc()
415 error = sdiob_rw_extended_cam(sc, fn, addr, wr, buffer, incaddr, in sdiob_rw_extended_sc()
431 sdiob_rw_extended(device_t dev, uint8_t fn, uint32_t addr, bool wr, in sdiob_rw_extended() argument
439 error = sdiob_rw_extended_sc(sc, fn, addr, wr, size, buffer, incaddr); in sdiob_rw_extended()
445 sdiob_read_extended(device_t dev, uint8_t fn, uint32_t addr, uint32_t size, in sdiob_read_extended() argument
449 return (sdiob_rw_extended(dev, fn, addr, false, size, buffer, incaddr)); in sdiob_read_extended()
453 sdiob_write_extended(device_t dev, uint8_t fn, uint32_t addr, uint32_t size, in sdiob_write_extended() argument
457 return (sdiob_rw_extended(dev, fn, addr, true, size, buffer, incaddr)); in sdiob_write_extended()
484 *result = f->fn; in sdiob_read_ivar()
652 sdio_read_direct_sc(struct sdiob_softc *sc, uint8_t fn, uint32_t addr, in sdio_read_direct_sc() argument
658 error = sdiob_rw_direct_sc(sc, fn, addr, false, &v); in sdio_read_direct_sc()
665 sdio_func_read_cis(struct sdiob_softc *sc, uint8_t fn, uint32_t cis_addr) in sdio_func_read_cis() argument
729 sc->cardinfo.f[fn].vendor = v; in sdio_func_read_cis()
732 sc->cardinfo.f[fn].vendor |= (v << 8); in sdio_func_read_cis()
736 sc->cardinfo.f[fn].device = v; in sdio_func_read_cis()
739 sc->cardinfo.f[fn].device |= (v << 8); in sdio_func_read_cis()
753 if (fn == 0) { in sdio_func_read_cis()
763 sc->cardinfo.f[fn].max_blksize = v; in sdio_func_read_cis()
766 sc->cardinfo.f[fn].max_blksize |= (v << 8); in sdio_func_read_cis()
771 "len %#02x\n", __func__, fn, tuple_count, in sdio_func_read_cis()
823 int fn, error; in sdiob_get_card_info() local
833 fn = 0; in sdiob_get_card_info()
834 error = sdio_func_read_cis(sc, fn, cis_addr); in sdiob_get_card_info()
845 __func__, fn, sc->cardinfo.f[fn].vendor, sc->cardinfo.f[fn].device, in sdiob_get_card_info()
846 sc->cardinfo.f[fn].max_blksize, in sdiob_get_card_info()
852 for (fn = 1; fn < fn_max; fn++) { in sdiob_get_card_info()
853 fbr_addr = SD_IO_FBR_START * fn + SD_IO_FBR_CIS_OFFSET; in sdiob_get_card_info()
868 error = sdio_func_read_cis(sc, fn, cis_addr); in sdiob_get_card_info()
873 fbr_addr = SD_IO_FBR_START * fn; in sdiob_get_card_info()
877 sc->cardinfo.f[fn].class = (val & 0x0f); in sdiob_get_card_info()
878 if (sc->cardinfo.f[fn].class == 0x0f) { in sdiob_get_card_info()
882 sc->cardinfo.f[fn].class = val; in sdiob_get_card_info()
885 sc->cardinfo.f[fn].fn = fn; in sdiob_get_card_info()
886 sc->cardinfo.f[fn].cur_blksize = sc->cardinfo.f[fn].max_blksize; in sdiob_get_card_info()
887 sc->cardinfo.f[fn].retries = 0; in sdiob_get_card_info()
888 sc->cardinfo.f[fn].timeout = 5000; in sdiob_get_card_info()
891 "max_blksize %d bytes\n", __func__, fn, in sdiob_get_card_info()
892 sc->cardinfo.f[fn].class, in sdiob_get_card_info()
893 sc->cardinfo.f[fn].vendor, sc->cardinfo.f[fn].device, in sdiob_get_card_info()
894 sc->cardinfo.f[fn].max_blksize); in sdiob_get_card_info()
895 if (sc->cardinfo.f[fn].vendor == 0) { in sdiob_get_card_info()
896 DPRINTF("%s: F%d doesn't exist\n", __func__, fn); in sdiob_get_card_info()