summaryrefslogtreecommitdiff
path: root/drivers/mmc
diff options
context:
space:
mode:
authorKonstantin Dorfman <kdorfman@codeaurora.org>2015-05-31 10:10:13 +0300
committerSubhash Jadavani <subhashj@codeaurora.org>2016-05-31 15:26:41 -0700
commit108d3eb6e65f8c5147369ec94d2a43ada37cbbd7 (patch)
tree95318c8094d6f8dcd764d490e65462e132667283 /drivers/mmc
parent6739d003471b392dad7964e1399d7b8200cd7403 (diff)
mmc: cmdq-host: add post halt helper after halt ack interrupt
After the CQE halt on some controllers need additional actions, before wakeup of waiting thread. Change-Id: I742baa48eb3f6eccf782d77a03aafe16ab7188f1 Signed-off-by: Konstantin Dorfman <kdorfman@codeaurora.org>
Diffstat (limited to 'drivers/mmc')
-rw-r--r--drivers/mmc/host/cmdq_hci.c2
-rw-r--r--drivers/mmc/host/cmdq_hci.h1
2 files changed, 3 insertions, 0 deletions
diff --git a/drivers/mmc/host/cmdq_hci.c b/drivers/mmc/host/cmdq_hci.c
index dc8e19fd1441..2bf9330399a2 100644
--- a/drivers/mmc/host/cmdq_hci.c
+++ b/drivers/mmc/host/cmdq_hci.c
@@ -674,6 +674,8 @@ irqreturn_t cmdq_irq(struct mmc_host *mmc, int err)
}
if (status & CQIS_HAC) {
+ if (cq_host->ops->post_cqe_halt)
+ cq_host->ops->post_cqe_halt(mmc);
/* halt is completed, wakeup waiting thread */
complete(&cq_host->halt_comp);
}
diff --git a/drivers/mmc/host/cmdq_hci.h b/drivers/mmc/host/cmdq_hci.h
index 05c622c057e8..100b3177e4c7 100644
--- a/drivers/mmc/host/cmdq_hci.h
+++ b/drivers/mmc/host/cmdq_hci.h
@@ -201,6 +201,7 @@ struct cmdq_host_ops {
int (*reset)(struct mmc_host *mmc);
int (*crypto_cfg)(struct mmc_host *mmc, struct mmc_request *mrq,
u32 slot);
+ void (*post_cqe_halt)(struct mmc_host *mmc);
};
static inline void cmdq_writel(struct cmdq_host *host, u32 val, int reg)