| From f5f968f2371ccdebb8a365487649673c9af68d09 Mon Sep 17 00:00:00 2001 |
| From: Srinath Mannam <srinath.mannam@broadcom.com> |
| Date: Thu, 18 May 2017 22:27:40 +0530 |
| Subject: mmc: sdhci-iproc: suppress spurious interrupt with Multiblock read |
| |
| From: Srinath Mannam <srinath.mannam@broadcom.com> |
| |
| commit f5f968f2371ccdebb8a365487649673c9af68d09 upstream. |
| |
| The stingray SDHCI hardware supports ACMD12 and automatically |
| issues after multi block transfer completed. |
| |
| If ACMD12 in SDHCI is disabled, spurious tx done interrupts are seen |
| on multi block read command with below error message: |
| |
| Got data interrupt 0x00000002 even though no data |
| operation was in progress. |
| |
| This patch uses SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12 to enable |
| ACM12 support in SDHCI hardware and suppress spurious interrupt. |
| |
| Signed-off-by: Srinath Mannam <srinath.mannam@broadcom.com> |
| Reviewed-by: Ray Jui <ray.jui@broadcom.com> |
| Reviewed-by: Scott Branden <scott.branden@broadcom.com> |
| Acked-by: Adrian Hunter <adrian.hunter@intel.com> |
| Fixes: b580c52d58d9 ("mmc: sdhci-iproc: add IPROC SDHCI driver") |
| Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/mmc/host/sdhci-iproc.c | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/mmc/host/sdhci-iproc.c |
| +++ b/drivers/mmc/host/sdhci-iproc.c |
| @@ -157,7 +157,8 @@ static const struct sdhci_ops sdhci_ipro |
| }; |
| |
| static const struct sdhci_pltfm_data sdhci_iproc_pltfm_data = { |
| - .quirks = SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK, |
| + .quirks = SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK | |
| + SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12, |
| .quirks2 = SDHCI_QUIRK2_ACMD23_BROKEN, |
| .ops = &sdhci_iproc_ops, |
| }; |