summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam Nelson <sam.nelson@ti.com>2016-09-07 14:06:49 -0400
committerSam Nelson <sam.nelson@ti.com>2016-09-07 14:09:57 -0400
commit4bf8dab36a000a6819c11ad2d3887ff3ebc180c4 (patch)
tree24c472013665dc1637d752ed0dac608272aa3c36
parentfbecb054f816673175b3bb0888e5eaaa7e6f5f14 (diff)
downloadlinuxutils-4bf8dab36a000a6819c11ad2d3887ff3ebc180c4.tar.gz
cmemk: UPdate cache wb and invalidate function.4.12.00.00_eng
- Found that __cpuc_flush_dcache_area doesnot work properly: Needed to be replaced by dmac_map_area - Other minor spacing issues fixed. Signed-off-by: Sam Nelson <sam.nelson@ti.com>
-rw-r--r--src/cmem/module/cmemk.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/cmem/module/cmemk.c b/src/cmem/module/cmemk.c
index dc01f02..84e3bcd 100644
--- a/src/cmem/module/cmemk.c
+++ b/src/cmem/module/cmemk.c
@@ -1703,9 +1703,9 @@ alloc:
switch (cmd & ~CMEM_IOCMAGIC) {
case CMEM_IOCCACHEWB:
-
dmac_map_area(virtp, block.size, DMA_TO_DEVICE);
outer_clean_range(physp, physp + block.size);
+
__D("CACHEWB: cleaned user virtual 0x%p -> 0x%p\n",
virtp, virtp_end);
@@ -1714,14 +1714,16 @@ alloc:
case CMEM_IOCCACHEINV:
outer_inv_range(physp, physp + block.size);
dmac_map_area(virtp, block.size, DMA_FROM_DEVICE);
+
__D("CACHEINV: invalidated user virtual 0x%p -> 0x%p\n",
virtp, virtp_end);
break;
case CMEM_IOCCACHEWBINV:
- __cpuc_flush_dcache_area(virtp, size);
+ dmac_map_area(virtp, block.size, DMA_BIDIRECTIONAL);
outer_flush_range(physp, physp + block.size);
+
__D("CACHEWBINV: flushed user virtual 0x%p -> 0x%p\n",
virtp, virtp_end);
@@ -2888,4 +2890,4 @@ v7_dma_unmap_area:\n \
#endif /* !defined(MULTI_CACHE) */
-#endif /* dmac_map_range */ \ No newline at end of file
+#endif /* dmac_map_range */