]> git.proxmox.com Git - mirror_ubuntu-disco-kernel.git/commit
mmc: sdhci-omap: Don't finish_mrq() on a command error during tuning
authorFaiz Abbas <faiz_abbas@ti.com>
Thu, 11 Apr 2019 08:59:37 +0000 (14:29 +0530)
committerStefan Bader <stefan.bader@canonical.com>
Tue, 14 May 2019 18:55:24 +0000 (20:55 +0200)
commita7e8efa978758782596bc6effcaa354bd59e6e13
tree1131c9696becca6645eb7c000a860a627bec1ada
parent37f3f327f369802910f5a9113e8aac5a9b1e1e62
mmc: sdhci-omap: Don't finish_mrq() on a command error during tuning

BugLink: https://bugs.launchpad.net/bugs/1828415
commit 5c41ea6d52003b5bc77c2a82fd5ca7d480237d89 upstream.

commit 5b0d62108b46 ("mmc: sdhci-omap: Add platform specific reset
callback") skips data resets during tuning operation. Because of this,
a data error or data finish interrupt might still arrive after a command
error has been handled and the mrq ended. This ends up with a "mmc0: Got
data interrupt 0x00000002 even though no data operation was in progress"
error message.

Fix this by adding a platform specific callback for sdhci_irq. Mark the
mrq as a failure but wait for a data interrupt instead of calling
finish_mrq().

Fixes: 5b0d62108b46 ("mmc: sdhci-omap: Add platform specific reset
callback")
Signed-off-by: Faiz Abbas <faiz_abbas@ti.com>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: stable@vger.kernel.org
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
drivers/mmc/host/sdhci-omap.c