gpu: pvr: compilation fixes for kernel > 2.6.33
authorAmeya Palande <ameya.palande@nokia.com>
Wed, 2 Jun 2010 12:04:01 +0000 (15:04 +0300)
committerGrazvydas Ignotas <notasas@gmail.com>
Sun, 20 May 2012 18:09:40 +0000 (21:09 +0300)
Signed-off-by: Ameya Palande <ameya.palande@nokia.com>
pvr/bridged_pvr_bridge.c
pvr/mm.c
pvr/resman.c
pvr/sgxinit.c

index abbf7f1..fa1a371 100644 (file)
@@ -667,8 +667,7 @@ static int FlushCacheDRI(u32 ui32Type, u32 ui32Virt, u32 ui32Length)
                         "DRM_PVR2D_CFLUSH_FROM_GPU 0x%08x, length 0x%08x\n",
                         ui32Virt, ui32Length);
 #ifdef CONFIG_ARM
-               dmac_inv_range((const void *)ui32Virt,
-                              (const void *)(ui32Virt + ui32Length));
+               dmac_map_area((const void *)ui32Virt, ui32Length, DMA_FROM_DEVICE);
 #endif
                return 0;
        case DRM_PVR2D_CFLUSH_TO_GPU:
@@ -676,8 +675,7 @@ static int FlushCacheDRI(u32 ui32Type, u32 ui32Virt, u32 ui32Length)
                         "DRM_PVR2D_CFLUSH_TO_GPU 0x%08x, length 0x%08x\n",
                         ui32Virt, ui32Length);
 #ifdef CONFIG_ARM
-               dmac_clean_range((const void *)ui32Virt,
-                                (const void *)(ui32Virt + ui32Length));
+               dmac_map_area((const void *)ui32Virt, ui32Length, DMA_TO_DEVICE);
 #endif
                return 0;
        default:
index cf579e5..29bdd93 100644 (file)
--- a/pvr/mm.c
+++ b/pvr/mm.c
@@ -1142,6 +1142,9 @@ static void inv_cache_vmalloc(const struct LinuxMemArea *mem_area)
        u32 pg_ofs;
        u32 vaddr, vaddr_end;
 
+       extern void ___dma_single_dev_to_cpu(const void *, size_t,
+                                       enum dma_data_direction);
+
        vaddr = (u32)mem_area->uData.sVmalloc.pvVmallocAddress;
        vaddr_end = vaddr + mem_area->ui32ByteSize;
        pg_cnt = (PAGE_ALIGN(vaddr_end) - (vaddr & PAGE_MASK)) / PAGE_SIZE;
@@ -1152,7 +1155,7 @@ static void inv_cache_vmalloc(const struct LinuxMemArea *mem_area)
                pg_ofs = vaddr & ~PAGE_MASK;
                kaddr += pg_ofs;
                chunk = min_t(ssize_t, vaddr_end - vaddr, PAGE_SIZE - pg_ofs);
-               dma_cache_maint(kaddr, chunk, DMA_FROM_DEVICE);
+               ___dma_single_dev_to_cpu(kaddr, chunk, DMA_FROM_DEVICE);
                vaddr += chunk;
        }
 }
@@ -1162,10 +1165,13 @@ static void inv_cache_page_list(const struct LinuxMemArea *mem_area)
        u32 pg_cnt;
        struct page **pg_list;
 
+       extern void ___dma_single_dev_to_cpu(const void *, size_t,
+                                       enum dma_data_direction);
+
        pg_cnt = RANGE_TO_PAGES(mem_area->ui32ByteSize);
        pg_list = mem_area->uData.sPageList.pvPageList;
        while (pg_cnt--)
-               dma_cache_maint(page_address(*pg_list++), PAGE_SIZE,
+               ___dma_single_dev_to_cpu(page_address(*pg_list++), PAGE_SIZE,
                                DMA_FROM_DEVICE);
 }
 
index 5b9766f..ef104e6 100644 (file)
@@ -33,7 +33,7 @@
 #include "services_headers.h"
 #include "resman.h"
 
-static DECLARE_MUTEX(lock);
+static DEFINE_SEMAPHORE(lock);
 
 #define ACQUIRE_SYNC_OBJ  do {                                            \
                if (in_interrupt()) {                                      \
index 71815f0..3d09250 100644 (file)
@@ -28,6 +28,7 @@
 
 #include <linux/workqueue.h>
 #include <linux/io.h>
+#include <linux/slab.h>
 
 #include "sgxdefs.h"
 #include "sgxmmu.h"