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

Commit 64a4807b authored by Ram Prakash Gupta's avatar Ram Prakash Gupta
Browse files

mmc: sdhci: Skip interrupt clear in case of err



Skip interrupt clear in case of err so that driver do
not loose interrupt status before register dump.

Change-Id: I7597536f0b5ac231b9a8955b2f6c301b910075af
Signed-off-by: default avatarRam Prakash Gupta <rampraka@codeaurora.org>
parent ed0b6c14
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -2358,11 +2358,21 @@ static u32 sdhci_msm_cqe_irq(struct sdhci_host *host, u32 intmask)
{
	int cmd_error = 0;
	int data_error = 0;
	u32 mask;

	if (!sdhci_cqe_irq(host, intmask, &cmd_error, &data_error))
		return intmask;

	cqhci_irq(host->mmc, intmask, cmd_error, data_error);

	/*
	 * Clear selected interrupts in err case.
	 * as earlier driver skipped
	 */
	if (data_error || cmd_error) {
		mask = intmask & host->cqe_ier;
		sdhci_writel(host, mask, SDHCI_INT_STATUS);
	}
	return 0;
}

+3 −0
Original line number Diff line number Diff line
@@ -3987,9 +3987,12 @@ bool sdhci_cqe_irq(struct sdhci_host *host, u32 intmask, int *cmd_error,
		*data_error = 0;

	/* Clear selected interrupts. */
	if (*data_error || *cmd_error)
		goto skip_intr_clear;
	mask = intmask & host->cqe_ier;
	sdhci_writel(host, mask, SDHCI_INT_STATUS);

skip_intr_clear:
	if (intmask & SDHCI_INT_BUS_POWER)
		pr_err("%s: Card is consuming too much power!\n",
		       mmc_hostname(host->mmc));