Lines Matching refs:mrq
625 static u64 prepare_ext_dma(struct mmc_host *mmc, struct mmc_request *mrq)
634 (mrq->data->flags & MMC_DATA_WRITE) ? 1 : 0) |
635 FIELD_PREP(MIO_EMM_DMA_BLOCK_CNT, mrq->data->blocks) |
636 FIELD_PREP(MIO_EMM_DMA_CARD_ADDR, mrq->cmd->arg);
645 mrq->data->blocks, (emm_dma & MIO_EMM_DMA_MULTI) ? 1 : 0);
650 struct mmc_request *mrq)
657 if (!mrq->data || !mrq->data->sg || !mrq->data->sg_len ||
658 !mrq->stop || mrq->stop->opcode != MMC_STOP_TRANSMISSION) {
665 data = mrq->data;
672 host->current_req = mrq;
674 emm_dma = prepare_ext_dma(mmc, mrq);
686 host->dmar_fixup(host, mrq->cmd, data, addr);
701 mrq->cmd->error = -EINVAL;
702 if (mrq->done)
703 mrq->done(mrq);
707 static void do_read_request(struct cvm_mmc_host *host, struct mmc_request *mrq)
709 sg_miter_start(&host->smi, mrq->data->sg, mrq->data->sg_len,
713 static void do_write_request(struct cvm_mmc_host *host, struct mmc_request *mrq)
715 unsigned int data_len = mrq->data->blocks * mrq->data->blksz;
722 sg_miter_start(smi, mrq->data->sg, mrq->data->sg_len, SG_MITER_FROM_SG);
750 static void cvm_mmc_request(struct mmc_host *mmc, struct mmc_request *mrq)
754 struct mmc_command *cmd = mrq->cmd;
772 return cvm_mmc_dma_request(mmc, mrq);
779 host->current_req = mrq;
783 do_read_request(host, mrq);
785 do_write_request(host, mrq);