mmc: sdhci-of-esdhc: add erratum A-009204 support
authorYinbo Zhu <yinbo.zhu@nxp.com>
Mon, 11 Mar 2019 02:16:44 +0000 (02:16 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 31 May 2019 13:46:22 +0000 (06:46 -0700)
commit019ca0bf8d91ad525db75b7c34bd33093c8db93e
treeddfa227689f796fb674f1c5b4842b2fbb480af6b
parent80118cba1f7892d0266b5607230032dae7a62d9f
mmc: sdhci-of-esdhc: add erratum A-009204 support

[ Upstream commit 5dd195522562542bc6ebe6e7bd47890d8b7ca93c ]

In the event of that any data error (like, IRQSTAT[DCE]) occurs
during an eSDHC data transaction where DMA is used for data
transfer to/from the system memory, setting the SYSCTL[RSTD]
register may cause a system hang. If software sets the register
SYSCTL[RSTD] to 1 for error recovery while DMA transferring is
not complete, eSDHC may hang the system bus. This happens because
the software register SYSCTL[RSTD] resets the DMA engine without
waiting for the completion of pending system transactions. This
erratum is to fix this issue.

Signed-off-by: Yinbo Zhu <yinbo.zhu@nxp.com>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/mmc/host/sdhci-of-esdhc.c