summaryrefslogtreecommitdiff
path: root/drivers/gpu/pvr/services4/srvkm/common/pvrsrv.c
diff options
context:
space:
mode:
authorWengang Wu <wgw@motorola.com>2014-06-30 11:15:38 -0500
committerWengang Wu <wgw@motorola.com>2014-07-01 19:11:24 +0000
commitc482a603276273419b6f4adbcea183787dd03582 (patch)
tree35f90d0e1c45dcf41df5c92ab375e3a24459de15 /drivers/gpu/pvr/services4/srvkm/common/pvrsrv.c
parent4ef0c4d2561955eeafc1585627736c561ea65bb7 (diff)
downloadolio-linux-3.10-c482a603276273419b6f4adbcea183787dd03582.tar.xz
olio-linux-3.10-c482a603276273419b6f4adbcea183787dd03582.zip
IKXCLOCK-1806 pvr ver 3: Disabling LLS (Low Latency Scheduling) for SGX DDK
Low latency scheduling divides each 3D task into 4 subtasks, where each subtask renders a quadrant of the output buffer. This adds additional overhead on both the CPU and GPU, and is not necessary when working with the small output buffers we use due to the low resolution on xclock's display. SUPPORT_SGX_PRIORITY_SCHEDULING was not explicitly enabled before, but was enabled automatically by SUPPORT_SGX_LOW_LATENCY_SCHEDULING. Enable this feature explicitly so that it stays on when LLS is disabled. This change must be made to the user and kernel drivers at the same time or the GPU driver will not start. Change-Id: I21081f37edc42e050a048ce864c5aa7d4552a69e
Diffstat (limited to 'drivers/gpu/pvr/services4/srvkm/common/pvrsrv.c')
-rwxr-xr-xdrivers/gpu/pvr/services4/srvkm/common/pvrsrv.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/gpu/pvr/services4/srvkm/common/pvrsrv.c b/drivers/gpu/pvr/services4/srvkm/common/pvrsrv.c
index ea1fcaf319d..dcbc09ff677 100755
--- a/drivers/gpu/pvr/services4/srvkm/common/pvrsrv.c
+++ b/drivers/gpu/pvr/services4/srvkm/common/pvrsrv.c
@@ -172,19 +172,24 @@ PVRSRV_ERROR FreeDeviceID(SYS_DATA *psSysData, IMG_UINT32 ui32DevID)
******************************************************************************/
IMG_VOID IMG_CALLCONV PVRSRVCompatCheckKM(PVRSRV_BRIDGE_IN_COMPAT_CHECK *psUserModeDDKDetails, PVRSRV_BRIDGE_RETURN *psRetOUT)
{
+#if defined(MOT_BUILD)
+ IMG_UINT32 ui32DDKBuild = PVRVERSION_MOTBUILD;
+#else
+ IMG_UINT32 ui32DDKBuild = PVRVERSION_BUILD;
+#endif
if(psUserModeDDKDetails->ui32DDKVersion != ((PVRVERSION_MAJ << 16) | (PVRVERSION_MIN << 8))
- || (psUserModeDDKDetails->ui32DDKBuild != PVRVERSION_BUILD))
+ || (psUserModeDDKDetails->ui32DDKBuild != ui32DDKBuild))
{
psRetOUT->eError = PVRSRV_ERROR_DDK_VERSION_MISMATCH;
PVR_DPF((PVR_DBG_ERROR, "(FAIL) UM-KM DDK Mismatch UM-(%d) KM-(%d).",
- psUserModeDDKDetails->ui32DDKBuild, PVRVERSION_BUILD));
+ psUserModeDDKDetails->ui32DDKBuild, ui32DDKBuild));
}
else
{
psRetOUT->eError = PVRSRV_OK;
PVR_DPF((PVR_DBG_MESSAGE, "UM DDK-(%d) and KM DDK-(%d) match. [ OK ]",
- psUserModeDDKDetails->ui32DDKBuild ,PVRVERSION_BUILD));
+ psUserModeDDKDetails->ui32DDKBuild, ui32DDKBuild));
}
}