summaryrefslogtreecommitdiff
path: root/drivers
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
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')
-rwxr-xr-xdrivers/gpu/pvr/Makefile3
-rwxr-xr-xdrivers/gpu/pvr/include4/pvrversion.h6
-rwxr-xr-xdrivers/gpu/pvr/services4/srvkm/common/pvrsrv.c11
-rwxr-xr-xdrivers/gpu/pvr/services4/srvkm/devices/sgx/sgxinit.c4
4 files changed, 20 insertions, 4 deletions
diff --git a/drivers/gpu/pvr/Makefile b/drivers/gpu/pvr/Makefile
index 33be9e63511..66d51b7d0f3 100755
--- a/drivers/gpu/pvr/Makefile
+++ b/drivers/gpu/pvr/Makefile
@@ -10,6 +10,7 @@ ccflags-y = -Idrivers/video/omap2 \
-Idrivers/gpu/pvr/services4/srvkm/env/linux \
-Idrivers/gpu/pvr/services4/system/include \
-DLINUX -D__linux__ \
+ -DMOT_BUILD=3 \
-DANDROID \
-DPVR_BUILD_DIR="\"omap3630_android\"" \
-DSUPPORT_SGX \
@@ -24,7 +25,7 @@ ccflags-y = -Idrivers/video/omap2 \
-DSUPPORT_HW_RECOVERY \
-DSUPPORT_ACTIVE_POWER_MANAGEMENT \
-DSUPPORT_SGX_HWPERF \
- -DSUPPORT_SGX_LOW_LATENCY_SCHEDULING \
+ -DSUPPORT_SGX_PRIORITY_SCHEDULING \
-DSUPPORT_MEMINFO_IDS \
-DSUPPORT_SGX_NEW_STATUS_VALS \
-DSUPPORT_DBGDRV_EVENT_OBJECTS \
diff --git a/drivers/gpu/pvr/include4/pvrversion.h b/drivers/gpu/pvr/include4/pvrversion.h
index ed4025f88b2..840868ed4f8 100755
--- a/drivers/gpu/pvr/include4/pvrversion.h
+++ b/drivers/gpu/pvr/include4/pvrversion.h
@@ -56,8 +56,14 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define PVRVERSION_BUILD 2701748
#define PVRVERSION_BSCONTROL "SGX_DDK"
+#if defined(MOT_BUILD)
+#define PVRVERSION_MOTBUILD ((PVRVERSION_BUILD<<8) | MOT_BUILD)
+#define PVRVERSION_STRING "SGX_DDK sgxddk 1.12@" PVR_STR2(PVRVERSION_BUILD) "." PVR_STR2(MOT_BUILD)
+#define PVRVERSION_STRING_SHORT "1.12@" PVR_STR2(PVRVERSION_BUILD) "." PVR_STR2(MOT_BUILD) ""
+#else
#define PVRVERSION_STRING "SGX_DDK sgxddk 1.12@" PVR_STR2(PVRVERSION_BUILD)
#define PVRVERSION_STRING_SHORT "1.12@" PVR_STR2(PVRVERSION_BUILD) ""
+#endif
#define COPYRIGHT_TXT "Copyright (c) Imagination Technologies Ltd. All Rights Reserved."
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));
}
}
diff --git a/drivers/gpu/pvr/services4/srvkm/devices/sgx/sgxinit.c b/drivers/gpu/pvr/services4/srvkm/devices/sgx/sgxinit.c
index 04b1748448e..778e5335574 100755
--- a/drivers/gpu/pvr/services4/srvkm/devices/sgx/sgxinit.c
+++ b/drivers/gpu/pvr/services4/srvkm/devices/sgx/sgxinit.c
@@ -3333,7 +3333,11 @@ PVRSRV_ERROR SGXGetMiscInfoKM(PVRSRV_SGXDEV_INFO *psDevInfo,
psSGXFeatures->ui32DDKVersion =
(PVRVERSION_MAJ << 16) |
(PVRVERSION_MIN << 8);
+#if defined(MOT_BUILD)
+ psSGXFeatures->ui32DDKBuild = PVRVERSION_MOTBUILD;
+#else
psSGXFeatures->ui32DDKBuild = PVRVERSION_BUILD;
+#endif
/* Also report the kernel module build options -- used in SGXConnectionCheck() */
psSGXFeatures->ui32BuildOptions = (SGX_BUILD_OPTIONS);