gpu: ion: Don't flush allocatoins that come from the page pools
authorRebecca Schultz Zavin <rebecca@android.com>
Fri, 13 Dec 2013 22:24:18 +0000 (14:24 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 14 Dec 2013 16:55:40 +0000 (08:55 -0800)
Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
[jstultz: modified patch to apply to staging directory]
Signed-off-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/android/ion/ion_system_heap.c

index ad4933e1b4211b927da9af5e67f9855c789bc79d..02726a9702b153106578802d7c6967276546c134 100644 (file)
@@ -76,9 +76,14 @@ static struct page *alloc_buffer_page(struct ion_system_heap *heap,
                if (order > 4)
                        gfp_flags = high_order_gfp_flags;
                page = alloc_pages(gfp_flags, order);
+               if (!page)
+                       return 0;
+               __dma_page_cpu_to_dev(page, 0, PAGE_SIZE << order,
+                                     DMA_BIDIRECTIONAL);
        }
        if (!page)
                return 0;
+
        if (split_pages)
                split_page(page, order);
        return page;
@@ -201,9 +206,6 @@ static int ion_system_heap_allocate(struct ion_heap *heap,
                kfree(info);
        }
 
-       dma_sync_sg_for_device(NULL, table->sgl, table->nents,
-                              DMA_BIDIRECTIONAL);
-
        buffer->priv_virt = table;
        return 0;
 err1: