mmc: cmdq_hci: verify the doorbell bit for DCMD before setting
We make sure that the doorbell bit for any regular slot is not set before ringing the doorbell for that slot, make sure of the same for DCMD slot too. Change-Id: Ia96e8d6ae0c28aad21f4a3cf46b27c7a5c878971 Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org>
This commit is contained in:
parent
4c7ffe38b3
commit
28791b7d46
1 changed files with 4 additions and 2 deletions
|
@ -631,8 +631,6 @@ static int cmdq_request(struct mmc_host *mmc, struct mmc_request *mrq)
|
|||
goto out;
|
||||
}
|
||||
|
||||
BUG_ON(cmdq_readl(cq_host, CQTDBR) & (1 << tag));
|
||||
|
||||
cq_host->mrq_slot[tag] = mrq;
|
||||
if (cq_host->ops->set_tranfer_params)
|
||||
cq_host->ops->set_tranfer_params(mmc);
|
||||
|
@ -643,6 +641,10 @@ static int cmdq_request(struct mmc_host *mmc, struct mmc_request *mrq)
|
|||
ring_doorbell:
|
||||
/* Ensure the task descriptor list is flushed before ringing doorbell */
|
||||
wmb();
|
||||
if (cmdq_readl(cq_host, CQTDBR) & (1 << tag)) {
|
||||
cmdq_dumpregs(cq_host);
|
||||
BUG_ON(1);
|
||||
}
|
||||
cmdq_writel(cq_host, 1 << tag, CQTDBR);
|
||||
/* Commit the doorbell write immediately */
|
||||
wmb();
|
||||
|
|
Loading…
Add table
Reference in a new issue