diff options
| author | Wengang Wu <wgw@motorola.com> | 2014-06-30 11:15:38 -0500 | 
|---|---|---|
| committer | Wengang Wu <wgw@motorola.com> | 2014-07-01 19:11:24 +0000 | 
| commit | c482a603276273419b6f4adbcea183787dd03582 (patch) | |
| tree | 35f90d0e1c45dcf41df5c92ab375e3a24459de15 /drivers/gpu | |
| parent | 4ef0c4d2561955eeafc1585627736c561ea65bb7 (diff) | |
| download | olio-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')
| -rwxr-xr-x | drivers/gpu/pvr/Makefile | 3 | ||||
| -rwxr-xr-x | drivers/gpu/pvr/include4/pvrversion.h | 6 | ||||
| -rwxr-xr-x | drivers/gpu/pvr/services4/srvkm/common/pvrsrv.c | 11 | ||||
| -rwxr-xr-x | drivers/gpu/pvr/services4/srvkm/devices/sgx/sgxinit.c | 4 | 
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); |