050-Update-the-DMA-map-function-for-CF-platform.patch 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. From 2411a3e2b5dfa4784bbe2548f8ef0ce1aea0379e Mon Sep 17 00:00:00 2001
  2. From: Jason Jin <[email protected]>
  3. Date: Thu, 4 Aug 2011 09:59:55 +0800
  4. Subject: [PATCH 50/52] Update the DMA map function for CF platform
  5. In the DMA map, only the dcache need to be flushed.
  6. Flush both dcache and icache will decrease the system
  7. performance.
  8. Signed-off-by: Jason Jin <[email protected]>
  9. ---
  10. arch/m68k/kernel/dma.c | 12 ++++++++++--
  11. 1 files changed, 10 insertions(+), 2 deletions(-)
  12. --- a/arch/m68k/kernel/dma.c
  13. +++ b/arch/m68k/kernel/dma.c
  14. @@ -94,10 +94,18 @@ void dma_sync_single_for_device(struct d
  15. {
  16. switch (dir) {
  17. case DMA_TO_DEVICE:
  18. - cache_push(handle, size);
  19. +#if defined(CONFIG_M5445X) || defined(CONFIG_M5441X)
  20. + flush_dcache_range(handle, handle + size);
  21. +#else
  22. + flush_dcache();
  23. +#endif
  24. break;
  25. case DMA_FROM_DEVICE:
  26. - cache_clear(handle, size);
  27. +#if defined(CONFIG_M5445X) || defined(CONFIG_M5441X)
  28. + cf_dcache_inv_range(handle, handle + size);
  29. +#else
  30. + flush_dcache();
  31. +#endif
  32. break;
  33. case PCI_DMA_BIDIRECTIONAL:
  34. flush_dcache();