Lines Matching refs:mrq

626 static u64 prepare_ext_dma(struct mmc_host *mmc, struct mmc_request *mrq)  in prepare_ext_dma()  argument
635 (mrq->data->flags & MMC_DATA_WRITE) ? 1 : 0) | in prepare_ext_dma()
636 FIELD_PREP(MIO_EMM_DMA_BLOCK_CNT, mrq->data->blocks) | in prepare_ext_dma()
637 FIELD_PREP(MIO_EMM_DMA_CARD_ADDR, mrq->cmd->arg); in prepare_ext_dma()
646 mrq->data->blocks, (emm_dma & MIO_EMM_DMA_MULTI) ? 1 : 0); in prepare_ext_dma()
651 struct mmc_request *mrq) in cvm_mmc_dma_request() argument
658 if (!mrq->data || !mrq->data->sg || !mrq->data->sg_len || in cvm_mmc_dma_request()
659 !mrq->stop || mrq->stop->opcode != MMC_STOP_TRANSMISSION) { in cvm_mmc_dma_request()
667 data = mrq->data; in cvm_mmc_dma_request()
674 host->current_req = mrq; in cvm_mmc_dma_request()
676 emm_dma = prepare_ext_dma(mmc, mrq); in cvm_mmc_dma_request()
688 host->dmar_fixup(host, mrq->cmd, data, addr); in cvm_mmc_dma_request()
703 mrq->cmd->error = -EINVAL; in cvm_mmc_dma_request()
704 if (mrq->done) in cvm_mmc_dma_request()
705 mrq->done(mrq); in cvm_mmc_dma_request()
709 static void do_read_request(struct cvm_mmc_host *host, struct mmc_request *mrq) in do_read_request() argument
711 sg_miter_start(&host->smi, mrq->data->sg, mrq->data->sg_len, in do_read_request()
715 static void do_write_request(struct cvm_mmc_host *host, struct mmc_request *mrq) in do_write_request() argument
717 unsigned int data_len = mrq->data->blocks * mrq->data->blksz; in do_write_request()
724 sg_miter_start(smi, mrq->data->sg, mrq->data->sg_len, SG_MITER_FROM_SG); in do_write_request()
752 static void cvm_mmc_request(struct mmc_host *mmc, struct mmc_request *mrq) in cvm_mmc_request() argument
756 struct mmc_command *cmd = mrq->cmd; in cvm_mmc_request()
774 return cvm_mmc_dma_request(mmc, mrq); in cvm_mmc_request()
781 host->current_req = mrq; in cvm_mmc_request()
785 do_read_request(host, mrq); in cvm_mmc_request()
787 do_write_request(host, mrq); in cvm_mmc_request()