diff options
Diffstat (limited to 'jacinto6/sgx_src/eurasia_km/services4/srvkm/bridged/sgx/bridged_sgx_bridge.c')
-rw-r--r-- | jacinto6/sgx_src/eurasia_km/services4/srvkm/bridged/sgx/bridged_sgx_bridge.c | 63 |
1 files changed, 32 insertions, 31 deletions
diff --git a/jacinto6/sgx_src/eurasia_km/services4/srvkm/bridged/sgx/bridged_sgx_bridge.c b/jacinto6/sgx_src/eurasia_km/services4/srvkm/bridged/sgx/bridged_sgx_bridge.c index 31d40e7..d0a10ad 100644 --- a/jacinto6/sgx_src/eurasia_km/services4/srvkm/bridged/sgx/bridged_sgx_bridge.c +++ b/jacinto6/sgx_src/eurasia_km/services4/srvkm/bridged/sgx/bridged_sgx_bridge.c | |||
@@ -184,6 +184,7 @@ SGXDoKickBW(IMG_UINT32 ui32BridgeID, | |||
184 | IMG_INT ret = 0; | 184 | IMG_INT ret = 0; |
185 | IMG_UINT32 ui32NumDstSyncs; | 185 | IMG_UINT32 ui32NumDstSyncs; |
186 | IMG_HANDLE *phKernelSyncInfoHandles = IMG_NULL; | 186 | IMG_HANDLE *phKernelSyncInfoHandles = IMG_NULL; |
187 | IMG_HANDLE *pahDstSyncHandles; | ||
187 | 188 | ||
188 | PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SGX_DOKICK); | 189 | PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SGX_DOKICK); |
189 | 190 | ||
@@ -272,7 +273,7 @@ SGXDoKickBW(IMG_UINT32 ui32BridgeID, | |||
272 | return 0; | 273 | return 0; |
273 | } | 274 | } |
274 | 275 | ||
275 | #if !defined(PVR_ANDROID_NATIVE_WINDOW_HAS_SYNC) | 276 | #if !(defined(PVR_ANDROID_NATIVE_WINDOW_HAS_SYNC) || defined(PVR_ANDROID_NATIVE_WINDOW_HAS_FENCE)) |
276 | for(i=0; i<psDoKickIN->sCCBKick.ui32NumSrcSyncs; i++) | 277 | for(i=0; i<psDoKickIN->sCCBKick.ui32NumSrcSyncs; i++) |
277 | { | 278 | { |
278 | psRetOUT->eError = | 279 | psRetOUT->eError = |
@@ -347,7 +348,7 @@ SGXDoKickBW(IMG_UINT32 ui32BridgeID, | |||
347 | if(ui32NumDstSyncs > 0) | 348 | if(ui32NumDstSyncs > 0) |
348 | { | 349 | { |
349 | if(!OSAccessOK(PVR_VERIFY_READ, | 350 | if(!OSAccessOK(PVR_VERIFY_READ, |
350 | psDoKickIN->sCCBKick.pahDstSyncHandles, | 351 | (IMG_HANDLE*)psDoKickIN->sCCBKick.hDstSyncHandles, |
351 | ui32NumDstSyncs * sizeof(IMG_HANDLE))) | 352 | ui32NumDstSyncs * sizeof(IMG_HANDLE))) |
352 | { | 353 | { |
353 | PVR_DPF((PVR_DBG_ERROR, "%s: SGXDoKickBW:" | 354 | PVR_DPF((PVR_DBG_ERROR, "%s: SGXDoKickBW:" |
@@ -368,22 +369,22 @@ SGXDoKickBW(IMG_UINT32 ui32BridgeID, | |||
368 | if(CopyFromUserWrapper(psPerProc, | 369 | if(CopyFromUserWrapper(psPerProc, |
369 | ui32BridgeID, | 370 | ui32BridgeID, |
370 | phKernelSyncInfoHandles, | 371 | phKernelSyncInfoHandles, |
371 | psDoKickIN->sCCBKick.pahDstSyncHandles, | 372 | (IMG_HANDLE*)psDoKickIN->sCCBKick.hDstSyncHandles, |
372 | ui32NumDstSyncs * sizeof(IMG_HANDLE)) != PVRSRV_OK) | 373 | ui32NumDstSyncs * sizeof(IMG_HANDLE)) != PVRSRV_OK) |
373 | { | 374 | { |
374 | ret = -EFAULT; | 375 | ret = -EFAULT; |
375 | goto PVRSRV_BRIDGE_SGX_DOKICK_RETURN_RESULT; | 376 | goto PVRSRV_BRIDGE_SGX_DOKICK_RETURN_RESULT; |
376 | } | 377 | } |
377 | 378 | ||
378 | /* Set sCCBKick.pahDstSyncHandles to point to the local memory */ | 379 | /* Set sCCBKick.hDstSyncHandles to point to the local memory */ |
379 | psDoKickIN->sCCBKick.pahDstSyncHandles = phKernelSyncInfoHandles; | 380 | psDoKickIN->sCCBKick.hDstSyncHandles = (IMG_HANDLE)phKernelSyncInfoHandles; |
380 | 381 | pahDstSyncHandles = psDoKickIN->sCCBKick.hDstSyncHandles; | |
381 | for( i = 0; i < ui32NumDstSyncs; i++) | 382 | for( i = 0; i < ui32NumDstSyncs; i++) |
382 | { | 383 | { |
383 | psRetOUT->eError = | 384 | psRetOUT->eError = |
384 | PVRSRVLookupHandle(psPerProc->psHandleBase, | 385 | PVRSRVLookupHandle(psPerProc->psHandleBase, |
385 | &psDoKickIN->sCCBKick.pahDstSyncHandles[i], | 386 | &pahDstSyncHandles[i], |
386 | psDoKickIN->sCCBKick.pahDstSyncHandles[i], | 387 | pahDstSyncHandles[i], |
387 | PVRSRV_HANDLE_TYPE_SYNC_INFO); | 388 | PVRSRV_HANDLE_TYPE_SYNC_INFO); |
388 | 389 | ||
389 | if(psRetOUT->eError != PVRSRV_OK) | 390 | if(psRetOUT->eError != PVRSRV_OK) |
@@ -798,11 +799,11 @@ SGXGetMiscInfoBW(IMG_UINT32 ui32BridgeID, | |||
798 | 799 | ||
799 | #if defined(SUPPORT_SGX_EDM_MEMORY_DEBUG) | 800 | #if defined(SUPPORT_SGX_EDM_MEMORY_DEBUG) |
800 | /* Lookup handle for dev mem context */ | 801 | /* Lookup handle for dev mem context */ |
801 | if (psSGXGetMiscInfoIN->psMiscInfo->eRequest == SGX_MISC_INFO_REQUEST_MEMREAD) | 802 | if (((SGX_MISC_INFO*)psSGXGetMiscInfoIN->hMiscInfo)->eRequest == SGX_MISC_INFO_REQUEST_MEMREAD) |
802 | { | 803 | { |
803 | psRetOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase, | 804 | psRetOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase, |
804 | &hDevMemContextInt, | 805 | &hDevMemContextInt, |
805 | psSGXGetMiscInfoIN->psMiscInfo->hDevMemContext, | 806 | ((SGX_MISC_INFO*)psSGXGetMiscInfoIN->hMiscInfo)->hDevMemContext, |
806 | PVRSRV_HANDLE_TYPE_DEV_MEM_CONTEXT); | 807 | PVRSRV_HANDLE_TYPE_DEV_MEM_CONTEXT); |
807 | 808 | ||
808 | if(psRetOUT->eError != PVRSRV_OK) | 809 | if(psRetOUT->eError != PVRSRV_OK) |
@@ -825,7 +826,7 @@ SGXGetMiscInfoBW(IMG_UINT32 ui32BridgeID, | |||
825 | psRetOUT->eError = CopyFromUserWrapper(psPerProc, | 826 | psRetOUT->eError = CopyFromUserWrapper(psPerProc, |
826 | ui32BridgeID, | 827 | ui32BridgeID, |
827 | &sMiscInfo, | 828 | &sMiscInfo, |
828 | psSGXGetMiscInfoIN->psMiscInfo, | 829 | (SGX_MISC_INFO*)psSGXGetMiscInfoIN->hMiscInfo, |
829 | sizeof(SGX_MISC_INFO)); | 830 | sizeof(SGX_MISC_INFO)); |
830 | if (psRetOUT->eError != PVRSRV_OK) | 831 | if (psRetOUT->eError != PVRSRV_OK) |
831 | { | 832 | { |
@@ -844,7 +845,7 @@ SGXGetMiscInfoBW(IMG_UINT32 ui32BridgeID, | |||
844 | /* Copy back misc info to user address space */ | 845 | /* Copy back misc info to user address space */ |
845 | psRetOUT->eError = CopyToUserWrapper(psPerProc, | 846 | psRetOUT->eError = CopyToUserWrapper(psPerProc, |
846 | ui32BridgeID, | 847 | ui32BridgeID, |
847 | psSGXGetMiscInfoIN->psMiscInfo, | 848 | (SGX_MISC_INFO*)psSGXGetMiscInfoIN->hMiscInfo, |
848 | &sMiscInfo, | 849 | &sMiscInfo, |
849 | sizeof(SGX_MISC_INFO)); | 850 | sizeof(SGX_MISC_INFO)); |
850 | if (psRetOUT->eError != PVRSRV_OK) | 851 | if (psRetOUT->eError != PVRSRV_OK) |
@@ -862,7 +863,7 @@ SGXReadHWPerfCBBW(IMG_UINT32 ui32BridgeID, | |||
862 | PVRSRV_PER_PROCESS_DATA *psPerProc) | 863 | PVRSRV_PER_PROCESS_DATA *psPerProc) |
863 | { | 864 | { |
864 | IMG_HANDLE hDevCookieInt; | 865 | IMG_HANDLE hDevCookieInt; |
865 | PVRSRV_SGX_HWPERF_CB_ENTRY *psAllocated; | 866 | PVRSRV_SGX_HWPERF_CB_ENTRY *psAllocated, *psHWPerfCBData; |
866 | IMG_HANDLE hAllocatedHandle; | 867 | IMG_HANDLE hAllocatedHandle; |
867 | IMG_UINT32 ui32AllocatedSize; | 868 | IMG_UINT32 ui32AllocatedSize; |
868 | 869 | ||
@@ -877,9 +878,9 @@ SGXReadHWPerfCBBW(IMG_UINT32 ui32BridgeID, | |||
877 | { | 878 | { |
878 | return 0; | 879 | return 0; |
879 | } | 880 | } |
880 | 881 | psHWPerfCBData = (PVRSRV_SGX_HWPERF_CB_ENTRY *)psSGXReadHWPerfCBIN->hHWPerfCBData; | |
881 | ui32AllocatedSize = psSGXReadHWPerfCBIN->ui32ArraySize * | 882 | ui32AllocatedSize = psSGXReadHWPerfCBIN->ui32ArraySize * |
882 | sizeof(psSGXReadHWPerfCBIN->psHWPerfCBData[0]); | 883 | sizeof(psHWPerfCBData[0]); |
883 | ASSIGN_AND_EXIT_ON_ERROR(psSGXReadHWPerfCBOUT->eError, | 884 | ASSIGN_AND_EXIT_ON_ERROR(psSGXReadHWPerfCBOUT->eError, |
884 | OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP, | 885 | OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP, |
885 | ui32AllocatedSize, | 886 | ui32AllocatedSize, |
@@ -897,7 +898,7 @@ SGXReadHWPerfCBBW(IMG_UINT32 ui32BridgeID, | |||
897 | { | 898 | { |
898 | psSGXReadHWPerfCBOUT->eError = CopyToUserWrapper(psPerProc, | 899 | psSGXReadHWPerfCBOUT->eError = CopyToUserWrapper(psPerProc, |
899 | ui32BridgeID, | 900 | ui32BridgeID, |
900 | psSGXReadHWPerfCBIN->psHWPerfCBData, | 901 | psHWPerfCBData, |
901 | psAllocated, | 902 | psAllocated, |
902 | ui32AllocatedSize); | 903 | ui32AllocatedSize); |
903 | } | 904 | } |
@@ -1755,7 +1756,7 @@ SGXRegisterHW2DContextBW(IMG_UINT32 ui32BridgeID, | |||
1755 | 1756 | ||
1756 | hHW2DContextInt = | 1757 | hHW2DContextInt = |
1757 | SGXRegisterHW2DContextKM(hDevCookieInt, | 1758 | SGXRegisterHW2DContextKM(hDevCookieInt, |
1758 | psSGXRegHW2DContextIN->pHW2DContextCpuVAddr, | 1759 | (IMG_CPU_VIRTADDR*)psSGXRegHW2DContextIN->hHW2DContextCpuVAddr, |
1759 | psSGXRegHW2DContextIN->ui32HW2DContextSize, | 1760 | psSGXRegHW2DContextIN->ui32HW2DContextSize, |
1760 | psSGXRegHW2DContextIN->ui32OffsetToPDDevPAddr, | 1761 | psSGXRegHW2DContextIN->ui32OffsetToPDDevPAddr, |
1761 | psSGXRegHW2DContextIN->hDevMemContext, | 1762 | psSGXRegHW2DContextIN->hDevMemContext, |
@@ -2368,7 +2369,7 @@ DumpBufferArray(PVRSRV_PER_PROCESS_DATA *psPerProc, | |||
2368 | IMG_UINT32 ui32Offset; | 2369 | IMG_UINT32 ui32Offset; |
2369 | 2370 | ||
2370 | psBuffer = &psBufferArray[i]; | 2371 | psBuffer = &psBufferArray[i]; |
2371 | pszName = psBuffer->pszName; | 2372 | pszName = (IMG_CHAR *)psBuffer->hName; |
2372 | if (!pszName) | 2373 | if (!pszName) |
2373 | { | 2374 | { |
2374 | pszName = "Nameless buffer"; | 2375 | pszName = "Nameless buffer"; |
@@ -2401,7 +2402,7 @@ DumpBufferArray(PVRSRV_PER_PROCESS_DATA *psPerProc, | |||
2401 | PDUMPCOMMENTWITHFLAGS(0, "%s\r\n", pszName); | 2402 | PDUMPCOMMENTWITHFLAGS(0, "%s\r\n", pszName); |
2402 | PDUMPMEMUM(psPerProc, | 2403 | PDUMPMEMUM(psPerProc, |
2403 | IMG_NULL, | 2404 | IMG_NULL, |
2404 | psBuffer->pvLinAddr, | 2405 | psBuffer->hLinAddr, |
2405 | (PVRSRV_KERNEL_MEM_INFO*)psBuffer->hKernelMemInfo, | 2406 | (PVRSRV_KERNEL_MEM_INFO*)psBuffer->hKernelMemInfo, |
2406 | psBuffer->ui32Start, | 2407 | psBuffer->ui32Start, |
2407 | psBuffer->ui32End - psBuffer->ui32Start, | 2408 | psBuffer->ui32End - psBuffer->ui32Start, |
@@ -2428,7 +2429,7 @@ DumpBufferArray(PVRSRV_PER_PROCESS_DATA *psPerProc, | |||
2428 | PDUMPCOMMENTWITHFLAGS(0, "%s (part 1)\r\n", pszName); | 2429 | PDUMPCOMMENTWITHFLAGS(0, "%s (part 1)\r\n", pszName); |
2429 | PDUMPMEMUM(psPerProc, | 2430 | PDUMPMEMUM(psPerProc, |
2430 | IMG_NULL, | 2431 | IMG_NULL, |
2431 | psBuffer->pvLinAddr, | 2432 | psBuffer->hLinAddr, |
2432 | (PVRSRV_KERNEL_MEM_INFO*)psBuffer->hKernelMemInfo, | 2433 | (PVRSRV_KERNEL_MEM_INFO*)psBuffer->hKernelMemInfo, |
2433 | psBuffer->ui32Start, | 2434 | psBuffer->ui32Start, |
2434 | psBuffer->ui32BackEndLength, | 2435 | psBuffer->ui32BackEndLength, |
@@ -2457,7 +2458,7 @@ DumpBufferArray(PVRSRV_PER_PROCESS_DATA *psPerProc, | |||
2457 | PDUMPCOMMENTWITHFLAGS(0, "%s (part 2)\r\n", pszName); | 2458 | PDUMPCOMMENTWITHFLAGS(0, "%s (part 2)\r\n", pszName); |
2458 | PDUMPMEMUM(psPerProc, | 2459 | PDUMPMEMUM(psPerProc, |
2459 | IMG_NULL, | 2460 | IMG_NULL, |
2460 | psBuffer->pvLinAddr, | 2461 | psBuffer->hLinAddr, |
2461 | (PVRSRV_KERNEL_MEM_INFO*)psBuffer->hKernelMemInfo, | 2462 | (PVRSRV_KERNEL_MEM_INFO*)psBuffer->hKernelMemInfo, |
2462 | 0, | 2463 | 0, |
2463 | psBuffer->ui32End, | 2464 | psBuffer->ui32End, |
@@ -2500,7 +2501,7 @@ SGXPDumpBufferArrayBW(IMG_UINT32 ui32BridgeID, | |||
2500 | if(CopyFromUserWrapper(psPerProc, | 2501 | if(CopyFromUserWrapper(psPerProc, |
2501 | ui32BridgeID, | 2502 | ui32BridgeID, |
2502 | psKickTADumpBuffer, | 2503 | psKickTADumpBuffer, |
2503 | psPDumpBufferArrayIN->psBufferArray, | 2504 | psPDumpBufferArrayIN->hBufferArray, |
2504 | ui32BufferArraySize) != PVRSRV_OK) | 2505 | ui32BufferArraySize) != PVRSRV_OK) |
2505 | { | 2506 | { |
2506 | OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, ui32BufferArraySize, psKickTADumpBuffer, 0); | 2507 | OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, ui32BufferArraySize, psKickTADumpBuffer, 0); |
@@ -2520,9 +2521,9 @@ SGXPDumpBufferArrayBW(IMG_UINT32 ui32BridgeID, | |||
2520 | 2521 | ||
2521 | pszName = pszNameBuffer; | 2522 | pszName = pszNameBuffer; |
2522 | 2523 | ||
2523 | for (i=0; i<ui32BufferArrayLength; i++) | 2524 | for(i = 0; i < ui32BufferArrayLength; i++) |
2524 | { | 2525 | { |
2525 | if (psKickTADumpBuffer[i].pszName) | 2526 | if (psKickTADumpBuffer[i].hName) |
2526 | { | 2527 | { |
2527 | ui32NameLength = psKickTADumpBuffer[i].ui32NameLength; | 2528 | ui32NameLength = psKickTADumpBuffer[i].ui32NameLength; |
2528 | if (ui32NameLength >= NAME_BUFFER_SIZE) | 2529 | if (ui32NameLength >= NAME_BUFFER_SIZE) |
@@ -2532,16 +2533,16 @@ SGXPDumpBufferArrayBW(IMG_UINT32 ui32BridgeID, | |||
2532 | 2533 | ||
2533 | if (ui32NameLength && | 2534 | if (ui32NameLength && |
2534 | (CopyFromUserWrapper(psPerProc, ui32BridgeID, pszName, | 2535 | (CopyFromUserWrapper(psPerProc, ui32BridgeID, pszName, |
2535 | psKickTADumpBuffer[i].pszName, ui32NameLength + 1) == PVRSRV_OK)) | 2536 | psKickTADumpBuffer[i].hName, ui32NameLength + 1) == PVRSRV_OK)) |
2536 | { | 2537 | { |
2537 | pszName[NAME_BUFFER_SIZE - 1] = 0; | 2538 | pszName[NAME_BUFFER_SIZE - 1] = 0; |
2538 | psKickTADumpBuffer[i].pszName = pszName; | 2539 | psKickTADumpBuffer[i].hName = (IMG_HANDLE)pszName; |
2539 | pszName += NAME_BUFFER_SIZE; | 2540 | pszName += NAME_BUFFER_SIZE; |
2540 | } | 2541 | } |
2541 | else | 2542 | else |
2542 | { | 2543 | { |
2543 | PVR_DPF((PVR_DBG_WARNING, "Failed to read PDUMP buffer name")); | 2544 | PVR_DPF((PVR_DBG_WARNING, "Failed to read PDUMP buffer name")); |
2544 | psKickTADumpBuffer[i].pszName = 0; | 2545 | psKickTADumpBuffer[i].hName = 0; |
2545 | } | 2546 | } |
2546 | } | 2547 | } |
2547 | } | 2548 | } |
@@ -2659,7 +2660,7 @@ SGXPDump3DSignatureRegistersBW(IMG_UINT32 ui32BridgeID, | |||
2659 | if(CopyFromUserWrapper(psPerProc, | 2660 | if(CopyFromUserWrapper(psPerProc, |
2660 | ui32BridgeID, | 2661 | ui32BridgeID, |
2661 | pui32Registers, | 2662 | pui32Registers, |
2662 | psPDump3DSignatureRegistersIN->pui32Registers, | 2663 | psPDump3DSignatureRegistersIN->hRegisters, |
2663 | ui32RegisterArraySize) != PVRSRV_OK) | 2664 | ui32RegisterArraySize) != PVRSRV_OK) |
2664 | { | 2665 | { |
2665 | PVR_DPF((PVR_DBG_ERROR, "PDump3DSignatureRegistersBW: CopyFromUserWrapper failed")); | 2666 | PVR_DPF((PVR_DBG_ERROR, "PDump3DSignatureRegistersBW: CopyFromUserWrapper failed")); |
@@ -2765,7 +2766,7 @@ SGXPDumpCounterRegistersBW(IMG_UINT32 ui32BridgeID, | |||
2765 | if(CopyFromUserWrapper(psPerProc, | 2766 | if(CopyFromUserWrapper(psPerProc, |
2766 | ui32BridgeID, | 2767 | ui32BridgeID, |
2767 | pui32Registers, | 2768 | pui32Registers, |
2768 | psPDumpCounterRegistersIN->pui32Registers, | 2769 | psPDumpCounterRegistersIN->hRegisters, |
2769 | ui32RegisterArraySize) != PVRSRV_OK) | 2770 | ui32RegisterArraySize) != PVRSRV_OK) |
2770 | { | 2771 | { |
2771 | PVR_DPF((PVR_DBG_ERROR, "PDumpCounterRegistersBW: CopyFromUserWrapper failed")); | 2772 | PVR_DPF((PVR_DBG_ERROR, "PDumpCounterRegistersBW: CopyFromUserWrapper failed")); |
@@ -2849,7 +2850,7 @@ SGXPDumpTASignatureRegistersBW(IMG_UINT32 ui32BridgeID, | |||
2849 | if(CopyFromUserWrapper(psPerProc, | 2850 | if(CopyFromUserWrapper(psPerProc, |
2850 | ui32BridgeID, | 2851 | ui32BridgeID, |
2851 | pui32Registers, | 2852 | pui32Registers, |
2852 | psPDumpTASignatureRegistersIN->pui32Registers, | 2853 | psPDumpTASignatureRegistersIN->hRegisters, |
2853 | ui32RegisterArraySize) != PVRSRV_OK) | 2854 | ui32RegisterArraySize) != PVRSRV_OK) |
2854 | { | 2855 | { |
2855 | PVR_DPF((PVR_DBG_ERROR, "PDumpTASignatureRegistersBW: CopyFromUserWrapper failed")); | 2856 | PVR_DPF((PVR_DBG_ERROR, "PDumpTASignatureRegistersBW: CopyFromUserWrapper failed")); |