summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHemant Hariyani <hemanthariyani@ti.com>2014-01-22 15:29:44 -0600
committerGerrit Code Review <gerrit2@git.omapzoom.org>2014-01-22 15:29:44 -0600
commit55c1afb02872bb21636024be168d19536a922555 (patch)
tree286cbbd005d2cb4725c8567257a78b4ed8b0dfb6
parentb59d0d93f264fe3d789644674f8d451a6e3a137a (diff)
parente1f877e7b0df9aa115fdc235a40406dd05c03aa2 (diff)
downloadproprietary-open-jacinto-55c1afb02872bb21636024be168d19536a922555.tar.gz
Merge "SGX-BIN: Binaries and KM source with mutex nesting" into d-jb-mr2.0-release
-rw-r--r--jacinto6/sgx.tgzbin2638310 -> 2638674 bytes
-rw-r--r--jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/mm.c12
-rw-r--r--jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/module.c6
-rw-r--r--jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/mutex.h3
-rw-r--r--jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/pvr_debug.c2
5 files changed, 13 insertions, 10 deletions
diff --git a/jacinto6/sgx.tgz b/jacinto6/sgx.tgz
index 7aaa048..9d1683b 100644
--- a/jacinto6/sgx.tgz
+++ b/jacinto6/sgx.tgz
Binary files differ
diff --git a/jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/mm.c b/jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/mm.c
index b194794..56cf52c 100644
--- a/jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/mm.c
+++ b/jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/mm.c
@@ -317,7 +317,7 @@ DebugMemAllocRecordAdd(DEBUG_MEM_ALLOC_TYPE eAllocType,
{
DEBUG_MEM_ALLOC_REC *psRecord;
- LinuxLockMutex(&g_sDebugMutex);
+ LinuxLockMutexNested(&g_sDebugMutex, PVRSRV_LOCK_CLASS_MM_DEBUG);
psRecord = kmalloc(sizeof(DEBUG_MEM_ALLOC_REC), GFP_KERNEL);
@@ -412,7 +412,7 @@ DebugMemAllocRecordRemove(DEBUG_MEM_ALLOC_TYPE eAllocType, IMG_VOID *pvKey, IMG_
{
/* DEBUG_MEM_ALLOC_REC **ppsCurrentRecord;*/
- LinuxLockMutex(&g_sDebugMutex);
+ LinuxLockMutexNested(&g_sDebugMutex, PVRSRV_LOCK_CLASS_MM_DEBUG);
/* Locate the corresponding allocation entry */
if (!List_DEBUG_MEM_ALLOC_REC_IMG_BOOL_Any_va(g_MemoryRecords,
@@ -1968,7 +1968,7 @@ DebugLinuxMemAreaRecordAdd(LinuxMemArea *psLinuxMemArea, IMG_UINT32 ui32Flags)
DEBUG_LINUX_MEM_AREA_REC *psNewRecord;
const IMG_CHAR *pi8FlagsString;
- LinuxLockMutex(&g_sDebugMutex);
+ LinuxLockMutexNested(&g_sDebugMutex, PVRSRV_LOCK_CLASS_MM_DEBUG);
if (psLinuxMemArea->eAreaType != LINUX_MEM_AREA_SUB_ALLOC)
{
@@ -2037,7 +2037,7 @@ DebugLinuxMemAreaRecordFind(LinuxMemArea *psLinuxMemArea)
{
DEBUG_LINUX_MEM_AREA_REC *psCurrentRecord;
- LinuxLockMutex(&g_sDebugMutex);
+ LinuxLockMutexNested(&g_sDebugMutex, PVRSRV_LOCK_CLASS_MM_DEBUG);
psCurrentRecord = List_DEBUG_LINUX_MEM_AREA_REC_Any_va(g_LinuxMemAreaRecords,
MatchLinuxMemArea_AnyVaCb,
psLinuxMemArea);
@@ -2054,7 +2054,7 @@ DebugLinuxMemAreaRecordRemove(LinuxMemArea *psLinuxMemArea)
{
DEBUG_LINUX_MEM_AREA_REC *psCurrentRecord;
- LinuxLockMutex(&g_sDebugMutex);
+ LinuxLockMutexNested(&g_sDebugMutex, PVRSRV_LOCK_CLASS_MM_DEBUG);
if (psLinuxMemArea->eAreaType != LINUX_MEM_AREA_SUB_ALLOC)
{
@@ -2259,7 +2259,7 @@ static void ProcSeqStartstopDebugMutex(struct seq_file *sfile, IMG_BOOL start)
{
if (start)
{
- LinuxLockMutex(&g_sDebugMutex);
+ LinuxLockMutexNested(&g_sDebugMutex, PVRSRV_LOCK_CLASS_MM_DEBUG);
}
else
{
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 e7b161f..6d50cdb 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
@@ -489,7 +489,7 @@ PVR_MOD_STATIC void PVRSRVDriverShutdown(LDM_DEV *pDevice)
{
PVR_TRACE(("PVRSRVDriverShutdown(pDevice=%p)", pDevice));
- LinuxLockMutex(&gsPMMutex);
+ LinuxLockMutexNested(&gsPMMutex, PVRSRV_LOCK_CLASS_POWER);
if (!bDriverIsShutdown && !bDriverIsSuspended)
{
@@ -555,7 +555,7 @@ PVR_MOD_STATIC int PVRSRVDriverSuspend(LDM_DEV *pDevice, pm_message_t state)
#if !(defined(DEBUG) && defined(PVR_MANUAL_POWER_CONTROL) && !defined(SUPPORT_DRI_DRM))
PVR_TRACE(( "PVRSRVDriverSuspend(pDevice=%p)", pDevice));
- LinuxLockMutex(&gsPMMutex);
+ LinuxLockMutexNested(&gsPMMutex, PVRSRV_LOCK_CLASS_POWER);
if (!bDriverIsSuspended && !bDriverIsShutdown)
{
@@ -612,7 +612,7 @@ PVR_MOD_STATIC int PVRSRVDriverResume(LDM_DEV *pDevice)
#if !(defined(DEBUG) && defined(PVR_MANUAL_POWER_CONTROL) && !defined(SUPPORT_DRI_DRM))
PVR_TRACE(("PVRSRVDriverResume(pDevice=%p)", pDevice));
- LinuxLockMutex(&gsPMMutex);
+ LinuxLockMutexNested(&gsPMMutex, PVRSRV_LOCK_CLASS_POWER);
if (bDriverIsSuspended && !bDriverIsShutdown)
{
diff --git a/jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/mutex.h b/jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/mutex.h
index 816cf4a..09ae46d 100644
--- a/jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/mutex.h
+++ b/jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/mutex.h
@@ -74,8 +74,11 @@ typedef struct {
enum PVRSRV_MUTEX_LOCK_CLASS
{
+ PVRSRV_LOCK_CLASS_POWER,
PVRSRV_LOCK_CLASS_BRIDGE,
PVRSRV_LOCK_CLASS_MMAP,
+ PVRSRV_LOCK_CLASS_MM_DEBUG,
+ PVRSRV_LOCK_CLASS_PVR_DEBUG,
};
extern IMG_VOID LinuxInitMutex(PVRSRV_LINUX_MUTEX *psPVRSRVMutex);
diff --git a/jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/pvr_debug.c b/jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/pvr_debug.c
index 04e42ad..3958f84 100644
--- a/jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/pvr_debug.c
+++ b/jacinto6/sgx_src/eurasia_km/services4/srvkm/env/linux/pvr_debug.c
@@ -128,7 +128,7 @@ static inline void GetBufferLock(unsigned long *pulLockFlags)
#if !defined(PVR_DEBUG_ALWAYS_USE_SPINLOCK)
else
{
- LinuxLockMutex(&gsDebugMutexNonIRQ);
+ LinuxLockMutexNested(&gsDebugMutexNonIRQ, PVRSRV_LOCK_CLASS_PVR_DEBUG);
}
#endif
}