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 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot