android_kernel_google_msm/drivers/mmc
Sergei Shtylyov ae48ae828e mmc: tmio_mmc_dma: fix PIO fallback on SDHI
commit f936f9b67b upstream.

I'm testing SH-Mobile SDHI driver in DMA mode with  a new DMA controller  using
'bonnie++' and getting DMA error after which the tmio_mmc_dma.c code falls back
to PIO but all commands time out after that.  It turned out that the fallback
code calls tmio_mmc_enable_dma() with RX/TX channels already freed and pointers
to them cleared, so that the function bails out early instead  of clearing the
DMA bit in the CTL_DMA_ENABLE register. The regression was introduced by commit
162f43e31c (mmc: tmio: fix a deadlock).
Moving tmio_mmc_enable_dma() calls to the top of the PIO fallback code in
tmio_mmc_start_dma_{rx|tx}() helps.

Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Acked-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Chris Ball <cjb@laptop.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-09-26 17:15:51 -07:00
..
card mmc: card: Skip secure erase on MoviNAND; causes unrecoverable corruption. 2012-10-02 10:29:54 -07:00
core mmc: core: Fix bit width test failing on old eMMC cards 2013-05-07 19:51:57 -07:00
host mmc: tmio_mmc_dma: fix PIO fallback on SDHI 2013-09-26 17:15:51 -07:00
Kconfig
Makefile mmc: sdhci-pci: add platform data 2012-01-11 23:58:47 -05:00