Lines Matching refs:mrq

190 				 struct mmc_request *mrq, unsigned int blocks)
194 if (!mrq->sbc || !mmc_host_cmd23(card->host) ||
195 !mmc_test_card_cmd23(card) || !mmc_op_multi(mrq->cmd->opcode) ||
197 mrq->sbc = NULL;
201 mrq->sbc->opcode = MMC_SET_BLOCK_COUNT;
202 mrq->sbc->arg = blocks;
203 mrq->sbc->flags = MMC_RSP_R1 | MMC_CMD_AC;
210 struct mmc_request *mrq, struct scatterlist *sg, unsigned sg_len,
213 if (WARN_ON(!mrq || !mrq->cmd || !mrq->data || !mrq->stop))
217 mrq->cmd->opcode = write ?
220 mrq->cmd->opcode = write ?
224 mrq->cmd->arg = dev_addr;
226 mrq->cmd->arg <<= 9;
228 mrq->cmd->flags = MMC_RSP_R1 | MMC_CMD_ADTC;
231 mrq->stop = NULL;
233 mrq->stop->opcode = MMC_STOP_TRANSMISSION;
234 mrq->stop->arg = 0;
235 mrq->stop->flags = MMC_RSP_R1B | MMC_CMD_AC;
238 mrq->data->blksz = blksz;
239 mrq->data->blocks = blocks;
240 mrq->data->flags = write ? MMC_DATA_WRITE : MMC_DATA_READ;
241 mrq->data->sg = sg;
242 mrq->data->sg_len = sg_len;
244 mmc_test_prepare_sbc(test, mrq, blocks);
246 mmc_set_data_timeout(mrq->data, test->card);
292 struct mmc_request mrq = {};
299 mrq.cmd = &cmd;
300 mrq.data = &data;
301 mrq.stop = &stop;
305 mmc_test_prepare_mrq(test, &mrq, &sg, 1, addr, 1, blksz, write);
307 mmc_wait_for_req(test->card->host, &mrq);
673 struct mmc_request *mrq, int write)
675 if (WARN_ON(!mrq || !mrq->cmd || !mrq->data))
678 if (mrq->data->blocks > 1) {
679 mrq->cmd->opcode = write ?
681 mrq->stop = NULL;
683 mrq->cmd->opcode = MMC_SEND_STATUS;
684 mrq->cmd->arg = test->card->rca << 16;
692 struct mmc_request *mrq)
696 if (WARN_ON(!mrq || !mrq->cmd || !mrq->data))
701 if (mrq->sbc && mrq->sbc->error)
702 ret = mrq->sbc->error;
703 if (!ret && mrq->cmd->error)
704 ret = mrq->cmd->error;
705 if (!ret && mrq->data->error)
706 ret = mrq->data->error;
707 if (!ret && mrq->stop && mrq->stop->error)
708 ret = mrq->stop->error;
709 if (!ret && mrq->data->bytes_xfered !=
710 mrq->data->blocks * mrq->data->blksz)
723 struct mmc_request *mrq)
727 if (WARN_ON(!mrq || !mrq->cmd || !mrq->data))
732 if (!ret && mrq->cmd->error)
733 ret = mrq->cmd->error;
734 if (!ret && mrq->data->error == 0)
736 if (!ret && mrq->data->error != -ETIMEDOUT)
737 ret = mrq->data->error;
738 if (!ret && mrq->stop && mrq->stop->error)
739 ret = mrq->stop->error;
740 if (mrq->data->blocks > 1) {
741 if (!ret && mrq->data->bytes_xfered > mrq->data->blksz)
744 if (!ret && mrq->data->bytes_xfered > 0)
755 struct mmc_request mrq;
770 rq->mrq.cmd = &rq->cmd;
771 rq->mrq.data = &rq->data;
772 rq->mrq.stop = &rq->stop;
785 static void mmc_test_wait_done(struct mmc_request *mrq)
787 complete(&mrq->completion);
791 struct mmc_request *mrq,
797 if (mrq) {
798 init_completion(&mrq->completion);
799 mrq->done = mmc_test_wait_done;
800 mmc_pre_req(host, mrq);
810 if (!err && mrq) {
811 err = mmc_start_request(host, mrq);
819 if (err && mrq)
820 mmc_post_req(host, mrq, err);
830 struct mmc_request *mrq, *prev_mrq;
844 mrq = &rq1->mrq;
848 mmc_test_req_reset(container_of(mrq, struct mmc_test_req, mrq));
849 mmc_test_prepare_mrq(test, mrq, sg, t->sg_len, dev_addr,
851 ret = mmc_test_start_areq(test, mrq, prev_mrq);
856 prev_mrq = &rq2->mrq;
858 swap(mrq, prev_mrq);
877 struct mmc_request mrq = {};
882 mrq.cmd = &cmd;
883 mrq.data = &data;
884 mrq.stop = &stop;
886 mmc_test_prepare_mrq(test, &mrq, sg, sg_len, dev_addr,
889 mmc_wait_for_req(test->card->host, &mrq);
893 return mmc_test_check_result(test, &mrq);
902 struct mmc_request mrq = {};
909 mrq.cmd = &cmd;
910 mrq.data = &data;
911 mrq.stop = &stop;
915 mmc_test_prepare_mrq(test, &mrq, &sg, 1, 0, blocks, blksz, write);
916 mmc_test_prepare_broken_mrq(test, &mrq, write);
918 mmc_wait_for_req(test->card->host, &mrq);
922 return mmc_test_check_broken_result(test, &mrq);
2374 struct mmc_request *mrq;
2384 mrq = &rq->mrq;
2386 mrq->sbc = &rq->sbc;
2387 mrq->cap_cmd_during_tfr = true;
2389 mmc_test_prepare_mrq(test, mrq, t->sg, t->sg_len, dev_addr, t->blocks,
2392 if (use_sbc && t->blocks > 1 && !mrq->sbc) {
2401 ret = mmc_test_start_areq(test, mrq, NULL);
2405 mmc_wait_for_req(host, mrq);
2423 if (mmc_is_req_done(host, mrq))
2437 ret = mmc_test_start_areq(test, NULL, mrq);
2439 mmc_wait_for_req_done(test->card->host, mrq);
2446 if (mrq->data->stop && (mrq->data->error || !mrq->sbc)) {
2448 mmc_wait_for_cmd(host, mrq->data->stop, 0);
2450 ret = mmc_wait_for_cmd(host, mrq->data->stop, 0);
2461 ret = mmc_test_check_result(test, mrq);