Lines Matching defs:fn_idx

23 static zx_status_t sdio_rw_byte(sdmmc_device_t *dev, bool write, uint8_t fn_idx, uint32_t addr,
25 if (!sdio_fn_idx_valid(fn_idx)) {
30 return sdio_io_rw_direct(dev, write, fn_idx, addr, write_byte, read_byte);
33 static zx_status_t sdio_read_after_write_byte(sdmmc_device_t *dev, uint8_t fn_idx, uint32_t addr,
35 if (!sdio_fn_idx_valid(fn_idx)) {
38 return sdio_io_rw_direct(dev, true, fn_idx, addr, write_byte, read_byte);
41 zx_status_t sdio_rw_data(void *ctx, uint8_t fn_idx, sdio_rw_txn_t *txn) {
42 if (!sdio_fn_idx_valid(fn_idx)) {
55 return sdio_rw_byte(dev, txn->write, fn_idx, addr,
87 uint32_t func_blk_size = (dev->sdio_dev.funcs[fn_idx]).cur_blk_size;
99 st = sdio_io_rw_extended(dev, txn->write, fn_idx, addr, txn->incr, num_blocks,
104 txn->write ? "writ" : "read", fn_idx, st);
116 st = sdio_io_rw_extended(dev, txn->write, fn_idx, addr, txn->incr,
128 static zx_status_t sdio_read_data32(sdmmc_device_t *dev, uint8_t fn_idx, uint32_t addr,
138 return sdio_rw_data(dev, fn_idx, &txn);
141 static zx_status_t sdio_write_data32(sdmmc_device_t *dev, uint8_t fn_idx, uint32_t addr,
151 return sdio_rw_data(dev, fn_idx, &txn);
154 static zx_status_t sdio_read_data16(sdmmc_device_t *dev, uint8_t fn_idx, uint32_t addr,
174 static zx_status_t sdio_write_data16(sdmmc_device_t *dev, uint8_t fn_idx, uint32_t addr,
292 static zx_status_t sdio_parse_func_ext_tuple(sdmmc_device_t* dev, uint32_t fn_idx,
294 sdio_function_t *func = &(dev->sdio_dev.funcs[fn_idx]);
295 if (fn_idx == 0) {
323 static zx_status_t sdio_parse_mfid_tuple(sdmmc_device_t* dev, uint32_t fn_idx,
328 sdio_function_t *func = &(dev->sdio_dev.funcs[fn_idx]);
334 static zx_status_t sdio_parse_fn_tuple(sdmmc_device_t* dev, uint32_t fn_idx,
339 st = sdio_parse_mfid_tuple(dev, fn_idx, tup);
342 st = sdio_parse_func_ext_tuple(dev, fn_idx, tup);
350 static zx_status_t sdio_process_cis(sdmmc_device_t* dev, uint32_t fn_idx) {
353 if (fn_idx >= SDIO_MAX_FUNCS) {
359 st = sdio_io_rw_direct(dev, false, 0, SDIO_CIA_FBR_BASE_ADDR(fn_idx) +
378 zxlogf(ERROR, "sdio: Error reading tuple code for fn %d\n", fn_idx);
392 zxlogf(ERROR, "sdio: Error reading tuple size for fn %d\n", fn_idx);
412 zxlogf(ERROR, "sdio: Error reading tuple body for fn %d\n", fn_idx);
417 sdio_parse_fn_tuple(dev, fn_idx, &cur_tup);
561 static zx_status_t sdio_process_fbr(sdmmc_device_t *dev, uint8_t fn_idx) {
565 sdio_function_t *func = &(dev->sdio_dev.funcs[fn_idx]);
566 if ((st = sdio_io_rw_direct(dev, false, 0, SDIO_CIA_FBR_BASE_ADDR(fn_idx) +
574 if ((st = sdio_io_rw_direct(dev, false, 0, SDIO_CIA_FBR_BASE_ADDR(fn_idx) +
585 zx_status_t sdio_get_cur_block_size(void *ctx, uint8_t fn_idx,
590 SDIO_CIA_FBR_BASE_ADDR(fn_idx) + SDIO_CIA_FBR_BLK_SIZE_ADDR,
594 fn_idx, st);
599 zx_status_t sdio_modify_block_size(void *ctx, uint8_t fn_idx, uint16_t blk_size,
604 sdio_function_t *func = &(dev->sdio_dev.funcs[fn_idx]);
617 st = sdio_write_data16(dev, 0, SDIO_CIA_FBR_BASE_ADDR(fn_idx) + SDIO_CIA_FBR_BLK_SIZE_ADDR,
621 fn_idx, blk_size, st);
629 zx_status_t sdio_enable_function(void *ctx, uint8_t fn_idx) {
634 if (!sdio_fn_idx_valid(fn_idx)) {
638 sdio_function_t *func = &(dev->sdio_dev.funcs[fn_idx]);
645 fn_idx, st);
649 ioex_reg |= (1 << fn_idx);
653 fn_idx, st);
661 fn_idx, st);
665 if (!(ioex_reg & (1 << fn_idx))) {
667 zxlogf(ERROR, "sdio_enable_function: Failed to enable func %d\n", fn_idx);
672 zxlogf(TRACE, "sdio_enable_function: Func %d is enabled\n", fn_idx);
676 zx_status_t sdio_disable_function(void *ctx, uint8_t fn_idx) {
681 if (!sdio_fn_idx_valid(fn_idx)) {
685 sdio_function_t *func = &(dev->sdio_dev.funcs[fn_idx]);
687 zxlogf(ERROR, "sdio_disable_function: Func %d is not enabled\n", fn_idx);
694 fn_idx, st);
698 ioex_reg &= ~(1 << fn_idx);
702 fn_idx, st);
707 zxlogf(TRACE, "sdio_disable_function: Function %d is disabled\n", fn_idx);
711 static zx_status_t sdio_init_func(sdmmc_device_t *dev, uint8_t fn_idx) {
714 if ((st = sdio_process_fbr(dev, fn_idx)) != ZX_OK) {
718 if ((st = sdio_process_cis(dev, fn_idx)) != ZX_OK) {
723 if ((st = sdio_enable_function(dev, fn_idx)) != ZX_OK) {
728 if ((st = sdio_modify_block_size(dev, fn_idx, 0, true)) != ZX_OK) {