IMG_BOOL bDissociateFailed = IMG_FALSE;
IMG_BOOL bLookupFailed = IMG_FALSE;
IMG_BOOL bReleaseFailed = IMG_FALSE;
+ IMG_HANDLE edm_stat_minfo;
IMG_HANDLE hDummy;
IMG_UINT32 i;
}
#endif
-#if defined(PVRSRV_USSE_EDM_STATUS_DEBUG)
- eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
- &hDummy,
- psSGXDevInitPart2IN->sInitInfo.hKernelEDMStatusBufferMemInfo,
- PVRSRV_HANDLE_TYPE_MEM_INFO);
- if (eError != PVRSRV_OK)
- {
- bLookupFailed = IMG_TRUE;
+ edm_stat_minfo = psSGXDevInitPart2IN->sInitInfo.hKernelEDMStatusBufferMemInfo;
+ if (edm_stat_minfo) {
+ eError = PVRSRVLookupHandle(psPerProc->psHandleBase, &hDummy, edm_stat_minfo,
+ PVRSRV_HANDLE_TYPE_MEM_INFO);
+ if (eError != PVRSRV_OK)
+ bLookupFailed = IMG_TRUE;
}
-#endif
#if defined(SGX_FEATURE_SPM_MODE_0)
eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
}
#endif
-#if defined(PVRSRV_USSE_EDM_STATUS_DEBUG)
- eError = PVRSRVLookupAndReleaseHandle(psPerProc->psHandleBase,
+ if (edm_stat_minfo) {
+ eError = PVRSRVLookupAndReleaseHandle(psPerProc->psHandleBase,
&psSGXDevInitPart2IN->sInitInfo.hKernelEDMStatusBufferMemInfo,
- psSGXDevInitPart2IN->sInitInfo.hKernelEDMStatusBufferMemInfo,
- PVRSRV_HANDLE_TYPE_MEM_INFO);
- if (eError != PVRSRV_OK)
- {
- bReleaseFailed = IMG_TRUE;
+ edm_stat_minfo, PVRSRV_HANDLE_TYPE_MEM_INFO);
+ if (eError != PVRSRV_OK)
+ bReleaseFailed = IMG_TRUE;
+ } else {
+ psSGXDevInitPart2IN->sInitInfo.hKernelEDMStatusBufferMemInfo = NULL;
}
-#endif
#if defined(SGX_FEATURE_SPM_MODE_0)
eError = PVRSRVLookupAndReleaseHandle(psPerProc->psHandleBase,
bDissociateFailed |= (IMG_BOOL)(eError != PVRSRV_OK);
#endif
-#if defined(PVRSRV_USSE_EDM_STATUS_DEBUG)
- eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, psSGXDevInitPart2IN->sInitInfo.hKernelEDMStatusBufferMemInfo);
- bDissociateFailed |= (IMG_BOOL)(eError != PVRSRV_OK);
-#endif
+ if (psSGXDevInitPart2IN->sInitInfo.hKernelEDMStatusBufferMemInfo) {
+ eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt,
+ psSGXDevInitPart2IN->sInitInfo.hKernelEDMStatusBufferMemInfo);
+ bDissociateFailed |= (IMG_BOOL)(eError != PVRSRV_OK);
+ }
#if defined(SGX_FEATURE_SPM_MODE_0)
eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, psSGXDevInitPart2IN->sInitInfo.hKernelTmpDPMStateMemInfo);
#if defined(FIX_HW_BRN_29823)
psDevInfo->psKernelDummyTermStreamMemInfo = (PVRSRV_KERNEL_MEM_INFO *)psInitInfo->hKernelDummyTermStreamMemInfo;
#endif
-#if defined(PVRSRV_USSE_EDM_STATUS_DEBUG)
psDevInfo->psKernelEDMStatusBufferMemInfo = (PVRSRV_KERNEL_MEM_INFO *)psInitInfo->hKernelEDMStatusBufferMemInfo;
-#endif
#if defined(SGX_FEATURE_OVERLAPPED_SPM)
psDevInfo->psKernelTmpRgnHeaderMemInfo = (PVRSRV_KERNEL_MEM_INFO *)psInitInfo->hKernelTmpRgnHeaderMemInfo;
#endif
}
}
- #if defined(PVRSRV_USSE_EDM_STATUS_DEBUG)
+ if (psDevInfo->psKernelEDMStatusBufferMemInfo)
{
IMG_UINT32 *pui32MKTraceBuffer = psDevInfo->psKernelEDMStatusBufferMemInfo->pvLinAddrKM;
IMG_UINT32 ui32LastStatusCode, ui32WriteOffset;
}
#endif
}
- #endif
{
case SGX_MISC_INFO_REQUEST_DRIVER_SGXREV:
{
PVRSRV_SGX_MISCINFO_FEATURES *psSGXFeatures;
+ PVRSRV_KERNEL_MEM_INFO *edm_status_minfo;
psSGXFeatures = &((PVRSRV_SGX_MISCINFO_INFO*)(psMemInfo->pvLinAddrKM))->sSGXFeatures;
-#if defined(PVRSRV_USSE_EDM_STATUS_DEBUG)
-
- psSGXFeatures->sDevVAEDMStatusBuffer = psDevInfo->psKernelEDMStatusBufferMemInfo->sDevVAddr;
- psSGXFeatures->pvEDMStatusBuffer = psDevInfo->psKernelEDMStatusBufferMemInfo->pvLinAddrKM;
-#endif
+ edm_status_minfo = psDevInfo->psKernelEDMStatusBufferMemInfo;
+ if (edm_status_minfo) {
+ psSGXFeatures->sDevVAEDMStatusBuffer = edm_status_minfo->sDevVAddr;
+ psSGXFeatures->pvEDMStatusBuffer = edm_status_minfo->pvLinAddrKM;
+ } else {
+ psSGXFeatures->sDevVAEDMStatusBuffer.uiAddr = 0;
+ psSGXFeatures->pvEDMStatusBuffer = NULL;
+ }
psMiscInfo->uData.sSGXFeatures = *psSGXFeatures;
return PVRSRV_OK;