From 55d711c50086e8c681f318e75e16e3a6fba13f68 Mon Sep 17 00:00:00 2001 From: Imre Deak Date: Wed, 9 Nov 2011 13:48:16 +0200 Subject: [PATCH] gfx: pvr: remove ABI dependency on firmware tracing feature There is no reason to have the IOCTL/firmware ABI dependent on this option. Revmoing the dependency will also enable us to toggle tracing on/off dynamically in the future. Signed-off-by: Imre Deak Reviewed-by: Pauli Nieminen Signed-off-by: Kirill A. Shutemov --- drivers/staging/mrst/pvr/include4/sgx_options.h | 5 --- drivers/staging/mrst/pvr/include4/sgxapi_km.h | 2 -- .../mrst/pvr/services4/include/sgx_mkif_km.h | 2 -- .../staging/mrst/pvr/services4/include/sgxinfo.h | 2 -- .../srvkm/bridged/sgx/bridged_sgx_bridge.c | 40 ++++++++++------------ .../pvr/services4/srvkm/devices/sgx/sgxinfokm.h | 2 -- .../mrst/pvr/services4/srvkm/devices/sgx/sgxinit.c | 19 +++++----- 7 files changed, 29 insertions(+), 43 deletions(-) diff --git a/drivers/staging/mrst/pvr/include4/sgx_options.h b/drivers/staging/mrst/pvr/include4/sgx_options.h index 17ae14a..6de810a 100644 --- a/drivers/staging/mrst/pvr/include4/sgx_options.h +++ b/drivers/staging/mrst/pvr/include4/sgx_options.h @@ -38,12 +38,7 @@ #define OPTIONS_BIT1 0x0 #endif -#if defined(PVRSRV_USSE_EDM_STATUS_DEBUG) || defined (INTERNAL_TEST) -#define PVRSRV_USSE_EDM_STATUS_DEBUG_SET_OFFSET OPTIONS_BIT2 -#define OPTIONS_BIT2 (0x1 << 2) -#else #define OPTIONS_BIT2 0x0 -#endif #if defined(SUPPORT_HW_RECOVERY) || defined (INTERNAL_TEST) #define SUPPORT_HW_RECOVERY_SET_OFFSET OPTIONS_BIT3 diff --git a/drivers/staging/mrst/pvr/include4/sgxapi_km.h b/drivers/staging/mrst/pvr/include4/sgxapi_km.h index 518ef10..4fc6042 100644 --- a/drivers/staging/mrst/pvr/include4/sgxapi_km.h +++ b/drivers/staging/mrst/pvr/include4/sgxapi_km.h @@ -200,10 +200,8 @@ typedef struct _PVRSRV_SGX_MISCINFO_FEATURES #if defined(SUPPORT_SGX_EDM_MEMORY_DEBUG) IMG_UINT32 ui32DeviceMemValue; #endif -#if defined(PVRSRV_USSE_EDM_STATUS_DEBUG) IMG_DEV_VIRTADDR sDevVAEDMStatusBuffer; IMG_PVOID pvEDMStatusBuffer; -#endif } PVRSRV_SGX_MISCINFO_FEATURES; diff --git a/drivers/staging/mrst/pvr/services4/include/sgx_mkif_km.h b/drivers/staging/mrst/pvr/services4/include/sgx_mkif_km.h index 78b162a..93578c2 100644 --- a/drivers/staging/mrst/pvr/services4/include/sgx_mkif_km.h +++ b/drivers/staging/mrst/pvr/services4/include/sgx_mkif_km.h @@ -311,9 +311,7 @@ typedef struct _PVRSRV_SGX_MISCINFO_INFO #endif } PVRSRV_SGX_MISCINFO_INFO; -#ifdef PVRSRV_USSE_EDM_STATUS_DEBUG #define SGXMK_TRACE_BUFFER_SIZE 512 -#endif #define SGXMKIF_HWPERF_CB_SIZE 0x100 diff --git a/drivers/staging/mrst/pvr/services4/include/sgxinfo.h b/drivers/staging/mrst/pvr/services4/include/sgxinfo.h index 23cb4f3..266cdb2 100644 --- a/drivers/staging/mrst/pvr/services4/include/sgxinfo.h +++ b/drivers/staging/mrst/pvr/services4/include/sgxinfo.h @@ -96,9 +96,7 @@ typedef struct _SGX_BRIDGE_INIT_INFO_ #if defined(FIX_HW_BRN_29823) IMG_HANDLE hKernelDummyTermStreamMemInfo; #endif -#if defined(PVRSRV_USSE_EDM_STATUS_DEBUG) IMG_HANDLE hKernelEDMStatusBufferMemInfo; -#endif #if defined(SGX_FEATURE_OVERLAPPED_SPM) IMG_HANDLE hKernelTmpRgnHeaderMemInfo; #endif diff --git a/drivers/staging/mrst/pvr/services4/srvkm/bridged/sgx/bridged_sgx_bridge.c b/drivers/staging/mrst/pvr/services4/srvkm/bridged/sgx/bridged_sgx_bridge.c index 7c2e8ee..b1d67a5 100644 --- a/drivers/staging/mrst/pvr/services4/srvkm/bridged/sgx/bridged_sgx_bridge.c +++ b/drivers/staging/mrst/pvr/services4/srvkm/bridged/sgx/bridged_sgx_bridge.c @@ -846,6 +846,7 @@ SGXDevInitPart2BW(IMG_UINT32 ui32BridgeID, 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; @@ -987,16 +988,13 @@ SGXDevInitPart2BW(IMG_UINT32 ui32BridgeID, } #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, @@ -1154,16 +1152,15 @@ SGXDevInitPart2BW(IMG_UINT32 ui32BridgeID, } #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, @@ -1277,10 +1274,11 @@ SGXDevInitPart2BW(IMG_UINT32 ui32BridgeID, 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); diff --git a/drivers/staging/mrst/pvr/services4/srvkm/devices/sgx/sgxinfokm.h b/drivers/staging/mrst/pvr/services4/srvkm/devices/sgx/sgxinfokm.h index ac368b8..8a0fd78 100644 --- a/drivers/staging/mrst/pvr/services4/srvkm/devices/sgx/sgxinfokm.h +++ b/drivers/staging/mrst/pvr/services4/srvkm/devices/sgx/sgxinfokm.h @@ -126,9 +126,7 @@ typedef struct _PVRSRV_SGXDEV_INFO_ #if defined(FIX_HW_BRN_29823) PPVRSRV_KERNEL_MEM_INFO psKernelDummyTermStreamMemInfo; #endif -#if defined(PVRSRV_USSE_EDM_STATUS_DEBUG) PPVRSRV_KERNEL_MEM_INFO psKernelEDMStatusBufferMemInfo; -#endif #if defined(SGX_FEATURE_OVERLAPPED_SPM) PPVRSRV_KERNEL_MEM_INFO psKernelTmpRgnHeaderMemInfo; #endif diff --git a/drivers/staging/mrst/pvr/services4/srvkm/devices/sgx/sgxinit.c b/drivers/staging/mrst/pvr/services4/srvkm/devices/sgx/sgxinit.c index ae5080f..c031f9a 100644 --- a/drivers/staging/mrst/pvr/services4/srvkm/devices/sgx/sgxinit.c +++ b/drivers/staging/mrst/pvr/services4/srvkm/devices/sgx/sgxinit.c @@ -172,9 +172,7 @@ static PVRSRV_ERROR InitDevInfo(PVRSRV_PER_PROCESS_DATA *psPerProc, #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 @@ -1009,7 +1007,7 @@ static IMG_VOID SGXDumpDebugInfo (PVRSRV_SGXDEV_INFO *psDevInfo, } } - #if defined(PVRSRV_USSE_EDM_STATUS_DEBUG) + if (psDevInfo->psKernelEDMStatusBufferMemInfo) { IMG_UINT32 *pui32MKTraceBuffer = psDevInfo->psKernelEDMStatusBufferMemInfo->pvLinAddrKM; IMG_UINT32 ui32LastStatusCode, ui32WriteOffset; @@ -1040,7 +1038,6 @@ static IMG_VOID SGXDumpDebugInfo (PVRSRV_SGXDEV_INFO *psDevInfo, } #endif } - #endif { @@ -2567,14 +2564,18 @@ PVRSRV_ERROR SGXGetMiscInfoKM(PVRSRV_SGXDEV_INFO *psDevInfo, 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; -- 2.7.4