summaryrefslogtreecommitdiffstats
path: root/pvr-source/services4/srvkm/common
diff options
context:
space:
mode:
Diffstat (limited to 'pvr-source/services4/srvkm/common')
-rw-r--r--pvr-source/services4/srvkm/common/deviceclass.c3
-rw-r--r--pvr-source/services4/srvkm/common/devicemem.c12
-rw-r--r--pvr-source/services4/srvkm/common/queue.c9
3 files changed, 20 insertions, 4 deletions
diff --git a/pvr-source/services4/srvkm/common/deviceclass.c b/pvr-source/services4/srvkm/common/deviceclass.c
index d047c78..4c54d1d 100644
--- a/pvr-source/services4/srvkm/common/deviceclass.c
+++ b/pvr-source/services4/srvkm/common/deviceclass.c
@@ -1,4 +1,5 @@
/*************************************************************************/ /*!
+@File
@Title Device class services functions
@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved
@Description Kernel services functions for device class devices
@@ -1428,7 +1429,7 @@ PVRSRV_ERROR PVRSRVCreateDCSwapChainKM (PVRSRV_PER_PROCESS_DATA *psPerProc,
psSwapChain->ui32RefCount = 1;
psSwapChain->ui32Flags = ui32Flags;
- /* Save pointer in DC structure if ti's shared struct */
+ /* Save pointer in DC structure if it's shared struct */
if( ui32Flags & PVRSRV_CREATE_SWAPCHAIN_SHARED )
{
if(! psDCInfo->psDCSwapChainShared )
diff --git a/pvr-source/services4/srvkm/common/devicemem.c b/pvr-source/services4/srvkm/common/devicemem.c
index 872c0ba..5496753 100644
--- a/pvr-source/services4/srvkm/common/devicemem.c
+++ b/pvr-source/services4/srvkm/common/devicemem.c
@@ -1759,6 +1759,18 @@ PVRSRV_ERROR IMG_CALLCONV PVRSRVWrapExtMemoryKM(IMG_HANDLE hDevCookie,
*/
bPhysContig = IMG_FALSE;
}
+ else
+ {
+ if (psExtSysPAddr)
+ {
+ PVR_DPF((PVR_DBG_ERROR, "PVRSRVWrapExtMemoryKM: invalid parameter, physical address passing is not supported"));
+ }
+ else
+ {
+ PVR_DPF((PVR_DBG_ERROR, "PVRSRVWrapExtMemoryKM: invalid parameter, no address specificed"));
+ }
+ return PVRSRV_ERROR_INVALID_PARAMS;
+ }
/* Choose the heap to map to */
psDevMemoryInfo = &((BM_CONTEXT*)hDevMemContext)->psDeviceNode->sDevMemoryInfo;
diff --git a/pvr-source/services4/srvkm/common/queue.c b/pvr-source/services4/srvkm/common/queue.c
index 88b05a4..09892e3 100644
--- a/pvr-source/services4/srvkm/common/queue.c
+++ b/pvr-source/services4/srvkm/common/queue.c
@@ -1082,10 +1082,13 @@ PVRSRV_ERROR PVRSRVProcessCommand(SYS_DATA *psSysData,
*/
psCmdCompleteData->bInUse = IMG_FALSE;
eError = PVRSRV_ERROR_CMD_NOT_PROCESSED;
+ PVR_LOG(("Failed to submit command from queue processor, this could cause sync wedge!"));
+ }
+ else
+ {
+ /* Increment the CCB offset */
+ psDeviceCommandData[psCommand->CommandType].ui32CCBOffset = (ui32CCBOffset + 1) % DC_NUM_COMMANDS_PER_TYPE;
}
-
- /* Increment the CCB offset */
- psDeviceCommandData[psCommand->CommandType].ui32CCBOffset = (ui32CCBOffset + 1) % DC_NUM_COMMANDS_PER_TYPE;
return eError;
}