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()
273 struct mmc_request mrq = {0}; in mmc_test_buffer_transfer() local
280 mrq.cmd = &cmd; in mmc_test_buffer_transfer()
281 mrq.data = &data; in mmc_test_buffer_transfer()
282 mrq.stop = &stop; in mmc_test_buffer_transfer()
286 mmc_test_prepare_mrq(test, &mrq, &sg, 1, addr, 1, blksz, write); in mmc_test_buffer_transfer()
288 mmc_wait_for_req(test->card->host, &mrq); in mmc_test_buffer_transfer()
676 struct mmc_request *mrq, int write) in mmc_test_prepare_broken_mrq() argument
678 BUG_ON(!mrq || !mrq->cmd || !mrq->data); in mmc_test_prepare_broken_mrq()
680 if (mrq->data->blocks > 1) { in mmc_test_prepare_broken_mrq()
681 mrq->cmd->opcode = write ? in mmc_test_prepare_broken_mrq()
683 mrq->stop = NULL; in mmc_test_prepare_broken_mrq()
685 mrq->cmd->opcode = MMC_SEND_STATUS; in mmc_test_prepare_broken_mrq()
686 mrq->cmd->arg = test->card->rca << 16; in mmc_test_prepare_broken_mrq()
694 struct mmc_request *mrq) in mmc_test_check_result() argument
698 BUG_ON(!mrq || !mrq->cmd || !mrq->data); in mmc_test_check_result()
702 if (!ret && mrq->cmd->error) in mmc_test_check_result()
703 ret = mrq->cmd->error; in mmc_test_check_result()
704 if (!ret && mrq->data->error) in mmc_test_check_result()
705 ret = mrq->data->error; in mmc_test_check_result()
706 if (!ret && mrq->stop && mrq->stop->error) in mmc_test_check_result()
707 ret = mrq->stop->error; in mmc_test_check_result()
708 if (!ret && mrq->data->bytes_xfered != in mmc_test_check_result()
709 mrq->data->blocks * mrq->data->blksz) in mmc_test_check_result()
726 return mmc_test_check_result(test_async->test, areq->mrq); in mmc_test_check_result_async()
733 struct mmc_request *mrq) in mmc_test_check_broken_result() argument
737 BUG_ON(!mrq || !mrq->cmd || !mrq->data); in mmc_test_check_broken_result()
741 if (!ret && mrq->cmd->error) in mmc_test_check_broken_result()
742 ret = mrq->cmd->error; in mmc_test_check_broken_result()
743 if (!ret && mrq->data->error == 0) in mmc_test_check_broken_result()
745 if (!ret && mrq->data->error != -ETIMEDOUT) in mmc_test_check_broken_result()
746 ret = mrq->data->error; in mmc_test_check_broken_result()
747 if (!ret && mrq->stop && mrq->stop->error) in mmc_test_check_broken_result()
748 ret = mrq->stop->error; in mmc_test_check_broken_result()
749 if (mrq->data->blocks > 1) { in mmc_test_check_broken_result()
750 if (!ret && mrq->data->bytes_xfered > mrq->data->blksz) in mmc_test_check_broken_result()
753 if (!ret && mrq->data->bytes_xfered > 0) in mmc_test_check_broken_result()
766 static void mmc_test_nonblock_reset(struct mmc_request *mrq, in mmc_test_nonblock_reset() argument
771 memset(mrq, 0, sizeof(struct mmc_request)); in mmc_test_nonblock_reset()
776 mrq->cmd = cmd; in mmc_test_nonblock_reset()
777 mrq->data = data; in mmc_test_nonblock_reset()
778 mrq->stop = stop; in mmc_test_nonblock_reset()
808 cur_areq->mrq = &mrq1; in mmc_test_nonblock_transfer()
810 other_areq->mrq = &mrq2; in mmc_test_nonblock_transfer()
814 mmc_test_prepare_mrq(test, cur_areq->mrq, sg, sg_len, dev_addr, in mmc_test_nonblock_transfer()
822 if (done_areq->mrq == &mrq2) in mmc_test_nonblock_transfer()
849 struct mmc_request mrq = {0}; in mmc_test_simple_transfer() local
854 mrq.cmd = &cmd; in mmc_test_simple_transfer()
855 mrq.data = &data; in mmc_test_simple_transfer()
856 mrq.stop = &stop; in mmc_test_simple_transfer()
858 mmc_test_prepare_mrq(test, &mrq, sg, sg_len, dev_addr, in mmc_test_simple_transfer()
861 mmc_wait_for_req(test->card->host, &mrq); in mmc_test_simple_transfer()
865 return mmc_test_check_result(test, &mrq); in mmc_test_simple_transfer()
874 struct mmc_request mrq = {0}; in mmc_test_broken_transfer() local
881 mrq.cmd = &cmd; in mmc_test_broken_transfer()
882 mrq.data = &data; in mmc_test_broken_transfer()
883 mrq.stop = &stop; in mmc_test_broken_transfer()
887 mmc_test_prepare_mrq(test, &mrq, &sg, 1, 0, blocks, blksz, write); in mmc_test_broken_transfer()
888 mmc_test_prepare_broken_mrq(test, &mrq, write); in mmc_test_broken_transfer()
890 mmc_wait_for_req(test->card->host, &mrq); in mmc_test_broken_transfer()
894 return mmc_test_check_broken_result(test, &mrq); in mmc_test_broken_transfer()