[DSS DRV][Bug Fix][PDK-5040]Display stops working if two pipelines are started back...
[processor-sdk/pdk.git] / packages / ti / drv / dss / src / drv / disp / dss_dispApi.c
index 992ccda0137aea3ac16036ad9ce6c6a28b1e638e..b49ffbc9adb7e3fb3f5de84629276a50ed7c3f9b 100755 (executable)
@@ -107,6 +107,7 @@ static int32_t Dss_dispDrvControl(Fdrv_Handle handle,
 
 extern Dss_EvtMgrClientInfo gDss_DispEvtMgrClientInfo[DSS_DISP_EVT_MGR_MAX_CLIENTS];
 
+extern SemaphoreP_Handle gDssStartSyncSem;
 /* ========================================================================== */
 /*                  Internal/Private Function Declarations                    */
 /* ========================================================================== */
@@ -1172,6 +1173,13 @@ static int32_t Dss_dispDrvStartIoctl(Dss_DispDrvInstObj *instObj)
     /* Check for NULL pointers */
     GT_assert(DssTrace, (NULL != instObj));
 
+    /* wait for start sync semaphore */
+    if(NULL != gDssStartSyncSem)
+    {
+        /* Take the instance semaphore */
+        (void) SemaphoreP_pend(gDssStartSyncSem, SemaphoreP_WAIT_FOREVER);
+    }
+
     /* Take the instance semaphore */
     (void) SemaphoreP_pend(instObj->lockSem, SemaphoreP_WAIT_FOREVER);