[U-Boot] [PATCH 0/5] mmc: Tegra2: DMA related fixes

Anton Staaf robotboy at chromium.org
Thu Oct 13 23:57:03 CEST 2011


The first two patches in this set are basic bug fixes for the Tegra2 MMC driver.
The third patch is cleanup.  The fourth patch adds some cache management
utility functions to the generic MMC code.  And the final patch adds bounce
buffer management, cache flusing, and cache invalidation to the Tegra2 MMC
driver.  This bounce buffer allows the driver to function correctly even when
faced with incorrectly aligned buffers.

My other patch sets attempt to fix as many unaligned buffers as I could find.
But there are likely more to deal with and it is preferable that the MMC driver
continue to function in the face of unaligned buffers, even if it slows down
due to memcpy overhead.

An alternative to the fifth patch would be to attempt to add this bounce buffer
management to the generic MMC layer itself.  This would benefit all
architectures, but would require more testing and work.  It seems better to
enable it here first and then move it to the generic code.  Once a generic
solution is in place this code can be reverted.  It might even make sense to
put the bounce buffer code all the way up in the block interface layer.  But
my hope is that we can hash that all out independently of this patch.  :)

Anton Staaf (5):
  mmc: Tegra2: Support DMA restarts at buffer boundaries
  mmc: Tegra2: Add data transfer completion timeout
  mmc: Tegra2: Factor out mmc_wait_inhibit functionality
  mmc: Create dcache flush and invalidate convenience methods
  mmc: Tegra2: Enable dcache support by bouncing unaligned requests.

 drivers/mmc/mmc.c        |   23 +++++
 drivers/mmc/tegra2_mmc.c |  202 +++++++++++++++++++++++++++++++++++++++++-----
 drivers/mmc/tegra2_mmc.h |   14 +++
 include/mmc.h            |   10 +++
 4 files changed, 227 insertions(+), 22 deletions(-)

-- 
1.7.3.1



More information about the U-Boot mailing list