summaryrefslogtreecommitdiff
path: root/drivers/mmc/card/queue.c
diff options
context:
space:
mode:
authorAsutosh Das <asutoshd@codeaurora.org>2015-04-23 16:00:45 +0530
committerSubhash Jadavani <subhashj@codeaurora.org>2016-05-31 15:26:28 -0700
commit89ada7fc6d8bc5cc9b198f84517003d5886a1c30 (patch)
treefb800177e2c21b2c612410e245a461751b5c3161 /drivers/mmc/card/queue.c
parentfc4b531dfdca023ac59389e7acf24f21aa6074ed (diff)
mmc: core: add flush request support to command queue
Adds flush request support to command-queue. This uses DCMD feature of the controller for sending commands in command-queue mode. DCMD is a direct command feature that uses a pre-configured slot for sending commands other than Class 11. Change-Id: Iebf6b74173dc91b0dc7230d1e87c65983d15148e Signed-off-by: Asutosh Das <asutoshd@codeaurora.org> Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org> [subhashj@codeaurora.org: fixed trivial merge conflicts] Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
Diffstat (limited to 'drivers/mmc/card/queue.c')
-rw-r--r--drivers/mmc/card/queue.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/mmc/card/queue.c b/drivers/mmc/card/queue.c
index 04a9e9274b7a..e88c1fac7be0 100644
--- a/drivers/mmc/card/queue.c
+++ b/drivers/mmc/card/queue.c
@@ -58,7 +58,8 @@ static int mmc_prep_request(struct request_queue *q, struct request *req)
static inline bool mmc_cmdq_should_pull_reqs(struct mmc_host *host,
struct mmc_cmdq_context_info *ctx)
{
- if (test_bit(CMDQ_STATE_ERR, &ctx->curr_state)) {
+ if (test_bit(CMDQ_STATE_DCMD_ACTIVE, &ctx->curr_state) ||
+ test_bit(CMDQ_STATE_ERR, &ctx->curr_state)) {
pr_debug("%s: %s: skip pulling reqs: state: %lu\n",
mmc_hostname(host), __func__, ctx->curr_state);
return false;