diff options
author | Gowtham Tammana | 2014-08-07 14:28:10 -0500 |
---|---|---|
committer | Gowtham Tammana | 2014-08-07 14:28:10 -0500 |
commit | 0de316f6e53cb060f331f53caf5863e1950abed6 (patch) | |
tree | 8425330d9c71a7d012a7a60197c11d79e7a64548 | |
parent | 20f5811e841baa7be0ec10b121f3d2c562bd02f9 (diff) | |
download | device-ti-proprietary-open-0de316f6e53cb060f331f53caf5863e1950abed6.tar.gz device-ti-proprietary-open-0de316f6e53cb060f331f53caf5863e1950abed6.tar.xz device-ti-proprietary-open-0de316f6e53cb060f331f53caf5863e1950abed6.zip |
jacinto6:sgx_src: updating ddk1.12@2917986 sources.
sgx_src is updated to DDK1.12@2917986 sources.
Change-Id: I3a5230100ea2d619a0626b9cd5dbb44458c15b85
Signed-off-by: Gowtham Tammana <g-tammana@ti.com>
16 files changed, 215 insertions, 92 deletions
diff --git a/jacinto6/sgx_src/eurasia_km/eurasiacon/build/linux2/common/android/extra_config.mk b/jacinto6/sgx_src/eurasia_km/eurasiacon/build/linux2/common/android/extra_config.mk index b5dd754..bb47c8d 100644 --- a/jacinto6/sgx_src/eurasia_km/eurasiacon/build/linux2/common/android/extra_config.mk +++ b/jacinto6/sgx_src/eurasia_km/eurasiacon/build/linux2/common/android/extra_config.mk | |||
@@ -50,3 +50,5 @@ $(eval $(call TunableBothConfigMake,SUPPORT_PVRSRV_ANDROID_SYSTRACE,)) | |||
50 | 50 | ||
51 | $(eval $(call TunableBothConfigMake,PVR_ANDROID_NATIVE_WINDOW_HAS_SYNC,)) | 51 | $(eval $(call TunableBothConfigMake,PVR_ANDROID_NATIVE_WINDOW_HAS_SYNC,)) |
52 | $(eval $(call TunableBothConfigC,PVR_ANDROID_NATIVE_WINDOW_HAS_SYNC,)) | 52 | $(eval $(call TunableBothConfigC,PVR_ANDROID_NATIVE_WINDOW_HAS_SYNC,)) |
53 | |||
54 | include ../common/ion.mk | ||
diff --git a/jacinto6/sgx_src/eurasia_km/eurasiacon/build/linux2/common/android/features.mk b/jacinto6/sgx_src/eurasia_km/eurasiacon/build/linux2/common/android/features.mk index 51370ef..088d47f 100644 --- a/jacinto6/sgx_src/eurasia_km/eurasiacon/build/linux2/common/android/features.mk +++ b/jacinto6/sgx_src/eurasia_km/eurasiacon/build/linux2/common/android/features.mk | |||
@@ -186,8 +186,9 @@ endif | |||
186 | # We also need to support IMPLEMENTATION_DEFINED so gralloc allocates | 186 | # We also need to support IMPLEMENTATION_DEFINED so gralloc allocates |
187 | # framebuffers and GPU buffers in a 'preferred' format. | 187 | # framebuffers and GPU buffers in a 'preferred' format. |
188 | # | 188 | # |
189 | ifeq ($(is_at_least_jellybean_mr1),0) | 189 | # FB HAL is still being used in TI post JB MR1 releases. |
190 | SUPPORT_ANDROID_FRAMEBUFFER_HAL := 1 | 190 | SUPPORT_ANDROID_FRAMEBUFFER_HAL := 1 |
191 | ifeq ($(is_at_least_jellybean_mr1),0) | ||
191 | else | 192 | else |
192 | PVR_ANDROID_HAS_HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED := 1 | 193 | PVR_ANDROID_HAS_HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED := 1 |
193 | endif | 194 | endif |
@@ -249,13 +250,6 @@ PVR_ANDROID_REMAP_HW_ONLY_PIXEL_FORMATS := 1 | |||
249 | endif | 250 | endif |
250 | 251 | ||
251 | ############################################################################## | 252 | ############################################################################## |
252 | # Workaround for texture atlas "double registerBuffer" issue in KK | ||
253 | # | ||
254 | ifeq ($(is_at_least_kitkat),1) | ||
255 | PVR_ANDROID_DONT_ENFORCE_SINGLE_REGISTER := 1 | ||
256 | endif | ||
257 | |||
258 | ############################################################################## | ||
259 | # Support newer HWC features in KK | 253 | # Support newer HWC features in KK |
260 | # | 254 | # |
261 | ifeq ($(is_at_least_kitkat),1) | 255 | ifeq ($(is_at_least_kitkat),1) |
diff --git a/jacinto6/sgx_src/eurasia_km/eurasiacon/build/linux2/common/ion.mk b/jacinto6/sgx_src/eurasia_km/eurasiacon/build/linux2/common/ion.mk new file mode 100644 index 0000000..f3f3c46 --- /dev/null +++ b/jacinto6/sgx_src/eurasia_km/eurasiacon/build/linux2/common/ion.mk | |||
@@ -0,0 +1,65 @@ | |||
1 | ########################################################################### ### | ||
2 | #@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved | ||
3 | #@License Dual MIT/GPLv2 | ||
4 | # | ||
5 | # The contents of this file are subject to the MIT license as set out below. | ||
6 | # | ||
7 | # Permission is hereby granted, free of charge, to any person obtaining a copy | ||
8 | # of this software and associated documentation files (the "Software"), to deal | ||
9 | # in the Software without restriction, including without limitation the rights | ||
10 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
11 | # copies of the Software, and to permit persons to whom the Software is | ||
12 | # furnished to do so, subject to the following conditions: | ||
13 | # | ||
14 | # The above copyright notice and this permission notice shall be included in | ||
15 | # all copies or substantial portions of the Software. | ||
16 | # | ||
17 | # Alternatively, the contents of this file may be used under the terms of | ||
18 | # the GNU General Public License Version 2 ("GPL") in which case the provisions | ||
19 | # of GPL are applicable instead of those above. | ||
20 | # | ||
21 | # If you wish to allow use of your version of this file only under the terms of | ||
22 | # GPL, and not to allow others to use your version of this file under the terms | ||
23 | # of the MIT license, indicate your decision by deleting the provisions above | ||
24 | # and replace them with the notice and other provisions required by GPL as set | ||
25 | # out in the file called "GPL-COPYING" included in this distribution. If you do | ||
26 | # not delete the provisions above, a recipient may use your version of this file | ||
27 | # under the terms of either the MIT license or GPL. | ||
28 | # | ||
29 | # This License is also included in this distribution in the file called | ||
30 | # "MIT-COPYING". | ||
31 | # | ||
32 | # EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS | ||
33 | # PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING | ||
34 | # BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR | ||
35 | # PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR | ||
36 | # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | ||
37 | # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
38 | # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
39 | ### ########################################################################### | ||
40 | |||
41 | ifneq ($(KERNELDIR),) | ||
42 | ifneq ($(SUPPORT_ION),) | ||
43 | |||
44 | # Support kernels built out-of-tree with O=/other/path | ||
45 | # In those cases, KERNELDIR will be O, not the source tree. | ||
46 | ifneq ($(wildcard $(KERNELDIR)/source),) | ||
47 | KSRCDIR := $(KERNELDIR)/source | ||
48 | else | ||
49 | KSRCDIR := $(KERNELDIR) | ||
50 | endif | ||
51 | |||
52 | ifneq ($(wildcard $(KSRCDIR)/drivers/staging/android/ion/ion.h),) | ||
53 | # The kernel has a more recent version of ion, located in drivers/staging. | ||
54 | # Change the default header paths and the behaviour wrt sg_dma_len. | ||
55 | SUPPORT_ION_HEADER := \"../drivers/staging/android/ion/ion.h\" | ||
56 | SUPPORT_ION_PRIV_HEADER := \"../drivers/staging/android/ion/ion_priv.h\" | ||
57 | SUPPORT_ION_USE_SG_LENGTH := 1 | ||
58 | endif | ||
59 | |||
60 | $(eval $(call TunableKernelConfigC,SUPPORT_ION_HEADER,\"linux/ion.h\")) | ||
61 | $(eval $(call TunableKernelConfigC,SUPPORT_ION_PRIV_HEADER,\"../drivers/gpu/ion/ion_priv.h\")) | ||
62 | $(eval $(call TunableKernelConfigC,SUPPORT_ION_USE_SG_LENGTH,)) | ||
63 | |||
64 | endif | ||
65 | endif | ||
diff --git a/jacinto6/sgx_src/eurasia_km/include4/pvrversion.h b/jacinto6/sgx_src/eurasia_km/include4/pvrversion.h index ed4025f..a8dbd13 100644 --- a/jacinto6/sgx_src/eurasia_km/include4/pvrversion.h +++ b/jacinto6/sgx_src/eurasia_km/include4/pvrversion.h | |||
@@ -53,7 +53,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
53 | 53 | ||
54 | #define PVRVERSION_FAMILY "sgxddk" | 54 | #define PVRVERSION_FAMILY "sgxddk" |
55 | #define PVRVERSION_BRANCHNAME "1.12" | 55 | #define PVRVERSION_BRANCHNAME "1.12" |
56 | #define PVRVERSION_BUILD 2701748 | 56 | #define PVRVERSION_BUILD 2917986 |
57 | #define PVRVERSION_BSCONTROL "SGX_DDK" | 57 | #define PVRVERSION_BSCONTROL "SGX_DDK" |
58 | 58 | ||
59 | #define PVRVERSION_STRING "SGX_DDK sgxddk 1.12@" PVR_STR2(PVRVERSION_BUILD) | 59 | #define PVRVERSION_STRING "SGX_DDK sgxddk 1.12@" PVR_STR2(PVRVERSION_BUILD) |
@@ -61,8 +61,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
61 | 61 | ||
62 | #define COPYRIGHT_TXT "Copyright (c) Imagination Technologies Ltd. All Rights Reserved." | 62 | #define COPYRIGHT_TXT "Copyright (c) Imagination Technologies Ltd. All Rights Reserved." |
63 | 63 | ||
64 | #define PVRVERSION_BUILD_HI 270 | 64 | #define PVRVERSION_BUILD_HI 291 |
65 | #define PVRVERSION_BUILD_LO 1748 | 65 | #define PVRVERSION_BUILD_LO 7986 |
66 | #define PVRVERSION_STRING_NUMERIC PVR_STR2(PVRVERSION_MAJ) "." PVR_STR2(PVRVERSION_MIN) "." PVR_STR2(PVRVERSION_BUILD_HI) "." PVR_STR2(PVRVERSION_BUILD_LO) | 66 | #define PVRVERSION_STRING_NUMERIC PVR_STR2(PVRVERSION_MAJ) "." PVR_STR2(PVRVERSION_MIN) "." PVR_STR2(PVRVERSION_BUILD_HI) "." PVR_STR2(PVRVERSION_BUILD_LO) |
67 | 67 | ||
68 | #endif /* _PVRVERSION_H_ */ | 68 | #endif /* _PVRVERSION_H_ */ |
diff --git a/jacinto6/sgx_src/eurasia_km/services4/srvkm/common/deviceclass.c b/jacinto6/sgx_src/eurasia_km/services4/srvkm/common/deviceclass.c index 7a96e0e..6ae3618 100644 --- a/jacinto6/sgx_src/eurasia_km/services4/srvkm/common/deviceclass.c +++ b/jacinto6/sgx_src/eurasia_km/services4/srvkm/common/deviceclass.c | |||
@@ -1777,8 +1777,12 @@ static IMG_VOID FreePrivateData(IMG_HANDLE hCallbackData) | |||
1777 | { | 1777 | { |
1778 | CALLBACK_DATA *psCallbackData = hCallbackData; | 1778 | CALLBACK_DATA *psCallbackData = hCallbackData; |
1779 | 1779 | ||
1780 | OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, psCallbackData->ui32PrivDataLength, | 1780 | if(psCallbackData->ui32PrivDataLength) |
1781 | psCallbackData->pvPrivData, IMG_NULL); | 1781 | { |
1782 | OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, psCallbackData->ui32PrivDataLength, | ||
1783 | psCallbackData->pvPrivData, IMG_NULL); | ||
1784 | } | ||
1785 | |||
1782 | OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, | 1786 | OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, |
1783 | sizeof(IMG_VOID *) * psCallbackData->ui32NumMemInfos, | 1787 | sizeof(IMG_VOID *) * psCallbackData->ui32NumMemInfos, |
1784 | psCallbackData->ppvMemInfos, IMG_NULL); | 1788 | psCallbackData->ppvMemInfos, IMG_NULL); |
diff --git a/jacinto6/sgx_src/eurasia_km/services4/srvkm/common/pvrsrv.c b/jacinto6/sgx_src/eurasia_km/services4/srvkm/common/pvrsrv.c index ea1fcaf..ac8e1e3 100644 --- a/jacinto6/sgx_src/eurasia_km/services4/srvkm/common/pvrsrv.c +++ b/jacinto6/sgx_src/eurasia_km/services4/srvkm/common/pvrsrv.c | |||
@@ -177,13 +177,13 @@ IMG_VOID IMG_CALLCONV PVRSRVCompatCheckKM(PVRSRV_BRIDGE_IN_COMPAT_CHECK *psUserM | |||
177 | || (psUserModeDDKDetails->ui32DDKBuild != PVRVERSION_BUILD)) | 177 | || (psUserModeDDKDetails->ui32DDKBuild != PVRVERSION_BUILD)) |
178 | { | 178 | { |
179 | psRetOUT->eError = PVRSRV_ERROR_DDK_VERSION_MISMATCH; | 179 | psRetOUT->eError = PVRSRV_ERROR_DDK_VERSION_MISMATCH; |
180 | PVR_DPF((PVR_DBG_ERROR, "(FAIL) UM-KM DDK Mismatch UM-(%d) KM-(%d).", | 180 | PVR_LOG(("(FAIL) UM-KM DDK Mismatch UM-(%d) KM-(%d).", |
181 | psUserModeDDKDetails->ui32DDKBuild, PVRVERSION_BUILD)); | 181 | psUserModeDDKDetails->ui32DDKBuild, PVRVERSION_BUILD)); |
182 | } | 182 | } |
183 | else | 183 | else |
184 | { | 184 | { |
185 | psRetOUT->eError = PVRSRV_OK; | 185 | psRetOUT->eError = PVRSRV_OK; |
186 | PVR_DPF((PVR_DBG_MESSAGE, "UM DDK-(%d) and KM DDK-(%d) match. [ OK ]", | 186 | PVR_LOG(("UM DDK-(%d) and KM DDK-(%d) match. [ OK ]", |
187 | psUserModeDDKDetails->ui32DDKBuild ,PVRVERSION_BUILD)); | 187 | psUserModeDDKDetails->ui32DDKBuild ,PVRVERSION_BUILD)); |
188 | } | 188 | } |
189 | } | 189 | } |
diff --git a/jacinto6/sgx_src/eurasia_km/services4/srvkm/devices/sgx/sgxinit.c b/jacinto6/sgx_src/eurasia_km/services4/srvkm/devices/sgx/sgxinit.c index 04b1748..8614c45 100644 --- a/jacinto6/sgx_src/eurasia_km/services4/srvkm/devices/sgx/sgxinit.c +++ b/jacinto6/sgx_src/eurasia_km/services4/srvkm/devices/sgx/sgxinit.c | |||
@@ -2710,7 +2710,7 @@ PVRSRV_ERROR SGXDevInitCompatCheck(PVRSRV_DEVICE_NODE *psDeviceNode) | |||
2710 | 2710 | ||
2711 | /* Clear state (not strictly necessary since this is the first call) */ | 2711 | /* Clear state (not strictly necessary since this is the first call) */ |
2712 | psSGXMiscInfoInt = psMemInfo->pvLinAddrKM; | 2712 | psSGXMiscInfoInt = psMemInfo->pvLinAddrKM; |
2713 | psSGXMiscInfoInt->ui32MiscInfoFlags = 0; | 2713 | psSGXMiscInfoInt->ui32MiscInfoFlags &= ~PVRSRV_USSE_MISCINFO_GET_STRUCT_SIZES; |
2714 | psSGXMiscInfoInt->ui32MiscInfoFlags |= PVRSRV_USSE_MISCINFO_GET_STRUCT_SIZES; | 2714 | psSGXMiscInfoInt->ui32MiscInfoFlags |= PVRSRV_USSE_MISCINFO_GET_STRUCT_SIZES; |
2715 | eError = SGXGetMiscInfoUkernel(psDevInfo, psDeviceNode, IMG_NULL); | 2715 | eError = SGXGetMiscInfoUkernel(psDevInfo, psDeviceNode, IMG_NULL); |
2716 | 2716 | ||
@@ -2951,10 +2951,8 @@ PVRSRV_ERROR SGXGetMiscInfoKM(PVRSRV_SGXDEV_INFO *psDevInfo, | |||
2951 | { | 2951 | { |
2952 | PVRSRV_ERROR eError; | 2952 | PVRSRV_ERROR eError; |
2953 | PPVRSRV_KERNEL_MEM_INFO psMemInfo = psDevInfo->psKernelSGXMiscMemInfo; | 2953 | PPVRSRV_KERNEL_MEM_INFO psMemInfo = psDevInfo->psKernelSGXMiscMemInfo; |
2954 | IMG_UINT32 *pui32MiscInfoFlags = &((PVRSRV_SGX_MISCINFO_INFO*)(psMemInfo->pvLinAddrKM))->ui32MiscInfoFlags; | 2954 | IMG_UINT32 *pui32MiscInfoFlags; |
2955 | 2955 | pui32MiscInfoFlags = &((PVRSRV_SGX_MISCINFO_INFO*)(psMemInfo->pvLinAddrKM))->ui32MiscInfoFlags; | |
2956 | /* Reset the misc info state flags */ | ||
2957 | *pui32MiscInfoFlags = 0; | ||
2958 | 2956 | ||
2959 | #if !defined(SUPPORT_SGX_EDM_MEMORY_DEBUG) | 2957 | #if !defined(SUPPORT_SGX_EDM_MEMORY_DEBUG) |
2960 | PVR_UNREFERENCED_PARAMETER(hDevMemContext); | 2958 | PVR_UNREFERENCED_PARAMETER(hDevMemContext); |
@@ -3363,6 +3361,7 @@ PVRSRV_ERROR SGXGetMiscInfoKM(PVRSRV_SGXDEV_INFO *psDevInfo, | |||
3363 | PVRSRV_SGX_MISCINFO_MEMACCESS *psSGXMemDest; /* user-defined mem write */ | 3361 | PVRSRV_SGX_MISCINFO_MEMACCESS *psSGXMemDest; /* user-defined mem write */ |
3364 | 3362 | ||
3365 | { | 3363 | { |
3364 | *pui32MiscInfoFlags &= ~PVRSRV_USSE_MISCINFO_MEMREAD; | ||
3366 | /* Set the mem read flag; src is user-defined */ | 3365 | /* Set the mem read flag; src is user-defined */ |
3367 | *pui32MiscInfoFlags |= PVRSRV_USSE_MISCINFO_MEMREAD; | 3366 | *pui32MiscInfoFlags |= PVRSRV_USSE_MISCINFO_MEMREAD; |
3368 | psSGXMemSrc = &((PVRSRV_SGX_MISCINFO_INFO*)(psMemInfo->pvLinAddrKM))->sSGXMemAccessSrc; | 3367 | psSGXMemSrc = &((PVRSRV_SGX_MISCINFO_INFO*)(psMemInfo->pvLinAddrKM))->sSGXMemAccessSrc; |
@@ -3379,6 +3378,7 @@ PVRSRV_ERROR SGXGetMiscInfoKM(PVRSRV_SGXDEV_INFO *psDevInfo, | |||
3379 | 3378 | ||
3380 | if( psMiscInfo->eRequest == SGX_MISC_INFO_REQUEST_MEMCOPY) | 3379 | if( psMiscInfo->eRequest == SGX_MISC_INFO_REQUEST_MEMCOPY) |
3381 | { | 3380 | { |
3381 | *pui32MiscInfoFlags &= ~PVRSRV_USSE_MISCINFO_MEMWRITE; | ||
3382 | /* Set the mem write flag; dest is user-defined */ | 3382 | /* Set the mem write flag; dest is user-defined */ |
3383 | *pui32MiscInfoFlags |= PVRSRV_USSE_MISCINFO_MEMWRITE; | 3383 | *pui32MiscInfoFlags |= PVRSRV_USSE_MISCINFO_MEMWRITE; |
3384 | psSGXMemDest = &((PVRSRV_SGX_MISCINFO_INFO*)(psMemInfo->pvLinAddrKM))->sSGXMemAccessDest; | 3384 | psSGXMemDest = &((PVRSRV_SGX_MISCINFO_INFO*)(psMemInfo->pvLinAddrKM))->sSGXMemAccessDest; |
diff --git a/jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/ion.c b/jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/ion.c index 036f1bd..3bd6659 100644 --- a/jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/ion.c +++ b/jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/ion.c | |||
@@ -119,9 +119,31 @@ IMG_VOID IonDeinit(IMG_VOID) | |||
119 | 119 | ||
120 | #else /* defined(CONFIG_ION_SUNXI) */ | 120 | #else /* defined(CONFIG_ION_SUNXI) */ |
121 | 121 | ||
122 | #if defined(CONFIG_ION_INCDHAD1) | ||
123 | |||
124 | /* Real ion with sharing (incdhad1) */ | ||
125 | |||
126 | extern struct ion_device *incdhad1_ion_device; | ||
127 | struct ion_device *gpsIonDev; | ||
128 | |||
129 | PVRSRV_ERROR IonInit(IMG_VOID) | ||
130 | { | ||
131 | gpsIonDev = incdhad1_ion_device; | ||
132 | return PVRSRV_OK; | ||
133 | } | ||
134 | |||
135 | |||
136 | IMG_VOID IonDeinit(IMG_VOID) | ||
137 | { | ||
138 | gpsIonDev = IMG_NULL; | ||
139 | } | ||
140 | |||
141 | #else /* defined(CONFIG_ION_INCDHAD1) */ | ||
142 | |||
122 | /* "Reference" ion implementation */ | 143 | /* "Reference" ion implementation */ |
123 | 144 | ||
124 | #include "../drivers/gpu/ion/ion_priv.h" | 145 | #include SUPPORT_ION_PRIV_HEADER |
146 | #include <linux/version.h> | ||
125 | 147 | ||
126 | static struct ion_heap **gapsIonHeaps; | 148 | static struct ion_heap **gapsIonHeaps; |
127 | struct ion_device *gpsIonDev; | 149 | struct ion_device *gpsIonDev; |
@@ -138,6 +160,9 @@ static struct ion_platform_data gsGenericConfig = | |||
138 | { | 160 | { |
139 | .nr = 3, | 161 | .nr = 3, |
140 | .heaps = | 162 | .heaps = |
163 | #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,39)) | ||
164 | (struct ion_platform_heap []) | ||
165 | #endif | ||
141 | { | 166 | { |
142 | { | 167 | { |
143 | .type = ION_HEAP_TYPE_SYSTEM_CONTIG, | 168 | .type = ION_HEAP_TYPE_SYSTEM_CONTIG, |
@@ -216,6 +241,8 @@ IMG_VOID IonDeinit(IMG_VOID) | |||
216 | ion_device_destroy(gpsIonDev); | 241 | ion_device_destroy(gpsIonDev); |
217 | } | 242 | } |
218 | 243 | ||
244 | #endif /* defined(CONFIG_ION_INCDHAD1) */ | ||
245 | |||
219 | #endif /* defined(CONFIG_ION_SUNXI) */ | 246 | #endif /* defined(CONFIG_ION_SUNXI) */ |
220 | 247 | ||
221 | #endif /* defined(CONFIG_ION_S5P) */ | 248 | #endif /* defined(CONFIG_ION_S5P) */ |
diff --git a/jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/ion.h b/jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/ion.h index 042d3c4..b71ecd7 100644 --- a/jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/ion.h +++ b/jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/ion.h | |||
@@ -44,7 +44,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
44 | 44 | ||
45 | #if defined(SUPPORT_ION) | 45 | #if defined(SUPPORT_ION) |
46 | 46 | ||
47 | #include <linux/ion.h> | 47 | #include SUPPORT_ION_HEADER |
48 | 48 | ||
49 | #include "img_types.h" | 49 | #include "img_types.h" |
50 | #include "servicesext.h" | 50 | #include "servicesext.h" |
diff --git a/jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/module.c b/jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/module.c index a86de68..4c9cf9e 100644 --- a/jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/module.c +++ b/jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/module.c | |||
@@ -476,13 +476,14 @@ PVR_MOD_STATIC void PVRSRVDriverShutdown(LDM_DEV *pDevice) | |||
476 | 476 | ||
477 | if (!bDriverIsShutdown && !bDriverIsSuspended) | 477 | if (!bDriverIsShutdown && !bDriverIsSuspended) |
478 | { | 478 | { |
479 | #if defined(ANDROID) | ||
479 | /* | 480 | /* |
480 | * Take the bridge mutex, and never release it, to stop | 481 | * Take the bridge mutex, and never release it, to stop |
481 | * processes trying to use the driver after it has been | 482 | * processes trying to use the driver after it has been |
482 | * shutdown. | 483 | * shutdown. |
483 | */ | 484 | */ |
484 | LinuxLockMutexNested(&gPVRSRVLock, PVRSRV_LOCK_CLASS_BRIDGE); | 485 | LinuxLockMutexNested(&gPVRSRVLock, PVRSRV_LOCK_CLASS_BRIDGE); |
485 | 486 | #endif | |
486 | (void) PVRSRVSetPowerStateKM(PVRSRV_SYS_POWER_STATE_D3); | 487 | (void) PVRSRVSetPowerStateKM(PVRSRV_SYS_POWER_STATE_D3); |
487 | } | 488 | } |
488 | 489 | ||
@@ -542,16 +543,30 @@ PVR_MOD_STATIC int PVRSRVDriverSuspend(LDM_DEV *pDevice, pm_message_t state) | |||
542 | 543 | ||
543 | if (!bDriverIsSuspended && !bDriverIsShutdown) | 544 | if (!bDriverIsSuspended && !bDriverIsShutdown) |
544 | { | 545 | { |
546 | #if defined(ANDROID) | ||
547 | /* | ||
548 | * The bridge mutex will be held until we resume. | ||
549 | * The lock doesn't need to be taken on (non-Android) | ||
550 | * Linux systems, as all user processes will have been | ||
551 | * suspended at this point. In any case, taking the mutex | ||
552 | * may result in possible lock ordering problems being | ||
553 | * flagged up by the kernel, as the Linux console lock may | ||
554 | * have already been taken at this point. If the 3rd party | ||
555 | * display driver is Linux Framebuffer based, the previous | ||
556 | * locking order may have been bridge mutex first, followed | ||
557 | * by the console lock. | ||
558 | */ | ||
545 | LinuxLockMutexNested(&gPVRSRVLock, PVRSRV_LOCK_CLASS_BRIDGE); | 559 | LinuxLockMutexNested(&gPVRSRVLock, PVRSRV_LOCK_CLASS_BRIDGE); |
546 | 560 | #endif | |
547 | if (PVRSRVSetPowerStateKM(PVRSRV_SYS_POWER_STATE_D3) == PVRSRV_OK) | 561 | if (PVRSRVSetPowerStateKM(PVRSRV_SYS_POWER_STATE_D3) == PVRSRV_OK) |
548 | { | 562 | { |
549 | /* The bridge mutex will be held until we resume */ | ||
550 | bDriverIsSuspended = IMG_TRUE; | 563 | bDriverIsSuspended = IMG_TRUE; |
551 | } | 564 | } |
552 | else | 565 | else |
553 | { | 566 | { |
567 | #if defined(ANDROID) | ||
554 | LinuxUnLockMutex(&gPVRSRVLock); | 568 | LinuxUnLockMutex(&gPVRSRVLock); |
569 | #endif | ||
555 | res = -EINVAL; | 570 | res = -EINVAL; |
556 | } | 571 | } |
557 | } | 572 | } |
@@ -602,11 +617,15 @@ PVR_MOD_STATIC int PVRSRVDriverResume(LDM_DEV *pDevice) | |||
602 | if (PVRSRVSetPowerStateKM(PVRSRV_SYS_POWER_STATE_D0) == PVRSRV_OK) | 617 | if (PVRSRVSetPowerStateKM(PVRSRV_SYS_POWER_STATE_D0) == PVRSRV_OK) |
603 | { | 618 | { |
604 | bDriverIsSuspended = IMG_FALSE; | 619 | bDriverIsSuspended = IMG_FALSE; |
620 | #if defined(ANDROID) | ||
605 | LinuxUnLockMutex(&gPVRSRVLock); | 621 | LinuxUnLockMutex(&gPVRSRVLock); |
622 | #endif | ||
606 | } | 623 | } |
607 | else | 624 | else |
608 | { | 625 | { |
626 | #if defined(ANDROID) | ||
609 | /* The bridge mutex is not released on failure */ | 627 | /* The bridge mutex is not released on failure */ |
628 | #endif | ||
610 | res = -EINVAL; | 629 | res = -EINVAL; |
611 | } | 630 | } |
612 | } | 631 | } |
diff --git a/jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/mutils.h b/jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/mutils.h index 6bcee26..a66e927 100644 --- a/jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/mutils.h +++ b/jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/mutils.h | |||
@@ -64,7 +64,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
64 | #if defined(__arm__) || defined(__sh__) | 64 | #if defined(__arm__) || defined(__sh__) |
65 | #define PGPROT_WC(pv) pgprot_writecombine(pv) | 65 | #define PGPROT_WC(pv) pgprot_writecombine(pv) |
66 | #elif defined(__mips__) | 66 | #elif defined(__mips__) |
67 | #define PGPROT_WC(pv) pgprot_noncached_wa(pv) | 67 | #define PGPROT_WC(pv) pgprot_writecombine(pv) |
68 | #elif defined(__i386__) || defined(__x86_64) | 68 | #elif defined(__i386__) || defined(__x86_64) |
69 | /* PAT support supersedes this */ | 69 | /* PAT support supersedes this */ |
70 | #define PGPROT_WC(pv) pgprot_noncached(pv) | 70 | #define PGPROT_WC(pv) pgprot_noncached(pv) |
diff --git a/jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/osfunc.c b/jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/osfunc.c index f2803ab..c9b577e 100644 --- a/jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/osfunc.c +++ b/jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/osfunc.c | |||
@@ -859,29 +859,25 @@ static irqreturn_t DeviceISRWrapper(int irq, void *dev_id | |||
859 | #endif | 859 | #endif |
860 | ) | 860 | ) |
861 | { | 861 | { |
862 | PVRSRV_DEVICE_NODE *psDeviceNode; | 862 | PVRSRV_DEVICE_NODE *psDeviceNode = (PVRSRV_DEVICE_NODE*)dev_id; |
863 | SYS_DATA *psSysData = psDeviceNode->psSysData; | ||
864 | ENV_DATA *psEnvData = (ENV_DATA *)psSysData->pvEnvSpecificData; | ||
863 | IMG_BOOL bStatus = IMG_FALSE; | 865 | IMG_BOOL bStatus = IMG_FALSE; |
864 | 866 | ||
865 | PVR_UNREFERENCED_PARAMETER(irq); | 867 | PVR_UNREFERENCED_PARAMETER(irq); |
866 | |||
867 | #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)) | 868 | #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)) |
868 | PVR_UNREFERENCED_PARAMETER(regs); | 869 | PVR_UNREFERENCED_PARAMETER(regs); |
869 | #endif | 870 | #endif |
870 | psDeviceNode = (PVRSRV_DEVICE_NODE*)dev_id; | ||
871 | if(!psDeviceNode) | ||
872 | { | ||
873 | PVR_DPF((PVR_DBG_ERROR, "DeviceISRWrapper: invalid params\n")); | ||
874 | goto out; | ||
875 | } | ||
876 | 871 | ||
877 | bStatus = PVRSRVDeviceLISR(psDeviceNode); | 872 | if (psEnvData->bLISRInstalled) |
878 | |||
879 | if (bStatus) | ||
880 | { | 873 | { |
881 | OSScheduleMISR((IMG_VOID *)psDeviceNode->psSysData); | 874 | bStatus = PVRSRVDeviceLISR(psDeviceNode); |
875 | if (bStatus) | ||
876 | { | ||
877 | OSScheduleMISR((IMG_VOID *)psSysData); | ||
878 | } | ||
882 | } | 879 | } |
883 | 880 | ||
884 | out: | ||
885 | #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) | 881 | #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) |
886 | return bStatus ? IRQ_HANDLED : IRQ_NONE; | 882 | return bStatus ? IRQ_HANDLED : IRQ_NONE; |
887 | #endif | 883 | #endif |
@@ -908,7 +904,8 @@ static irqreturn_t SystemISRWrapper(int irq, void *dev_id | |||
908 | #endif | 904 | #endif |
909 | ) | 905 | ) |
910 | { | 906 | { |
911 | SYS_DATA *psSysData; | 907 | SYS_DATA *psSysData = (SYS_DATA *)dev_id; |
908 | ENV_DATA *psEnvData = (ENV_DATA *)psSysData->pvEnvSpecificData; | ||
912 | IMG_BOOL bStatus = IMG_FALSE; | 909 | IMG_BOOL bStatus = IMG_FALSE; |
913 | 910 | ||
914 | PVR_UNREFERENCED_PARAMETER(irq); | 911 | PVR_UNREFERENCED_PARAMETER(irq); |
@@ -916,21 +913,16 @@ static irqreturn_t SystemISRWrapper(int irq, void *dev_id | |||
916 | #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)) | 913 | #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)) |
917 | PVR_UNREFERENCED_PARAMETER(regs); | 914 | PVR_UNREFERENCED_PARAMETER(regs); |
918 | #endif | 915 | #endif |
919 | psSysData = (SYS_DATA *)dev_id; | ||
920 | if(!psSysData) | ||
921 | { | ||
922 | PVR_DPF((PVR_DBG_ERROR, "SystemISRWrapper: invalid params\n")); | ||
923 | goto out; | ||
924 | } | ||
925 | 916 | ||
926 | bStatus = PVRSRVSystemLISR(psSysData); | 917 | if (psEnvData->bLISRInstalled) |
927 | |||
928 | if (bStatus) | ||
929 | { | 918 | { |
930 | OSScheduleMISR((IMG_VOID *)psSysData); | 919 | bStatus = PVRSRVSystemLISR(psSysData); |
920 | if (bStatus) | ||
921 | { | ||
922 | OSScheduleMISR((IMG_VOID *)psSysData); | ||
923 | } | ||
931 | } | 924 | } |
932 | 925 | ||
933 | out: | ||
934 | #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) | 926 | #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) |
935 | return bStatus ? IRQ_HANDLED : IRQ_NONE; | 927 | return bStatus ? IRQ_HANDLED : IRQ_NONE; |
936 | #endif | 928 | #endif |
@@ -1011,10 +1003,10 @@ PVRSRV_ERROR OSUninstallDeviceLISR(IMG_VOID *pvSysData) | |||
1011 | 1003 | ||
1012 | PVR_TRACE(("Uninstalling device LISR on IRQ %d with cookie %p", psEnvData->ui32IRQ, psEnvData->pvISRCookie)); | 1004 | PVR_TRACE(("Uninstalling device LISR on IRQ %d with cookie %p", psEnvData->ui32IRQ, psEnvData->pvISRCookie)); |
1013 | 1005 | ||
1014 | free_irq(psEnvData->ui32IRQ, psEnvData->pvISRCookie); | ||
1015 | |||
1016 | psEnvData->bLISRInstalled = IMG_FALSE; | 1006 | psEnvData->bLISRInstalled = IMG_FALSE; |
1017 | 1007 | ||
1008 | free_irq(psEnvData->ui32IRQ, psEnvData->pvISRCookie); | ||
1009 | |||
1018 | return PVRSRV_OK; | 1010 | return PVRSRV_OK; |
1019 | } | 1011 | } |
1020 | 1012 | ||
@@ -1091,10 +1083,10 @@ PVRSRV_ERROR OSUninstallSystemLISR(IMG_VOID *pvSysData) | |||
1091 | 1083 | ||
1092 | PVR_TRACE(("Uninstalling system LISR on IRQ %d with cookie %p", psEnvData->ui32IRQ, psEnvData->pvISRCookie)); | 1084 | PVR_TRACE(("Uninstalling system LISR on IRQ %d with cookie %p", psEnvData->ui32IRQ, psEnvData->pvISRCookie)); |
1093 | 1085 | ||
1094 | free_irq(psEnvData->ui32IRQ, psEnvData->pvISRCookie); | ||
1095 | |||
1096 | psEnvData->bLISRInstalled = IMG_FALSE; | 1086 | psEnvData->bLISRInstalled = IMG_FALSE; |
1097 | 1087 | ||
1088 | free_irq(psEnvData->ui32IRQ, psEnvData->pvISRCookie); | ||
1089 | |||
1098 | return PVRSRV_OK; | 1090 | return PVRSRV_OK; |
1099 | } | 1091 | } |
1100 | 1092 | ||
@@ -4406,6 +4398,7 @@ IMG_BOOL OSInvalidateCPUCacheRangeKM(IMG_HANDLE hOSMemHandle, | |||
4406 | } | 4398 | } |
4407 | 4399 | ||
4408 | #elif defined(__mips__) | 4400 | #elif defined(__mips__) |
4401 | |||
4409 | /* | 4402 | /* |
4410 | * dmac cache functions are supposed to be used for dma | 4403 | * dmac cache functions are supposed to be used for dma |
4411 | * memory which comes from dma-able memory. However examining | 4404 | * memory which comes from dma-able memory. However examining |
@@ -4415,50 +4408,65 @@ IMG_BOOL OSInvalidateCPUCacheRangeKM(IMG_HANDLE hOSMemHandle, | |||
4415 | * | 4408 | * |
4416 | */ | 4409 | */ |
4417 | 4410 | ||
4411 | static inline size_t pvr_dma_range_len(const void *pvStart, const void *pvEnd) | ||
4412 | { | ||
4413 | return (size_t)((char *)pvEnd - (char *)pvStart); | ||
4414 | } | ||
4415 | |||
4416 | static void pvr_dma_cache_wback_inv(const void *pvStart, const void *pvEnd) | ||
4417 | { | ||
4418 | size_t uLength = pvr_dma_range_len(pvStart, pvEnd); | ||
4419 | #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37) | ||
4420 | dma_cache_sync(NULL, (void *)pvStart, uLength, DMA_BIDIRECTIONAL); | ||
4421 | #else | ||
4422 | dma_cache_wback_inv((unsigned long)pvStart, uLength); | ||
4423 | #endif | ||
4424 | } | ||
4425 | |||
4426 | static void pvr_dma_cache_wback(const void *pvStart, const void *pvEnd) | ||
4427 | { | ||
4428 | size_t uLength = pvr_dma_range_len(pvStart, pvEnd); | ||
4429 | #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37) | ||
4430 | dma_cache_sync(NULL, (void *)pvStart, uLength, DMA_TO_DEVICE); | ||
4431 | #else | ||
4432 | dma_cache_wback((unsigned long)pvStart, uLength); | ||
4433 | #endif | ||
4434 | } | ||
4435 | |||
4436 | static void pvr_dma_cache_inv(const void *pvStart, const void *pvEnd) | ||
4437 | { | ||
4438 | size_t uLength = pvr_dma_range_len(pvStart, pvEnd); | ||
4439 | #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37) | ||
4440 | dma_cache_sync(NULL, (void *)pvStart, uLength, DMA_FROM_DEVICE); | ||
4441 | #else | ||
4442 | dma_cache_inv((unsigned long)pvStart, uLength); | ||
4443 | #endif | ||
4444 | } | ||
4445 | |||
4418 | IMG_VOID OSCleanCPUCacheKM(IMG_VOID) | 4446 | IMG_VOID OSCleanCPUCacheKM(IMG_VOID) |
4419 | { | 4447 | { |
4420 | /* dmac functions flush full cache if size is larger than | 4448 | /* dmac functions flush full cache if size is larger than |
4421 | * p-cache size. This is a workaround for the fact that | 4449 | * {s,d}-cache size. This is a workaround for the fact that |
4422 | * __flush_cache_all is not an exported symbol. Please | 4450 | * __flush_cache_all is not an exported symbol. Please |
4423 | * replace with custom function if available in latest | 4451 | * replace with custom function if available in latest |
4424 | * version of linux being used. | 4452 | * version of linux being used. |
4425 | * Arbitrary large number (1MB) which should be larger than | 4453 | * Arbitrary large number (1MB) which should be larger than |
4426 | * mips p-cache sizes for some time in future. | 4454 | * mips {s,d}-cache sizes for some time in future. |
4427 | * */ | 4455 | * */ |
4428 | dma_cache_wback(0, 0x100000); | 4456 | pvr_dma_cache_wback(0, (const void *)0x200000); |
4429 | } | 4457 | } |
4430 | 4458 | ||
4431 | IMG_VOID OSFlushCPUCacheKM(IMG_VOID) | 4459 | IMG_VOID OSFlushCPUCacheKM(IMG_VOID) |
4432 | { | 4460 | { |
4433 | /* dmac functions flush full cache if size is larger than | 4461 | /* dmac functions flush full cache if size is larger than |
4434 | * p-cache size. This is a workaround for the fact that | 4462 | * {s,d}-cache size. This is a workaround for the fact that |
4435 | * __flush_cache_all is not an exported symbol. Please | 4463 | * __flush_cache_all is not an exported symbol. Please |
4436 | * replace with custom function if available in latest | 4464 | * replace with custom function if available in latest |
4437 | * version of linux being used. | 4465 | * version of linux being used. |
4438 | * Arbitrary large number (1MB) which should be larger than | 4466 | * Arbitrary large number (1MB) which should be larger than |
4439 | * mips p-cache sizes for some time in future. | 4467 | * mips {s,d}-cache sizes for some time in future. |
4440 | * */ | 4468 | * */ |
4441 | dma_cache_wback_inv(0, 0x100000); | 4469 | pvr_dma_cache_wback_inv(0, (const void *)0x200000); |
4442 | } | ||
4443 | |||
4444 | static inline IMG_UINT32 pvr_dma_range_len(const void *pvStart, const void *pvEnd) | ||
4445 | { | ||
4446 | return (IMG_UINT32)((char *)pvEnd - (char *)pvStart); | ||
4447 | } | ||
4448 | |||
4449 | static void pvr_dma_cache_wback_inv(const void *pvStart, const void *pvEnd) | ||
4450 | { | ||
4451 | dma_cache_wback_inv((IMG_UINTPTR_T)pvStart, pvr_dma_range_len(pvStart, pvEnd)); | ||
4452 | } | ||
4453 | |||
4454 | static void pvr_dma_cache_wback(const void *pvStart, const void *pvEnd) | ||
4455 | { | ||
4456 | dma_cache_wback((IMG_UINTPTR_T)pvStart, pvr_dma_range_len(pvStart, pvEnd)); | ||
4457 | } | ||
4458 | |||
4459 | static void pvr_dma_cache_inv(const void *pvStart, const void *pvEnd) | ||
4460 | { | ||
4461 | dma_cache_inv((IMG_UINTPTR_T)pvStart, pvr_dma_range_len(pvStart, pvEnd)); | ||
4462 | } | 4470 | } |
4463 | 4471 | ||
4464 | IMG_BOOL OSFlushCPUCacheRangeKM(IMG_HANDLE hOSMemHandle, | 4472 | IMG_BOOL OSFlushCPUCacheRangeKM(IMG_HANDLE hOSMemHandle, |
diff --git a/jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/osperproc.c b/jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/osperproc.c index 3485d8a..9b014dc 100644 --- a/jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/osperproc.c +++ b/jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/osperproc.c | |||
@@ -114,6 +114,14 @@ PVRSRV_ERROR OSPerProcessPrivateDataDeInit(IMG_HANDLE hOsPrivateData) | |||
114 | 114 | ||
115 | psEnvPerProc = (PVRSRV_ENV_PER_PROCESS_DATA *)hOsPrivateData; | 115 | psEnvPerProc = (PVRSRV_ENV_PER_PROCESS_DATA *)hOsPrivateData; |
116 | 116 | ||
117 | #if defined(SUPPORT_ION) | ||
118 | if (psEnvPerProc->psIONClient) | ||
119 | { | ||
120 | ion_client_destroy(psEnvPerProc->psIONClient); | ||
121 | psEnvPerProc->psIONClient = IMG_NULL; | ||
122 | } | ||
123 | #endif /* defined(SUPPORT_ION) */ | ||
124 | |||
117 | /* Linux specific mmap processing */ | 125 | /* Linux specific mmap processing */ |
118 | LinuxMMapPerProcessDisconnect(psEnvPerProc); | 126 | LinuxMMapPerProcessDisconnect(psEnvPerProc); |
119 | 127 | ||
diff --git a/jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/pvr_drm.c b/jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/pvr_drm.c index 3aae69e..3a925ad 100644 --- a/jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/pvr_drm.c +++ b/jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/pvr_drm.c | |||
@@ -480,7 +480,9 @@ static const struct file_operations sPVRFileOps = | |||
480 | PVR_DRM_FOPS_IOCTL = drm_ioctl, | 480 | PVR_DRM_FOPS_IOCTL = drm_ioctl, |
481 | .mmap = PVRMMap, | 481 | .mmap = PVRMMap, |
482 | .poll = drm_poll, | 482 | .poll = drm_poll, |
483 | #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,12,0)) | ||
483 | .fasync = drm_fasync, | 484 | .fasync = drm_fasync, |
485 | #endif | ||
484 | }; | 486 | }; |
485 | #endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) */ | 487 | #endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) */ |
486 | 488 | ||
diff --git a/jacinto6/sgx_src/eurasia_km/services4/srvkm/hwdefs/sgxerrata.h b/jacinto6/sgx_src/eurasia_km/services4/srvkm/hwdefs/sgxerrata.h index 52b13bb..42c1f18 100644 --- a/jacinto6/sgx_src/eurasia_km/services4/srvkm/hwdefs/sgxerrata.h +++ b/jacinto6/sgx_src/eurasia_km/services4/srvkm/hwdefs/sgxerrata.h | |||
@@ -350,6 +350,11 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
350 | #define FIX_HW_BRN_36513 /* workaround in uKernel and Services */ | 350 | #define FIX_HW_BRN_36513 /* workaround in uKernel and Services */ |
351 | #else | 351 | #else |
352 | #if SGX_CORE_REV == 116 | 352 | #if SGX_CORE_REV == 116 |
353 | #if defined(SGX_FEATURE_MP) | ||
354 | #if SGX_FEATURE_MP_CORE_COUNT == 1 | ||
355 | #define FIX_HW_BRN_33809/* workaround in kernel (enable burst combiner) */ | ||
356 | #endif | ||
357 | #endif | ||
353 | #if defined(SUPPORT_SGX_LOW_LATENCY_SCHEDULING) && defined(SGX_FEATURE_MP) | 358 | #if defined(SUPPORT_SGX_LOW_LATENCY_SCHEDULING) && defined(SGX_FEATURE_MP) |
354 | #define FIX_HW_BRN_33657/* workaround in ukernel */ | 359 | #define FIX_HW_BRN_33657/* workaround in ukernel */ |
355 | #endif | 360 | #endif |
diff --git a/jacinto6/sgx_src/eurasia_km/services4/system/omap/sysconfig.c b/jacinto6/sgx_src/eurasia_km/services4/system/omap/sysconfig.c index 36384bc..3ebb7c8 100644 --- a/jacinto6/sgx_src/eurasia_km/services4/system/omap/sysconfig.c +++ b/jacinto6/sgx_src/eurasia_km/services4/system/omap/sysconfig.c | |||
@@ -533,9 +533,6 @@ PVRSRV_ERROR SysInitialise(IMG_VOID) | |||
533 | return PVRSRV_OK; | 533 | return PVRSRV_OK; |
534 | } | 534 | } |
535 | 535 | ||
536 | #if defined(CONFIG_OMAPLFB) | ||
537 | int OMAPLFBRegisterPVRDriver(void * pfnFuncTable); | ||
538 | #endif | ||
539 | 536 | ||
540 | /*! | 537 | /*! |
541 | ****************************************************************************** | 538 | ****************************************************************************** |
@@ -599,14 +596,6 @@ PVRSRV_ERROR SysFinalise(IMG_VOID) | |||
599 | DisableSGXClocks(gpsSysData); | 596 | DisableSGXClocks(gpsSysData); |
600 | #endif /* SUPPORT_ACTIVE_POWER_MANAGEMENT */ | 597 | #endif /* SUPPORT_ACTIVE_POWER_MANAGEMENT */ |
601 | 598 | ||
602 | #if defined(CONFIG_OMAPLFB) | ||
603 | if (OMAPLFBRegisterPVRDriver((void *)&PVRGetDisplayClassJTable) != 0) | ||
604 | { | ||
605 | PVR_DPF((PVR_DBG_ERROR,"SysFinalise: Failed to register PVR driver with omaplfb")); | ||
606 | return PVRSRV_ERROR_INIT_FAILURE; | ||
607 | } | ||
608 | #endif | ||
609 | |||
610 | gpsSysSpecificData->bSGXInitComplete = IMG_TRUE; | 599 | gpsSysSpecificData->bSGXInitComplete = IMG_TRUE; |
611 | 600 | ||
612 | return eError; | 601 | return eError; |