• Home
  • Raw
  • Download

Lines Matching refs:mrq

191 				 struct mmc_request *mrq, unsigned int blocks)  in mmc_test_prepare_sbc()  argument
195 if (!mrq->sbc || !mmc_host_cmd23(card->host) || in mmc_test_prepare_sbc()
196 !mmc_test_card_cmd23(card) || !mmc_op_multi(mrq->cmd->opcode) || in mmc_test_prepare_sbc()
198 mrq->sbc = NULL; in mmc_test_prepare_sbc()
202 mrq->sbc->opcode = MMC_SET_BLOCK_COUNT; in mmc_test_prepare_sbc()
203 mrq->sbc->arg = blocks; in mmc_test_prepare_sbc()
204 mrq->sbc->flags = MMC_RSP_R1 | MMC_CMD_AC; in mmc_test_prepare_sbc()
211 struct mmc_request *mrq, struct scatterlist *sg, unsigned sg_len, in mmc_test_prepare_mrq() argument
214 if (WARN_ON(!mrq || !mrq->cmd || !mrq->data || !mrq->stop)) in mmc_test_prepare_mrq()
218 mrq->cmd->opcode = write ? in mmc_test_prepare_mrq()
221 mrq->cmd->opcode = write ? in mmc_test_prepare_mrq()
225 mrq->cmd->arg = dev_addr; in mmc_test_prepare_mrq()
227 mrq->cmd->arg <<= 9; in mmc_test_prepare_mrq()
229 mrq->cmd->flags = MMC_RSP_R1 | MMC_CMD_ADTC; in mmc_test_prepare_mrq()
232 mrq->stop = NULL; in mmc_test_prepare_mrq()
234 mrq->stop->opcode = MMC_STOP_TRANSMISSION; in mmc_test_prepare_mrq()
235 mrq->stop->arg = 0; in mmc_test_prepare_mrq()
236 mrq->stop->flags = MMC_RSP_R1B | MMC_CMD_AC; in mmc_test_prepare_mrq()
239 mrq->data->blksz = blksz; in mmc_test_prepare_mrq()
240 mrq->data->blocks = blocks; in mmc_test_prepare_mrq()
241 mrq->data->flags = write ? MMC_DATA_WRITE : MMC_DATA_READ; in mmc_test_prepare_mrq()
242 mrq->data->sg = sg; in mmc_test_prepare_mrq()
243 mrq->data->sg_len = sg_len; in mmc_test_prepare_mrq()
245 mmc_test_prepare_sbc(test, mrq, blocks); in mmc_test_prepare_mrq()
247 mmc_set_data_timeout(mrq->data, test->card); in mmc_test_prepare_mrq()
293 struct mmc_request mrq = {}; in mmc_test_buffer_transfer() local
300 mrq.cmd = &cmd; in mmc_test_buffer_transfer()
301 mrq.data = &data; in mmc_test_buffer_transfer()
302 mrq.stop = &stop; in mmc_test_buffer_transfer()
306 mmc_test_prepare_mrq(test, &mrq, &sg, 1, addr, 1, blksz, write); in mmc_test_buffer_transfer()
308 mmc_wait_for_req(test->card->host, &mrq); in mmc_test_buffer_transfer()
674 struct mmc_request *mrq, int write) in mmc_test_prepare_broken_mrq() argument
676 if (WARN_ON(!mrq || !mrq->cmd || !mrq->data)) in mmc_test_prepare_broken_mrq()
679 if (mrq->data->blocks > 1) { in mmc_test_prepare_broken_mrq()
680 mrq->cmd->opcode = write ? in mmc_test_prepare_broken_mrq()
682 mrq->stop = NULL; in mmc_test_prepare_broken_mrq()
684 mrq->cmd->opcode = MMC_SEND_STATUS; in mmc_test_prepare_broken_mrq()
685 mrq->cmd->arg = test->card->rca << 16; in mmc_test_prepare_broken_mrq()
693 struct mmc_request *mrq) in mmc_test_check_result() argument
697 if (WARN_ON(!mrq || !mrq->cmd || !mrq->data)) in mmc_test_check_result()
702 if (mrq->sbc && mrq->sbc->error) in mmc_test_check_result()
703 ret = mrq->sbc->error; in mmc_test_check_result()
704 if (!ret && mrq->cmd->error) in mmc_test_check_result()
705 ret = mrq->cmd->error; in mmc_test_check_result()
706 if (!ret && mrq->data->error) in mmc_test_check_result()
707 ret = mrq->data->error; in mmc_test_check_result()
708 if (!ret && mrq->stop && mrq->stop->error) in mmc_test_check_result()
709 ret = mrq->stop->error; in mmc_test_check_result()
710 if (!ret && mrq->data->bytes_xfered != in mmc_test_check_result()
711 mrq->data->blocks * mrq->data->blksz) in mmc_test_check_result()
724 struct mmc_request *mrq) in mmc_test_check_broken_result() argument
728 if (WARN_ON(!mrq || !mrq->cmd || !mrq->data)) in mmc_test_check_broken_result()
733 if (!ret && mrq->cmd->error) in mmc_test_check_broken_result()
734 ret = mrq->cmd->error; in mmc_test_check_broken_result()
735 if (!ret && mrq->data->error == 0) in mmc_test_check_broken_result()
737 if (!ret && mrq->data->error != -ETIMEDOUT) in mmc_test_check_broken_result()
738 ret = mrq->data->error; in mmc_test_check_broken_result()
739 if (!ret && mrq->stop && mrq->stop->error) in mmc_test_check_broken_result()
740 ret = mrq->stop->error; in mmc_test_check_broken_result()
741 if (mrq->data->blocks > 1) { in mmc_test_check_broken_result()
742 if (!ret && mrq->data->bytes_xfered > mrq->data->blksz) in mmc_test_check_broken_result()
745 if (!ret && mrq->data->bytes_xfered > 0) in mmc_test_check_broken_result()
756 struct mmc_request mrq; member
771 rq->mrq.cmd = &rq->cmd; in mmc_test_req_reset()
772 rq->mrq.data = &rq->data; in mmc_test_req_reset()
773 rq->mrq.stop = &rq->stop; in mmc_test_req_reset()
786 static void mmc_test_wait_done(struct mmc_request *mrq) in mmc_test_wait_done() argument
788 complete(&mrq->completion); in mmc_test_wait_done()
792 struct mmc_request *mrq, in mmc_test_start_areq() argument
798 if (mrq) { in mmc_test_start_areq()
799 init_completion(&mrq->completion); in mmc_test_start_areq()
800 mrq->done = mmc_test_wait_done; in mmc_test_start_areq()
801 mmc_pre_req(host, mrq); in mmc_test_start_areq()
811 if (!err && mrq) { in mmc_test_start_areq()
812 err = mmc_start_request(host, mrq); in mmc_test_start_areq()
820 if (err && mrq) in mmc_test_start_areq()
821 mmc_post_req(host, mrq, err); in mmc_test_start_areq()
831 struct mmc_request *mrq, *prev_mrq; in mmc_test_nonblock_transfer() local
845 mrq = &rq1->mrq; in mmc_test_nonblock_transfer()
849 mmc_test_req_reset(container_of(mrq, struct mmc_test_req, mrq)); in mmc_test_nonblock_transfer()
850 mmc_test_prepare_mrq(test, mrq, sg, t->sg_len, dev_addr, in mmc_test_nonblock_transfer()
852 ret = mmc_test_start_areq(test, mrq, prev_mrq); in mmc_test_nonblock_transfer()
857 prev_mrq = &rq2->mrq; in mmc_test_nonblock_transfer()
859 swap(mrq, prev_mrq); in mmc_test_nonblock_transfer()
878 struct mmc_request mrq = {}; in mmc_test_simple_transfer() local
883 mrq.cmd = &cmd; in mmc_test_simple_transfer()
884 mrq.data = &data; in mmc_test_simple_transfer()
885 mrq.stop = &stop; in mmc_test_simple_transfer()
887 mmc_test_prepare_mrq(test, &mrq, sg, sg_len, dev_addr, in mmc_test_simple_transfer()
890 mmc_wait_for_req(test->card->host, &mrq); in mmc_test_simple_transfer()
894 return mmc_test_check_result(test, &mrq); in mmc_test_simple_transfer()
903 struct mmc_request mrq = {}; in mmc_test_broken_transfer() local
910 mrq.cmd = &cmd; in mmc_test_broken_transfer()
911 mrq.data = &data; in mmc_test_broken_transfer()
912 mrq.stop = &stop; in mmc_test_broken_transfer()
916 mmc_test_prepare_mrq(test, &mrq, &sg, 1, 0, blocks, blksz, write); in mmc_test_broken_transfer()
917 mmc_test_prepare_broken_mrq(test, &mrq, write); in mmc_test_broken_transfer()
919 mmc_wait_for_req(test->card->host, &mrq); in mmc_test_broken_transfer()
923 return mmc_test_check_broken_result(test, &mrq); in mmc_test_broken_transfer()
2368 struct mmc_request *mrq; in mmc_test_ongoing_transfer() local
2378 mrq = &rq->mrq; in mmc_test_ongoing_transfer()
2380 mrq->sbc = &rq->sbc; in mmc_test_ongoing_transfer()
2381 mrq->cap_cmd_during_tfr = true; in mmc_test_ongoing_transfer()
2383 mmc_test_prepare_mrq(test, mrq, t->sg, t->sg_len, dev_addr, t->blocks, in mmc_test_ongoing_transfer()
2386 if (use_sbc && t->blocks > 1 && !mrq->sbc) { in mmc_test_ongoing_transfer()
2395 ret = mmc_test_start_areq(test, mrq, NULL); in mmc_test_ongoing_transfer()
2399 mmc_wait_for_req(host, mrq); in mmc_test_ongoing_transfer()
2417 if (mmc_is_req_done(host, mrq)) in mmc_test_ongoing_transfer()
2431 ret = mmc_test_start_areq(test, NULL, mrq); in mmc_test_ongoing_transfer()
2433 mmc_wait_for_req_done(test->card->host, mrq); in mmc_test_ongoing_transfer()
2440 if (mrq->data->stop && (mrq->data->error || !mrq->sbc)) { in mmc_test_ongoing_transfer()
2442 mmc_wait_for_cmd(host, mrq->data->stop, 0); in mmc_test_ongoing_transfer()
2444 ret = mmc_wait_for_cmd(host, mrq->data->stop, 0); in mmc_test_ongoing_transfer()
2455 ret = mmc_test_check_result(test, mrq); in mmc_test_ongoing_transfer()