diff options
| author | Konstantin Dorfman <kdorfman@codeaurora.org> | 2015-05-31 10:10:13 +0300 |
|---|---|---|
| committer | Subhash Jadavani <subhashj@codeaurora.org> | 2016-05-31 15:26:41 -0700 |
| commit | 108d3eb6e65f8c5147369ec94d2a43ada37cbbd7 (patch) | |
| tree | 95318c8094d6f8dcd764d490e65462e132667283 /drivers/mmc | |
| parent | 6739d003471b392dad7964e1399d7b8200cd7403 (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.c | 2 | ||||
| -rw-r--r-- | drivers/mmc/host/cmdq_hci.h | 1 |
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) |
