Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 799c959c authored by Ritesh Harjani's avatar Ritesh Harjani Committed by Gerrit - the friendly Code Review server
Browse files

mmc: cmdq_hci: Do not handle other requests in case of error.



There can be case where controller may raise success for
rew queued requests while error for 1 of the requests.
In case of error we were handling the error but proceeding
and handling the requests which got completed by the controller.

As of now in cmdq-err handler mechanism, if any error occurs,
we re-queue all the requests back and request_queue.
So we need not call done for other requests which care completed
as this call lot of other contexts to run in parallel while error
handler is waiting to run.

Change-Id: I75214a870a13b39001d3d7a31e588c4c1113bed8
Signed-off-by: default avatarRitesh Harjani <riteshh@codeaurora.org>
Signed-off-by: default avatarSahitya Tummala <stummala@codeaurora.org>
parent 0e8c686f
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -922,6 +922,8 @@ irqreturn_t cmdq_irq(struct mmc_host *mmc, int err)
		err_info = cmdq_readl(cq_host, CQTERRI);
		pr_err("%s: err: %d status: 0x%08x task-err-info (0x%08lx)\n",
		       mmc_hostname(mmc), err, status, err_info);
		/* Dump the registers before clearing Interrupt */
		cmdq_dumpregs(cq_host);

		/*
		 * Need to halt CQE in case of error in interrupt context itself
@@ -945,7 +947,6 @@ irqreturn_t cmdq_irq(struct mmc_host *mmc, int err)
		 */
		cmdq_writel(cq_host, status, CQIS);

		cmdq_dumpregs(cq_host);

		if (!err_info) {
			/*
@@ -1100,6 +1101,7 @@ irqreturn_t cmdq_irq(struct mmc_host *mmc, int err)
			}
		}
		cmdq_finish_data(mmc, tag);
		goto hac;
	} else {
		cmdq_writel(cq_host, status, CQIS);
	}