Lines Matching refs:fn

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