gpu: ion: Only flush buffers in the chunk heap if they were used cached
authorRebecca Schultz Zavin <rebecca@android.com>
Mon, 14 Jan 2013 23:29:10 +0000 (15:29 -0800)
committerArve Hjønnevåg <arve@android.com>
Mon, 1 Jul 2013 21:16:20 +0000 (14:16 -0700)
Change-Id: I4ffcf81a6be09e968310bbd882fb017415d61b48
Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
drivers/gpu/ion/ion_chunk_heap.c

index f65274d33067440a44339c308474bfd94464317f..687af63b9f5f8e2fc26e2facd0879be4b9c53dd5 100644 (file)
@@ -104,8 +104,9 @@ static void ion_chunk_heap_free(struct ion_buffer *buffer)
        ion_heap_buffer_zero(buffer);
 
        for_each_sg(table->sgl, sg, table->nents, i) {
-               __dma_page_cpu_to_dev(sg_page(sg), 0, sg_dma_len(sg),
-                                     DMA_BIDIRECTIONAL);
+               if (ion_buffer_cached(buffer))
+                       __dma_page_cpu_to_dev(sg_page(sg), 0, sg_dma_len(sg),
+                                             DMA_BIDIRECTIONAL);
                gen_pool_free(chunk_heap->pool, page_to_phys(sg_page(sg)),
                              sg_dma_len(sg));
        }