mmc: block: Use local variables in mmc_blk_data_prep()

Use local variables in mmc_blk_data_prep() in preparation for adding CQE
support which doesn't use the output variables.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
This commit is contained in:
Adrian Hunter 2017-09-22 15:36:55 +03:00 committed by Ulf Hansson
parent f690f4409d
commit d3377c012f
1 changed files with 18 additions and 11 deletions

View File

@ -1575,21 +1575,22 @@ static enum mmc_blk_status mmc_blk_err_check(struct mmc_card *card,
} }
static void mmc_blk_data_prep(struct mmc_queue *mq, struct mmc_queue_req *mqrq, static void mmc_blk_data_prep(struct mmc_queue *mq, struct mmc_queue_req *mqrq,
int disable_multi, bool *do_rel_wr, int disable_multi, bool *do_rel_wr_p,
bool *do_data_tag) bool *do_data_tag_p)
{ {
struct mmc_blk_data *md = mq->blkdata; struct mmc_blk_data *md = mq->blkdata;
struct mmc_card *card = md->queue.card; struct mmc_card *card = md->queue.card;
struct mmc_blk_request *brq = &mqrq->brq; struct mmc_blk_request *brq = &mqrq->brq;
struct request *req = mmc_queue_req_to_req(mqrq); struct request *req = mmc_queue_req_to_req(mqrq);
bool do_rel_wr, do_data_tag;
/* /*
* Reliable writes are used to implement Forced Unit Access and * Reliable writes are used to implement Forced Unit Access and
* are supported only on MMCs. * are supported only on MMCs.
*/ */
*do_rel_wr = (req->cmd_flags & REQ_FUA) && do_rel_wr = (req->cmd_flags & REQ_FUA) &&
rq_data_dir(req) == WRITE && rq_data_dir(req) == WRITE &&
(md->flags & MMC_BLK_REL_WR); (md->flags & MMC_BLK_REL_WR);
memset(brq, 0, sizeof(struct mmc_blk_request)); memset(brq, 0, sizeof(struct mmc_blk_request));
@ -1637,18 +1638,18 @@ static void mmc_blk_data_prep(struct mmc_queue *mq, struct mmc_queue_req *mqrq,
brq->data.blocks); brq->data.blocks);
} }
if (*do_rel_wr) if (do_rel_wr)
mmc_apply_rel_rw(brq, card, req); mmc_apply_rel_rw(brq, card, req);
/* /*
* Data tag is used only during writing meta data to speed * Data tag is used only during writing meta data to speed
* up write and any subsequent read of this meta data * up write and any subsequent read of this meta data
*/ */
*do_data_tag = card->ext_csd.data_tag_unit_size && do_data_tag = card->ext_csd.data_tag_unit_size &&
(req->cmd_flags & REQ_META) && (req->cmd_flags & REQ_META) &&
(rq_data_dir(req) == WRITE) && (rq_data_dir(req) == WRITE) &&
((brq->data.blocks * brq->data.blksz) >= ((brq->data.blocks * brq->data.blksz) >=
card->ext_csd.data_tag_unit_size); card->ext_csd.data_tag_unit_size);
mmc_set_data_timeout(&brq->data, card); mmc_set_data_timeout(&brq->data, card);
@ -1675,6 +1676,12 @@ static void mmc_blk_data_prep(struct mmc_queue *mq, struct mmc_queue_req *mqrq,
} }
mqrq->areq.mrq = &brq->mrq; mqrq->areq.mrq = &brq->mrq;
if (do_rel_wr_p)
*do_rel_wr_p = do_rel_wr;
if (do_data_tag_p)
*do_data_tag_p = do_data_tag;
} }
static void mmc_blk_rw_rq_prep(struct mmc_queue_req *mqrq, static void mmc_blk_rw_rq_prep(struct mmc_queue_req *mqrq,