Lines Matching refs:cmdinfo
108 esp_err_t sdmmc_host_do_transaction(int slot, sdmmc_command_t* cmdinfo) in sdmmc_host_do_transaction() argument
118 sdmmc_hw_cmd_t hw_cmd = make_hw_cmd(cmdinfo); in sdmmc_host_do_transaction()
119 if (cmdinfo->data) { in sdmmc_host_do_transaction()
121 if (cmdinfo->datalen >= 4 && cmdinfo->datalen % 4 != 0) { in sdmmc_host_do_transaction()
123 __func__, cmdinfo->datalen); in sdmmc_host_do_transaction()
127 if ((intptr_t) cmdinfo->data % 4 != 0 || in sdmmc_host_do_transaction()
128 !esp_ptr_dma_capable(cmdinfo->data)) { in sdmmc_host_do_transaction()
129 ESP_LOGD(TAG, "%s: buffer %p can not be used for DMA", __func__, cmdinfo->data); in sdmmc_host_do_transaction()
138 s_cur_transfer.ptr = (uint8_t*) cmdinfo->data; in sdmmc_host_do_transaction()
139 s_cur_transfer.size_remaining = cmdinfo->datalen; in sdmmc_host_do_transaction()
141 …s_cur_transfer.desc_remaining = (cmdinfo->datalen + SDMMC_DMA_MAX_BUF_LEN - 1) / SDMMC_DMA_MAX_BUF… in sdmmc_host_do_transaction()
145 sdmmc_host_dma_prepare(&s_dma_desc[0], cmdinfo->blklen, cmdinfo->datalen); in sdmmc_host_do_transaction()
148 ret = sdmmc_host_start_command(slot, hw_cmd, cmdinfo->arg); in sdmmc_host_do_transaction()
153 cmdinfo->error = ESP_OK; in sdmmc_host_do_transaction()
157 ret = handle_event(cmdinfo, &state, &unhandled_events); in sdmmc_host_do_transaction()
162 if (ret == ESP_OK && (cmdinfo->flags & SCF_WAIT_BUSY)) { in sdmmc_host_do_transaction()
163 if (!wait_for_busy_cleared(cmdinfo->timeout_ms)) { in sdmmc_host_do_transaction()
167 s_is_app_cmd = (ret == ESP_OK && cmdinfo->opcode == MMC_APP_CMD); in sdmmc_host_do_transaction()