summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2018-05-30 21:10:30 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2018-05-30 21:10:30 -0700
commit07c1b26257100deef8bf4978a9353e8a2a8a69aa (patch)
tree00a198954b572dce1814802aebfb3cf934039fb8
parent7f1e39e00b529092f55b7c43e93bff4431b42273 (diff)
parentd4a088792f76c27b7d4448afe02bf965f89a30f2 (diff)
Merge "mmc: card: Update multi_cmd_ioctl path to support cmdq"
-rw-r--r--drivers/mmc/card/block.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c
index 35be47dafda2..13e0df67d3b7 100644
--- a/drivers/mmc/card/block.c
+++ b/drivers/mmc/card/block.c
@@ -1301,9 +1301,26 @@ static int mmc_blk_ioctl_multi_cmd(struct block_device *bdev,
mmc_get_card(card);
+ if (mmc_card_cmdq(card)) {
+ err = mmc_cmdq_halt(card->host, true);
+ if (err) {
+ pr_err("%s: halt failed while doing %s err (%d)\n",
+ mmc_hostname(card->host),
+ __func__, err);
+ mmc_put_card(card);
+ goto cmd_done;
+ }
+ }
+
for (i = 0; i < num_of_cmds && !ioc_err; i++)
ioc_err = __mmc_blk_ioctl_cmd(card, md, idata[i]);
+ if (mmc_card_cmdq(card)) {
+ if (mmc_cmdq_halt(card->host, false))
+ pr_err("%s: %s: cmdq unhalt failed\n",
+ mmc_hostname(card->host), __func__);
+ }
+
mmc_put_card(card);
/* copy to user if data and response */