From: Grazvydas Ignotas Date: Sun, 13 May 2012 23:20:12 +0000 (+0300) Subject: merge ABI-destructive 1.5.15.2766 changes X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7dceb8850574721f9df397b90961608b68516c23;p=sgx.git merge ABI-destructive 1.5.15.2766 changes --- diff --git a/Makefile b/Makefile index de598ea..4f87695 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,6 @@ #export KERNELDIR = /opt/oe/stuff/build/tmp/work/beagleboard-angstrom-linux-gnueabi/linux-omap-2.6.29-r44/git/ export TI_PLATFORM ?= omap3 +SUPPORT_ANDROID_PLATFORM ?= 1 export KERNEL_PATH=$(KERNELDIR) export KERNEL_SRC=$(KERNELDIR) @@ -199,7 +200,7 @@ SYS_CFLAGS.$(SUPPORT_MEMINFO_IDS) += -DSUPPORT_MEMINFO_IDS SYS_CFLAGS.$(SUPPORT_SGX_EDM_MEMORY_DEBUG) += -DSUPPORT_SGX_EDM_MEMORY_DEBUG -SYS_CFLAGS.$(SUPPORT_ANDROID_PLATFORM) += -DSUPPORT_ANDROID_PLATFORM +SYS_CFLAGS.$(SUPPORT_ANDROID_PLATFORM) += -DSUPPORT_ANDROID_PLATFORM -DANDROID SYS_CFLAGS.$(SUPPORT_GRAPHICS_HAL) += -DSUPPORT_GRAPHICS_HAL SYS_CFLAGS.$(SUPPORT_GRAPHICS_HAL) += -DGRALLOC_VARIANT="\"$(GRALLOC_VARIANT)\"" diff --git a/eurasiacon/build/linux/kbuild/Makefile.kbuild b/eurasiacon/build/linux/kbuild/Makefile.kbuild index dd92077..caa5dc4 100644 --- a/eurasiacon/build/linux/kbuild/Makefile.kbuild +++ b/eurasiacon/build/linux/kbuild/Makefile.kbuild @@ -48,8 +48,10 @@ include $(EURASIAROOT)/eurasiacon/build/linux/makefile.shared_conf ifeq ($(PDUMP),1) +ifneq ($(SUPPORT_DRI_DRM),1) PDUMP_SUBDIRS += $(EURASIAROOT)/tools/intern/debug/dbgdriv/linux endif +endif KBUILD_SUBDIRS = \ $(PDUMP_SUBDIRS) \ diff --git a/eurasiacon/build/linux/kbuild/Makefile.kbuild_subdir b/eurasiacon/build/linux/kbuild/Makefile.kbuild_subdir index c18bbe3..1bf255d 100644 --- a/eurasiacon/build/linux/kbuild/Makefile.kbuild_subdir +++ b/eurasiacon/build/linux/kbuild/Makefile.kbuild_subdir @@ -24,6 +24,15 @@ # # +PVR_KBUILD_IN_KERNEL ?= 0 +PVR_KBUILD_MODULE_MAKEFILE ?= Makefile + +ifeq ($(PVR_KBUILD_IN_KERNEL),1) +# If cross compile is not set, then set it to null to prevent it being +# set by the platform specific make files. +CROSS_COMPILE ?= +endif + # Include target specific variables. # include $(EURASIAROOT)/eurasiacon/build/linux/$(PVR_BUILD_DIR)/makefile.shared_conf @@ -38,10 +47,11 @@ include $(EURASIAROOT)/eurasiacon/build/linux/makefile.shared_conf # Include the local module settings. # -include Makefile +include $(PVR_KBUILD_MODULE_MAKEFILE) +ifneq ($(PVR_KBUILD_IN_KERNEL),1) # Include the build rules for kbuild modules # include $(EURASIAROOT)/eurasiacon/build/linux/kbuild/Makefile.kbuild_subdir_rules - +endif diff --git a/eurasiacon/build/linux/kbuild/Makefile.kbuild_subdir_common b/eurasiacon/build/linux/kbuild/Makefile.kbuild_subdir_common index 92d3034..ae1b28f 100644 --- a/eurasiacon/build/linux/kbuild/Makefile.kbuild_subdir_common +++ b/eurasiacon/build/linux/kbuild/Makefile.kbuild_subdir_common @@ -23,18 +23,30 @@ # # -obj-m = $(MODULE).o +PVR_KBUILD_CONFIG_FLAG ?= m +ifneq ($(PVR_KBUILD_IN_KERNEL),1) +obj-$(PVR_KBUILD_CONFIG_FLAG) = +endif + +obj-$(PVR_KBUILD_CONFIG_FLAG) += $(MODULE).o $(MODULE)-objs = $(SOURCES:.c=.o) EXTRA_CFLAGS = $(INCLUDES) \ $(ALL_CFLAGS_kbuild) \ - -Wall -fno-strict-aliasing -Werror + -Wall -fno-strict-aliasing +ifneq ($(PVR_KBUILD_IN_KERNEL),1) +ifneq ($(SUPPORT_DRI_DRM_EXT),1) + EXTRA_CFLAGS += -Werror +endif +endif + +ifneq ($(PVR_KBUILD_IN_KERNEL),1) ifeq ($(SILENT),@) KBUILD_VERBOSE ?= 0 else KBUILD_VERBOSE ?= 1 endif - +endif diff --git a/eurasiacon/build/linux/makefile.shared_conf b/eurasiacon/build/linux/makefile.shared_conf index 14dcac0..b4a155b 100755 --- a/eurasiacon/build/linux/makefile.shared_conf +++ b/eurasiacon/build/linux/makefile.shared_conf @@ -44,10 +44,11 @@ RANLIB = $(CROSS_COMPILE)ranlib STRIP = $(CROSS_COMPILE)strip SIZE = $(CROSS_COMPILE)size -ifdef QAC_ANALYSE -CC=perl $(ANALROOT)/wrapper.pl -wcf $(ANALROOT)/eurasia_linux.cfg $(CROSS_COMPILE)gcc -else CC= $(CROSS_COMPILE)gcc +ifdef QAC_ANALYSE +ifneq ("$(CROSS_COMPILE)","") +CC= perl "$(ANALROOT)/wrapper.pl -wcf $(ANALROOT)/eurasia_linux.cfg $(CROSS_COMPILE)gcc" +endif endif CAT ?= cat @@ -169,13 +170,12 @@ CBUILD = -DPVR_BUILD_DIR="\"$(PVR_BUILD_DIR)\"" \ -DPVR_BUILD_TYPE="\"$(BUILD)\"" # Don't support HW recovery on debug builds -CBUILD.debug = -DDEBUG +CBUILD.debug = -DDEBUG_PVR CBUILD.timing = -DTIMING CBUILD.release = -DRELEASE CFLAGS.debug = -g -O0 -DDLL_METRIC=1 CFLAGS.timing = $(OPTIM) -g -DDLL_METRIC=1 -DTIMING CFLAGS.release = $(OPTIM) -g -CFLAGS = $(CFLAGS.$(BUILD)) # Defaults for useful things. # @@ -189,23 +189,44 @@ DEBUG_LINUX_SLAB_ALLOCATIONS ?= 0 DEBUG_BRIDGE_KM ?= 1 DEBUG_TRACE_BRIDGE_KM ?= 0 DEBUG_BRIDGE_KM_DISPATCH_TABLE ?= 0 +PVRSRV_LOG_MEMORY_ALLOCS ?= 0 +PVRSRV_DEBUG_OS_MEMORY ?= 0 +endif + +SUPPORT_DRI_DRM ?= $(SUPPORT_XORG) +SUPPORT_DRI_DRM_EXT ?= 0 + +SUPPORT_SECURE_FD_EXPORT = 1 +ifeq ($(SUPPORT_DRI_DRM),1) +SUPPORT_SECURE_FD_EXPORT = 0 endif +PVR_PROC_USE_SEQ_FILE ?= 1 TRANSFER_QUEUE ?= 1 SUPPORT_SGX_EVENT_OBJECT ?=1 SUPPORT_SECURE_HANDLES = 1 -SUPPORT_SECURE_FD_EXPORT = 1 SUPPORT_SRVINIT = 1 SUPPORT_PERCONTEXT_PB = 1 SUPPORT_LINUX_X86_PAT ?=1 SUPPORT_LINUX_X86_WRITECOMBINE ?=1 SUPPORT_SGX_LOW_LATENCY_SCHEDULING ?=1 +SUPPORT_OMAP3430_SGXFCLK_96M ?= 0 +SUPPORT_OMAP3430_OMAPFB3 ?= 0 + +SUPPORT_CPU_CACHED_BUFFERS ?= 0 + +SUPPORT_CACHEFLUSH_ON_ALLOC ?= 0 +SUPPORT_MEMINFO_IDS ?= 0 + DC_NOHW_WIDTH ?= 640 DC_NOHW_HEIGHT ?= 480 +DISPLAY_CONTROLLER ?= + SYS_CFLAGS += -DSERVICES4 -D_XOPEN_SOURCE=600 -DPVR2D_VALIDATE_INPUT_PARAMS + # Thread support USE_PTHREADS ?= 1 USE_GCC__thread_KEYWORD ?= 0 @@ -245,6 +266,9 @@ SYS_CFLAGS.$(DEBUG_LINUX_SLAB_ALLOCATIONS) += -DDEBUG_LINUX_SLAB_ALLOCATIONS SYS_CFLAGS.$(DEBUG_BRIDGE_KM) += -DDEBUG_BRIDGE_KM SYS_CFLAGS.$(DEBUG_TRACE_BRIDGE_KM) += -DDEBUG_TRACE_BRIDGE_KM SYS_CFLAGS.$(DEBUG_BRIDGE_KM_DISPATCH_TABLE) += -DDEBUG_BRIDGE_KM_DISPATCH_TABLE +SYS_CFLAGS.$(PVRSRV_LOG_MEMORY_ALLOCS) += -DPVRSRV_LOG_MEMORY_ALLOCS +SYS_CFLAGS.$(PVRSRV_DEBUG_OS_MEMORY) += -DPVRSRV_DEBUG_OS_MEMORY +SYS_CFLAGS.$(DEBUG_MESA_OGL_TRACE) += -DDEBUG_MESA_OGL_TRACE SYS_CFLAGS.$(SUPPORT_LINUX_X86_WRITECOMBINE) += -DSUPPORT_LINUX_X86_WRITECOMBINE @@ -254,14 +278,19 @@ SYS_CFLAGS.$(SUPPORT_SGX_TILING) += -DSUPPORT_SGX_TILING SYS_CFLAGS.$(TRANSFER_QUEUE) += -DTRANSFER_QUEUE SYS_CFLAGS.$(SUPPORT_SGX_MMU_DUMMY_PAGE) += -DSUPPORT_SGX_MMU_DUMMY_PAGE +SYS_CFLAGS.$(PVRSRV_DUMP_MK_TRACE) += -DPVRSRV_DUMP_MK_TRACE SYS_CFLAGS.$(PVRSRV_USSE_EDM_STATUS_DEBUG) += -DPVRSRV_USSE_EDM_STATUS_DEBUG -SYS_CFLAGS.$(SGX_FEATURE_MP) += -DSGX_FEATURE_MP -SYS_CFLAGS.$(SGX_FAST_DPM_INIT) += -DSGX_FAST_DPM_INIT +SYS_CFLAGS.$(USE_SUPPORT_STATUSVALS_DEBUG) += -DUSE_SUPPORT_STATUSVALS_DEBUG +SYS_CFLAGS.$(SGX_FAST_DPM_INIT) += -DSGX_FAST_DPM_INIT +SYS_CFLAGS.$(SGX_DISABLE_UKERNEL_SECONDARY_STATE) += -DSGX_DISABLE_UKERNEL_SECONDARY_STATE +SYS_CFLAGS.$(DBGBREAK_ON_SPM) += -DDBGBREAK_ON_SPM +SYS_CFLAGS.$(PVR_DBG_BREAK_ASSERT_FAIL) += -DPVR_DBG_BREAK_ASSERT_FAIL SYS_CFLAGS.$(NO_HARDWARE) += -DNO_HARDWARE SYS_CFLAGS.$(SUPPORT_DRI_DRM) += -DSUPPORT_DRI_DRM +SYS_CFLAGS.$(SUPPORT_DRI_DRM_EXT) += -DSUPPORT_DRI_DRM_EXT SYS_CFLAGS.$(USE_PRIMARY_SURFACE_IN_FLIP_CHAIN) += -DUSE_PRIMARY_SURFACE_IN_FLIP_CHAIN ifneq ("$(NO_HARDWARE)", "1") @@ -298,20 +327,39 @@ SYS_CFLAGS.$(SUPPORT_SGX_LOW_LATENCY_SCHEDULING) += -DSUPPORT_SGX_LOW_LATENCY SYS_CFLAGS.$(SUPPORT_LINUX_X86_PAT) += -DSUPPORT_LINUX_X86_PAT +SYS_CFLAGS.$(SUPPORT_OMAP3430_SGXFCLK_96M) += -DSUPPORT_OMAP3430_SGXFCLK_96M +SYS_CFLAGS.$(SUPPORT_OMAP3430_OMAPFB3) += -DSUPPORT_OMAP3430_OMAPFB3 + +SYS_CFLAGS.$(SUPPORT_CPU_CACHED_BUFFERS) += -DSUPPORT_CPU_CACHED_BUFFERS +SYS_CFLAGS.$(SUPPORT_CACHE_LINE_FLUSH) += -DSUPPORT_CACHE_LINE_FLUSH + + +SYS_CFLAGS.$(SUPPORT_CACHEFLUSH_ON_ALLOC) += -DSUPPORT_CACHEFLUSH_ON_ALLOC +SYS_CFLAGS.$(SUPPORT_MEMINFO_IDS) += -DSUPPORT_MEMINFO_IDS + +SYS_CFLAGS.$(SUPPORT_SGX_EDM_MEMORY_DEBUG) += -DSUPPORT_SGX_EDM_MEMORY_DEBUG + +SYS_CFLAGS.$(SUPPORT_ANDROID_PLATFORM) += -DSUPPORT_ANDROID_PLATFORM +SYS_CFLAGS.$(SUPPORT_GRAPHICS_HAL) += -DSUPPORT_GRAPHICS_HAL +SYS_CFLAGS.$(SUPPORT_GRAPHICS_HAL) += -DGRALLOC_VARIANT="\"$(GRALLOC_VARIANT)\"" + +ifneq ("$(DISPLAY_CONTROLLER)", "") +SYS_CFLAGS += -DDISPLAY_CONTROLLER=$(DISPLAY_CONTROLLER) +endif + ifeq ("$(PVR_SYSTEM)", "sgx_nohw") ifndef RTSIM SYS_CFLAGS += -DNO_HARDWARE endif -SYS_CFLAGS += -DDC_NOHW_BUFFER_WIDTH=$(DC_NOHW_WIDTH) -DDC_NOHW_BUFFER_HEIGHT=$(DC_NOHW_HEIGHT) +SYS_CFLAGS += -DDC_NOHW_BUFFER_WIDTH=$(DC_NOHW_WIDTH) -DDC_NOHW_BUFFER_HEIGHT=$(DC_NOHW_HEIGHT) endif ifeq ("$(PVR_SYSTEM)", "vgx_nohw") SYS_CFLAGS += -DNO_HARDWARE -DDC_NOHW_BUFFER_WIDTH=$(DC_NOHW_WIDTH) -DDC_NOHW_BUFFER_HEIGHT=$(DC_NOHW_HEIGHT) endif -ifdef SGX_FEATURE_MP_CORE_COUNT -SYS_CFLAGS += -DSGX_FEATURE_MP_CORE_COUNT=$(SGX_FEATURE_MP_CORE_COUNT) -endif +SYS_CFLAGS += -DDEBUG_LOG_PATH_TRUNCATE=\"$(EURASIAROOT)\" +SYS_CFLAGS.$(PVR_PROC_USE_SEQ_FILE) += -DPVR_PROC_USE_SEQ_FILE SYS_INCLUDES = -I$(EURASIAROOT)/include4 \ -I$(EURASIAROOT)/eurasiacon/includeext \ @@ -325,6 +373,6 @@ ALL_CFLAGS_kbuild = -DLINUX \ $(MODULE_CFLAGS) $(MODULE_CFLAGS.$(BUILD)) \ $(CORE) \ -Wall -fno-strict-aliasing \ - $(CFLAGS) + $(CFLAGS.$(BUILD)) diff --git a/include4/pvrversion.h b/include4/pvrversion.h index dce1ccd..20e7b2c 100644 --- a/include4/pvrversion.h +++ b/include4/pvrversion.h @@ -28,10 +28,10 @@ #define _PVRVERSION_H_ #define PVRVERSION_MAJ 1 -#define PVRVERSION_MIN 4 -#define PVRVERSION_BRANCH 14 -#define PVRVERSION_BUILD 2616 -#define PVRVERSION_STRING "1.4.14.2616" +#define PVRVERSION_MIN 5 +#define PVRVERSION_BRANCH 15 +#define PVRVERSION_BUILD 2766 +#define PVRVERSION_STRING "1.5.15.2766" #define PVRVERSION_FILE "eurasiacon.pj" #endif diff --git a/include4/services.h b/include4/services.h index 83689f9..85495e6 100644 --- a/include4/services.h +++ b/include4/services.h @@ -341,7 +341,7 @@ typedef struct _PVRSRV_MISC_INFO_ IMG_UINT32 aui32DDKVersion[4]; -#if 0 + IMG_BOOL bCPUCacheFlushAll; IMG_BOOL bDeferCPUCacheFlush; @@ -349,7 +349,7 @@ typedef struct _PVRSRV_MISC_INFO_ IMG_PVOID pvRangeAddrStart; IMG_PVOID pvRangeAddrEnd; -#endif + } PVRSRV_MISC_INFO; diff --git a/include4/servicesext.h b/include4/servicesext.h index 2b28c20..d7a89b3 100644 --- a/include4/servicesext.h +++ b/include4/servicesext.h @@ -89,6 +89,7 @@ typedef enum _PVRSRV_DEVICE_CLASS_ } PVRSRV_DEVICE_CLASS; + typedef enum _PVRSRV_SYS_POWER_STATE_ { PVRSRV_SYS_POWER_STATE_Unspecified = -1, @@ -122,7 +123,6 @@ typedef PVRSRV_ERROR (*PFN_POST_POWER) (IMG_HANDLE hDevHandle, PVRSRV_DEV_POWER_STATE eNewPowerState, PVRSRV_DEV_POWER_STATE eCurrentPowerState); - typedef PVRSRV_ERROR (*PFN_PRE_CLOCKSPEED_CHANGE) (IMG_HANDLE hDevHandle, IMG_BOOL bIdleDevice, PVRSRV_DEV_POWER_STATE eCurrentPowerState); @@ -131,7 +131,6 @@ typedef PVRSRV_ERROR (*PFN_POST_CLOCKSPEED_CHANGE) (IMG_HANDLE hDevHandle, PVRSRV_DEV_POWER_STATE eCurrentPowerState); - typedef enum _PVRSRV_PIXEL_FORMAT_ { PVRSRV_PIXEL_FORMAT_UNKNOWN = 0, @@ -154,6 +153,7 @@ typedef enum _PVRSRV_PIXEL_FORMAT_ { PVRSRV_PIXEL_FORMAT_IMC2 = 25, PVRSRV_PIXEL_FORMAT_XRGB8888, PVRSRV_PIXEL_FORMAT_XBGR8888, + PVRSRV_PIXEL_FORMAT_BGRA8888, PVRSRV_PIXEL_FORMAT_XRGB4444, PVRSRV_PIXEL_FORMAT_ARGB8332, PVRSRV_PIXEL_FORMAT_A2RGB10, @@ -183,20 +183,22 @@ typedef enum _PVRSRV_PIXEL_FORMAT_ { PVRSRV_PIXEL_FORMAT_BGR32, PVRSRV_PIXEL_FORMAT_GR32, PVRSRV_PIXEL_FORMAT_E5BGR9, - + PVRSRV_PIXEL_FORMAT_DXT1, - PVRSRV_PIXEL_FORMAT_DXT23, - PVRSRV_PIXEL_FORMAT_DXT45, - + PVRSRV_PIXEL_FORMAT_DXT2, + PVRSRV_PIXEL_FORMAT_DXT3, + PVRSRV_PIXEL_FORMAT_DXT4, + PVRSRV_PIXEL_FORMAT_DXT5, + PVRSRV_PIXEL_FORMAT_R8G8_B8G8, PVRSRV_PIXEL_FORMAT_G8R8_G8B8, - + PVRSRV_PIXEL_FORMAT_NV11, PVRSRV_PIXEL_FORMAT_NV12, - + PVRSRV_PIXEL_FORMAT_YUY2, PVRSRV_PIXEL_FORMAT_YUV420, @@ -206,37 +208,38 @@ typedef enum _PVRSRV_PIXEL_FORMAT_ { PVRSRV_PIXEL_FORMAT_YVYU, PVRSRV_PIXEL_FORMAT_UYVY, PVRSRV_PIXEL_FORMAT_VYUY, - + PVRSRV_PIXEL_FORMAT_FOURCC_ORG_UYVY, PVRSRV_PIXEL_FORMAT_FOURCC_ORG_YUYV, PVRSRV_PIXEL_FORMAT_FOURCC_ORG_YVYU, PVRSRV_PIXEL_FORMAT_FOURCC_ORG_VYUY, - + PVRSRV_PIXEL_FORMAT_FOURCC_ORG_AYUV, + PVRSRV_PIXEL_FORMAT_A32B32G32R32, PVRSRV_PIXEL_FORMAT_A32B32G32R32F, PVRSRV_PIXEL_FORMAT_A32B32G32R32_UINT, PVRSRV_PIXEL_FORMAT_A32B32G32R32_SINT, - + PVRSRV_PIXEL_FORMAT_B32G32R32, PVRSRV_PIXEL_FORMAT_B32G32R32F, PVRSRV_PIXEL_FORMAT_B32G32R32_UINT, PVRSRV_PIXEL_FORMAT_B32G32R32_SINT, - + PVRSRV_PIXEL_FORMAT_G32R32, PVRSRV_PIXEL_FORMAT_G32R32F, PVRSRV_PIXEL_FORMAT_G32R32_UINT, PVRSRV_PIXEL_FORMAT_G32R32_SINT, - + PVRSRV_PIXEL_FORMAT_D32F, PVRSRV_PIXEL_FORMAT_R32, PVRSRV_PIXEL_FORMAT_R32F, PVRSRV_PIXEL_FORMAT_R32_UINT, PVRSRV_PIXEL_FORMAT_R32_SINT, - + PVRSRV_PIXEL_FORMAT_A16B16G16R16, PVRSRV_PIXEL_FORMAT_A16B16G16R16F, @@ -260,21 +263,30 @@ typedef enum _PVRSRV_PIXEL_FORMAT_ { PVRSRV_PIXEL_FORMAT_R16_UNORM, PVRSRV_PIXEL_FORMAT_R16_SINT, PVRSRV_PIXEL_FORMAT_R16_SNORM, - + + + PVRSRV_PIXEL_FORMAT_X8R8G8B8, + PVRSRV_PIXEL_FORMAT_X8R8G8B8_UNORM, + PVRSRV_PIXEL_FORMAT_X8R8G8B8_UNORM_SRGB, + + PVRSRV_PIXEL_FORMAT_A8R8G8B8, + PVRSRV_PIXEL_FORMAT_A8R8G8B8_UNORM, + PVRSRV_PIXEL_FORMAT_A8R8G8B8_UNORM_SRGB, PVRSRV_PIXEL_FORMAT_A8B8G8R8, PVRSRV_PIXEL_FORMAT_A8B8G8R8_UINT, PVRSRV_PIXEL_FORMAT_A8B8G8R8_UNORM, + PVRSRV_PIXEL_FORMAT_A8B8G8R8_UNORM_SRGB, PVRSRV_PIXEL_FORMAT_A8B8G8R8_SINT, PVRSRV_PIXEL_FORMAT_A8B8G8R8_SNORM, - + PVRSRV_PIXEL_FORMAT_G8R8, PVRSRV_PIXEL_FORMAT_G8R8_UINT, PVRSRV_PIXEL_FORMAT_G8R8_UNORM, PVRSRV_PIXEL_FORMAT_G8R8_SINT, PVRSRV_PIXEL_FORMAT_G8R8_SNORM, - + PVRSRV_PIXEL_FORMAT_A8, PVRSRV_PIXEL_FORMAT_R8, @@ -282,22 +294,23 @@ typedef enum _PVRSRV_PIXEL_FORMAT_ { PVRSRV_PIXEL_FORMAT_R8_UNORM, PVRSRV_PIXEL_FORMAT_R8_SINT, PVRSRV_PIXEL_FORMAT_R8_SNORM, - + PVRSRV_PIXEL_FORMAT_A2B10G10R10, PVRSRV_PIXEL_FORMAT_A2B10G10R10_UNORM, PVRSRV_PIXEL_FORMAT_A2B10G10R10_UINT, - + PVRSRV_PIXEL_FORMAT_B10G11R11, PVRSRV_PIXEL_FORMAT_B10G11R11F, - + PVRSRV_PIXEL_FORMAT_X24G8R32, PVRSRV_PIXEL_FORMAT_G8R24, - PVRSRV_PIXEL_FORMAT_E5B9G9R9, + PVRSRV_PIXEL_FORMAT_X8R24, + PVRSRV_PIXEL_FORMAT_E5B9G9R9, PVRSRV_PIXEL_FORMAT_R1, - + PVRSRV_PIXEL_FORMAT_BC1, PVRSRV_PIXEL_FORMAT_BC1_UNORM, PVRSRV_PIXEL_FORMAT_BC1_SRGB, @@ -313,7 +326,57 @@ typedef enum _PVRSRV_PIXEL_FORMAT_ { PVRSRV_PIXEL_FORMAT_BC5, PVRSRV_PIXEL_FORMAT_BC5_UNORM, PVRSRV_PIXEL_FORMAT_BC5_SNORM, - + + + PVRSRV_PIXEL_FORMAT_L_F16, + PVRSRV_PIXEL_FORMAT_L_F16_REP, + PVRSRV_PIXEL_FORMAT_L_F16_A_F16, + PVRSRV_PIXEL_FORMAT_A_F16, + PVRSRV_PIXEL_FORMAT_B16G16R16F, + + PVRSRV_PIXEL_FORMAT_L_F32, + PVRSRV_PIXEL_FORMAT_A_F32, + PVRSRV_PIXEL_FORMAT_L_F32_A_F32, + + + PVRSRV_PIXEL_FORMAT_PVRTC2, + PVRSRV_PIXEL_FORMAT_PVRTC4, + PVRSRV_PIXEL_FORMAT_PVRTCII2, + PVRSRV_PIXEL_FORMAT_PVRTCII4, + PVRSRV_PIXEL_FORMAT_PVRTCIII, + PVRSRV_PIXEL_FORMAT_PVRO8, + PVRSRV_PIXEL_FORMAT_PVRO88, + PVRSRV_PIXEL_FORMAT_PT1, + PVRSRV_PIXEL_FORMAT_PT2, + PVRSRV_PIXEL_FORMAT_PT4, + PVRSRV_PIXEL_FORMAT_PT8, + PVRSRV_PIXEL_FORMAT_PTW, + PVRSRV_PIXEL_FORMAT_PTB, + PVRSRV_PIXEL_FORMAT_MONO8, + PVRSRV_PIXEL_FORMAT_MONO16, + + + PVRSRV_PIXEL_FORMAT_C0_YUYV, + PVRSRV_PIXEL_FORMAT_C0_UYVY, + PVRSRV_PIXEL_FORMAT_C0_YVYU, + PVRSRV_PIXEL_FORMAT_C0_VYUY, + PVRSRV_PIXEL_FORMAT_C1_YUYV, + PVRSRV_PIXEL_FORMAT_C1_UYVY, + PVRSRV_PIXEL_FORMAT_C1_YVYU, + PVRSRV_PIXEL_FORMAT_C1_VYUY, + + + PVRSRV_PIXEL_FORMAT_C0_YUV420_2P_UV, + PVRSRV_PIXEL_FORMAT_C0_YUV420_2P_VU, + PVRSRV_PIXEL_FORMAT_C0_YUV420_3P, + PVRSRV_PIXEL_FORMAT_C1_YUV420_2P_UV, + PVRSRV_PIXEL_FORMAT_C1_YUV420_2P_VU, + PVRSRV_PIXEL_FORMAT_C1_YUV420_3P, + + PVRSRV_PIXEL_FORMAT_A2B10G10R10F, + PVRSRV_PIXEL_FORMAT_B8G8R8_SINT, + PVRSRV_PIXEL_FORMAT_PVRF32SIGNMASK, + PVRSRV_PIXEL_FORMAT_FORCE_I32 = 0x7fffffff, } PVRSRV_PIXEL_FORMAT; diff --git a/include4/sgx_options.h b/include4/sgx_options.h index 7fe5f98..c6af88e 100644 --- a/include4/sgx_options.h +++ b/include4/sgx_options.h @@ -112,68 +112,69 @@ #define OPTIONS_BIT12 0x0 #endif -#if defined(SGX_FEATURE_RENDER_TARGET_ARRAYS) || defined (INTERNAL_TEST) -#define SGX_FEATURE_RENDER_TARGET_ARRAYS_SET_OFFSET OPTIONS_BIT13 + +#if defined(SGX_FEATURE_SYSTEM_CACHE) || defined (INTERNAL_TEST) +#define SGX_FEATURE_SYSTEM_CACHE_SET_OFFSET OPTIONS_BIT13 #define OPTIONS_BIT13 (0x1 << 13) #else #define OPTIONS_BIT13 0x0 #endif -#if defined(SGX_FEATURE_SYSTEM_CACHE) || defined (INTERNAL_TEST) -#define SGX_FEATURE_SYSTEM_CACHE_SET_OFFSET OPTIONS_BIT14 +#if defined(SGX_SUPPORT_HWPROFILING) || defined (INTERNAL_TEST) +#define SGX_SUPPORT_HWPROFILING_SET_OFFSET OPTIONS_BIT14 #define OPTIONS_BIT14 (0x1 << 14) #else #define OPTIONS_BIT14 0x0 #endif -#if defined(SGX_SUPPORT_HWPROFILING) || defined (INTERNAL_TEST) -#define SGX_SUPPORT_HWPROFILING_SET_OFFSET OPTIONS_BIT15 + + +#if defined(SUPPORT_ACTIVE_POWER_MANAGEMENT) || defined (INTERNAL_TEST) +#define SUPPORT_ACTIVE_POWER_MANAGEMENT_SET_OFFSET OPTIONS_BIT15 #define OPTIONS_BIT15 (0x1 << 15) #else #define OPTIONS_BIT15 0x0 #endif - - -#if defined(SUPPORT_ACTIVE_POWER_MANAGEMENT) || defined (INTERNAL_TEST) -#define SUPPORT_ACTIVE_POWER_MANAGEMENT_SET_OFFSET OPTIONS_BIT16 +#if defined(SUPPORT_DISPLAYCONTROLLER_TILING) || defined (INTERNAL_TEST) +#define SUPPORT_DISPLAYCONTROLLER_TILING_SET_OFFSET OPTIONS_BIT16 #define OPTIONS_BIT16 (0x1 << 16) #else #define OPTIONS_BIT16 0x0 #endif -#if defined(SUPPORT_DISPLAYCONTROLLER_TILING) || defined (INTERNAL_TEST) -#define SUPPORT_DISPLAYCONTROLLER_TILING_SET_OFFSET OPTIONS_BIT17 +#if defined(SUPPORT_PERCONTEXT_PB) || defined (INTERNAL_TEST) +#define SUPPORT_PERCONTEXT_PB_SET_OFFSET OPTIONS_BIT17 #define OPTIONS_BIT17 (0x1 << 17) #else #define OPTIONS_BIT17 0x0 #endif -#if defined(SUPPORT_PERCONTEXT_PB) || defined (INTERNAL_TEST) -#define SUPPORT_PERCONTEXT_PB_SET_OFFSET OPTIONS_BIT18 +#if defined(SUPPORT_SGX_HWPERF) || defined (INTERNAL_TEST) +#define SUPPORT_SGX_HWPERF_SET_OFFSET OPTIONS_BIT18 #define OPTIONS_BIT18 (0x1 << 18) #else #define OPTIONS_BIT18 0x0 #endif -#if defined(SUPPORT_SGX_HWPERF) || defined (INTERNAL_TEST) -#define SUPPORT_SGX_HWPERF_SET_OFFSET OPTIONS_BIT19 + + +#if defined(SUPPORT_SGX_MMU_DUMMY_PAGE) || defined (INTERNAL_TEST) +#define SUPPORT_SGX_MMU_DUMMY_PAGE_SET_OFFSET OPTIONS_BIT19 #define OPTIONS_BIT19 (0x1 << 19) #else #define OPTIONS_BIT19 0x0 #endif - - -#if defined(SUPPORT_SGX_MMU_DUMMY_PAGE) || defined (INTERNAL_TEST) -#define SUPPORT_SGX_MMU_DUMMY_PAGE_SET_OFFSET OPTIONS_BIT20 +#if defined(SUPPORT_SGX_PRIORITY_SCHEDULING) || defined (INTERNAL_TEST) +#define SUPPORT_SGX_PRIORITY_SCHEDULING_SET_OFFSET OPTIONS_BIT20 #define OPTIONS_BIT20 (0x1 << 20) #else #define OPTIONS_BIT20 0x0 #endif -#if defined(SUPPORT_SGX_PRIORITY_SCHEDULING) || defined (INTERNAL_TEST) -#define SUPPORT_SGX_PRIORITY_SCHEDULING_SET_OFFSET OPTIONS_BIT21 +#if defined(SGX_LOW_LATENCY_SCHEDULING) || defined (INTERNAL_TEST) +#define SUPPORT_SGX_LOW_LATENCY_SCHEDULING_SET_OFFSET OPTIONS_BIT21 #define OPTIONS_BIT21 (0x1 << 21) #else #define OPTIONS_BIT21 0x0 @@ -219,6 +220,5 @@ OPTIONS_BIT19 |\ OPTIONS_BIT20 |\ OPTIONS_BIT21 |\ - OPTIONS_BIT22 |\ OPTIONS_HIGHBYTE diff --git a/include4/sgxapi_km.h b/include4/sgxapi_km.h index 6d8ab9e..40c7d88 100644 --- a/include4/sgxapi_km.h +++ b/include4/sgxapi_km.h @@ -66,11 +66,7 @@ extern "C" { #define SGX_MAX_TA_STATUS_VALS 32 -#if 0 #define SGX_MAX_3D_STATUS_VALS 3 -#else -#define SGX_MAX_3D_STATUS_VALS 2 -#endif #if defined(SUPPORT_SGX_GENERALISED_SYNCOBJECTS) #define SGX_MAX_TA_DST_SYNCS 1 diff --git a/services4/include/pvr_bridge.h b/services4/include/pvr_bridge.h index e4cfd02..a3f11af 100644 --- a/services4/include/pvr_bridge.h +++ b/services4/include/pvr_bridge.h @@ -203,8 +203,9 @@ extern "C" { #define PVRSRV_BRIDGE_EVENT_OBJECT_CMD_LAST (PVRSRV_BRIDGE_EVENT_OBJECT_CMD_FIRST+2) #define PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST (PVRSRV_BRIDGE_EVENT_OBJECT_CMD_LAST+1) -#define PVRSRV_BRIDGE_MODIFY_SYNC_OPS PVRSRV_IOWR(PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+0) -#define PVRSRV_BRIDGE_SYNC_OPS_CMD_LAST (PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+0) +#define PVRSRV_BRIDGE_MODIFY_PENDING_SYNC_OPS PVRSRV_IOWR(PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+0) +#define PVRSRV_BRIDGE_MODIFY_COMPLETE_SYNC_OPS PVRSRV_IOWR(PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+1) +#define PVRSRV_BRIDGE_SYNC_OPS_CMD_LAST (PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+1) #define PVRSRV_BRIDGE_LAST_NON_DEVICE_CMD (PVRSRV_BRIDGE_SYNC_OPS_CMD_LAST+1) @@ -570,8 +571,7 @@ typedef struct PVRSRV_BRIDGE_IN_PDUMP_MEMPOL_TAG IMG_UINT32 ui32Offset; IMG_UINT32 ui32Value; IMG_UINT32 ui32Mask; - IMG_BOOL bLastFrame; - IMG_BOOL bOverwrite; + IMG_UINT32 ui32Flags; }PVRSRV_BRIDGE_IN_PDUMP_MEMPOL; @@ -1060,6 +1060,9 @@ typedef struct PVRSRV_BRIDGE_OUT_EXPORTDEVICEMEM_TAG { PVRSRV_ERROR eError; IMG_HANDLE hMemInfo; +#if defined(SUPPORT_MEMINFO_IDS) + IMG_UINT64 ui64Stamp; +#endif } PVRSRV_BRIDGE_OUT_EXPORTDEVICEMEM; @@ -1345,26 +1348,31 @@ typedef struct PVRSRV_BRIDGE_IN_EVENT_OBJECT_CLOSE_TAG IMG_HANDLE hOSEventKM; } PVRSRV_BRIDGE_IN_EVENT_OBJECT_CLOSE; - -typedef struct PVRSRV_BRIDGE_IN_MODIFY_SYNC_OPS_TAG +typedef struct PVRSRV_BRIDGE_IN_MODIFY_PENDING_SYNC_OPS_TAG +{ + IMG_UINT32 ui32BridgeFlags; + IMG_HANDLE hKernelSyncInfo; + IMG_UINT32 ui32ModifyFlags; + +} PVRSRV_BRIDGE_IN_MODIFY_PENDING_SYNC_OPS; + +typedef struct PVRSRV_BRIDGE_IN_MODIFY_COMPLETE_SYNC_OPS_TAG { IMG_UINT32 ui32BridgeFlags; IMG_HANDLE hKernelSyncInfo; IMG_UINT32 ui32ModifyFlags; -} PVRSRV_BRIDGE_IN_MODIFY_SYNC_OPS; +} PVRSRV_BRIDGE_IN_MODIFY_COMPLETE_SYNC_OPS; -typedef struct PVRSRV_BRIDGE_OUT_MODIFY_SYNC_OPS_TAG +typedef struct PVRSRV_BRIDGE_OUT_MODIFY_PENDING_SYNC_OPS_TAG { PVRSRV_ERROR eError; IMG_UINT32 ui32ReadOpsPending; - IMG_UINT32 ui32ReadOpsComplete; IMG_UINT32 ui32WriteOpsPending; - IMG_UINT32 ui32WriteOpsComplete; -} PVRSRV_BRIDGE_OUT_MODIFY_SYNC_OPS; +} PVRSRV_BRIDGE_OUT_MODIFY_PENDING_SYNC_OPS; #if defined (__cplusplus) } diff --git a/services4/include/sgx_bridge.h b/services4/include/sgx_bridge.h index c9b67cb..b041253 100644 --- a/services4/include/sgx_bridge.h +++ b/services4/include/sgx_bridge.h @@ -43,7 +43,6 @@ extern "C" { #define PVRSRV_BRIDGE_SGX_DOKICK PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+3) #define PVRSRV_BRIDGE_SGX_GETPHYSPAGEADDR PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+4) #define PVRSRV_BRIDGE_SGX_READREGISTRYDWORD PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+5) -#define PVRSRV_BRIDGE_SGX_SCHEDULECOMMAND PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+6) #define PVRSRV_BRIDGE_SGX_2DQUERYBLTSCOMPLETE PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+9) @@ -215,15 +214,6 @@ typedef struct PVRSRV_BRIDGE_OUT_READREGDWORD_TAG IMG_UINT32 ui32Data; }PVRSRV_BRIDGE_OUT_READREGDWORD; - -typedef struct PVRSRV_BRIDGE_IN_SCHEDULECOMMAND_TAG -{ - IMG_UINT32 ui32BridgeFlags; - IMG_HANDLE hDevCookie; - SGXMKIF_COMMAND_TYPE eCommandType; - SGXMKIF_COMMAND *psCommandData; - -}PVRSRV_BRIDGE_IN_SCHEDULECOMMAND; typedef struct PVRSRV_BRIDGE_IN_SGXGETMISCINFO_TAG { @@ -278,6 +268,7 @@ typedef struct PVRSRV_BRIDGE_OUT_SGXFINDSHAREDPBDESC_TAG IMG_HANDLE hSharedPBDescKernelMemInfoHandle; IMG_HANDLE hHWPBDescKernelMemInfoHandle; IMG_HANDLE hBlockKernelMemInfoHandle; + IMG_HANDLE hHWBlockKernelMemInfoHandle; IMG_HANDLE ahSharedPBDescSubKernelMemInfoHandles[PVRSRV_BRIDGE_SGX_SHAREDPBDESC_MAX_SUBMEMINFOS]; IMG_UINT32 ui32SharedPBDescSubKernelMemInfoHandlesCount; PVRSRV_ERROR eError; @@ -302,6 +293,7 @@ typedef struct PVRSRV_BRIDGE_IN_SGXADDSHAREDPBDESC_TAG IMG_HANDLE hSharedPBDescKernelMemInfo; IMG_HANDLE hHWPBDescKernelMemInfo; IMG_HANDLE hBlockKernelMemInfo; + IMG_HANDLE hHWBlockKernelMemInfo; IMG_UINT32 ui32TotalPBSize; IMG_HANDLE *phKernelMemInfoHandles; IMG_UINT32 ui32KernelMemInfoHandlesCount; @@ -326,6 +318,7 @@ typedef struct PVRSRV_BRIDGE_IN_PDUMP_BUFFER_ARRAY_TAG typedef struct PVRSRV_BRIDGE_IN_PDUMP_3D_SIGNATURE_REGISTERS_TAG { IMG_UINT32 ui32BridgeFlags; + IMG_HANDLE hDevCookie; IMG_UINT32 ui32DumpFrameNum; IMG_BOOL bLastFrame; IMG_UINT32 *pui32Registers; @@ -344,6 +337,7 @@ typedef struct PVRSRV_BRIDGE_IN_PDUMPCOUNTER_REGISTERS_TAG typedef struct PVRSRV_BRIDGE_IN_PDUMP_TA_SIGNATURE_REGISTERS_TAG { IMG_UINT32 ui32BridgeFlags; + IMG_HANDLE hDevCookie; IMG_UINT32 ui32DumpFrameNum; IMG_UINT32 ui32TAKickCount; IMG_BOOL bLastFrame; @@ -445,13 +439,13 @@ typedef struct PVRSRV_BRIDGE_IN_SGX_READ_DIFF_COUNTERS_TAG IMG_UINT32 ui32New; IMG_UINT32 ui32NewReset; IMG_UINT32 ui32CountersReg; + IMG_UINT32 ui32Reg2; } PVRSRV_BRIDGE_IN_SGX_READ_DIFF_COUNTERS; typedef struct PVRSRV_BRIDGE_OUT_SGX_READ_DIFF_COUNTERS_TAG { PVRSRV_ERROR eError; IMG_UINT32 ui32Old; - IMG_UINT32 ui32Time; IMG_BOOL bActive; PVRSRV_SGXDEV_DIFF_INFO sDiffs; } PVRSRV_BRIDGE_OUT_SGX_READ_DIFF_COUNTERS; diff --git a/services4/include/sgx_mkif_km.h b/services4/include/sgx_mkif_km.h index 97e08ab..8e70865 100644 --- a/services4/include/sgx_mkif_km.h +++ b/services4/include/sgx_mkif_km.h @@ -52,8 +52,8 @@ typedef struct _SGXMKIF_COMMAND_ { IMG_UINT32 ui32ServiceAddress; - IMG_UINT32 ui32Data[2]; IMG_UINT32 ui32CacheControl; + IMG_UINT32 ui32Data[2]; } SGXMKIF_COMMAND; @@ -72,19 +72,24 @@ typedef struct _PVRSRV_SGX_CCB_CTL_ typedef struct _SGXMKIF_HOST_CTL_ { +#if defined(PVRSRV_USSE_EDM_BREAKPOINTS) + IMG_UINT32 ui32BreakpointDisable; + IMG_UINT32 ui32Continue; +#endif - volatile IMG_UINT32 ui32PowerStatus; + volatile IMG_UINT32 ui32InitStatus; + volatile IMG_UINT32 ui32PowerStatus; + volatile IMG_UINT32 ui32CleanupStatus; #if defined(SUPPORT_HW_RECOVERY) - IMG_UINT32 ui32uKernelDetectedLockups; - IMG_UINT32 ui32HostDetectedLockups; - IMG_UINT32 ui32HWRecoverySampleRate; + IMG_UINT32 ui32uKernelDetectedLockups; + IMG_UINT32 ui32HostDetectedLockups; + IMG_UINT32 ui32HWRecoverySampleRate; #endif - IMG_UINT32 ui32ActivePowManSampleRate; - IMG_UINT32 ui32InterruptFlags; - IMG_UINT32 ui32InterruptClearFlags; + IMG_UINT32 ui32uKernelTimerClock; + IMG_UINT32 ui32ActivePowManSampleRate; + IMG_UINT32 ui32InterruptFlags; + IMG_UINT32 ui32InterruptClearFlags; - IMG_UINT32 ui32ResManFlags; - IMG_DEV_VIRTADDR sResManCleanupData; IMG_UINT32 ui32NumActivePowerEvents; @@ -99,6 +104,8 @@ typedef struct _SGXMKIF_HOST_CTL_ #define SGXMKIF_CMDTA_CTRLFLAGS_READY 0x00000001 typedef struct _SGXMKIF_CMDTA_SHARED_ { + IMG_UINT32 ui32CtrlFlags; + IMG_UINT32 ui32NumTAStatusVals; IMG_UINT32 ui32Num3DStatusVals; @@ -130,11 +137,11 @@ typedef struct _SGXMKIF_CMDTA_SHARED_ #endif + PVRSRV_DEVICE_SYNC_OBJECT sTA3DDependency; + CTL_STATUS sCtlTAStatusInfo[SGX_MAX_TA_STATUS_VALS]; CTL_STATUS sCtl3DStatusInfo[SGX_MAX_3D_STATUS_VALS]; - PVRSRV_DEVICE_SYNC_OBJECT sTA3DDependency; - } SGXMKIF_CMDTA_SHARED; #define SGXTQ_MAX_STATUS SGX_MAX_TRANSFER_STATUS_VALS + 2 @@ -233,24 +240,6 @@ typedef struct _SGXMKIF_HWDEVICE_SYNC_LIST_ #endif -typedef enum _SGXMKIF_COMMAND_TYPE_ -{ - SGXMKIF_COMMAND_EDM_KICK = 0, - SGXMKIF_COMMAND_VIDEO_KICK = 1, - SGXMKIF_COMMAND_REQUEST_SGXMISCINFO = 2, - - SGXMKIF_COMMAND_FORCE_I32 = -1, - -}SGXMKIF_COMMAND_TYPE; - -#define PVRSRV_CCBFLAGS_RASTERCMD 0x1 -#define PVRSRV_CCBFLAGS_TRANSFERCMD 0x2 -#define PVRSRV_CCBFLAGS_PROCESS_QUEUESCMD 0x3 -#if defined(SGX_FEATURE_2D_HARDWARE) -#define PVRSRV_CCBFLAGS_2DCMD 0x4 -#endif -#define PVRSRV_CCBFLAGS_POWERCMD 0x5 - #define PVRSRV_CLEANUPCMD_RT 0x1 #define PVRSRV_CLEANUPCMD_RC 0x2 #define PVRSRV_CLEANUPCMD_TC 0x3 @@ -307,6 +296,7 @@ typedef struct _PVRSRV_SGX_MISCINFO_INFO { IMG_UINT32 ui32MiscInfoFlags; PVRSRV_SGX_MISCINFO_FEATURES sSGXFeatures; + SGX_MISCINFO_STRUCT_SIZES sSGXStructSizes; #if defined(SUPPORT_SGX_EDM_MEMORY_DEBUG) PVRSRV_SGX_MISCINFO_MEMREAD sSGXMemReadData; #endif diff --git a/services4/include/sgxinfo.h b/services4/include/sgxinfo.h index 17b1a1f..547d721 100644 --- a/services4/include/sgxinfo.h +++ b/services4/include/sgxinfo.h @@ -47,7 +47,6 @@ typedef struct _SGX_BRIDGE_INFO_FOR_SRVINIT typedef enum _SGXMKIF_CMD_TYPE_ { -#if 0 SGXMKIF_CMD_TA = 0, SGXMKIF_CMD_TRANSFER = 1, SGXMKIF_CMD_2D = 2, @@ -56,16 +55,7 @@ typedef enum _SGXMKIF_CMD_TYPE_ SGXMKIF_CMD_GETMISCINFO = 5, SGXMKIF_CMD_PROCESS_QUEUES = 6, SGXMKIF_CMD_MAX = 7, -#else - SGXMKIF_CMD_GETMISCINFO = 0, - SGXMKIF_CMD_TA = 1, - SGXMKIF_CMD_TRANSFER = 2, - SGXMKIF_CMD_PROCESS_QUEUES = 3, - SGXMKIF_CMD_2D = 4, - SGXMKIF_CMD_POWER = 5, -// SGXMKIF_CMD_CLEANUP = 0, - SGXMKIF_CMD_MAX = 6, -#endif + SGXMKIF_CMD_FORCE_I32 = -1, } SGXMKIF_CMD_TYPE; @@ -79,8 +69,14 @@ typedef struct _SGX_BRIDGE_INIT_INFO_ IMG_HANDLE hKernelSGXHostCtlMemInfo; IMG_HANDLE hKernelSGXTA3DCtlMemInfo; IMG_HANDLE hKernelSGXMiscMemInfo; - IMG_UINT32 ui32HostKickAddress; - IMG_UINT32 ui32GetMiscInfoAddress; + + IMG_UINT32 aui32HostKickAddr[SGXMKIF_CMD_MAX]; + + SGX_INIT_SCRIPTS sScripts; + + IMG_UINT32 ui32ClientBuildOptions; + SGX_MISCINFO_STRUCT_SIZES sSGXStructSizes; + #if defined(SGX_SUPPORT_HWPROFILING) IMG_HANDLE hKernelHWProfilingMemInfo; #endif @@ -112,8 +108,6 @@ typedef struct _SGX_BRIDGE_INIT_INFO_ IMG_UINT32 asInitDevData[SGX_MAX_DEV_DATA]; IMG_HANDLE asInitMemHandles[SGX_MAX_INIT_MEM_HANDLES]; - SGX_INIT_SCRIPTS sScripts; - } SGX_BRIDGE_INIT_INFO; @@ -146,17 +140,14 @@ typedef struct _SGX_INTERNEL_STATUS_UPDATE_ typedef struct _SGX_CCB_KICK_ { - SGXMKIF_COMMAND_TYPE eCommand; SGXMKIF_COMMAND sCommand; IMG_HANDLE hCCBKernelMemInfo; IMG_UINT32 ui32NumDstSyncObjects; IMG_HANDLE hKernelHWSyncListMemInfo; -#if defined(SGX_FEATURE_RENDER_TARGET_ARRAYS) - IMG_HANDLE *pasDstSyncHandles; -#else - IMG_HANDLE sDstSyncHandle; -#endif + + + IMG_HANDLE *pahDstSyncHandles; IMG_UINT32 ui32NumTAStatusVals; IMG_UINT32 ui32Num3DStatusVals; @@ -288,7 +279,7 @@ typedef struct _PVRSRV_2D_SGX_KICK_ typedef struct _PVRSRV_SGXDEV_DIFF_INFO_ { IMG_UINT32 aui32Counters[PVRSRV_SGX_DIFF_NUM_COUNTERS]; - IMG_UINT32 ui32Time[2]; + IMG_UINT32 ui32Time[3]; IMG_UINT32 ui32Marker[2]; } PVRSRV_SGXDEV_DIFF_INFO, *PPVRSRV_SGXDEV_DIFF_INFO; diff --git a/services4/srvkm/bridged/bridged_pvr_bridge.c b/services4/srvkm/bridged/bridged_pvr_bridge.c index 9d7c41e..1f926ca 100644 --- a/services4/srvkm/bridged/bridged_pvr_bridge.c +++ b/services4/srvkm/bridged/bridged_pvr_bridge.c @@ -2937,7 +2937,7 @@ PVRSRVEventObjectCloseBW(IMG_UINT32 ui32BridgeID, return 0; } -#if 0 + typedef struct _MODIFY_SYNC_OP_INFO { PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo; @@ -3118,7 +3118,7 @@ PVRSRVModifyCompleteSyncOpsBW(IMG_UINT32 ui32BridgeID, return 0; } -#endif + PVRSRV_ERROR CommonBridgeInit(IMG_VOID) @@ -3248,10 +3248,10 @@ CommonBridgeInit(IMG_VOID) SetDispatchTableEntry(PVRSRV_BRIDGE_EVENT_OBJECT_WAIT, PVRSRVEventObjectWaitBW); SetDispatchTableEntry(PVRSRV_BRIDGE_EVENT_OBJECT_OPEN, PVRSRVEventObjectOpenBW); SetDispatchTableEntry(PVRSRV_BRIDGE_EVENT_OBJECT_CLOSE, PVRSRVEventObjectCloseBW); -#if 0 + SetDispatchTableEntry(PVRSRV_BRIDGE_MODIFY_PENDING_SYNC_OPS, PVRSRVModifyPendingSyncOpsBW); SetDispatchTableEntry(PVRSRV_BRIDGE_MODIFY_COMPLETE_SYNC_OPS, PVRSRVModifyCompleteSyncOpsBW); -#endif + #if defined (SUPPORT_SGX) SetSGXDispatchTableEntry(); #endif diff --git a/services4/srvkm/bridged/bridged_pvr_bridge.h b/services4/srvkm/bridged/bridged_pvr_bridge.h index cb71f25..70e399d 100644 --- a/services4/srvkm/bridged/bridged_pvr_bridge.h +++ b/services4/srvkm/bridged/bridged_pvr_bridge.h @@ -167,19 +167,22 @@ typedef struct _PVRSRV_BRIDGE_DISPATCH_TABLE_ENTRY #endif }PVRSRV_BRIDGE_DISPATCH_TABLE_ENTRY; -#if defined(SUPPORT_VGX) -#define BRIDGE_DISPATCH_TABLE_ENTRY_COUNT (PVRSRV_BRIDGE_LAST_VGX_CMD+1) -#define PVRSRV_BRIDGE_LAST_DEVICE_CMD PVRSRV_BRIDGE_LAST_VGX_CMD +#if defined(SUPPORT_VGX) || defined(SUPPORT_MSVDX) + #if defined(SUPPORT_VGX) + #define BRIDGE_DISPATCH_TABLE_ENTRY_COUNT (PVRSRV_BRIDGE_LAST_VGX_CMD+1) + #define PVRSRV_BRIDGE_LAST_DEVICE_CMD PVRSRV_BRIDGE_LAST_VGX_CMD + #else + #define BRIDGE_DISPATCH_TABLE_ENTRY_COUNT (PVRSRV_BRIDGE_LAST_MSVDX_CMD+1) + #define PVRSRV_BRIDGE_LAST_DEVICE_CMD PVRSRV_BRIDGE_LAST_MSVDX_CMD + #endif #else - -#if defined(SUPPORT_SGX) -#define BRIDGE_DISPATCH_TABLE_ENTRY_COUNT (PVRSRV_BRIDGE_LAST_SGX_CMD+1) -#define PVRSRV_BRIDGE_LAST_DEVICE_CMD PVRSRV_BRIDGE_LAST_SGX_CMD -#else -#define BRIDGE_DISPATCH_TABLE_ENTRY_COUNT (PVRSRV_BRIDGE_LAST_NON_DEVICE_CMD+1) -#define PVRSRV_BRIDGE_LAST_DEVICE_CMD PVRSRV_BRIDGE_LAST_NON_DEVICE_CMD -#endif - + #if defined(SUPPORT_SGX) + #define BRIDGE_DISPATCH_TABLE_ENTRY_COUNT (PVRSRV_BRIDGE_LAST_SGX_CMD+1) + #define PVRSRV_BRIDGE_LAST_DEVICE_CMD PVRSRV_BRIDGE_LAST_SGX_CMD + #else + #define BRIDGE_DISPATCH_TABLE_ENTRY_COUNT (PVRSRV_BRIDGE_LAST_NON_DEVICE_CMD+1) + #define PVRSRV_BRIDGE_LAST_DEVICE_CMD PVRSRV_BRIDGE_LAST_NON_DEVICE_CMD + #endif #endif extern PVRSRV_BRIDGE_DISPATCH_TABLE_ENTRY g_BridgeDispatchTable[BRIDGE_DISPATCH_TABLE_ENTRY_COUNT]; diff --git a/services4/srvkm/bridged/sgx/bridged_sgx_bridge.c b/services4/srvkm/bridged/sgx/bridged_sgx_bridge.c index 8840a1d..3e68721 100644 --- a/services4/srvkm/bridged/sgx/bridged_sgx_bridge.c +++ b/services4/srvkm/bridged/sgx/bridged_sgx_bridge.c @@ -359,7 +359,6 @@ SGXDoKickBW(IMG_UINT32 ui32BridgeID, if(ui32NumDstSyncs > 0) { -#if 0 if(!OSAccessOK(PVR_VERIFY_READ, psDoKickIN->sCCBKick.pahDstSyncHandles, ui32NumDstSyncs * sizeof(IMG_HANDLE))) @@ -406,17 +405,7 @@ SGXDoKickBW(IMG_UINT32 ui32BridgeID, } } -#else - psRetOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase, - &psDoKickIN->sCCBKick.sDstSyncHandle, - psDoKickIN->sCCBKick.sDstSyncHandle, - PVRSRV_HANDLE_TYPE_SYNC_INFO); - if(psRetOUT->eError != PVRSRV_OK) - { - goto PVRSRV_BRIDGE_SGX_DOKICK_RETURN_RESULT; - } -#endif psRetOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase, &psDoKickIN->sCCBKick.hKernelHWSyncListMemInfo, @@ -847,11 +836,7 @@ SGXReadDiffCountersBW(IMG_UINT32 ui32BridgeID, psSGXReadDiffCountersIN->ui32New, psSGXReadDiffCountersIN->ui32NewReset, psSGXReadDiffCountersIN->ui32CountersReg, -#if 0 psSGXReadDiffCountersIN->ui32Reg2, -#else - 0, -#endif &psSGXReadDiffCountersOUT->bActive, &psSGXReadDiffCountersOUT->sDiffs); @@ -1625,14 +1610,14 @@ SGXFindSharedPBDescBW(IMG_UINT32 ui32BridgeID, PVRSRV_HANDLE_TYPE_MEM_INFO_REF, PVRSRV_HANDLE_ALLOC_FLAG_MULTI, psSGXFindSharedPBDescOUT->hSharedPBDesc); -#if 0 + PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, &psSGXFindSharedPBDescOUT->hHWBlockKernelMemInfoHandle, psHWBlockKernelMemInfo, PVRSRV_HANDLE_TYPE_MEM_INFO_REF, PVRSRV_HANDLE_ALLOC_FLAG_MULTI, psSGXFindSharedPBDescOUT->hSharedPBDesc); -#endif + for(i=0; ipsHandleBase, (IMG_VOID **)&psHWBlockKernelMemInfo, psSGXAddSharedPBDescIN->hHWBlockKernelMemInfo, @@ -1782,9 +1767,7 @@ SGXAddSharedPBDescBW(IMG_UINT32 ui32BridgeID, { goto PVRSRV_BRIDGE_SGX_ADDSHAREDPBDESC_RETURN_RESULT; } -#else - psHWBlockKernelMemInfo = NULL; -#endif + if(!OSAccessOK(PVR_VERIFY_READ, psSGXAddSharedPBDescIN->phKernelMemInfoHandles, @@ -1858,12 +1841,12 @@ SGXAddSharedPBDescBW(IMG_UINT32 ui32BridgeID, PVRSRV_HANDLE_TYPE_SHARED_SYS_MEM_INFO); PVR_ASSERT(eError == PVRSRV_OK); -#if 0 + eError = PVRSRVReleaseHandle(psPerProc->psHandleBase, psSGXAddSharedPBDescIN->hHWBlockKernelMemInfo, PVRSRV_HANDLE_TYPE_MEM_INFO); PVR_ASSERT(eError == PVRSRV_OK); -#endif + for(i=0; iui32RefCount = 1; psStubPBDesc->ui32TotalPBSize = ui32TotalPBSize; psStubPBDesc->psSharedPBDescKernelMemInfo = psSharedPBDescKernelMemInfo; diff --git a/services4/srvkm/devices/sgx/sgxconfig.h b/services4/srvkm/devices/sgx/sgxconfig.h index 824192d..febef0f 100644 --- a/services4/srvkm/devices/sgx/sgxconfig.h +++ b/services4/srvkm/devices/sgx/sgxconfig.h @@ -27,6 +27,8 @@ #ifndef __SGXCONFIG_H__ #define __SGXCONFIG_H__ +#include "sgxdefs.h" + #define DEV_DEVICE_TYPE PVRSRV_DEVICE_TYPE_SGX #define DEV_DEVICE_CLASS PVRSRV_DEVICE_CLASS_3D @@ -37,6 +39,11 @@ #if defined(SGX_FEATURE_2D_HARDWARE) #define SGX_2D_HEAP_BASE 0x00100000 #define SGX_2D_HEAP_SIZE (0x08000000-0x00100000-0x00001000) + #else + #if defined(FIX_HW_BRN_26915) + #define SGX_CGBUFFER_HEAP_BASE 0x00100000 + #define SGX_CGBUFFER_HEAP_SIZE (0x08000000-0x00100000-0x00001000) + #endif #endif #if defined(SUPPORT_SGX_GENERAL_MAPPING_HEAP) @@ -59,15 +66,11 @@ #define SGX_PDSPIXEL_CODEDATA_HEAP_BASE 0xF6000000 #define SGX_PDSPIXEL_CODEDATA_HEAP_SIZE (0x02000000-0x00001000) - #define SGX_PDSVERTEX_CODEDATA_HEAP_BASE 0xF8000000 - #define SGX_PDSVERTEX_CODEDATA_HEAP_SIZE (0x01E00000-0x00001000) - - #define SGX_KERNEL_CODE_HEAP_BASE 0xF9E00000 + #define SGX_KERNEL_CODE_HEAP_BASE 0xF8000000 #define SGX_KERNEL_CODE_HEAP_SIZE (0x00080000-0x00001000) - - #define SGX_RESERVED_CODE_HEAP_BASE 0xF9F00000 - #define SGX_RESERVED_CODE_HEAP_SIZE (0x00080000-0x00001000) + #define SGX_PDSVERTEX_CODEDATA_HEAP_BASE 0xF8400000 + #define SGX_PDSVERTEX_CODEDATA_HEAP_SIZE (0x01C00000-0x00001000) #define SGX_KERNEL_DATA_HEAP_BASE 0xFA000000 #define SGX_KERNEL_DATA_HEAP_SIZE (0x05000000-0x00001000) @@ -75,7 +78,7 @@ #define SGX_PIXELSHADER_HEAP_BASE 0xFF000000 #define SGX_PIXELSHADER_HEAP_SIZE (0x00500000-0x00001000) - #define SGX_VERTEXSHADER_HEAP_BASE 0xFF500000 + #define SGX_VERTEXSHADER_HEAP_BASE 0xFF800000 #define SGX_VERTEXSHADER_HEAP_SIZE (0x00200000-0x00001000) @@ -89,30 +92,26 @@ #endif #define SGX_GENERAL_HEAP_BASE 0x01800000 - #define SGX_GENERAL_HEAP_SIZE (0x06C00000-0x00001000) + #define SGX_GENERAL_HEAP_SIZE (0x07000000-0x00001000) - #define SGX_3DPARAMETERS_HEAP_BASE 0x08400000 + #define SGX_3DPARAMETERS_HEAP_BASE 0x08800000 #define SGX_3DPARAMETERS_HEAP_SIZE (0x04000000-0x00001000) - #define SGX_TADATA_HEAP_BASE 0x0C400000 + #define SGX_TADATA_HEAP_BASE 0x0C800000 #define SGX_TADATA_HEAP_SIZE (0x01000000-0x00001000) - #define SGX_SYNCINFO_HEAP_BASE 0x0D400000 + #define SGX_SYNCINFO_HEAP_BASE 0x0D800000 #define SGX_SYNCINFO_HEAP_SIZE (0x00400000-0x00001000) - #define SGX_PDSPIXEL_CODEDATA_HEAP_BASE 0x0D800000 + #define SGX_PDSPIXEL_CODEDATA_HEAP_BASE 0x0DC00000 #define SGX_PDSPIXEL_CODEDATA_HEAP_SIZE (0x00800000-0x00001000) - #define SGX_PDSVERTEX_CODEDATA_HEAP_BASE 0x0E000000 - #define SGX_PDSVERTEX_CODEDATA_HEAP_SIZE (0x00800000-0x00001000) - - - #define SGX_RESERVED_CODE_HEAP_BASE 0x0E800000 - #define SGX_RESERVED_CODE_HEAP_SIZE (0x00080000-0x00001000) - - #define SGX_KERNEL_CODE_HEAP_BASE 0x0EC00000 + #define SGX_KERNEL_CODE_HEAP_BASE 0x0E400000 #define SGX_KERNEL_CODE_HEAP_SIZE (0x00080000-0x00001000) + #define SGX_PDSVERTEX_CODEDATA_HEAP_BASE 0x0E800000 + #define SGX_PDSVERTEX_CODEDATA_HEAP_SIZE (0x00800000-0x00001000) + #define SGX_KERNEL_DATA_HEAP_BASE 0x0F000000 #define SGX_KERNEL_DATA_HEAP_SIZE (0x00400000-0x00001000) diff --git a/services4/srvkm/devices/sgx/sgxinfokm.h b/services4/srvkm/devices/sgx/sgxinfokm.h index 6c73405..1ddd709 100644 --- a/services4/srvkm/devices/sgx/sgxinfokm.h +++ b/services4/srvkm/devices/sgx/sgxinfokm.h @@ -139,6 +139,12 @@ typedef struct _PVRSRV_SGXDEV_INFO_ IMG_UINT32 ui32CacheControl; + IMG_UINT32 ui32ClientBuildOptions; + + + SGX_MISCINFO_STRUCT_SIZES sSGXStructSizes; + + IMG_VOID *pvMMUContextList; diff --git a/services4/srvkm/devices/sgx/sgxinit.c b/services4/srvkm/devices/sgx/sgxinit.c index 16399a4..65940b0 100644 --- a/services4/srvkm/devices/sgx/sgxinit.c +++ b/services4/srvkm/devices/sgx/sgxinit.c @@ -156,12 +156,12 @@ static PVRSRV_ERROR InitDevInfo(PVRSRV_PER_PROCESS_DATA *psPerProc, #if defined(SGX_FEATURE_SPM_MODE_0) psDevInfo->psKernelTmpDPMStateMemInfo = (PVRSRV_KERNEL_MEM_INFO *)psInitInfo->hKernelTmpDPMStateMemInfo; #endif -#if 0 + psDevInfo->ui32ClientBuildOptions = psInitInfo->ui32ClientBuildOptions; psDevInfo->sSGXStructSizes = psInitInfo->sSGXStructSizes; -#endif + eError = OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP, @@ -185,17 +185,8 @@ static PVRSRV_ERROR InitDevInfo(PVRSRV_PER_PROCESS_DATA *psPerProc, - //OSMemCopy(psDevInfo->aui32HostKickAddr, psInitInfo->aui32HostKickAddr, - // SGXMKIF_CMD_MAX * sizeof(psDevInfo->aui32HostKickAddr[0])); - memset(psDevInfo->aui32HostKickAddr, 0, + OSMemCopy(psDevInfo->aui32HostKickAddr, psInitInfo->aui32HostKickAddr, SGXMKIF_CMD_MAX * sizeof(psDevInfo->aui32HostKickAddr[0])); - psDevInfo->aui32HostKickAddr[SGXMKIF_CMD_TA] = - psDevInfo->aui32HostKickAddr[SGXMKIF_CMD_TRANSFER] = - psDevInfo->aui32HostKickAddr[SGXMKIF_CMD_2D] = - psDevInfo->aui32HostKickAddr[SGXMKIF_CMD_POWER] = - //psDevInfo->aui32HostKickAddr[SGXMKIF_CMD_CLEANUP] = - psDevInfo->aui32HostKickAddr[SGXMKIF_CMD_PROCESS_QUEUES] = psInitInfo->ui32HostKickAddress; - psDevInfo->aui32HostKickAddr[SGXMKIF_CMD_GETMISCINFO] = psInitInfo->ui32GetMiscInfoAddress; psDevInfo->bForcePTOff = IMG_FALSE; @@ -270,10 +261,8 @@ static PVRSRV_ERROR SGXRunScript(PVRSRV_SGXDEV_INFO *psDevInfo, SGX_INIT_COMMAND PVRSRV_ERROR SGXInitialise(PVRSRV_SGXDEV_INFO *psDevInfo) { PVRSRV_ERROR eError; -#if 0 PVRSRV_KERNEL_MEM_INFO *psSGXHostCtlMemInfo = psDevInfo->psKernelSGXHostCtlMemInfo; SGXMKIF_HOST_CTL *psSGXHostCtl = psSGXHostCtlMemInfo->pvLinAddrKM; -#endif #if defined(PDUMP) static IMG_BOOL bFirstTime = IMG_TRUE; #endif @@ -333,16 +322,9 @@ PVRSRV_ERROR SGXInitialise(PVRSRV_SGXDEV_INFO *psDevInfo) PDUMPCOMMENTWITHFLAGS(PDUMP_FLAGS_CONTINUOUS, "End of SGX initialisation script part 2\n"); if(cpu_is_omap3630()) - OSWriteHWReg(psDevInfo->pvRegsBaseKM, 0xFF08, 0x80000000);//OCP Bypass mode - -{ - extern IMG_VOID SGXStartTimer(PVRSRV_SGXDEV_INFO *psDevInfo); - SGXStartTimer(psDevInfo); -} + OSWriteHWReg(psDevInfo->pvRegsBaseKM, 0xFF08, 0x80000000); -#if 0 psSGXHostCtl->ui32InitStatus = 0; -#endif #if defined(PDUMP) PDUMPCOMMENTWITHFLAGS(PDUMP_FLAGS_CONTINUOUS, "Reset the SGX microkernel initialisation status\n"); @@ -380,7 +362,7 @@ PVRSRV_ERROR SGXInitialise(PVRSRV_SGXDEV_INFO *psDevInfo) } #endif -#if 0 // !defined(NO_HARDWARE) +#if !defined(NO_HARDWARE) if (PollForValueKM(&psSGXHostCtl->ui32InitStatus, @@ -1509,7 +1491,6 @@ PVRSRV_ERROR SGXDevInitCompatCheck(PVRSRV_DEVICE_NODE *psDeviceNode) PPVRSRV_KERNEL_MEM_INFO psMemInfo; PVRSRV_SGX_MISCINFO_INFO *psSGXMiscInfoInt; PVRSRV_SGX_MISCINFO_FEATURES *psSGXFeatures; -#if 0 SGX_MISCINFO_STRUCT_SIZES *psSGXStructSizes; IMG_BOOL bStructSizesFailed; @@ -1522,7 +1503,6 @@ PVRSRV_ERROR SGXDevInitCompatCheck(PVRSRV_DEVICE_NODE *psDeviceNode) const IMG_UINT32 ui32NumCoreExceptions = sizeof(aui32CoreRevExceptions) / (2*sizeof(IMG_UINT32)); IMG_UINT i; #endif -#endif if(psDeviceNode->sDevId.eDeviceType != PVRSRV_DEVICE_TYPE_SGX) @@ -1535,7 +1515,7 @@ PVRSRV_ERROR SGXDevInitCompatCheck(PVRSRV_DEVICE_NODE *psDeviceNode) psDevInfo = psDeviceNode->pvDevice; -#if 0 + ui32BuildOptions = (SGX_BUILD_OPTIONS); if (ui32BuildOptions != psDevInfo->ui32ClientBuildOptions) { @@ -1560,7 +1540,7 @@ PVRSRV_ERROR SGXDevInitCompatCheck(PVRSRV_DEVICE_NODE *psDeviceNode) { PVR_DPF((PVR_DBG_MESSAGE, "SGXInit: Client-side and KM driver build options match. [ OK ]")); } -#endif + #if !defined (NO_HARDWARE) psMemInfo = psDevInfo->psKernelSGXMiscMemInfo; @@ -1595,7 +1575,7 @@ PVRSRV_ERROR SGXDevInitCompatCheck(PVRSRV_DEVICE_NODE *psDeviceNode) PVRVERSION_BUILD, psSGXFeatures->ui32DDKBuild)); } -#if 0 + if (psSGXFeatures->ui32CoreRevSW == 0) { @@ -1635,8 +1615,8 @@ PVRSRV_ERROR SGXDevInitCompatCheck(PVRSRV_DEVICE_NODE *psDeviceNode) } } } -#endif -#if 0 + + psSGXStructSizes = &((PVRSRV_SGX_MISCINFO_INFO*)(psMemInfo->pvLinAddrKM))->sSGXStructSizes; bStructSizesFailed = IMG_FALSE; @@ -1670,7 +1650,7 @@ PVRSRV_ERROR SGXDevInitCompatCheck(PVRSRV_DEVICE_NODE *psDeviceNode) { PVR_DPF((PVR_DBG_MESSAGE, "SGXInit: SGXMKIF structure sizes match. [ OK ]")); } -#endif + ui32BuildOptions = psSGXFeatures->ui32BuildOptions; if (ui32BuildOptions != (SGX_BUILD_OPTIONS)) @@ -1715,9 +1695,8 @@ PVRSRV_ERROR SGXGetMiscInfoUkernel(PVRSRV_SGXDEV_INFO *psDevInfo, SGXMKIF_COMMAND sCommandData; PVRSRV_SGX_MISCINFO_INFO *psSGXMiscInfoInt; PVRSRV_SGX_MISCINFO_FEATURES *psSGXFeatures; -#if 0 SGX_MISCINFO_STRUCT_SIZES *psSGXStructSizes; -#endif + PPVRSRV_KERNEL_MEM_INFO psMemInfo = psDevInfo->psKernelSGXMiscMemInfo; if (! psMemInfo->pvLinAddrKM) @@ -1727,16 +1706,13 @@ PVRSRV_ERROR SGXGetMiscInfoUkernel(PVRSRV_SGXDEV_INFO *psDevInfo, } psSGXMiscInfoInt = psMemInfo->pvLinAddrKM; psSGXFeatures = &psSGXMiscInfoInt->sSGXFeatures; -#if 0 psSGXStructSizes = &psSGXMiscInfoInt->sSGXStructSizes; -#endif + psSGXMiscInfoInt->ui32MiscInfoFlags &= ~PVRSRV_USSE_MISCINFO_READY; OSMemSet(psSGXFeatures, 0, sizeof(*psSGXFeatures)); -#if 0 OSMemSet(psSGXStructSizes, 0, sizeof(*psSGXStructSizes)); -#endif sCommandData.ui32Data[1] = psMemInfo->sDevVAddr.uiAddr; @@ -2185,9 +2161,8 @@ PVRSRV_ERROR SGXReadDiffCountersKM(IMG_HANDLE hDevHandle, psDiffs->ui32Time[0] = OSClockus(); psDiffs->ui32Time[1] = psDevInfo->psSGXHostCtl->ui32TimeWraps; -#if 0 psDiffs->ui32Time[2] = ui32rval; -#endif + psDiffs->ui32Marker[0] = psDevInfo->ui32KickTACounter; psDiffs->ui32Marker[1] = psDevInfo->ui32KickTARenderCounter; } diff --git a/services4/srvkm/devices/sgx/sgxkick.c b/services4/srvkm/devices/sgx/sgxkick.c index 149d147..2848313 100644 --- a/services4/srvkm/devices/sgx/sgxkick.c +++ b/services4/srvkm/devices/sgx/sgxkick.c @@ -222,16 +222,11 @@ PVRSRV_ERROR SGXDoKickKM(IMG_HANDLE hDevHandle, SGX_CCB_KICK *psCCBKick) MAKEUNIQUETAG(psHWDstSyncListMemInfo)); } #endif -#if 0 + for (i=0; ipahDstSyncHandles[i]; -#else - psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psCCBKick->sDstSyncHandle; - i = 0; -#endif + if (psSyncInfo) { psHWDeviceSyncList->asSyncData[i].sWriteOpsCompleteDevVAddr = psSyncInfo->sWriteOpsCompleteDevVAddr; @@ -319,9 +314,9 @@ PVRSRV_ERROR SGXDoKickKM(IMG_HANDLE hDevHandle, SGX_CCB_KICK *psCCBKick) -#if 0 + psTACmd->ui32CtrlFlags |= SGXMKIF_CMDTA_CTRLFLAGS_READY; -#endif + #if defined(PDUMP) if (PDumpIsCaptureFrameKM()) { @@ -587,22 +582,15 @@ PVRSRV_ERROR SGXDoKickKM(IMG_HANDLE hDevHandle, SGX_CCB_KICK *psCCBKick) #endif eError = SGXScheduleCCBCommandKM(hDevHandle, SGXMKIF_CMD_TA, &psCCBKick->sCommand, KERNEL_ID, 0); -// eError = SGXScheduleCCBCommandKM(hDevHandle, psCCBKick->eCommand, &psCCBKick->sCommand, KERNEL_ID, 0); if (eError == PVRSRV_ERROR_RETRY) { if (psCCBKick->bFirstKickOrResume && psCCBKick->ui32NumDstSyncObjects > 0) { -#if 0 for (i=0; i < psCCBKick->ui32NumDstSyncObjects; i++) -#endif { -#if 0 - + psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psCCBKick->pahDstSyncHandles[i]; -#else - psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psCCBKick->sDstSyncHandle; -#endif if (psSyncInfo) { psSyncInfo->psSyncData->ui32WriteOpsPending--; diff --git a/services4/srvkm/devices/sgx/sgxpower.c b/services4/srvkm/devices/sgx/sgxpower.c index cf252e3..d22e7ea 100644 --- a/services4/srvkm/devices/sgx/sgxpower.c +++ b/services4/srvkm/devices/sgx/sgxpower.c @@ -124,9 +124,8 @@ static PVRSRV_ERROR SGXUpdateTimingInfo(PVRSRV_DEVICE_NODE *psDeviceNode) psDevInfo->ui32CoreClockSpeed = psSGXTimingInfo->ui32CoreClockSpeed; psDevInfo->ui32uKernelTimerClock = psSGXTimingInfo->ui32CoreClockSpeed / psSGXTimingInfo->ui32uKernelFreq; -#if 0 + psDevInfo->psSGXHostCtl->ui32uKernelTimerClock = psDevInfo->ui32uKernelTimerClock; -#endif #if defined(PDUMP) PDUMPCOMMENT("Host Control - Microkernel clock"); PDUMPMEM(IMG_NULL, psDevInfo->psKernelSGXHostCtlMemInfo, @@ -166,25 +165,18 @@ static PVRSRV_ERROR SGXUpdateTimingInfo(PVRSRV_DEVICE_NODE *psDeviceNode) } -IMG_VOID SGXStartTimer(PVRSRV_SGXDEV_INFO *psDevInfo) +static IMG_VOID SGXStartTimer(PVRSRV_SGXDEV_INFO *psDevInfo) { - IMG_UINT32 ui32RegVal; - - ui32RegVal = EUR_CR_EVENT_TIMER_ENABLE_MASK | psDevInfo->ui32uKernelTimerClock; - OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_EVENT_TIMER, ui32RegVal); - PDUMPREGWITHFLAGS(EUR_CR_EVENT_TIMER, ui32RegVal, PDUMP_FLAGS_CONTINUOUS); - #if defined(SUPPORT_HW_RECOVERY) - if (1) + PVRSRV_ERROR eError; + + eError = OSEnableTimer(psDevInfo->hTimer); + if (eError != PVRSRV_OK) { - PVRSRV_ERROR eError; - - eError = OSEnableTimer(psDevInfo->hTimer); - if (eError != PVRSRV_OK) - { - PVR_DPF((PVR_DBG_ERROR,"SGXStartTimer : Failed to enable host timer")); - } + PVR_DPF((PVR_DBG_ERROR,"SGXStartTimer : Failed to enable host timer")); } + #else + PVR_UNREFERENCED_PARAMETER(psDevInfo); #endif } @@ -373,12 +365,9 @@ PVRSRV_ERROR SGXPostPowerState (IMG_HANDLE hDevHandle, SGXMKIF_COMMAND sCommand = {0}; -#if 0 + sCommand.ui32Data[1] = PVRSRV_POWERCMD_RESUME; eError = SGXScheduleCCBCommand(psDevInfo, SGXMKIF_CMD_POWER, &sCommand, ISR_ID, 0); -#else - eError = SGXScheduleCCBCommand(psDevInfo, SGXMKIF_CMD_PROCESS_QUEUES, &sCommand, ISR_ID, 0); -#endif if (eError != PVRSRV_OK) { PVR_DPF((PVR_DBG_ERROR,"SGXPostPowerState failed to schedule CCB command: %lu", eError)); diff --git a/services4/srvkm/devices/sgx/sgxutils.c b/services4/srvkm/devices/sgx/sgxutils.c index 14dc5c3..4b630eb 100644 --- a/services4/srvkm/devices/sgx/sgxutils.c +++ b/services4/srvkm/devices/sgx/sgxutils.c @@ -46,10 +46,6 @@ #include #endif -#define PVRSRV_USSE_EDM_RESMAN_CLEANUP_INVALPD 0x20UL -#define PVRSRV_USSE_EDM_RESMAN_CLEANUP_INVALPT 0x40UL -#define PVRSRV_USSE_EDM_RESMAN_CLEANUP_COMPLETE 0x80UL - #if defined(SYS_CUSTOM_POWERDOWN) PVRSRV_ERROR SysPowerDownMISR(PVRSRV_DEVICE_NODE * psDeviceNode, IMG_UINT32 ui32CallerID); @@ -215,7 +211,6 @@ PVRSRV_ERROR SGXScheduleCCBCommand(PVRSRV_SGXDEV_INFO *psDevInfo, } #endif - psSGXCommand->ui32Data[0] = eCmdType; psSGXCommand->ui32ServiceAddress = psDevInfo->aui32HostKickAddr[eCmdType]; #if defined(PDUMP) @@ -472,48 +467,6 @@ IMG_VOID SGXCleanupRequest(PVRSRV_DEVICE_NODE *psDeviceNode, } else { -#if 1 - if (psSGXDevInfo->ui32CacheControl & SGX_BIF_INVALIDATE_PDCACHE) - { - psSGXHostCtl->ui32ResManFlags |= PVRSRV_USSE_EDM_RESMAN_CLEANUP_INVALPD; - psSGXDevInfo->ui32CacheControl ^= SGX_BIF_INVALIDATE_PDCACHE; - } - if (psSGXDevInfo->ui32CacheControl & SGX_BIF_INVALIDATE_PTCACHE) - { - psSGXHostCtl->ui32ResManFlags |= PVRSRV_USSE_EDM_RESMAN_CLEANUP_INVALPT; - psSGXDevInfo->ui32CacheControl ^= SGX_BIF_INVALIDATE_PTCACHE; - } - - if(psHWDataDevVAddr == IMG_NULL) - { - psSGXHostCtl->sResManCleanupData.uiAddr = 0; - } - else - { - - psSGXHostCtl->sResManCleanupData.uiAddr = psHWDataDevVAddr->uiAddr; - } - - - psSGXHostCtl->ui32ResManFlags |= 1 << (ui32CleanupType - 1); - - eError = SGXScheduleProcessQueuesKM(psDeviceNode); - - - #if !defined(NO_HARDWARE) - if(PollForValueKM ((volatile IMG_UINT32 *)(&psSGXHostCtl->ui32ResManFlags), - PVRSRV_USSE_EDM_RESMAN_CLEANUP_COMPLETE, - PVRSRV_USSE_EDM_RESMAN_CLEANUP_COMPLETE, - MAX_HW_TIME_US/WAIT_TRY_COUNT, - WAIT_TRY_COUNT) != PVRSRV_OK) - { - PVR_DPF((PVR_DBG_ERROR,"SGXCleanupRequest: Wait for uKernel to clean up failed")); - PVR_DBG_BREAK; - } - #endif - - psSGXHostCtl->ui32ResManFlags &= ~(PVRSRV_USSE_EDM_RESMAN_CLEANUP_COMPLETE); -#else SGXMKIF_COMMAND sCommand = {0}; PDUMPCOMMENTWITHFLAGS(0, "Request ukernel resouce clean-up"); @@ -554,7 +507,6 @@ IMG_VOID SGXCleanupRequest(PVRSRV_DEVICE_NODE *psDeviceNode, psSGXHostCtl->ui32CleanupStatus &= ~(PVRSRV_USSE_EDM_CLEANUPCMD_COMPLETE); PDUMPMEM(IMG_NULL, psSGXHostCtlMemInfo, offsetof(SGXMKIF_HOST_CTL, ui32CleanupStatus), sizeof(IMG_UINT32), 0, MAKEUNIQUETAG(psSGXHostCtlMemInfo)); -#endif } }