aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorAlistair Strachan <alistair.strachan@imgtec.com>2011-08-10 17:20:08 +0100
committerErik Gilling <konkers@android.com>2011-08-17 13:45:40 -0700
commit4dbc4b681df0bfa7c09adb2befaea661b745d47f (patch)
tree35936834b4842ce5f9804be9ebd6e1f6a1e666a9 /drivers/gpu
parent36355b999fa21a9e58af14c871328ae416cecf4d (diff)
downloadkernel_samsung_tuna-4dbc4b681df0bfa7c09adb2befaea661b745d47f.zip
kernel_samsung_tuna-4dbc4b681df0bfa7c09adb2befaea661b745d47f.tar.gz
kernel_samsung_tuna-4dbc4b681df0bfa7c09adb2befaea661b745d47f.tar.bz2
gpu: pvr: Update to DDK 1.8@275540
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/pvr/bridged_pvr_bridge.c8
-rw-r--r--drivers/gpu/pvr/pvrsrv.c32
-rw-r--r--drivers/gpu/pvr/pvrversion.h4
-rw-r--r--drivers/gpu/pvr/services.h20
-rw-r--r--drivers/gpu/pvr/servicesint.h11
5 files changed, 71 insertions, 4 deletions
diff --git a/drivers/gpu/pvr/bridged_pvr_bridge.c b/drivers/gpu/pvr/bridged_pvr_bridge.c
index 783ca44..ed5864b 100644
--- a/drivers/gpu/pvr/bridged_pvr_bridge.c
+++ b/drivers/gpu/pvr/bridged_pvr_bridge.c
@@ -2086,6 +2086,7 @@ PVRSRVGetMiscInfoBW(IMG_UINT32 ui32BridgeID,
PVRSRV_ERROR eError;
PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_GET_MISC_INFO);
+
#if defined (SUPPORT_SID_INTERFACE)
sMiscInfo.ui32StateRequest = psGetMiscInfoIN->sMiscInfo.ui32StateRequest;
sMiscInfo.ui32StatePresent = psGetMiscInfoIN->sMiscInfo.ui32StatePresent;
@@ -2095,8 +2096,10 @@ PVRSRVGetMiscInfoBW(IMG_UINT32 ui32BridgeID,
OSMemCopy(&sMiscInfo.sCacheOpCtl,
&psGetMiscInfoIN->sMiscInfo.sCacheOpCtl,
sizeof(sMiscInfo.sCacheOpCtl));
+ OSMemCopy(&sMiscInfo.sGetRefCountCtl,
+ &psGetMiscInfoIN->sMiscInfo.sGetRefCountCtl,
+ sizeof(sMiscInfo.sGetRefCountCtl));
#else
-
OSMemCopy(&psGetMiscInfoOUT->sMiscInfo,
&psGetMiscInfoIN->sMiscInfo,
sizeof(PVRSRV_MISC_INFO));
@@ -2254,6 +2257,9 @@ PVRSRVGetMiscInfoBW(IMG_UINT32 ui32BridgeID,
OSMemCopy(&psGetMiscInfoOUT->sMiscInfo.sCacheOpCtl,
&sMiscInfo.sCacheOpCtl,
sizeof(psGetMiscInfoOUT->sMiscInfo.sCacheOpCtl));
+ OSMemCopy(&psGetMiscInfoOUT->sMiscInfo.sGetRefCountCtl,
+ &sMiscInfo.sGetRefCountCtl,
+ sizeof(psGetMiscInfoOUT->sMiscInfo.sGetRefCountCtl));
#endif
return 0;
diff --git a/drivers/gpu/pvr/pvrsrv.c b/drivers/gpu/pvr/pvrsrv.c
index 4a8183f..1b6071d 100644
--- a/drivers/gpu/pvr/pvrsrv.c
+++ b/drivers/gpu/pvr/pvrsrv.c
@@ -841,7 +841,8 @@ PVRSRV_ERROR IMG_CALLCONV PVRSRVGetMiscInfoKM(PVRSRV_MISC_INFO *psMiscInfo)
|PVRSRV_MISC_INFO_DDKVERSION_PRESENT
|PVRSRV_MISC_INFO_CPUCACHEOP_PRESENT
|PVRSRV_MISC_INFO_RESET_PRESENT
- |PVRSRV_MISC_INFO_FREEMEM_PRESENT))
+ |PVRSRV_MISC_INFO_FREEMEM_PRESENT
+ |PVRSRV_MISC_INFO_GET_REF_COUNT_PRESENT))
{
PVR_DPF((PVR_DBG_ERROR,"PVRSRVGetMiscInfoKM: invalid state request flags"));
return PVRSRV_ERROR_INVALID_PARAMS;
@@ -1058,6 +1059,35 @@ PVRSRV_ERROR IMG_CALLCONV PVRSRVGetMiscInfoKM(PVRSRV_MISC_INFO *psMiscInfo)
}
}
+ if((psMiscInfo->ui32StateRequest & PVRSRV_MISC_INFO_GET_REF_COUNT_PRESENT) != 0UL)
+ {
+#if !defined (SUPPORT_SID_INTERFACE)
+ PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo;
+ PVRSRV_PER_PROCESS_DATA *psPerProc;
+#endif
+
+ psMiscInfo->ui32StatePresent |= PVRSRV_MISC_INFO_GET_REF_COUNT_PRESENT;
+
+#if defined (SUPPORT_SID_INTERFACE)
+ PVR_DBG_BREAK
+#else
+
+ psPerProc = PVRSRVFindPerProcessData();
+
+ if(PVRSRVLookupHandle(psPerProc->psHandleBase,
+ (IMG_PVOID *)&psKernelMemInfo,
+ psMiscInfo->sGetRefCountCtl.u.psKernelMemInfo,
+ PVRSRV_HANDLE_TYPE_MEM_INFO) != PVRSRV_OK)
+ {
+ PVR_DPF((PVR_DBG_ERROR, "PVRSRVGetMiscInfoKM: "
+ "Can't find kernel meminfo"));
+ return PVRSRV_ERROR_INVALID_PARAMS;
+ }
+
+ psMiscInfo->sGetRefCountCtl.ui32RefCount = psKernelMemInfo->ui32RefCount;
+#endif
+ }
+
#if defined(PVRSRV_RESET_ON_HWTIMEOUT)
if((psMiscInfo->ui32StateRequest & PVRSRV_MISC_INFO_RESET_PRESENT) != 0UL)
{
diff --git a/drivers/gpu/pvr/pvrversion.h b/drivers/gpu/pvr/pvrversion.h
index 5c6ce44..c4e780c 100644
--- a/drivers/gpu/pvr/pvrversion.h
+++ b/drivers/gpu/pvr/pvrversion.h
@@ -36,7 +36,7 @@
#define PVRVERSION_FAMILY "sgxddk"
#define PVRVERSION_BRANCHNAME "1.8"
-#define PVRVERSION_BUILD 275425
+#define PVRVERSION_BUILD 275570
#define PVRVERSION_BSCONTROL "CustomerGoogle_Android_ogles1_ogles2_GPL"
#define PVRVERSION_STRING "CustomerGoogle_Android_ogles1_ogles2_GPL sgxddk 18 1.8@" PVR_STR2(PVRVERSION_BUILD)
@@ -45,7 +45,7 @@
#define COPYRIGHT_TXT "Copyright (c) Imagination Technologies Ltd. All Rights Reserved."
#define PVRVERSION_BUILD_HI 27
-#define PVRVERSION_BUILD_LO 5425
+#define PVRVERSION_BUILD_LO 5570
#define PVRVERSION_STRING_NUMERIC PVR_STR2(PVRVERSION_MAJ) "." PVR_STR2(PVRVERSION_MIN) "." PVR_STR2(PVRVERSION_BUILD_HI) "." PVR_STR2(PVRVERSION_BUILD_LO)
#endif /* _PVRVERSION_H_ */
diff --git a/drivers/gpu/pvr/services.h b/drivers/gpu/pvr/services.h
index f60436e..c311047 100644
--- a/drivers/gpu/pvr/services.h
+++ b/drivers/gpu/pvr/services.h
@@ -99,6 +99,7 @@ extern "C" {
#define PVRSRV_MISC_INFO_DDKVERSION_PRESENT (1U<<4)
#define PVRSRV_MISC_INFO_CPUCACHEOP_PRESENT (1U<<5)
#define PVRSRV_MISC_INFO_FREEMEM_PRESENT (1U<<6)
+#define PVRSRV_MISC_INFO_GET_REF_COUNT_PRESENT (1U<<7)
#define PVRSRV_MISC_INFO_RESET_PRESENT (1U<<31)
@@ -426,6 +427,25 @@ typedef struct _PVRSRV_MISC_INFO_
IMG_UINT32 ui32Length;
} sCacheOpCtl;
+
+
+ struct
+ {
+
+#if !defined(SUPPORT_SID_INTERFACE)
+ union
+ {
+
+ PVRSRV_CLIENT_MEM_INFO *psClientMemInfo;
+
+
+ struct _PVRSRV_KERNEL_MEM_INFO_ *psKernelMemInfo;
+ } u;
+#endif
+
+
+ IMG_UINT32 ui32RefCount;
+ } sGetRefCountCtl;
} PVRSRV_MISC_INFO;
typedef struct _PVRSRV_SYNC_TOKEN_
diff --git a/drivers/gpu/pvr/servicesint.h b/drivers/gpu/pvr/servicesint.h
index 77c662e..c9b565e 100644
--- a/drivers/gpu/pvr/servicesint.h
+++ b/drivers/gpu/pvr/servicesint.h
@@ -265,6 +265,7 @@ typedef struct _PVRSRV_MISC_INFO_KM_
PVRSRV_MISC_INFO_CPUCACHEOP_TYPE eCacheOpType;
+
PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo;
@@ -273,6 +274,16 @@ typedef struct _PVRSRV_MISC_INFO_KM_
IMG_UINT32 ui32Length;
} sCacheOpCtl;
+
+
+ struct
+ {
+
+ PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo;
+
+
+ IMG_UINT32 ui32RefCount;
+ } sGetRefCountCtl;
} PVRSRV_MISC_INFO_KM;