From 4dbc4b681df0bfa7c09adb2befaea661b745d47f Mon Sep 17 00:00:00 2001 From: Alistair Strachan Date: Wed, 10 Aug 2011 17:20:08 +0100 Subject: gpu: pvr: Update to DDK 1.8@275540 --- drivers/gpu/pvr/bridged_pvr_bridge.c | 8 +++++++- drivers/gpu/pvr/pvrsrv.c | 32 +++++++++++++++++++++++++++++++- drivers/gpu/pvr/pvrversion.h | 4 ++-- drivers/gpu/pvr/services.h | 20 ++++++++++++++++++++ drivers/gpu/pvr/servicesint.h | 11 +++++++++++ 5 files changed, 71 insertions(+), 4 deletions(-) (limited to 'drivers/gpu') 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; -- cgit v1.1