Lines Matching refs:mrq

191 	struct mmc_request *mrq, struct scatterlist *sg, unsigned sg_len,  in mmc_test_prepare_mrq()  argument
194 BUG_ON(!mrq || !mrq->cmd || !mrq->data || !mrq->stop); in mmc_test_prepare_mrq()
197 mrq->cmd->opcode = write ? in mmc_test_prepare_mrq()
200 mrq->cmd->opcode = write ? in mmc_test_prepare_mrq()
204 mrq->cmd->arg = dev_addr; in mmc_test_prepare_mrq()
206 mrq->cmd->arg <<= 9; in mmc_test_prepare_mrq()
208 mrq->cmd->flags = MMC_RSP_R1 | MMC_CMD_ADTC; in mmc_test_prepare_mrq()
211 mrq->stop = NULL; in mmc_test_prepare_mrq()
213 mrq->stop->opcode = MMC_STOP_TRANSMISSION; in mmc_test_prepare_mrq()
214 mrq->stop->arg = 0; in mmc_test_prepare_mrq()
215 mrq->stop->flags = MMC_RSP_R1B | MMC_CMD_AC; in mmc_test_prepare_mrq()
218 mrq->data->blksz = blksz; in mmc_test_prepare_mrq()
219 mrq->data->blocks = blocks; in mmc_test_prepare_mrq()
220 mrq->data->flags = write ? MMC_DATA_WRITE : MMC_DATA_READ; in mmc_test_prepare_mrq()
221 mrq->data->sg = sg; in mmc_test_prepare_mrq()
222 mrq->data->sg_len = sg_len; in mmc_test_prepare_mrq()
224 mmc_set_data_timeout(mrq->data, test->card); in mmc_test_prepare_mrq()
271 struct mmc_request mrq = {0}; in mmc_test_buffer_transfer() local
278 mrq.cmd = &cmd; in mmc_test_buffer_transfer()
279 mrq.data = &data; in mmc_test_buffer_transfer()
280 mrq.stop = &stop; in mmc_test_buffer_transfer()
284 mmc_test_prepare_mrq(test, &mrq, &sg, 1, addr, 1, blksz, write); in mmc_test_buffer_transfer()
286 mmc_wait_for_req(test->card->host, &mrq); in mmc_test_buffer_transfer()
670 struct mmc_request *mrq, int write) in mmc_test_prepare_broken_mrq() argument
672 BUG_ON(!mrq || !mrq->cmd || !mrq->data); in mmc_test_prepare_broken_mrq()
674 if (mrq->data->blocks > 1) { in mmc_test_prepare_broken_mrq()
675 mrq->cmd->opcode = write ? in mmc_test_prepare_broken_mrq()
677 mrq->stop = NULL; in mmc_test_prepare_broken_mrq()
679 mrq->cmd->opcode = MMC_SEND_STATUS; in mmc_test_prepare_broken_mrq()
680 mrq->cmd->arg = test->card->rca << 16; in mmc_test_prepare_broken_mrq()
688 struct mmc_request *mrq) in mmc_test_check_result() argument
692 BUG_ON(!mrq || !mrq->cmd || !mrq->data); in mmc_test_check_result()
696 if (!ret && mrq->cmd->error) in mmc_test_check_result()
697 ret = mrq->cmd->error; in mmc_test_check_result()
698 if (!ret && mrq->data->error) in mmc_test_check_result()
699 ret = mrq->data->error; in mmc_test_check_result()
700 if (!ret && mrq->stop && mrq->stop->error) in mmc_test_check_result()
701 ret = mrq->stop->error; in mmc_test_check_result()
702 if (!ret && mrq->data->bytes_xfered != in mmc_test_check_result()
703 mrq->data->blocks * mrq->data->blksz) in mmc_test_check_result()
720 return mmc_test_check_result(test_async->test, areq->mrq); in mmc_test_check_result_async()
727 struct mmc_request *mrq) in mmc_test_check_broken_result() argument
731 BUG_ON(!mrq || !mrq->cmd || !mrq->data); in mmc_test_check_broken_result()
735 if (!ret && mrq->cmd->error) in mmc_test_check_broken_result()
736 ret = mrq->cmd->error; in mmc_test_check_broken_result()
737 if (!ret && mrq->data->error == 0) in mmc_test_check_broken_result()
739 if (!ret && mrq->data->error != -ETIMEDOUT) in mmc_test_check_broken_result()
740 ret = mrq->data->error; in mmc_test_check_broken_result()
741 if (!ret && mrq->stop && mrq->stop->error) in mmc_test_check_broken_result()
742 ret = mrq->stop->error; in mmc_test_check_broken_result()
743 if (mrq->data->blocks > 1) { in mmc_test_check_broken_result()
744 if (!ret && mrq->data->bytes_xfered > mrq->data->blksz) in mmc_test_check_broken_result()
747 if (!ret && mrq->data->bytes_xfered > 0) in mmc_test_check_broken_result()
760 static void mmc_test_nonblock_reset(struct mmc_request *mrq, in mmc_test_nonblock_reset() argument
765 memset(mrq, 0, sizeof(struct mmc_request)); in mmc_test_nonblock_reset()
770 mrq->cmd = cmd; in mmc_test_nonblock_reset()
771 mrq->data = data; in mmc_test_nonblock_reset()
772 mrq->stop = stop; in mmc_test_nonblock_reset()
802 cur_areq->mrq = &mrq1; in mmc_test_nonblock_transfer()
804 other_areq->mrq = &mrq2; in mmc_test_nonblock_transfer()
808 mmc_test_prepare_mrq(test, cur_areq->mrq, sg, sg_len, dev_addr, in mmc_test_nonblock_transfer()
816 if (done_areq->mrq == &mrq2) in mmc_test_nonblock_transfer()
841 struct mmc_request mrq = {0}; in mmc_test_simple_transfer() local
846 mrq.cmd = &cmd; in mmc_test_simple_transfer()
847 mrq.data = &data; in mmc_test_simple_transfer()
848 mrq.stop = &stop; in mmc_test_simple_transfer()
850 mmc_test_prepare_mrq(test, &mrq, sg, sg_len, dev_addr, in mmc_test_simple_transfer()
853 mmc_wait_for_req(test->card->host, &mrq); in mmc_test_simple_transfer()
857 return mmc_test_check_result(test, &mrq); in mmc_test_simple_transfer()
866 struct mmc_request mrq = {0}; in mmc_test_broken_transfer() local
873 mrq.cmd = &cmd; in mmc_test_broken_transfer()
874 mrq.data = &data; in mmc_test_broken_transfer()
875 mrq.stop = &stop; in mmc_test_broken_transfer()
879 mmc_test_prepare_mrq(test, &mrq, &sg, 1, 0, blocks, blksz, write); in mmc_test_broken_transfer()
880 mmc_test_prepare_broken_mrq(test, &mrq, write); in mmc_test_broken_transfer()
882 mmc_wait_for_req(test->card->host, &mrq); in mmc_test_broken_transfer()
886 return mmc_test_check_broken_result(test, &mrq); in mmc_test_broken_transfer()