diff options
author | Imagination Technologies Ltd <gpl-support@imgtec.com> | 2011-06-29 18:40:33 +0100 |
---|---|---|
committer | Rebecca Schultz Zavin <rebecca@android.com> | 2011-07-11 17:03:15 -0700 |
commit | af50f0bd0d46b8bf131849d34306f62090d8b9f9 (patch) | |
tree | 845a365ca2bf12771b2e8080a545b4165181d87f /drivers/gpu/pvr/osfunc.c | |
parent | 6d3f70d2cd5c4739b0cea3a439507721079ecbab (diff) | |
download | kernel_samsung_tuna-af50f0bd0d46b8bf131849d34306f62090d8b9f9.zip kernel_samsung_tuna-af50f0bd0d46b8bf131849d34306f62090d8b9f9.tar.gz kernel_samsung_tuna-af50f0bd0d46b8bf131849d34306f62090d8b9f9.tar.bz2 |
gpu: pvr: Update to DDK 1.8.18.737
Diffstat (limited to 'drivers/gpu/pvr/osfunc.c')
-rw-r--r-- | drivers/gpu/pvr/osfunc.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/drivers/gpu/pvr/osfunc.c b/drivers/gpu/pvr/osfunc.c index f0c6838..d14e73d 100644 --- a/drivers/gpu/pvr/osfunc.c +++ b/drivers/gpu/pvr/osfunc.c @@ -183,6 +183,21 @@ OSAllocPages_Impl(IMG_UINT32 ui32AllocFlags, } #endif + if(ui32AllocFlags & PVRSRV_MEM_ION) + { + + BUG_ON((ui32AllocFlags & PVRSRV_HAP_MAPTYPE_MASK) != PVRSRV_HAP_SINGLE_PROCESS); + + psLinuxMemArea = NewIONLinuxMemArea(ui32Size, ui32AllocFlags); + if(!psLinuxMemArea) + { + return PVRSRV_ERROR_OUT_OF_MEMORY; + } + + PVRMMapRegisterArea(psLinuxMemArea); + goto ExitSkipSwitch; + } + switch(ui32AllocFlags & PVRSRV_HAP_MAPTYPE_MASK) { case PVRSRV_HAP_KERNEL_ONLY: @@ -197,7 +212,6 @@ OSAllocPages_Impl(IMG_UINT32 ui32AllocFlags, case PVRSRV_HAP_SINGLE_PROCESS: { - psLinuxMemArea = NewAllocPagesLinuxMemArea(ui32Size, ui32AllocFlags); if(!psLinuxMemArea) { @@ -229,6 +243,7 @@ OSAllocPages_Impl(IMG_UINT32 ui32AllocFlags, return PVRSRV_ERROR_INVALID_PARAMS; } +ExitSkipSwitch: *ppvCpuVAddr = LinuxMemAreaToCpuVAddr(psLinuxMemArea); *phOSMemHandle = psLinuxMemArea; @@ -2876,6 +2891,8 @@ IMG_BOOL CheckExecuteCacheOp(IMG_HANDLE hOSMemHandle, break; } + case LINUX_MEM_AREA_ION: + case LINUX_MEM_AREA_ALLOC_PAGES: { pvMinVAddr = FindMMapBaseVAddr(psMMapOffsetStructList, |