Lines Matching refs:mrq
60 static void rk_emmc_prepare_mrq(struct mmc_request *mrq, struct scatterlist *sg, in rk_emmc_prepare_mrq() argument
63 BUG_ON(!mrq || !mrq->cmd || !mrq->data || !mrq->stop); in rk_emmc_prepare_mrq()
66 mrq->cmd->opcode = write ? in rk_emmc_prepare_mrq()
69 mrq->cmd->opcode = write ? in rk_emmc_prepare_mrq()
73 mrq->cmd->arg = dev_addr; in rk_emmc_prepare_mrq()
75 mrq->cmd->arg <<= 9; in rk_emmc_prepare_mrq()
77 mrq->cmd->flags = MMC_RSP_R1 | MMC_CMD_ADTC; in rk_emmc_prepare_mrq()
80 mrq->stop = NULL; in rk_emmc_prepare_mrq()
82 mrq->stop->opcode = MMC_STOP_TRANSMISSION; in rk_emmc_prepare_mrq()
83 mrq->stop->arg = 0; in rk_emmc_prepare_mrq()
84 mrq->stop->flags = MMC_RSP_R1B | MMC_CMD_AC; in rk_emmc_prepare_mrq()
87 mrq->data->blksz = blksz; in rk_emmc_prepare_mrq()
88 mrq->data->blocks = blocks; in rk_emmc_prepare_mrq()
89 mrq->data->flags = write ? MMC_DATA_WRITE : MMC_DATA_READ; in rk_emmc_prepare_mrq()
90 mrq->data->sg = sg; in rk_emmc_prepare_mrq()
91 mrq->data->sg_len = sg_len; in rk_emmc_prepare_mrq()
92 mmc_set_data_timeout(mrq->data, this_card); in rk_emmc_prepare_mrq()
141 struct mmc_request mrq = {0}; in rk_emmc_transfer() local
151 mrq.cmd = &cmd; in rk_emmc_transfer()
152 mrq.data = &data; in rk_emmc_transfer()
153 mrq.stop = &stop; in rk_emmc_transfer()
157 rk_emmc_prepare_mrq(&mrq, &sg, 1, addr, datasz / BLKSZ, BLKSZ, write); in rk_emmc_transfer()
178 mmc_wait_for_req(this_card->host, &mrq); in rk_emmc_transfer()